错误信息如下:
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‘ - 知乎