引言

在項目的過程中,經常需要復現大牛的代碼。而很多代碼是針對gpu而言的,所以還在cpu環境下跑代碼的人們就會比較頭痛。這個時候一般會有兩種方法:第一種就是嘗試將gpu版本的源代碼修改成cpu版本。這種方法有時候很湊效,就像下面只需要簡單的修改幾行命令即可實現從gpu環境到cpu環境的跨越,或者只是將帶有cudnn(gpu加速)的一些命令去掉即可:

import torch
from torch.autograd import Variable

# 將變數或者數據轉移至GPU
gpu_info = Variable(torch.randn(3,3)).cuda()
# 將變數或者數據轉移至CPU
cpu_info = gpu_info.cpu()

但是有很多時候,一些模塊自帶的命令只支持使用cudnn(見下圖):

強行修改就會無情報錯

這個時候修改成cpu環境可能就需要花很多的時間了,而且如果python功底不強並且對源代碼沒有足夠的了解根本就改不動(這裡指的功底在我看來一般都是計算機出身的大牛了),而且很大概率會改到最後得出一個結論:在這個項目里cpu版本和gpu版本不兼容!總而言之,一昧的想繞過gpu版本有時候真的是行不通的??(這裡作為小白的我深有體會,改到最後才發現此路不通…當然這裡的改動一般都指的是微改)。這個時候呢我們就只好踏踏實實的尋求配置gpu環境:即需要配置cuda和cuDNN。(所以才有了這篇文章,??)

正題(環境配置)

環境

  • 電腦:聯想小新Air 13 pro
  • CPU:i5 ,4G運行內存
  • 顯卡:NVIDIA GeForce 940MX,2G顯存
  • 系統:windows10 64位系統
  • 軟體:Anaconda 5.3.0 python 3.6.6

一.使用Anaconda建立虛擬環境

為什麼要使用Anaconda建立虛擬環境呢?是因為虛擬環境之間是獨立開來的,假如你需要下載同一個模塊的不同版本,這個時候就可以下載到不同的虛擬環境裡面,例如主環境的python版本為3.6,你可以創建一個虛擬環境下載python3.5,這樣是不會起衝突的(劃重點:虛擬環境之間的python版本可以不同)。如果有一天你的虛擬環境被裝得很亂的時候,可以直接將這個虛擬環境刪除,這樣是不會對主環境造成影響的,所以非常的方便。

1.首先在「運行欄」(鍵盤同時按win+R),框中輸入字母:cmd 按回車鍵打開以下界面(我只是把cmd背景調成了白色,跟你們那個黑色的是一樣的):

2.然後輸入:

conda info –e

顯示截至目前你所安裝的環境:

這裡可以看到我已經安裝了三個環境,如果你們還沒安裝過其他環境的這裡只會顯示「base」那一行,意味著主環境。

3.接著輸入(創建虛擬環境)

conda create –name DL-gpu python=3.6 anaconda

這條命令的意思是創建一個名為「DL-gpu」(這裡是可以根據你的習慣更改的),python版本為3.6的虛擬環境,添加「anaconda」會幫助用戶在創建虛擬環境的同時下載一些常見的模塊(如NumPy,Pandas)。

如果期間碰到出現:Proceed([y]/n)? 就輸入y並按回車。

4.安裝成功之後就可以輸入:

activate DL-gpu

啟動anaconda環境了(如果你換了虛擬環境名,就輸入activate + 你的虛擬環境名字):

當命令提示符前面出現虛擬環境名字,就說明已經是在該虛擬環境下工作。

如果需要退出虛擬環境,則輸入:

deactivate

回到主環境(base環境)

二.下載CUDA+cuDNN

Pytorch、TensorFlow等深度學習框架主要是通過NVIDIA提供的CUDA和cuDNN來存取GPU的,所以我們需要安裝CUDA和cuDNN

1.首先確認顯卡是否支持CUDA。

查看在菜單欄輸入「系統信息」

打開之後找到「組件」「顯示」就可以看到顯卡名稱

再從英偉達官網裡面找到「CUDA-Enabled GeForce Products」尋找有沒有自己對應的顯卡型號,如果有才能下載。

2.安裝CUDA

我下載的是CUDA10.0,如果想要下載其他版本可以參照【Licko的深度好文】

