原本配置好的caffe,已经训练过好几个模型了,一礼拜没动在回去执行训练时,就显示libcudart.so.9.2: cannot open shared object file: No such file or directory。
后面发现是python在import caffe时报错,原因在于CUDA路径不对。
但是又可以正常执行test的python脚本,脚本开头有import caffe,这一点十分困惑,仍未解决。
情况1
vi ~/.bashrc
加入以下内容:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH
然后source ~/.bashrc
使环境变量生效
在此一提,进入路径/usr/local,输入命令ll
,可以看到:
cuda一行的开头第一个字母是l,意思是cuda是个链接文件,指向的是/usr/local/cuda-10.0/;
而cuda-10.0一行的开头第一个字母是d,意思是cuda-10.0是个目录。
故在上面加入的路径里,写/usr/local/cuda或者/usr/local/cuda-10.0(cuda版本每个人情况不同)是一样的。
情况2
进入caffe根目录,执行vi Makefile.config
把
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/cuda-9.2/lib64
改为
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/cuda/lib64
然后重新配置caffe,在命令行输入
make clean
make test
make runtest
make pycaffe
最后在import caffe成功。
我十分怀疑,我原本的服务器cuda是cuda-9.2,原本正常训练的。后面可能被管理员大佬给升了cuda-10.0导致出错了。