cannot import name ‘container_abcs‘ from ‘torch._six‘

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_abcs
else:
    import collections.abc as container_abcs

方法二:修改源码(此方法权限不足时无法使用)
进入环境中torch的dataloader.py文件将

from torch._six import container_abs,string_classes,int_classes

替换为

import collections.abc as container_abcs
int_classes = int
string_classes = str

问题解决

你可能感兴趣的:(踩坑日记,python,python,深度学习)