cannot import name ‘container_abcs‘ from ‘torch._six‘报错解决方法
需求
复现某项目时,报此错。
解决
查阅后得知在1.8版本之后container_abcs被移除了。所以导入方式不同会出现这样的错误:cannot import name ‘container_abcs’ from ‘torch._six’
方法一:找到报错的文件,修改import方式
# 根据torch版本自动选择不同的导入方式TORCH_MAJOR = int(torch.__version__.split('.')[0])TORCH_MINOR = int(torch.__version__.split('.')[1])if TORCH_MAJOR == 1 and TORCH_MINOR < 8: from torch._six import container_abcselse: import collections.abc as container_abcs
方法二:修改源码(此方法权限不足时无法使用)
进入环境中torch的dataloader.py文件将
from torch._six import container_abs,string_classes,int_classes
替换为
import collections.abc as container_abcsint_classes = intstring_classes = str
问题解决
来源地址:https://blog.csdn.net/weixin_45628042/article/details/129963098