Caffe 到 CoreML 模型的转换

Posted

技术标签:

【中文标题】Caffe 到 CoreML 模型的转换【英文标题】:Caffe to CoreML Model Conversion 【发布时间】:2019-07-22 02:03:54 【问题描述】:

我已经从给定的链接下载了一个模型 http://posefs1.perception.cs.cmu.edu/OpenPose/models/hand/pose_iter_102000.caffemodel

然后我使用此 Python 代码将此模型转换为 .mlmodel

导入 coremltools coreml_model = coremltools.converters.caffe.convert('pose_iter_102000.caffemodel','pose_deploy.prototxt') coremltools.utils.save_spec(coreml_model, 'my_model.mlmodel')

编译这段代码后错误是这样的

================== 开始从 Caffe 到 CoreML 的转换 ====================== 第 0 层:类型:'CPMData',名称:'data'。输出:“数据”、“标签”。 回溯(最近一次通话最后): 文件“ModelConversionFile.py”,第 2 行,在 coreml_model = coremltools.converters.caffe.convert('pose_iter_102000.caffemodel','pose_deploy.prototxt') 转换中的文件“/Users/tahirhameed/Desktop/NewPythonTest/MyEnv/lib/python2.7/site-packages/coremltools/converters/caffe/_caffe_converter.py”,第 191 行 预测特征名称) _export 中的文件“/Users/tahirhameed/Desktop/NewPythonTest/MyEnv/lib/python2.7/site-packages/coremltools/converters/caffe/_caffe_converter.py”,第 255 行 预测特征名称) RuntimeError: 无法转换“CPMData”类型的 caffe 层。

【问题讨论】:

【参考方案1】:

您尝试转换的模型包含 CoreML 不支持的层类型 (CPMData)。您需要自己为该层provide an implementation。

【讨论】:

让我先试试这个 新的错误如下,你能指导我使用 PyCharm 你的编译是成功的,但是请在 Core ML 上提交一个雷达 |神经网络并附加生成此消息的模型。回溯(最后一次调用):文件“/HandModeltoCoreML.py”,第 16 行,在 coreml_model.input_description['data'] = '输入图像要分类'文件“model.py”,第 79 行,在setitem raise AttributeError("No feature with name %s." % key) AttributeError: No feature with name data. 嗯,很难……您的模型拓扑似乎有问题。它正在寻找一个名为“data”的功能(想想中间数据缓冲区)但找不到它。看起来这应该是模型的输入,但实际模型结构中不知何故缺少它。

以上是关于Caffe 到 CoreML 模型的转换的主要内容,如果未能解决你的问题,请参考以下文章

Core ML简介及实时目标检测及Caffe TensorFlow coremltools模型转换

Core ML简介及实时目标检测及Caffe TensorFlow coremltools模型转换

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

.h5 keras 模型到 coreml 的分类转换在 IOS 中不起作用

Keras 模型到 Coreml 并使用 OpenCV

如何将 Turi Create 创建的 CoreML 模型转换为 Keras?