通过 SessionRunHooks 访问 Estimator 评估结果

Accessing Estimator evaluation results via SessionRunHooks

我正在尝试修改一个在 TensorFlow (v1.10) 中使用 Estimator class 的程序,我想在每次评估发生时访问评估指标结果,以便我可以复制检查点仅在达到新的最大值时才归档。

我的一个想法是创建一个继承自 SessionRunHook 的 class,在 after_run 方法中完成我想要的工作。根据 documentation,我可以使用 before_run 指定传递给 after_run 的内容。但是,我无法找到一种方法来从传递给 before_run 的信息中访问我想要的评估指标结果。

我查看了 Estimator 代码,似乎 writing the results to a summary file so another idea I had was to read this back in the after_run method, but the summary api 似乎没有提供任何读取操作。

有没有其他方法可以实现我想做的事情?不使用 Estimator class 不是一个选项,因为这会涉及对我正在使用的代码的剧烈更改。

检查点与导出不同。检查点与故障恢复有关,涉及保存完整的训练状态(权重、全局步数等)。

对于你的情况,我建议导出。导出的模型将写入名为“exporter”的目录,服务输入函数指定最终用户应向预测服务提供的内容。

您可以使用 class "Best Exporter" 仅导出表现最佳的模型:

https://www.tensorflow.org/api_docs/python/tf/estimator/BestExporter

这 class 导出最佳模型的服务图和检查点。

此外,每当新模型优于任何现有模型时,它都会执行模型导出。