一、開發環境
作業系統:Ubuntu 18.04 LTS
顯卡:NVIDIA RTX 2080 Super
顯卡驅動:專有驅動450.142.00
CUDA:10.2
PyCharm版本:2020.2.5
二、問題描述
最近在GitHub上閑逛,Git了一個YOLOv3目標檢測的專案,
Git下來并且配置好環境開始運行,發現TensorFlow找不到動態庫libcudart.so.10.1,
開始能夠想到的原因是我在本地安裝的CUDA版本是10.2,專案的Tensorflow版本是2.1.0,兩者可能不適配,
我首先嘗試在COCO資料集上運行模型訓練演算法,發現是可以運行的,只是訓練的速度實在有點慢,
看了下輸出資訊,發現TensorFlow沒有找到物理GPU,
我繼續在Pycharm的Python Console上面測驗Tensorflow能否找到GPU:
import tensorflow as tf
print(tf.test.is_gpu_available())
結果顯示False,的確這里的TensorFlow2.1.0沒有找到GPU,
于是我將原來的CUDA卸載,重新安裝了10.1版本,并且安裝了對應的cuDNN,
通過Anaconda創建了新的虛擬環境,安裝了Tensorflow2.1.0,
在新的虛擬環境下通過系統的Terminal打開Python,測驗了剛才的Python代碼,
發現Tesorflow是可以找到物理GPU,但是接下來奇怪的事情發生了,
我在PyCharm里配置了剛才的虛擬環境,然后打開內置的Terminal,再次測驗剛才的代碼,發現Tensorflow又找不到物理GPU了!
到這里我基本可以確定,問題一定在PyCharm上,而不是TensorFlow、CUDA、cuDNN的版本對應關系,
三、解決辦法
方法一:創建動態連接庫
在Pyharm內置的Terminal中輸入以下命令:
sudo ldconfig /usr/local/cuda/lib64
該命令等同于打開檔案/etc/ld.so.conf.d/cuda.conf,在其中加入路徑/usr/local/cuda/lib64,然后輸入以下命令使得動態庫生效:
sudo ldconfig
不論采用哪一種,每次啟動Pyharm的時候都需要在Terminal中操作一遍,
方法二:在PyCharm中修改運行配置
在File -> Settings -> Build, Execution, Deployment -> Console -> Python Console -> Environment -> Environment variables中,設定LD_LIBRARY_PATH=/usr/local/cuda-xx.x/lib64
四、原因分析
應該是我PyCharm專案所在目錄和CUDA的安裝目錄不在同一個硬碟(我的開發環境安裝了雙硬碟),導致PyCharm找不到CUDA的環境變數,
參考博客:pycharm找不到libcudart.so.10.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/471808.html
標籤:其他
