运行DeiT Colab Notebook时import timm报无法从torch._six导入container_abcs错误
报错原因
这个ImportError: cannot import name 'container_abcs' from 'torch._six'错误属于PyTorch和timm库的版本不兼容问题:torch._six.container_abcs 接口在PyTorch 1.9及以上版本中被正式移除,而DeiT官方Colab笔记依赖的旧版timm库仍在调用该废弃接口,因此运行导入时触发报错。
修复方案
方案1:安装兼容的依赖版本(最稳定)
- 在运行包含
import timm的代码单元前,先插入新的代码单元,执行以下安装命令:!pip install timm==0.4.12 torch==1.8.1 torchvision==0.9.1 - 安装完成后,点击Colab顶部「运行时」→「重新启动运行时」,重启运行时后新依赖才会生效
- 重启后从头顺序执行所有代码单元即可解决导入报错
方案2:临时补丁修复(无需降级PyTorch)
如果不想降级现有PyTorch版本,可以在导入timm之前先手动补全废弃的接口定义,插入如下代码即可:
import torch import collections.abc as container_abcs torch._six.container_abcs = container_abcs
运行上述代码后再执行import timm就不会触发报错。
内容的提问来源于stack exchange,提问作者BenjaminFranklinGates
相关产品推荐
相关产品推荐

