Tensorflow主管是否进行培训和评估操作?

时间:2017-02-23 05:06:12

标签: tensorflow

我一直在使用tensorflow管理程序(https://www.tensorflow.org/programmers_guide/supervisor)从已保存的检查点加载模型,以便训练和运行网络。但我注意到,即使在运行/评估模型时,检查点文件也会更新(graph.pbtxt的时间戳,更新的model.ckpt.data文件和创建的新events.out)。

这让我想知道使用主管来运行/评估模型是否会重置/改变训练状态?除了培训之外,是否建议使用主管?

火车 -

sv = tf.train.Supervisor(logdir=mylogdir)
with sv.managed_session() as sess:
    if not sv.should_stop(): 
        train_step.run(feed_dict={x: xtrain, y_: ytrain, keep_prob: 0.5}, session= sess)

仅运行/评估。我们不希望以下内容修改模型的训练状态

sv = tf.train.Supervisor(logdir=mylogdir)    
with sv.managed_session() as sess:
    for yconv in sess.run(y_conv, feed_dict={x: xtest, keep_prob: 1.0}): 
        #use yconv to predict, evaluate etc. 

1 个答案:

答案 0 :(得分:1)

您的模型通常会保存到文件名“model.ckpt-NUM'”。只要评估不更新该文件(并且它不应该),那么您就是安全的。

如果您担心覆盖日志记录/摘要。在选择摘要名称时应该小心。

E.g。例如,要进行评估,请选择摘要名称'eval/' +metric_name,培训'train/' +metric_name,请参阅herehere

编辑: 您还可以选择其他目录(" logdir")来存储评估结果,如所示的API here