我做Tensorflow一些培訓,並使用保護拯救整個過程:tensorflow僅恢復變量
# ... define model
# add a saver
saver = tf.train.Saver()
# ... run a session
# ....
# save the model
save_path = saver.save(sess,fileSaver)
它工作正常,我可以使用完全相同的模型,並呼籲成功地還原整個過程:
saver.restore(sess, importSaverPath)
現在我想只修改優化,同時保持模型常數的其餘部分(計算圖從優化保持不變分開):
# optimizer used before
# optimizer = tf.train.AdamOptimizer
# (learning_rate = learningRate).minimize(costPrediction)
# the new optimizer I want to use
optimizer = tf.train.RMSPropOptimizer
(learning_rate = learningRate, decay = 0.9, momentum = 0.1,
epsilon = 1e-5).minimize(costPrediction)
我也想繼續從我保存的最後圖狀態(即,我想恢復我的變量的狀態並繼續使用另一個訓練算法)進行訓練。當然我不能使用:
saver.restore
不再,因爲圖形已經改變。
所以我的問題是:有沒有一種方法可以在整個會話被保存時使用saver.restore命令恢復變量(或者甚至可能在以後使用,只有一部分變量)?我在API文檔和在線上查找了這樣的功能,但找不到任何可以幫助我實現它的示例/足夠詳細的解釋。
考慮在圖中包含兩個優化器。然後你可以選擇在會議中打電話。切換優化器不需要保存/恢復,所以我想我會提到這一點,以確保您瞭解這一點。 – user728291