【问题标题】:Tensorflow Estimator - Periodic Evaluation on Eval DatasetTensorflow Estimator - Eval 数据集的定期评估
【发布时间】:2018-02-07 16:19:28
【问题描述】:

tensorflow 文档没有提供任何关于如何在评估集上对模型执行定期评估的示例。

Some people 建议使用 Experiment,听起来不错但不幸的是不起作用(折旧并触发错误)。

Others 建议使用 SummarySaverHook,但我不明白如何将其用于评估集(与训练集相反)。

一个解决方案是执行以下操作

for i in range(number_of_epoch):
    estimator.train(...) // on training set
    estimator.evaluate(...) // on evaluation set

this paper(第 4 页右上角)明确不鼓励这种架构。

还有其他想法/实现吗?

编辑:

运行实验时的错误信息如下:

File ".../anaconda2/lib/python2.7/site-packages/tensorflow/contrib/learn/python/learn/experiment.py", line 253, in train if (config.environment != run_config.Environment.LOCAL and
AttributeError: 'RunConfig' object has no attribute 'environment'

Tensorflow 1.3 版

【问题讨论】:

    标签: tensorflow deep-learning rnn


    【解决方案1】:

    只有Experiment 的几个参数/选项被弃用(您看到了什么具体错误?)。如果您创建一个将执行定期检查点的Estimator(使用RunConfig 中的选项)和一个使用它的Experiment,则在使用train_and_evaluate 方法时默认情况下您将获得每个检查点的评估。

    编辑:正如 Maxime 在 cmets 中指出的那样。他需要添加以下几行来消除他的错误:

    os.environ['TF_CONFIG'] = json.dumps({'environment': 'local'})
    config = tf.contrib.learn.RunConfig()
    

    【讨论】:

    • 感谢您的回复。我用错误日志编辑了问题。我得到的错误信息是:“AttributeError: 'RunConfig' object has no attribute 'environment'”
    • 我会尝试添加这个:os.environ['TF_CONFIG'] = json.dumps({'environment': 'local'}) config = tf.contrib.learn.RunConfig()跨度>
    • 成功了。非常感谢。您能否编辑您的答案并添加两行代码以便所有人都能理解?
    • 它是如何工作的?在this link 中明确表示不推荐使用 Experiment 类。请看my question
    • 在这个问题之前,整个类最近已被弃用。以下是从 Experiment 迁移的起点:github.com/tensorflow/tensorflow/blob/r1.7/tensorflow/contrib/…
    猜你喜欢
    • 2019-04-05
    • 2019-07-18
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 2019-06-30
    • 2019-07-29
    • 2018-09-12
    • 1970-01-01
    相关资源
    最近更新 更多