Tensorflow遇到类似Could not dlopen library 'libcudart.so.10.0'问题怎么解决

问题:

在使用tensorflow跑深度学习程序时遇到Could not dlopen library 'libcudart.so.10.0'以及类似的问题。

作者的是cuda10.0和cudnn7.5,读者的cuda、cudnn可能和作者不一致,导致文件位置和文件名不同,但是方法是一样的。

类似的问题有:

libcublas.so.10.0

libcudart.so.10.0

libcufft.so.10.0

libcurand.so.10.0

libcusolver.so.10,0

libcusparse.so.10.0

 

分析

使用了CUDA进行加速计算,CUDA在加载libxx.so.10.0遇到了困难,可能是文件不匹配,可能是文件有问题。

解决方法

  1. 正确安装CUDA和对应CUDNN

  2. 到/usr/local/lib/文件下,把libxx.so.10.0文件全部删除(视个人情况定)

  3. 将/usr/local/cuda-10.0/lib64/libxx.so.10.0文件复制到/usr/local/lib/下,可以手动复制,也可以使用命令复制。(这里的cuda-10.0视个人装的CUDA决定)【根据个人情况修改命令的位置和文件名】下面列出两条参考。

sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/ && sudo ldconfig
sudo cp /usr/local/cuda-10.0/lib64/libcusolver.so.10.0 /usr/local/lib && sudo ldconfig

注意

  • 作者这里文件来自cuda-10.0文件夹,这和作者安装的cuda有关,请更具自己的cuda修改这个文件名;
  • 在输入命令时,libxx.so.10.0,根据问题的文件,修改这个名字(例如,笔者这里是libcublas.so.10.0,读者可能是libcudart.so.8.0);
  • 建议先把/usr/local/lib/里的原libxx.so.10.0文件删除,笔者在复制后遇到:复制成功,但是跑程序的时候仍旧报错;
  • 每次复制一次文件,可以运行程序观察,看是否复制成功,再进行下一步操作。
原创文章 5 获赞 8 访问量 418

猜你喜欢

转载自blog.csdn.net/qq_39709813/article/details/105823254