ONNX: export failure
- 问题
- 其他解决
- 快速解决
问题
使用pytorch导出onnx(Open Neural Network Exchange)模型,结果使用conda安装完onnx之后,问题就出现了
ONNX: export failure: DLL load failed while importing _message: 找不到指定的程序
conda install onnx
版本是0.16.2,其他依赖版本正常,使用conda search onnx --info
查看package信息
查看网上解决方法,没有一个能够解决,包括不限于一下几种情况
其他解决
- Microsoft Visual C++ Redistributable 2019x64官方下载链接
- 更改微软运行时版本,因为onnx版本有要求vs2015_tuntime>=14.29.30133,由于windows版本更新延误,可能导致版本过低,可以选择安装vs2015或者选择降低onnx版本
- 降低onnx版本
- 更改微软运行时版本,因为onnx版本有要求vs2015_tuntime>=14.29.30133,由于windows版本更新延误,可能导致版本过低,可以选择安装vs2015或者选择降低onnx版本
最后是使用pip包管理工具重新下载onnx,没有指定特定版本,下载最新版本0.17.0
安装完onnx再次转换时,出现protobuf版本问题
ONNX: export failure: No module named ‘google.protobuf.json_format’
此时protobuf和onnx都是pip管理的,所以考虑将protobuf改为conda安装
因为protobuf是conda安装的,依赖由conda进行管理
又爆出第一次出现的错误 _DLL load failed while importing message: 找不到指定的程序
之后将protobuf卸载,改用pip包安装protobuf,正常
第一个出现这个问题,是因为protobuf的问题,protobuf是conda安装的,不是因为onnx的问题
ONNX: export failure: DLL load failed while importing _message: 找不到指定的程序。
快速解决
- 将protobuf和onnx都由pip安装
pip install protobuf
pip install onnx
留给你们测试使用包全部使用conda安装