首页 > 解决方案 > 如何将 saved_model.pb 转换为 EvalSavedModel?

问题描述

我正在阅读tensorflow-model-analysis评估 TensorFlow 模型的文档。入门指南讨论了一个特殊的 SavedModel,称为EvalSavedModel.

引用入门指南:

此 EvalSavedModel 包含附加信息,允许 TFMA 以分布式方式在大量数据和用户定义的切片上计算模型中定义的相同评估指标。

我的问题是如何将已经存在的转换saved_model.pbEvalSavedModel

标签: tensorflowtensorflow-model-analysis

解决方案


如果我正确理解了您的问题,则您已经saved_model.pb通过使用tf.saved_model.simple_savetf.saved_model.builder.SavedModelBuilder或通过estimator.export_savedmodel.

如果我的理解是正确的,那么,您将训练和推理图导出到saved_model.pb.

您在 TF Org 网站指南中提到的观点指出,除了导出训练图之外,我们还需要导出评估图。这称为EvalSavedModel

评估图包含该模型的指标,因此您可以使用可视化来评估模型的性能。

在我们导出EvalSaved模型之前,我们应该准备eval_input_receiver_fn,类似于serving_input_receiver_fn

我们还可以提及其他功能,例如,如果您希望以分布式方式定义指标,或者如果我们想使用数据切片而不是整个数据集来评估我们的模型。此类选项可在 中提及eval_input_receiver_fn

然后我们可以EvalSavedModel使用下面的代码导出:

tfma.export.export_eval_savedmodel(estimator=estimator,export_dir_base=export_dir,
  eval_input_receiver_fn=eval_input_receiver_fn)

推荐阅读