Path: blob/master/site/zh-cn/guide/migrate/evaluator.ipynb
39017 views
Copyright 2021 The TensorFlow Authors.
评估是对模型进行衡量和基准测试的关键部分。
本指南演示了如何将评估器任务从 TensorFlow 1 迁移到 TensorFlow 2。在 TensorFlow 1 中,当 API 以分布式方式运行时,此功能由 tf.estimator.train_and_evaluate 实现。在 Tensorflow 2 中,可以使用内置 tf.keras.utils.SidecarEvaluator,或在评估器任务上使用自定义评估循环。
TensorFlow 1 (tf.estimator.Estimator.evaluate) 和 TensorFlow 2(Model.fit(..., validation_data=(...)) 或 Model.evaluate)中都有简单的连续评估选项。当您不希望工作进程在训练和评估之间切换时,评估器任务更合适,而当您希望分布评估时,Model.fit 中的内置评估更合适。
安装
TensorFlow 1:使用 tf.estimator.train_and_evaluate 进行评估
在 TensorFlow 1 中,可以配置 tf.estimator 以使用 tf.estimator.train_and_evaluate 评估 Estimator。
在此示例中,首先定义 tf.estimator.Estimator 并指定训练和评估规范:
随后,训练和评估模型。评估在训练之间同步运行,因为它在此笔记本中被限制为本地运行,并且在训练和评估之间交替运行。但是,如果 Estimator 是以分布式方式使用的,则评估器将作为专用评估器任务运行。有关详情,请查看分布式训练的迁移指南。
TensorFlow 2:评估 Keras 模型
在 TensorFlow 2 中,如果您使用 Model.fit API 进行训练,则可以使用 tf.keras.utils.SidecarEvaluator 评估模型。此外,还可以在 Tensorboard 中呈现评估指标,本指南中未介绍此功能。
为了帮助演示这一点,我们首先定义和训练模型:
然后,使用 tf.keras.utils.SidecarEvaluator 评估模型。在实际训练中,建议使用单独的作业进行评估,以释放工作进程资源进行训练。
后续步骤
要详细了解 sidecar 评估,请考虑阅读
tf.keras.utils.SidecarEvaluatorAPI 文档。要考虑在 Keras 中交替进行训练和评估,请考虑阅读其他内置方法。
在 TensorFlow.org 上查看
在 Google Colab 运行
在 Github 上查看源代码
下载笔记本