我想把这个NSFW模型转换成CoreML模型。我做了什么。
我使用这个命令进行转换,转换后没有任何警告。
coreml_model = coremltools.converters.caffe.convert(('resnet_50_1by2_nsfw.caffemodel', 'deploy.prototxt'), image_input_names='data') coreml_model.save('nsfw2.mlmodel')
但是!所有的图像都返回相同的结果。
所有的图像都返回相同的结果
[<VNCoreMLFeatureValueObservation: 0x281b1daa0> 2E00F417-95C0-4AA1-A621-A0945BB5E095 requestRevision=1 confidence=1.000000 "prob" - "MultiArray : Double 1 x 1 x 2 x 1 x 1 array" (1.000000)]
如何调试这个问题,找出问题所在?
也许你只看了淘气的图片? ;-)
可能是图像预处理的问题。您没有指定任何预处理选项,而Caffe模型通常使用ImageNet meanstd进行归一化。请参考我的博客文章了解更多信息。https:/machinethink.netbloghelp-core-ml-gives-wrong-output)。
然而,我在你的deploy.prototxt中没有看到任何规范化选项,所以可能不是这个原因。
我将如何调试:从Caffe模型中删除除第一层以外的所有内容,并转换为Core ML。在Caffe和Core ML中同时运行这个单层模型并比较输出。如果它们不一样,说明你加载或预处理输入数据的方式有问题。