【问题标题】:How do I convert a .meta .index and .data file into SavedModel (.pb) format without losing metagraphdef?如何在不丢失 metagraphdef 的情况下将 .meta .index 和 .data 文件转换为 SavedModel (.pb) 格式?
【发布时间】:2021-01-05 02:37:44
【问题描述】:

我正在尝试转换预训练模型的这三个文件:

  1. semantic_model.data-00000-of-00001
  2. semantic_model.index
  3. semantic_model.meta

转换为 Saved Model 格式,以便我以后可以将其转换为 TFLite 格式以进行推理。 搜索 StackOverflow,我遇到了这段代码,它正确生成了 Saved_model.pb,但是正如在一些 cmets 中所指出的那样,以这种方式执行它不会保留 Meta Graph Definitions,这会在我稍后尝试转换时导致错误将其转换为 TFlite 格式或将其冻结。

import os
import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()
export_dir = '/tf-end-to-end/export_dir' 
#trained_checkpoint_prefix = 'Models/semantic_model' \tf-end-to-end\Models
trained_checkpoint_prefix = 'PATH TO MODEL DIRECTORY'
tf.reset_default_graph()
graph = tf.Graph()
loader = tf.train.import_meta_graph(trained_checkpoint_prefix + ".meta" )
sess = tf.Session()
loader.restore(sess,trained_checkpoint_prefix)
builder = tf.saved_model.builder.SavedModelBuilder(export_dir)
builder.add_meta_graph_and_variables(sess, [tf.saved_model.tag_constants.TRAINING, tf.saved_model.tag_constants.SERVING], strip_default_attrs=True)
builder.save()

这是我在尝试使用 saved_model 时遇到的错误:

RuntTimeError: MetaGraphDef associated with tags {'serve'} could not be found in SavedModel

运行 showsavedmodelcli --all 不会在创建的 saved_model 的签名定义下显示任何内容。

我的问题是,如何维护数据并将其转换为 saved_model,以便以后转换为 TFLite 格式?

模型结构和创建细节可以在这里看到,包括提到的检查点文件:https://github.com/OMR-Research/tf-end-to-end

【问题讨论】:

    标签: python tensorflow machine-learning tensorflow-lite


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 2019-10-30
    • 2018-02-02
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 2012-04-14
    • 2015-01-10
    • 1970-01-01
    相关资源
    最近更新 更多