使用Optimum-CLI导出CIDAS/clipseg-rd16至ONNX时遇配置不匹配错误
问题:导出CLIPSeg模型到ONNX格式失败
报错信息
尝试使用optimum-cli将CIDAS/clipseg-rd16模型导出为ONNX格式时,触发以下错误:
ValueError: Unrecognized configuration classes ('AutoModelForImageSegmentation', 'AutoModelForSemanticSegmentation') do not match with the model type clipseg and task image-segmentation.
环境配置
| 规格 | 值 |
|---|---|
| 操作系统 | Linux |
| 系统版本 | Ubuntu 22.04 |
| Python版本 | 3.10.12 |
| Python包管理器 | Poetry |
依赖配置(pyproject.toml)
[tool.poetry] name = "hello-clipseg" version = "0.1.0" description = "" authors = [] readme = "README.md" [tool.poetry.dependencies] python = "^3.10" numpy = "^2.0.0" matplotlib = "^3.9.0" transformers = "^4.41.2" optimum = {extras = ["exporters"], version = "^1.20.0"} [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"
执行命令
optimum-cli export onnx --model CIDAS/clipseg-rd16 ./models/clipsed-rd16
问题原因
CLIPSeg模型使用自定义模型类CLIPSegForImageSegmentation,而optimum-cli默认调用的AutoModelForImageSegmentation/AutoModelForSemanticSegmentation无法识别该自定义模型类型,导致配置不匹配报错。
解决方案
方法1:通过optimum-cli指定模型类型
- 安装CLIPSeg官方依赖(transformers默认不包含该模型实现):
poetry add git+https://github.com/timojl/clipseg.git
- 使用
--model-type参数明确指定模型类型为clipseg,强制optimum加载正确的模型类:
optimum-cli export onnx --model CIDAS/clipseg-rd16 --model-type clipseg ./models/clipsed-rd16
方法2:Python脚本手动导出
如果命令行方式仍有问题,可使用脚本更灵活地控制导出流程:
from optimum.exporters.onnx import export_models from clipseg import CLIPSegForImageSegmentation from transformers import AutoProcessor # 加载预训练模型和处理器 model = CLIPSegForImageSegmentation.from_pretrained("CIDAS/clipseg-rd16") processor = AutoProcessor.from_pretrained("CIDAS/clipseg-rd16") # 执行ONNX导出 export_models( model=model, output_dir="./models/clipsed-rd16", task="image-segmentation", model_type="clipseg", processor=processor )
预期成功输出
导出完成后会生成类似以下的验证结果:
正在验证ONNX模型 ./models/clipsed-rd16/model.onnx... -[✓] ONNX模型输出名称与参考模型匹配 (logits) - 验证ONNX模型输出 "logits": -[✓] (1, 1, 512, 512) 匹配 (1, 1, 512, 512) -[✓] 所有数值误差在允许范围内 (atol: 0.0001) ONNX导出成功,导出的模型已保存至: ./models/clipsed-rd16
内容的提问来源于stack exchange,提问作者Sattwik Kumar Sahu
相关产品推荐
相关产品推荐

