如何将.meta .index 和 .data 文件转换为 SavedModel (.pb) 格式而不丢失 MetaGraphDef?

我正在尝试将一个预训练模型的这三个文件转换为 Saved Model 格式:

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

以便稍后将其转换为 TFLite 格式以进行推理。在 StackOverflow 上搜索,我找到了以下代码,它可以正确生成 Saved_model.pb,但正如一些评论中提到的,这样做不会保留 Meta Graph Definitions,当我稍后尝试将其转换为 TFlite 格式或冻结时会导致错误。

import osimport tensorflow.compat.v1 as tftf.compat.v1.disable_eager_execution()export_dir = '/tf-end-to-end/export_dir' #trained_checkpoint_prefix = 'Models/semantic_model' \tf-end-to-end\Modelstrained_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


回答:

请参考这些步骤将检查点转换为 TFLite 模型: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/g3doc/r1/convert/python_api.md#convert-checkpoints-

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注