使用coremltools 5将caffe模型转换为mlmodel失败如何解决
Caffe模型转换为mlmodel格式报错解决方案
- 首先检查protobuf版本适配:coremltools v5的Caffe转换模块仅支持
protobuf <= 3.20.x版本,高版本protobuf会触发序列化解析错误,可执行以下命令降级版本:pip install protobuf==3.20.1 - 优先使用稳定兼容版本的coremltools:coremltools从5.x版本开始将Caffe转换器移入legacy模块,支持优先级降低,转换Caffe模型最稳定的版本为coremltools 4.1,可降级工具版本解决兼容问题:
pip install coremltools==4.1 - 确认资源文件路径正确:确保
oxford102.caffemodel、deploy.prototxt、flower-labels.txt三个文件和转换脚本在同一工作目录下,也可将代码中的相对路径替换为绝对路径,避免路径读取失败。 - 补充转换参数适配Caffe特性:Caffe框架默认使用BGR通道顺序读取图像,转换时补充
is_bgr=True参数,可同时规避部分转换报错和后续推理时的颜色通道匹配问题,调整后的转换代码如下:
import coremltools caffe_model = ('oxford102.caffemodel', 'deploy.prototxt') labels = 'flower-labels.txt' coreml_model = coremltools.converters.caffe.convert( caffe_model, class_labels=labels, image_input_names='data', is_bgr=True ) coreml_model.save('FlowerClassifier.mlmodel')
内容的提问来源于stack exchange,提问作者bhay
相关产品推荐
相关产品推荐

