如何将saved_model.pb转换为EvalSavedModel?

时间:2018-05-07 14:57:18

标签: tensorflow tensorflow-model-analysis

我正在浏览评估TensorFlow模型的tensorflow-model-analysis文档。入门指南讨论了一个名为EvalSavedModel的特殊SavedModel。

引用入门指南:

  

此EvalSavedModel包含允许TFMA的其他信息   计算模型中定义的相同评估指标   分布式方式通过大量数据和用户定义   切片。

我的问题是如何将现有的saved_model.pb转换为EvalSavedModel

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则可以使用saved_model.pbtf.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)

答案 1 :(得分:0)

EvalSavedModel被导出为SavedModel消息,因此不需要这种转换。

EvalSavedModel在后​​台使用SavedModelBuilder。它使用几个占位符填充估算器图,并创建一些其他指标集合。稍后,它执行简单的SavedModelBuilder过程。

来源-https://github.com/tensorflow/model-analysis/blob/master/tensorflow_model_analysis/eval_saved_model/export.py#L228

P.S。我想您想在由model-analysis导出的模型上运行SavedModelBuilder。由于SavedModel既没有在EvalSavedModel中创建的指标节点,也没有相关的集合,因此这样做没有用-model-analysis只是找不到与您的估算器有关的指标