0
import tensorflow as tf
saver = tf.train.Saver()
saver.restore(...)
그러나 saver.restore에는 전체 그래프를 복원하는 옵션 만 있습니다. 특정 범위에있는 변수 만 복원하고 싶습니다.tensorflow에서 저장된 검사 점에서 특정 범위의 변수를 복원하는 방법은 무엇입니까?
미리 감사드립니다.
import tensorflow as tf
saver = tf.train.Saver()
saver.restore(...)
그러나 saver.restore에는 전체 그래프를 복원하는 옵션 만 있습니다. 특정 범위에있는 변수 만 복원하고 싶습니다.tensorflow에서 저장된 검사 점에서 특정 범위의 변수를 복원하는 방법은 무엇입니까?
미리 감사드립니다.
범위가 InceptionV1
인 Google의 InceptionNet 모델을 가지고 있으며 범위를 다시 지정하려는 범위 InceptionRetrained
의 마지막 레이어를 제외하고로드하려는 것으로 가정합니다.
마지막 계층 재교육을 이미 시작했으며 last_layer.ckpt 파일을 작성했다고 가정하면 두 검사 점에서 네트워크를 복원하는 방법은 다음과 같습니다.
당신이 마지막 계층을 재교육하는 경우
saver1 = tf.train.Saver(var_list=tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='InceptionV1'))
saver1.restore(session, 'inception_model_from_google.ckpt')
saver2 = tf.train.Saver(var_list=tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='InceptionRetrained'))
saver2.restore(session, 'last_layer.ckpt')
는
var_list
인수 최적화를 호출하여 그라데이션 최대 네트워크 (시간 절약)의 전파를 해제하는 것을 잊지 마세요.
tf.train.Optimizer(0.0001).minimize(
loss, var_list=tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='Inceptionretrained'))