2017-03-02 3 views

答えて

4

GoogleのInceptionNetモデルがInceptionV1であり、再試行する範囲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')) 
関連する問題