作者/編輯/配圖 | 橘子? ?來源 | 橘子AI筆記(ID:datawitch)
如果從現(xiàn)在開始決定學(xué)習(xí)深度學(xué)習(xí),寫代碼、搭建自己的模型充择,那么準(zhǔn)備開發(fā)環(huán)境將是你艱難的第一步。橘子當(dāng)時搜必應(yīng)匪蟀、查谷歌?忘了度娘吧椎麦,安裝攻略沒少看,結(jié)果真到自己上手實(shí)踐的時候材彪,依然碰到了不少問題观挎。
本文將嘗試站在萌新的視角,盡力還原這一過程中可能碰到的種種問題段化,希望它能指引著你順利完成配置過程嘁捷、幫你省下一些寶貴的時間。
01.
硬件準(zhǔn)備
一個完整的深度學(xué)習(xí)GPU開發(fā)環(huán)境需要硬件和軟件兩方面的支持显熏,在硬件部分雄嚣,我將從GPU以舒、CPU晾蜘、散熱、主板邮辽、電源蕴轨、內(nèi)存港谊、硬盤和顯示器幾方面分別介紹。
GPU
深度學(xué)習(xí)需要進(jìn)行大量矩陣運(yùn)算橙弱,如果不考慮云端服務(wù)提供的TPU資源封锉,一塊足夠好的GPU就是普通人的性價比之選。
目前最常用的是NVIDIA顯卡膘螟,主要關(guān)注的GPU性能參數(shù)是顯存和CUDA計(jì)算能力。
顯存關(guān)系到你能訓(xùn)練多大的深度學(xué)習(xí)模型碾局。8-11GB的顯存對現(xiàn)階段而言是夠用的荆残,預(yù)算充足的前提下,建議選擇更高的顯存净当。
顯卡的CUDA計(jì)算能力會影響模型訓(xùn)練的速度内斯。不同版本的TensorFlow要求不同,最新版本的最低要求是3.5以上像啼。
2020年Lambda推薦的顯卡型號有:
RTX 2060 (6 GB): 如果你只是想在空閑時間玩玩深度學(xué)習(xí)模型俘闯。
RTX 2070/2080 (8 GB): 如果你是認(rèn)真想做深度學(xué)習(xí),但預(yù)算又非常有限忽冻。8 GB的顯存能滿足大多數(shù)模型的需求真朗。
RTX 2080 Ti (11 GB): 如果你是認(rèn)真想做深度學(xué)習(xí),并且預(yù)算稍高一些僧诚。RTX 2080 Ti比RTX 2080提速40%遮婶。
Titan RTX/Quadro RTX 6000 (24 GB): 如果你需要頻繁使用當(dāng)下最好的深度學(xué)習(xí)模型蝗碎,但沒有足夠的預(yù)算購買RTX 8000。
Quadro RTX 8000 (48 GB): 你在為未來投資旗扑!甚至有可能幸運(yùn)地在今年就研究出下一個最先進(jìn)的深度學(xué)習(xí)模型蹦骑。
你也可以選擇購買二手的GTX 1080ti (11 GB)。
CPU
首先要明確的是臀防,相比于GPU眠菇,深度學(xué)習(xí)并不那么需要高性能的CPU,在運(yùn)行深度神經(jīng)網(wǎng)絡(luò)時CPU承擔(dān)的運(yùn)算量很少袱衷,所以挑選CPU不是越貴越好捎废。
在深度學(xué)習(xí)任務(wù)中,CPU主要承擔(dān)的工作是數(shù)據(jù)預(yù)處理祟昭。為了不讓這一步成為瓶頸缕坎,至少保證每個GPU能對應(yīng)4個CPU線程,CPU主頻最好在3.6 GHz以上篡悟。
散熱
不可忽視的環(huán)節(jié)谜叹。一般GPU溫度達(dá)到80℃就會觸發(fā)保護(hù)、降低性能搬葬。因此無論是選擇風(fēng)冷還是水冷荷腊,必須要配備散熱系統(tǒng)。
另外急凰,由于NVIDIA顯卡首先都是游戲顯卡女仰,已經(jīng)針對Windows操作系統(tǒng)做了優(yōu)化,可以很方便地在Windows系統(tǒng)中更改風(fēng)扇相關(guān)選項(xiàng)抡锈。而大部分深度學(xué)習(xí)庫都是為Linux操作系統(tǒng)寫的疾忍。這一矛盾我將在之后提供一種解決方案。
主板
沒什么特別的床三,保證有足夠的PCIe端口一罩。
電源
將GPU和CPU的功率相加乘以110%就是最低要求。保證有足夠的PCIe端口撇簿。
內(nèi)存
記住一個原則:內(nèi)存應(yīng)該大于顯存聂渊。
理想情況是配備32 GB及以上的內(nèi)存,如果預(yù)算有限四瘫,那么16 GB也可以接受汉嗽。
硬盤
主要關(guān)注的性能參數(shù)是存儲容量和讀取速度。
其中找蜜,存儲容量決定了你能用多大的數(shù)據(jù)集饼暑,讀取速度會影響到訓(xùn)練過程中的I/O操作。
固態(tài)硬盤(SSD)的讀取速度顯著超過普通機(jī)械硬盤,建議選擇一塊256 GB以上的SSD撵孤。
顯示器
既然是做數(shù)據(jù)分析而不是做設(shè)計(jì)迈着,沒什么特殊要求,夠用就行邪码。而根據(jù)經(jīng)驗(yàn)裕菠,多一個顯示器可以用來打游戲?顯著提升你的工作效率。
橘子目前使用的工作站配備了Intel Xeon CPU闭专,NVIDIA GTX 1080ti (11 GB) GPU奴潘,16 GB內(nèi)存以及256 GB的SSD。
這個配置大概是什么概念呢影钉?
在這臺電腦上訓(xùn)練一個擁有10,484,994參數(shù)的深度卷積神經(jīng)網(wǎng)絡(luò)画髓,大致需要7分38秒。
02.
軟件準(zhǔn)備
假設(shè)你已經(jīng)有了足夠好的電腦平委,接下來需要安裝:
MinGW-w64?和MSYS2– 用于在Windows下搭建類Unix環(huán)境(也就是上文提到的解決方案:Windows奈虾、Linux,一個都不能少~)
NVIDIA顯卡驅(qū)動– 允許系統(tǒng)使用GPU帶來的運(yùn)算加速
Visual Studio和Windows 10 SDK– CUDA需要廉赔,如果不提前裝好肉微,CUDA安裝程序也會在最后一步提醒你的
CUDA Toolkit– GPU C語言庫,為高性能GPU加速應(yīng)用程序提供開發(fā)環(huán)境
cuDNN– 基于CUDA蜡塌,深度學(xué)習(xí)使用的GPU加速基元庫
Python?和pip– 機(jī)器學(xué)習(xí)領(lǐng)域最常用的編程語言及其包管理工具
Pytorch/TensorFlow– 兩個都是主流的深度學(xué)習(xí)框架碉纳,可以二選一
為了以后更好的編程體驗(yàn),你還會需要:
Sublime Text– 文本編輯器馏艾,用來寫代碼和看代碼劳曹,換一個同類的也可以
Jupyter Notebook–?以網(wǎng)頁的形式打開,可以在瀏覽器頁面中直接寫代碼琅摩、運(yùn)行代碼铁孵,運(yùn)行結(jié)果也會直接在代碼塊下顯示
安裝MinGW-w64和MSYS2
我想了想決定把這一步提到最前面。因?yàn)橐坏╊怳nix環(huán)境配置好房资,后續(xù)操作就可以在Powershell中無縫使用Linux系統(tǒng)的常用命令蜕劝,體驗(yàn)非常順暢。
Win 10 (64位) 的用戶請?jiān)?a target="_blank">MSYS2官網(wǎng)下載頁面選擇msys2-x86_64的安裝包志膀。
下載安裝完成之后,打開MSYS2鳖擒,在窗口中輸入以下命令安裝:
pacman -S mingw-w64-x86_64-gcc
(可選)以上一步安裝的gcc為例溉浙,如果還需要安裝其他Linux庫,可以先輸入以下命令查詢蒋荚,mingw-w64-x86_64-gcc可替換為其他任何庫的名稱:
pacman -Ss mingw-w64-x86_64-gcc
查詢之后安裝命令同前
在搜索框中搜索「編輯系統(tǒng)環(huán)境變量」戳稽,「系統(tǒng)屬性」–「高級」中選擇「環(huán)境變量」
將MSYS2相關(guān)的三個目錄(如圖)添加到「系統(tǒng)變量」的「Path」中。
以后類似的步驟如何添加環(huán)境變量就不再重復(fù)啦
這樣就可以在Powershell中使用Linux命令了。
安裝NIVIDIA顯卡驅(qū)動
在NVIDIA官網(wǎng)可以按照GPU型號下載最新的顯卡驅(qū)動程序惊奇。如果已經(jīng)安裝互躬,強(qiáng)烈建議你在開始下一步之前先檢查更新。
在開始菜單圖標(biāo)上右鍵「Windows Powershell (管理員)」颂郎,以管理員身份打開Powershell吼渡,進(jìn)入nvidia-smi所在目錄:
cd ‘C:\Program Files\NVIDIA Corporation\NVSMI’
以后打開Powershell都默認(rèn)管理員,不再重復(fù)
運(yùn)行「nvidia-smi」命令:
.\nvidia-smi
可以看到當(dāng)前顯卡的型號乓序、顯存寺酪、驅(qū)動版本以及正在使用顯卡的進(jìn)程。后續(xù)安裝了CUDA之后替劈,也可以看到CUDA版本寄雀。
如果這個命令不起作用,請先檢查你的顯卡驅(qū)動有沒有安裝好陨献。
Visual Studio和Windows 10 SDK
在開始安裝CUDA之前盒犹,先檢查一下自己電腦上有無Visual Studio和Windows 10 SDK。在VS官網(wǎng)選擇Community版本眨业。
安裝程序還會進(jìn)行兩次下載急膀,需要耐心等待。
兩次下載完成后坛猪,為了后續(xù)安裝和測試CUDA脖阵,「使用C++的桌面開發(fā)」和「Windows 10 SDK」兩項(xiàng)是必須安裝的,其他組件可以看個人需要墅茉。
安裝CUDA Toolkit
根據(jù)當(dāng)前顯卡驅(qū)動版本命黔,選擇對應(yīng)的CUDA版本。最新版本的TensorFlow (>= 2.1.0)支持CUDA 10.1就斤,需要顯卡驅(qū)動版本高于418.x悍募。
這里列出了所有CUDA版本的下載鏈接,以CUDA 10.1為例下載本地安裝包洋机。
雙擊下載好的文件坠宴,安裝過程會自動開始。
安裝過程中绷旗,軟件協(xié)議選擇「同意并繼續(xù)」
選擇默認(rèn)的「精簡」模式喜鼓,然后下一步。
如果跳出Windows安全中心的提示衔肢,繼續(xù)「安裝」
最后一步會檢查Visual Studio庄岖,如果前面已經(jīng)安裝好,就沒有問題角骤,按要求重啟電腦隅忿。
正常安裝完成后,CUDA的目錄應(yīng)該已經(jīng)存在于系統(tǒng)環(huán)境變量「Path」中,為了保險可以檢查一下背桐。
打開圖中目錄优烧,根據(jù)你的Visual Studio版本打開對應(yīng)的文件,比如我選擇「nbody_vs2017.sln」
注意「ProgramData」可能是隱藏文件夾链峭,在「文件」–「查看」里勾選「隱藏的項(xiàng)目」就顯示了畦娄。
選中「nbody」,菜單欄中選生成解決方案熏版。
在「輸出」欄中得到下圖結(jié)果說明生成成功纷责。
在Powershell中輸入以下命令打開nbody目錄:
cd ‘C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\bin\win64\Debug’
運(yùn)行nbody:
.\nbody.exe
運(yùn)行成功結(jié)果如圖,可以看到CUDA使用的GPU撼短。
在CUDA的官方文檔中有更詳細(xì)的安裝步驟說明再膳。
安裝cuDNN
接下來安裝cuDNN。進(jìn)入cuDNN網(wǎng)站頁面并選擇「download」之后會要求登錄曲横。
注冊一個NVIDIA賬號即可喂柒。
按照當(dāng)前CUDA版本選擇對應(yīng)的cuDNN版本下載。
將下載好的壓縮包解壓禾嫉,分別替換到CUDA目錄下對應(yīng)的文件夾中(這步操作需要管理員權(quán)限)
在Powershell中檢查cuDNN版本需要兩步:
cd ‘\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include’
cat cudnn.h | grep CUDNN_MAJOR -A 2
運(yùn)行結(jié)果中對應(yīng)的三個數(shù)字就是cuDNN的版本號灾杰,如圖cuDNN版本為7.6.5。
安裝Python和pip
在Python官網(wǎng)下載所需安裝包熙参,需要哪個版本可以看深度學(xué)習(xí)框架的要求艳吠,比如TensorFlow 2.0要求Python版本為3.5-3.7。
我安裝的是Python 3.6.7孽椰。
完成后在Powershell中輸入「python」昭娩,如果出現(xiàn)如下界面說明安裝成功,quit()退出黍匾。
在pip官網(wǎng)文件列表中下載.tar.gz安裝包栏渺。
在Powershell中,先用「cd」命令打開安裝包所在目錄锐涯,然后輸入如下命令解壓:
gzip -dv pip-20.0.2.tar.gz
tar -xf .\pip-20.0.2.tar
解壓之后輸入如下命令磕诊,回車,將自動安裝pip:
python setup.py install
輸入以下命令可查看pip是否可用:
python -m pip –version
安裝Pytorch或TensorFlow
- Pytorch -
在Pytorch官網(wǎng)查詢安裝最新版本Pytorch的「pip」命令纹腌。如果需要舊版本的pytorch查這里霎终,在Powershell中輸入對應(yīng)的命令即可安裝。
如果安裝過程中因?yàn)榫W(wǎng)絡(luò)問題超時報(bào)錯升薯,橘子在文末提供了適用于Python 3.6莱褒、Pytorch 1.3.1的.whl文件,使用方法是在Powershell中「cd」到.whl文件所在目錄覆劈,然后敲以下命令:
pip3 install .\torch-1.3.1-cp36-cp36m-win_amd64.whl
安裝完成后可以輸入如下命令驗(yàn)證:
python -c 'import torch; print(torch.Tensor([1]))'
如果結(jié)果是「tensor([1.])」說明安裝成功保礼。
- TensorFlow?-
在TensorFlow官網(wǎng)可以找到最新版本和以前版本的TensorFlow。與Pytorch類似责语,有兩種安裝方式炮障,第一種是使用「pip」直接安裝:
pip3 install --upgrade tensorflow
第二種是下載.whl文件并安裝,橘子使用的是適用于Python 3.6的坤候、TensorFlow 2.0.0的.whl文件:
pip3 install .\tensorflow_gpu-2.0.0-cp36-cp36m-win_amd64.whl
安裝完成后可以輸入如下命令驗(yàn)證:
python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
安裝成功的結(jié)果如下胁赢。
安裝Sublime Text
直接從Sublime Text官網(wǎng)下載安裝就好。
安裝及配置Jupyter Notebook
在Powershell中輸入如下命令安裝Jupyter:
pip install notebook
除了文檔中寫的Jupyter Notebook運(yùn)行方法白筹,在Windows中還可以寫一個.bat文件智末,簡單三步就可以將Jupyter notebook運(yùn)行目錄改到任何位置:
1、打開Powershell并輸入如下命令徒河,生成文件「C:\Users\lenovo\.jupyter\jupyter_notebook_config.py」記錄默認(rèn)配置(「lenovo」替換為你電腦中的用戶名)
Jupyter notebook --generate-config
2系馆、使用Sublime Text打開這個文件。
3顽照、用快捷鍵「Ctrl+F」找到如下行:
#c.NotebookApp.notebook_dir = ‘’
去掉「#」注釋由蘑,把你想要的目錄寫進(jìn)去,比如在D盤新建一個目錄叫「jupyter」
c.NotebookApp.notebook_dir = ‘D:/jupyter’
這三步操作完之后代兵,打開Jupyter的默認(rèn)方式是先「cd」到這個配置好的目錄尼酿,然后輸入「jupyter notebook」
這種方法有點(diǎn)麻煩,更省事的辦法是寫一個.bat文件植影,無論這個文件放在哪裳擎,下次想要打開Jupyter的時候只要以管理員身份運(yùn)行這個文件就可以了。
例如思币,打開Sublime Text新建一個文件鹿响,寫入如下語句并將文件存為「open_jupyter.bat」
@echo off
D:
cd jupyter
jupyter notebook
成功在瀏覽器打開Jupyter Notebook并新建一個Python 3文件的效果。
03.
最后的總結(jié)
目前為止支救,橘子已經(jīng)盡力回憶了安裝過程中可能遇到的所有坑抢野,但畢竟沒法面面俱到「髂框架一直在更新?lián)Q代指孤,而我永遠(yuǎn)不知道哪里會出現(xiàn)新的問題。
如果你按照本文的步驟依然碰到了問題贬堵,我誠懇地建議你恃轩,在開口問之前先自己去查,因?yàn)樗阉饕婧?a target="_blank">Stack Overflow大概率會給出答案黎做。
這里有份重點(diǎn)可以幫你避開大部分坑(敲黑板):
更新NVIDIA顯卡驅(qū)動為最新
始終以管理員身份打開Powershell
安裝CUDA之前檢查一下電腦上有沒有裝好Visual Studio和Windows SDK
根據(jù)NVIDIA顯卡支持的CUDA版本選擇對應(yīng)的cuDNN叉跛、Pytorch/TensorFlow
確定Python版本與CUDA、cuDNN和深度學(xué)習(xí)框架兼容
報(bào)錯時優(yōu)先檢查Windows系統(tǒng)環(huán)境變量
參考資料:
https://lambdalabs.com/blog/choosing-a-gpu-for-deep-learning/
https://timdettmers.com/2018/12/16/deep-learning-hardware-guide/
https://stackoverflow.com/questions/30069830/how-to-install-mingw-w64-and-msys2
- End -
謝謝你看完全文喲 ?( ′???` )
橘子AI筆記
發(fā)現(xiàn)數(shù)據(jù)之美蒸殿,探索自然之道