【问题标题】:How to convert a saved_model.pb to EvalSavedModel?如何将 saved_model.pb 转换为 EvalSavedModel?
【发布时间】:2018-05-07 14:57:18
【问题描述】:

我正在查看评估 TensorFlow 模型的 tensorflow-model-analysis 文档。入门指南介绍了一个名为 EvalSavedModel 的特殊 SavedModel。

引用入门指南:

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

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

【问题讨论】:

    标签: tensorflow tensorflow-model-analysis


    【解决方案1】:

    EvalSavedModel 导出为 SavedModel 消息,因此无需进行此类转换。

    EvalSavedModel 在后台使用SavedModelBuilder。它用几个占位符填充估计器图,创建一些额外的度量集合。稍后,它执行简单的SavedModelBuilder 过程。

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

    附:我想你想在你的模型上运行model-analysis,由SavedModelBuilder导出。由于SavedModel 既没有度量节点,也没有相关集合,它们是在EvalSavedModel 中创建的,所以这样做是没有用的 - model-analysis 只是找不到与您的估算器相关的任何度量。

    【讨论】:

      【解决方案2】:

      如果我正确理解您的问题,您已经生成了saved_model.pb,使用tf.saved_model.simple_savetf.saved_model.builder.SavedModelBuilderestimator.export_savedmodel

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

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

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

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

      我们还可以提及其他功能,例如,如果您希望以分布式方式定义指标,或者如果我们希望使用数据切片而不是整个数据集来评估我们的模型。此类 Options 可以在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)
      

      【讨论】:

        猜你喜欢
        • 2020-12-18
        • 1970-01-01
        • 2021-11-18
        • 2020-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多