inplace-abn 报错解决
报错信息如下:
Traceback (most recent call last):
File "train.py", line 14, in <module>
from unet import UNet
File "/data3/yuechen/new/pytorch_unet/unet/__init__.py", line 1, in <module>
from .unet_model import UNet
File "/data3/yuechen/new/pytorch_unet/unet/unet_model.py", line 5, in <module>
from .unet_parts import *
File "/data3/yuechen/new/pytorch_unet/unet/unet_parts.py", line 7, in <module>
from inplace_abn import InPlaceABN, InPlaceABNSync
File "/data3/yuechen/software/anaconda3/envs/unet10/lib/python3.6/site-packages/inplace_abn/__init__.py", line 1, in <module>
from .abn import ABN, InPlaceABN, InPlaceABNSync
File "/data3/yuechen/software/anaconda3/envs/unet10/lib/python3.6/site-packages/inplace_abn/abn.py", line 8, in <module>
from .functions import inplace_abn, inplace_abn_sync
File "/data3/yuechen/software/anaconda3/envs/unet10/lib/python3.6/site-packages/inplace_abn/functions.py", line 8, in <module>
from . import _backend
ImportError: libcudart.so.9.0: cannot open shared object file: No such file or directory
原因是在 209 上装的是 10.0 的,但是这里不知道为啥弄了一个 9.0 的过来,但是 inplace-abn 的官网上说是支持 10.0 的,不知道为啥啊。
尝试1(失败)
尝试直接这样解决:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/data3/yuechen/new/cuda-9.0-files/lib64"
尝试2 (成功解决)
设置 CUDA_HOME
export CUDA_HOME=/usr/local/cuda-10.0
尝试3(失败)
同时设置 LD_LIBRARY_PATH
为 10.0 版本
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64/"
尝试4(成功)
因为这个模块涉及到编译,而这个模块安装的时候是不会自动检查你的 CUDA
是什么版本的,需要在编译前手动设置一下CUDA_HOME
,如果已经安装,则按照下面的步骤执行:
# 卸载这个库
pip uninstall inplace-abn
# 清除 pip 缓存
rm -r ~/.cache/pip
# 设置 CUDA_HOME
export CUDA_HOME=/usr/local/cuda-10.0
# 重新安装
pip install inplace-abn