You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用onnx-coreml转换ONNX到CoreML时遇模块缺失等错误,如何修复?

ONNX转CoreML模型报错修复方案

问题说明

尝试使用onnx-coreml库转换ONNX模型到CoreML,执行代码如下:

import onnx
from onnx_coreml import convert
onnx_model = onnx.load('model.onnx')
coreml_model = convert(onnx_model)
coreml_model.save('model.mlmodel')

运行后触发多类错误,核心异常包括:

scikit-learn version 1.3.2 is not supported. Minimum required version: 0.17. Maximum required version: 1.1.2. Disabling scikit-learn conversion API.
Failed to load _MLModelProxy: No module named 'coremltools.libcoremlpython'
ModuleNotFoundError: No module named 'coremltools.converters.nnssa'

修复步骤

1. 安装兼容版本的coremltools

onnx-coreml已停止维护,仅支持coremltools 3.x系列,高版本coremltools会缺失nnssa模块。执行以下命令切换版本:

pip uninstall -y coremltools
pip install coremltools==3.3

2. 降级scikit-learn到指定范围

报错提示当前scikit-learn版本超出支持区间,需降级到1.1.2及以下:

pip uninstall -y scikit-learn
pip install scikit-learn==1.1.2

3. 调整Python版本

onnx-coreml对Python 3.11兼容性较差,建议切换到Python 3.7~3.9版本,用conda创建虚拟环境示例:

conda create -n py38_coreml python=3.8
conda activate py38_coreml

激活环境后重新安装所有依赖:

pip install onnx onnx-coreml coremltools==3.3 scikit-learn==1.1.2

4. 官方替代方案(推荐)

由于onnx-coreml已废弃,官方推荐直接使用coremltools内置的ONNX转换能力,无需依赖onnx-coreml,代码示例:

import coremltools as ct
import onnx

onnx_model = onnx.load('model.onnx')
coreml_model = ct.convert(onnx_model, source='onnx')
coreml_model.save('model.mlmodel')

此方案要求coremltools版本≥4.0,Python版本≥3.8,无需额外安装废弃库。


内容的提问来源于stack exchange,提问作者Franck Dernoncourt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:52:08