2016-08-11 299 views
0

我想訓練一個20000步的cnn。在第100步中,我想保存所有變量,之後我想重新運行我的代碼恢復模型並從第100步開始。我試圖使它與tensorflow文檔一起工作:https://www.tensorflow.org/versions/r0.10/how_tos/variables/index.html但我不能。任何幫助?Tensorflow:如何恢復訓練模型? (Python)

+0

您是否按照本文檔中有關[保存和恢復TensorFlow模型]的步驟進行了嘗試(http://stackoverflow.com/documentation/tensorflow/5000/saving-and-restoring-a-model-in-tensorflow# T = 201608112143154413759)? – mrry

+0

這不是我想要的。我想每隔100步「暫停」我的訓練等等,以保存和恢復我的代碼的下一輪運行。 – chrisrn

+0

我不確定這與保存和恢復的不同之處在於@mrry指出 - 除了可能有控制流量變量。這些可以使用內置的Python/numpy功能輕鬆保存,如numpy.save等。 – cleros

回答

0

我卡在類似的東西,但也許這link可以幫助你。即時通訊新的tensorflow,但我認爲你不能恢復和適應,而不需要再次訓練你的模型。

+0

謝謝。我不知道你可以使用DNNClassifier來做到這一點。這裏的問題是我有一個for循環,我想每100步停止運行我的代碼。之後,我想恢復模型並從上一步繼續。我使用的分類器是AdamOptimizer,它不提供model_dir參數。 – chrisrn

+0

也許你正在尋找檢查站?我想我以前讀過一些關於這方面的內容,但並沒有嘗試過我自己。我做了一個快速閱讀,[這](https://nathanbrixius.wordpress.com/2016/05/24/checkpointing-and-reusing-tensorflow-models/)可以給你一些想法。 –

0

此功能仍然不穩定,文檔已過時,因此令人困惑,對我有用(這是Google的人直接在tensorflow上工作的建議)是在我的模型的構造函數上使用model_dir參數在訓練之前,在這裏你將告訴在哪裏存儲你的模型,在訓練之後,你只需使用相同的model_dir再次實例化一個模型,並且它將從生成的文件和檢查點中恢復模型。

+0

請看我的答案,看看它們是否對你有用: http://stackoverflow.com/questions/38358419/how-to-saverestore-dnnclassifier-trained-in-tensorflow-python-iris-example/38489883#38489883 –

+0

正如我以前的回答,我正在使用循環沒有DNNClassifier。我的分類器是AdamOptimizer,它不提供model_dir參數。也許我應該試試MetaGraph? – chrisrn

+0

我的問題在這裏更精確的提到:https://github.com/tensorflow/tensorflow/issues/3765看一看。謝謝! – chrisrn