2016-08-11 302 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