【踩坑(一)】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文件刪除,筆者在複製後遇到:複製成功,但是跑程序的時候仍舊報錯;
  • 每次複製一次文件,可以運行程序觀察,看是否複製成功,再進行下一步操作。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章