我正在浏览评估TensorFlow模型的tensorflow-model-analysis
文档。入门指南讨论了一个名为EvalSavedModel
的特殊SavedModel。
引用入门指南:
此EvalSavedModel包含允许TFMA的其他信息 计算模型中定义的相同评估指标 分布式方式通过大量数据和用户定义 切片。
我的问题是如何将现有的saved_model.pb
转换为EvalSavedModel
?
答案 0 :(得分:1)
如果我正确理解了您的问题,则可以使用saved_model.pb
或tf.saved_model.simple_save
或tf.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
过程。
P.S。我想您想在由model-analysis
导出的模型上运行SavedModelBuilder
。由于SavedModel
既没有在EvalSavedModel
中创建的指标节点,也没有相关的集合,因此这样做没有用-model-analysis
只是找不到与您的估算器有关的指标