Path: blob/master/site/zh-cn/guide/migrate/evaluator.ipynb
25118 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.SidecarEvaluator
API 文档。要考虑在 Keras 中交替进行训练和评估,请考虑阅读其他内置方法。