我正在阅读tensorflow-model-analysis评估 TensorFlow 模型的文档。入门指南讨论了一个特殊的 SavedModel,称为EvalSavedModel.
引用入门指南:
此 EvalSavedModel 包含附加信息,允许 TFMA 以分布式方式在大量数据和用户定义的切片上计算模型中定义的相同评估指标。
我的问题是如何将已经存在的转换saved_model.pb为EvalSavedModel?
我正在阅读tensorflow-model-analysis评估 TensorFlow 模型的文档。入门指南讨论了一个特殊的 SavedModel,称为EvalSavedModel.
引用入门指南:
此 EvalSavedModel 包含附加信息,允许 TFMA 以分布式方式在大量数据和用户定义的切片上计算模型中定义的相同评估指标。
我的问题是如何将已经存在的转换saved_model.pb为EvalSavedModel?
如果我正确理解了您的问题,则您已经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)
EvalSavedModel导出为 SavedModel 消息,因此无需进行此类转换。
EvalSavedModelSavedModelBuilder在引擎盖下使用。它用几个占位符填充估计器图,创建一些额外的度量集合。稍后,它执行简单的SavedModelBuilder程序。
PS 我想你想model-analysis在你的模型上运行,由SavedModelBuilder. 由于SavedModel既没有度量节点也没有相关的集合,它们是在 中创建的EvalSavedModel,所以这样做是没有用的 -model-analysis只是找不到与您的估算器相关的任何度量。