深度學習之環境配置
阿新 • • 發佈:2022-05-11
我們都知道,在學習計算機的過程中,總會出現各種各樣的問題,這一點我想計算機專業的夥伴們感同身受;更別說在學習深度學習的過程中了。
- 接下來,就介紹一下幾個深度學習過程中幾個典型而又容易範的錯誤。
- (1) 注意cuda、cudnn、cuda driver和cudatoolkit的版本
cuda是nvidia推出的用於自家GPU的平行計算框架,也就是說cuda只能在nvidia的GPU上執行,而且只有當要解決的計算問題是可以大量平行計算的時候才能發揮cuda的作用。
cudnn是nvidia打造的針對深度神經網路的加速庫,是一個用於深層神經網路的GPU加速庫。如果你要用GPU訓練模型,cudnn不是必須的,但是一般會採用這個加速庫。
cuda driver即cuda驅動器,是用來支援cuda執行的必備程式。而cudatoolkit則是cuda相關的工具包。
以上四者之間必須有個版本對應和匹配的問題。有時候安裝keras GPU版本的時候會預設安裝cudatoolikit 10.0,這時候如果你cuda是9.0的版本的話,一般會報個CUDA driver version is insufficient for CUDA的錯誤。如下所示:
這時候你可能需要降低cudatoolkit的版本:
conda install cudatoolkit==9.0
還有一種常見的錯誤是cuda driver的驅動器跟cuda不匹配。執行nvidia-smi命令會出現如下圖錯誤:
Failed to initialize NVML: Driver/library version mismatch
這裡是nvidia官方給出的關於cuda和cuda driver之間版本對應關係:
在版本不匹配時,適當降低或者更新驅動器版本即可。另外驅動器版本更新之後可能需要重啟系統,當然通過如下方法不用重啟也可以更新版本。首先嚐試刪除nvidia相關的kernel mod
sudo rmmod nvidia //這裡介紹的為linux版本的
當然這裡一般會報個Module nvidia is in use by的錯誤。(不礙事的),接下來我們先檢視下kernel mod 的依賴情況:
ls mod | grep nvidia
根據根據結果逐一rmmod即可
sudo rmmod nvidia_uvm
sudo rmmod nvidia_modeset
最後再rmmod nvidia即可達到驅動器更新效果
sudo rmmod nvidia
nvidia-smi
還有一種報錯是cudnn版本不匹配的問題:
此時直接更新cudnn版本即可
- (2)驗證TensorFlow/Keras/Torch版本是否支援GPU加速
雖說按部就班的配環境好像也沒啥大問題,但要想讓你的TensorFlow和Torch順利用上GPU跑起來並不是一件那麼順利的事。此時,直接使用nvidia-smi命令並不能表明TensorFlow就能順利用上GPU
比如說我們用Keras跑模型時指定了GPU,有時候會報如下錯誤:
一方面,你的機器可能確實沒有那麼多GPU,另外一種可能就是你沒有安裝支援GPU的TensorFlow或者Keras版本。這時候我們可以先來驗證下當前的TensorFlow或Keras是否支援GPU。
先來看TensorFlow:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
如果輸出結果有類似上述包含GPU的資訊,那說明你的tensorflow是支援GPU的。再看keras:
from keras import backend as K
print(K.tensorflow_backend._get_available_gpus())
如果能輸出下述包含GPU的資訊的話那說明當前的keras版本也是支援GPU的
Torch的話安裝到時候一般都會根據官網的配置要求來:
安裝後輸入下列命令即可:
import torch
torch.cuda.is_available()
如果輸出為True的話則表明當前的torch是支援GPU加速的
如果你沒有得到上述的輸出結果,那麼需要重新安裝帶gpu版本的tensorfow或者keras:
pip install tensorflow-gpu
conda install keras-gpu
- (3)最後再介紹一個免費的GPU資源
如果大家沒有GPU資源又或者嫌配置太糟心,我們還是有免費的GPU可以褥的。一個是谷歌的colab,自動支援GPU,大家可以直接去褥。另外一個是kaggle競賽平臺的kernel,裡面也是提供GPU算力的、還有FlyAI等等。
colab目前提供的GPU已經由之前K80升級到了Tesla T4:
kaggle提供的則是Tesla P100:
colab地址:
https://colab.research.google.com/notebooks/
kaggle地址:
https://www.kaggle.com/
FlyAI地址:
https://www.flyai.com/
沒了。。。。。