2017-03-02 64 views

回答

4

假設您已經在範圍InceptionV1範圍內有Google的InceptionNet模型,並且您想要加載它,但要重新訓練的範圍InceptionRetrained的最後一層除外。

假設你已經開始重新訓練的最後一層,你通過saver2.save(session, 'last_layer.ckpt')創建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'))