1.
一开始直接pip install apex。
然后import apex的时候报错:
TypeError: Class advice impossible in Python3. Use the @implementer class decorator instead.
然后卸载pip uninstall apex,重新安装。
安装步骤如下:
git clone https://www.github.com/nvidia/apex
cd apex
python setup.py install
执行第三步的时候报错:ModuleNotFoundError: No module named ‘pip._internal’。
查了一下,需要升级pip:
python -m ensurepip
python -m pip install --upgrade pip
再次执行python setup.py install安装成功;然后Python环境下import apex也成功了,说明apex已经安装成功了!
2.
具体执行过程中,
from apex.optimizers import FP16_Optimizer
报错:ImportError: cannot import name ‘FP16_Optimizer’
原因是:最新版的apex中,FP16_Optimizer已经被移到contrib/optimizers下面了,因此,修改如下:
from apex.contrib.optimizers import FP16_Optimizer
执行成功,大功告成!真是一波三折。。
3.
更新:在使用bert的预训练模型pytorch-pretrained-BERT时,报错如下:
ModuleNotFoundError: No module named ‘fused_layer_norm_cuda’
原因是安装apex时没有安装cuda版本,所以要pip uninstall apex卸载(apex文件夹也一起删除)后,重新安装,具体安装步骤如下:
git clone https://www.github.com/nvidia/apex
cd apex
python setup.py install --cuda_ext --cpp_ext
参考:
TypeError: Class advice impossible in Python3. Use the @implementer class decorator instead.
ModuleNotFoundError: No module named ‘pip._internal’ , pip 无法下载软件 解决办法
ImportError: cannot import name ‘FP16_Optimizer’
No module named ‘fused_layer_norm_cuda’