Tensorflow Estimator - 对评估数据集的定期评估

Tensorflow Estimator - Periodic Evaluation on Eval Dataset

tensorflow 文档没有提供任何示例来说明如何在评估集上对模型进行定期评估。

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

建议使用 SummarySaverHook,但我看不出如何将它用于评估集(与训练集相对)。

解决方案是执行以下操作

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

this paper(第 4 页右上角)明确反对这种架构。

还有其他 idea/implementation 吗?

编辑:

实验时运行报错信息如下:

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

只有 Experiment 中的少数 parameters/options 已弃用(您看到了哪些具体错误?)。如果您创建一个 Estimator 将执行定期检查点(使用 RunConfig) and an Experiment using it, you will get evaluation for each checkpoint by default when using train_and_evaluate 方法中的选项。

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

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