首先打開CUDA的下載鏈接,根據電腦的屬性點擊如下:

其中如果下載方式選擇exe[network],安裝的時候則需要連網(需要網路穩定)。如果選擇exe[local],下載的時候則是把整個CUDA安裝包下載到本地再進行安裝。這裡我選擇第一種方式。

下載完之後打開:

點擊ok,等檢查系統兼容性之後頁面如下:

接下來操作過程如下:點擊「同意並繼續」→許可協議選擇「接受」→ 安裝選項選擇「精簡(E)」 →選項在I understand…那裡打「√」→ 安裝選擇點擊「下一步」即可。

3.安裝cuDNN

打開cuDNN官網,點擊「Download cuDNN」

接著加入會員並且登錄下載即可,CUDA10.0對應的cuDNN版本我下載的是cuDNN7.4。

【劃重點】如果嫌下載麻煩的可以到下面的網盤鏈接自取CUDA10和cuDNN7.4的壓縮包文件,提取碼是:wntr。如果失效的話就按上面的下載步驟到官網下載就好了。

https://pan.baidu.com/s/15BCjYV5jaiapNfJ9i9IgXA?

pan.baidu.com

4.下載完之後將壓縮包裡面的文件夾「cuda」解壓,文件夾裡邊有有一個「bin」文件,裡面存有「cudnn64_5.dll」文件。

加入存有該文件的路徑地址「D:cuda&cuDnncudain」到Path環境變數中。

首先在桌面右鍵點擊「我的電腦」「屬性」「高級系統設置」:

「環境變數」→雙擊「Path」「新建」→把存有「cudnn64_5.dll」文件的路徑加上:

最後點擊確定即可。

三.安裝pytorch穩定版1.0

1.首先來到pytorch官網,滑到下面的安裝選項里根據自己電腦環境點擊:

就可以找到屬於該環境的安裝命令:

conda install pytorch torchvision cuda100 -c pytorch

這裡我嘗試過pip和conda下載,個人建議使用conda安裝一步到位。如果出現Proceed([y]/n)? 就輸入y並按回車。安裝界面如下:

這裡強烈建議到一個網路較穩定的地方下載!我一開始下載的地方因為網路不穩定,幾次嘗試使用pip和conda下載都報錯,有一次下載到93%時報錯,當移動到網路較穩定較快的地方之後使用conda下載終於成功。(這裡我看了許多貼子,因為下載時間比較長,很多人下載過程中也經常報錯,但幾個下載源反覆嘗試一般就可以成功。)

2.最後安裝完成後輸入:

conda list

顯示已安裝模塊

就可以找到pytorch模塊了

3.同時我們可以在安裝了pytorch的虛擬環境下輸入:python 打開python,並運行:import torch 載入該模塊(劃重點:載入pytorch這裡使用的是import torch 不是import pytorch)

如果沒有報錯就說明載入成功了。

4.接下來輸入:

torch.cuda.is_available()

查看cuda是否可用

顯示Ture就是大功告成了,就開始pytorch的gpu之旅了。


附加:上面所述的創建虛擬環境還可以使用以下途徑:假如你有環境A,你只是需要嘗試新建一個類似的虛擬環境B安裝某一個模塊,這個時候你就可以輸入:

conda create -n B--clone A

去複製一個與環境A一樣的虛擬環境B,再在環境B里下載你想要的模塊。如果想要對虛擬環境進行重命名可以參照這裡:(jianshu.com/p/7265011ba

總結:因為我的電腦是超極本,很薄所以總是感覺它很脆弱,對它倍加呵護,一些稍大的數據都不願意在電腦上親測(一旦把電腦跑崩了心態可能也就崩了,樓主比較玻璃心)。所以我覺得使用gpu環境運行代碼也會對電腦比較損,找了很多資料,其中【Licko的深度好文】有個gpu筆記本的親測,看完之後才放下了很多顧慮,大膽地把爪子伸向gpu的配置。但是大家在使用GPU的時候還是得對自己的電腦有所了解。

參考資料:

zhuanlan.zhihu.com/p/38

zhuanlan.zhihu.com/p/31

《Tensorflow+Keras深度學習人工智慧實踐應用》——林大貴


推薦閱讀:
相关文章