将 tensorflow .pb 模型转换为 .mlmodel 时出错

Posted

技术标签:

【中文标题】将 tensorflow .pb 模型转换为 .mlmodel 时出错【英文标题】:Error converting tensorflow .pb model to .mlmodel 【发布时间】:2020-05-23 22:30:47 【问题描述】:

我正在尝试将张量流图(.pb 文件)转换为 .mlmodel

import tfcoreml
coreml_model = tfcoreml.convert(tf_model_path='optimized_model.pb', mlmodel_path='FaceImages.mlmodel', output_feature_names=['final_result'], input_name_shape_dict='ResizeBilinear': 'images': None, 'size': None, None, minimum_ios_deployment_target='13')

但我收到以下错误:

/usr/local/lib/python3.6/dist-packages/coremltools/converters/nnssa/frontend/tensorflow/graphdef_to_ssa.py 在 load_tf_graph(graph_file)

 21     with tf.io.gfile.GFile(graph_file, "rb") as f:
 22         graph_def = tf.compat.v1.GraphDef()

---> 23 graph_def.ParseFromString(f.read())

 24 
 25     # Then, we import the graph_def into a new Graph and returns it

DecodeError:解析消息时出错

有人可以帮忙吗?

这里是 colab 项目,我附上了 tensorflow 模型和相关的转换代码

https://colab.research.google.com/drive/1S7nf7pnX15UuswFZaTih5pHhfDFwG5Xa

【问题讨论】:

【参考方案1】:

您是否检查过您使用的 Tensorflow 版本是否与这些库兼容?这只是一个猜测,但您可以尝试运行

!pip install tensorflow --upgrade

在笔记本顶部查看它是否解决了问题。

【讨论】:

以上是关于将 tensorflow .pb 模型转换为 .mlmodel 时出错的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow 2,将 .h5 模型转换为 .tflite,缺少 .pb 和 .pbtext

如何将 CoreML 模型转换为 TensorFlow 模型?

tensorflow模型ckpt转pb以及其遇到的问题

使用 toco 将假量化 tensorflow 模型(.pb)转换为 tensorflow lite 模型(.tflite)失败

TensorFlow:有没有办法将冻结图转换为检查点模型?

使用重新训练的 Tensorflow 对象检测模型使用 snpe 进行 pb 到 dlc 转换失败