将 caffe 模型 (VGG_Face2) 转换为 coreml 时出错

Error when converting caffe model (VGG_Face2) to coreml

我正在尝试将此模型:http://www.robots.ox.ac.uk/~vgg/data/vgg_face2/ 从 caffe 转换为 coreml,但出现此错误: RuntimeError:caffe 转换期间类型 'Reshape' 的层 'conv2_1_prob_reshape' 中的参数 'shape size' 不支持选项“2”。

我用了coreml_model = coremltools.converters.caffe.convert(('senet50_ft.caffemodel', 'senet50_ft.prototxt')。 我还尝试添加 class 标签(他们有一个包含四列的 csv 文件:ClassID、Name、Sample_Num、Flag。我删除了最后两列,因为在其他教程中他们只使用前两列。我尝试拥有所有列,只有前两列和原始 csv 文件,但没有将其转换为 txt)。以上所有都返回相同的错误。我不确定这个错误是什么意思(我查看了 senet50_ft.prototxt,它有所有层来尝试定位错误,它看起来像这样: layer { name: "conv2_1_prob_reshape" type: "Reshape" bottom: "conv2_1_1x1_up" top: "conv2_1_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } 但我不太了解这一点。 我在使用这些模型方面不是很有经验,如有任何帮助,我们将不胜感激。

MLModel spec 中的 ReshapeLayerParams 说形状必须有 3 或 4 个维度。您的 prototxt 仅提供 2 个维度(在 reshape_param 内)。这就是导致此错误的原因。