【异常错误】ImportError: cannot import name ‘container_abcs‘ from ‘torch._six‘

错误信息如下:

Traceback (most recent call last):
  File "train_retrieval_chembl.py", line 23, in <module>
    from megatron_molbart.megatron_bart import MegatronBARTRetrieval
  File "/mnt/d/Pycharm_workspace/DoubleTarget/RetMol/MolBART/megatron_molbart/megatron_bart.py", line 24, in <module>
    from apex.normalization import FusedLayerNorm
  File "/home/mapengsen/anaconda3/envs/38/lib/python3.8/site-packages/apex-0.1-py3.8-linux-x86_64.egg/apex/__init__.py", line 8, in <module>
    from . import amp
  File "/home/mapengsen/anaconda3/envs/38/lib/python3.8/site-packages/apex-0.1-py3.8-linux-x86_64.egg/apex/amp/__init__.py", line 1, in <module>
    from .amp import init, half_function, float_function, promote_function,\
  File "/home/mapengsen/anaconda3/envs/38/lib/python3.8/site-packages/apex-0.1-py3.8-linux-x86_64.egg/apex/amp/amp.py", line 1, in <module>
    from . import compat, rnn_compat, utils, wrap
  File "/home/mapengsen/anaconda3/envs/38/lib/python3.8/site-packages/apex-0.1-py3.8-linux-x86_64.egg/apex/amp/rnn_compat.py", line 1, in <module>
    from . import utils, wrap
  File "/home/mapengsen/anaconda3/envs/38/lib/python3.8/site-packages/apex-0.1-py3.8-linux-x86_64.egg/apex/amp/wrap.py", line 3, in <module>
    from ._amp_state import _amp_state
  File "/home/mapengsen/anaconda3/envs/38/lib/python3.8/site-packages/apex-0.1-py3.8-linux-x86_64.egg/apex/amp/_amp_state.py", line 14, in <module>
    from torch._six import container_abcs
ImportError: cannot import name 'container_abcs' from 'torch._six' (/home/mapengsen/anaconda3/envs/38/lib/python3.8/site-packages/torch/_six.py)

解决方法

找到问题所在的文件的那一行代码:

File "/home/mapengsen/anaconda3/envs/38/lib/python3.8/site-packages/apex-0.1-py3.8-linux-x86_64.egg/apex/amp/_amp_state.py", line 14, in <module>
    from torch._six import container_abcs

import collections.abc as container_abcs

 将这部分的代码用下面的代码替换

if TORCH_MAJOR == 1 and TORCH_MINOR < 8:
    from torch._six import container_abcs
else:
    import collections.abc as container_abcs

也就是变成这个样子

ImportError: cannot import name ‘container_abcs‘ from ‘torch._six‘ - 知乎

猜你喜欢

转载自blog.csdn.net/weixin_43135178/article/details/131449642
今日推荐