linux安装apex时的一些问题

apex是一个很好用的库,可以将模型从float32变成float16进行训练和测试,非常有利于在我们自己的PC上训练大模型,节约显存。

简要描述:参考apex 安装/使用 记录 的方法安装,运行代码后遇到问题。适合当下(2021.5.29)的安装方法见最后。

问题1

ModuleNotFoundError: No module named 'fused_adam_cuda'

解决

apex的旧版本较老,参考 https://github.com/NVIDIA/apex/issues/633 这个问题中有一个回答:

you can try FusedAdam in apex.optimizers instead of in apex.optimizers.contrib

主要是因为apex的版本更迭,引入FusedAdam的包名发生了变化。

参考 apex关于FusedAdam的官方文档,把

 from apex.contrib.optimizers import FusedAdam

改成

 from apex.optimizers import FusedAdam

此外,如果使用 FP16_Optimizer, 引入的包名也发生了变化。

参考 apex关于FP16_Optimizer的官方文档,把

 from apex.contrib.optimizers import FP16_Optimizer

改成

 from apex.fp16_utils import FP16_Optimizer

问题2

ModuleNotFoundError: No module named 'fused_layer_norm_cuda'

解决

参考ModuleNotFoundError: No module named ‘fused_layer_norm_cuda’。之前安装apex出现问题,卸载后,进入git后得到的apex文件夹重装。

pip uninstall apex
python setup.py install --cpp_ext --cuda_ext

安装

参考ModuleNotFoundError: No module named ‘fused_layer_norm_cuda’,适合当下(2021.5.29)的安装方法为:

git clone https://github.com/NVIDIA/apex
cd apex
python setup.py install --cpp_ext --cuda_ext

你可能感兴趣的:(❤️,debug之路)