繁体   English   中英

核心ML模型转换失败,“无法推断输入名称和维度”

[英]Core ML model conversion fails with “Unable to infer input name and dimensions”

我试图让从Places205核心ML模型- GoogLeNet,如苹果描述这里

我不想使用Apple的现成模型,所以我从这个链接获得了原始模型: https//developer.apple.com/machine-learning/model-details/Places205-GoogLeNet.txt

根据Apple的WWDC会话,我们可以使用Coremltools转换该模型。 在他们的会话中,我们不知道他们使用哪个IDE进行Python编码,但目前我正在使用Pycharm进行Python编码。

使用模型的链接,我们可以得到两件事:.caffemodel和.prototext。 我尝试使用coremltools转换它们并收到以下错误:

RuntimeError: Unable to infer input name and dimensions. Please provide a .prototxt file with 'Input' layer and dimensions defined.

那么,如果Apple的模型没有转换,那么我们怎么能说其他开源模型会起作用呢?

您可以在附加的屏幕截图中看到我的代码库。

如何解决这个错误?

在此输入图像描述

看起来Matthijs用他上面的评论解决了你的核心问题,但我可以为那些与其他模特遇到此问题的未来人员进行扩展。

使用Apple的coremltools将Caffe模型转换为.mlmodel文件时,Apple的转换器同时包含二进制.caffemodel(包含模型结构和权重),以及基于文本的.prototxt模型描述(可能还有一些上下文比.caffemodel那样)。

通常,经过培训的Caffe模型会有一些不同的.prototxt文件( deploy.prototxtsolver.prototxttrain.prototxt ),您通常希望使用deploy.prototxt (或类似名称的prototxt)。

即使你这样做,你仍然可能会遇到关于coremltools“无法推断输入名称和维度”的错误。 Caffe模型没有明确要求说明模型将接受的输入维度,因此coremltools尝试从几个不同的来源推断出。 如果缺少这些来源,您可能需要自己将它们编辑到.prototxt中。

在上面链接的deploy_places205.protxt ,此输入大小由文件顶部的以下代码指定:

input: "data"
input_dim: 10
input_dim: 3
input_dim: 224
input_dim: 224

但您也可以在其中一个.prototxt描述中看到以下内容:

input: "data"
input_shape {
  dim: 1
  dim: 3
  dim: 227
  dim: 227
}

如果你的输入中缺少一个.prototxt文件,你可以在第一layer {文件中的实例之前添加上述任一项。 尺寸依次为:批量大小(Core ML忽略),颜色通道,图像宽度,图像高度。 您可以调整这些以匹配网络所需的内容。

您可能还需要验证“数据”是模型使用的输入层,因此请查找第一layer {实例并检查它是否为bottom: "data" 如果图层名称不同,您可能需要在那里或在数据层名称中更改它。

您可能还需要在coremltools转换器中设置数据层名称,以确保它选择正确的名称。 作为参考,这里是我用来转换这样的模型的小Python脚本:

import coremltools

coreml_model = coremltools.converters.caffe.convert(('mymodel.caffemodel', 'deploy.prototxt'),
                                                    image_input_names = "data",
                                                    is_bgr = True,
                                                    class_labels='labels.txt'
                                                   )


coreml_model.save('MyModel.mlmodel')

暂无
暂无

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

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