通过 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 导出最佳模型的服务图和检查点。
此外,每当新模型优于任何现有模型时,它都会执行模型导出。
我正在尝试修改一个在 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 导出最佳模型的服务图和检查点。
此外,每当新模型优于任何现有模型时,它都会执行模型导出。