ModuleNotFoundError: No module named ‘fused_layer_norm_cuda‘

之前把一台旧的服务器的环境移植到了这台新的服务器上,跑旧的服务器的代码,出错
ModuleNotFoundError: No module named ‘fused_layer_norm_cuda’

  1. 百度一下是apex安装出了问题
    安装apex步骤如下,

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

  1. 安装这个apex的第三步再次报错:
    解决方案:

nvcc -V

以及

torch.version.cuda

的版本要一致。

torch:1.2.0

cuda:10.0.130
在这里插入图片描述
在这里插入图片描述
3. 我这里就明显不一致的,使用conda重新指定torch版本进行安装, CUDA 10.0 Linux and Windows执行下面一条命令,设置CUDA 10.0

pip install torch=1.2.0 torchvision=0.4.0

记得把等号换成双等号!

安装成功后,效果如下:
print(torch.version.cuda)
10.0.130

  1. 再次执行apex安装的第三条语句:报错csrc/mlp.cpp:126:54: error: expected primary-expression before ‘>’ token

error: command ‘gcc’ failed with exit status 1

  1. 解决方法
    git checkout f3a960f80244cf9e80558ab30f7f7e8cbf03c0a0

  2. 然后再次执行apex.的第三条安装语句,显示successfully installed apex.

  3. 测试:
    python
    import apex
    至此才成功

猜你喜欢

转载自blog.csdn.net/qq_41557627/article/details/109447053
今日推荐