错误总结2022.12.9

ValueError: Unsupported ONNX opset version: 13

原因:pytorch版本太低了。原本我的pytorch为1.7.0,会报以上错误。更新到pytorch1.9.0就没问题了。
解决方法:
方法一:torch.onnx.export中的opset_version设置低一点,可以试一下选择设置为11;
方法二:更新pytorch版本。(由于我在模型量化,必须要求opset_version=13,只能用这种方法。我将pytorch的版本更新到1.9.0,torchvision的版本更新到0.10.0,这样就没报错了)

更新torch后,如果报了动态库的错误

例如报了以下错误

/nms/details.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28TypeMeta21_typeMetaDataInstanceIdEEPKNS_

解决方法:只要重新编译生成一下对应的动态库就行了。

from typing import OrderedDict ImportError: cannot import name ‘OrderedDict‘ from ‘typing‘

原因:python版本与typing.py存在版本冲突的问题,但是配套的typing.py中没有OrderedDIct这个类,因此会报这样一个错误,这里涉及的其实是版本不匹配的问题。
解决方法:
方法一:将import语句中的 OrderedDict 删掉,添加一行 import collections;然后,再将代码中的 OrderedDict 全部替换为 collections.OrderedDic
方法二:以下面代码为例子

from typing import Any, List,OrderedDict, Union

修改为

from typing import Any, List, Union
from collections import OrderedDict

type object ‘QuantAdaptiveAvgPool2d’ has no attribute ‘default_quant_desc_weight’

quant_desc_weight = kwargs.pop('quant_desc_weight', quant_cls.default_quant_desc_weight)
AttributeError: type object 'QuantAdaptiveAvgPool2d' has no attribute 'default_quant_desc_weight'

不知道怎么解决,只能用最蠢的方法:不量化AdaptiveAvgPool2d

你可能感兴趣的:(错误,pytorch,深度学习)