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

时间:2018-01-25 23:48:17

标签: python swift caffe coreml coremltools

我正在尝试将此模型转换为http://www.robots.ox.ac.uk/~vgg/data/vgg_face2/从caffe到coreml但我收到此错误: 运行时错误:在caffe转换过程中,“reshape”类型的'conv2_1_prob_reshape'层中的参数'shape size'不支持选项'2'。

我使用了coreml_model = coremltools.converters.caffe.convert(('senet50_ft.caffemodel', 'senet50_ft.prototxt')。  我还尝试添加类标签(他们有一个包含四列的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 } } }但我对此并不十分了解。 我在使用这些模型方面不是很有经验,感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

MLModel spec中的TaskAdapter表示形状必须包含3或4个维度。您的原型文档仅提供2个维度(在void clear() { mTaskList.clear(); } void addAll(List<Task> taskList) { mTaskList.addAll(taskList); } 内)。这就是给出这个错误的原因。