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

当使用torch1.8及以上版本时,由于container_abcs已被移除,需更改导入方式。方法包括检查torch版本动态导入或直接修改dataloader.py源码,用collections.abc替换。此问题涉及版本兼容性和代码调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

问题解决

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值