繁体   English   中英

如何在不丢失 metagraphdef 的情况下将 a.meta.index 和.data 文件转换为 SavedModel (.pb) 格式?

[英]How do I convert a .meta .index and .data file into SavedModel (.pb) format without losing metagraphdef?

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

  1. semantic_model.data-00000-of-00001
  2. 语义模型索引
  3. 语义模型.meta

转换为 Saved Model 格式,以便稍后将其转换为 TFLite 格式进行推理。 搜索 StackOverflow,我遇到了这段代码,它正确生成了 Saved_model.pb,但是正如一些评论中指出的那样,以这种方式执行并不会保留 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 格式?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM