Windows 環(huán)境搭建 TensorFlow 2.1+ GPU 訓(xùn)練模型加速支持

寫(xiě)在前面

最近準(zhǔn)備嘗試跑一跑 TensorFlow GPU 訓(xùn)練模型,平時(shí)開(kāi)發(fā)用的 MBP障贸,無(wú)賴(lài)顯卡是 AMD 只支持 CPU 訓(xùn)練错森,但恰有閑置 Win10 筆記本電腦一臺(tái)顯卡 NVIDIA 支持 CUDA? 。

Tensorflow GPU 訓(xùn)練加速需要支持 CUDA? 的 GPU 顯卡篮洁,這里提到的 CUDA 指的是涩维,是 NVIDIA 研發(fā)的一種并行計(jì)算平臺(tái)和編程模型,它可以通過(guò)利用 GPU 的處理能力嘀粱,可大幅提升計(jì)算性能的技術(shù)激挪,更多查看相關(guān)內(nèi)容

環(huán)境搭建過(guò)程整體比較簡(jiǎn)單锋叨,查找下載相關(guān)工具包需要搗騰一會(huì)垄分。

1 硬件條件

首先查看自己的顯卡型號(hào)是否滿(mǎn)足條件,TensorFlow 官方文檔硬件要求提到了娃磺,CUDA? 架構(gòu)為 3.5薄湿、3.7、5.2、6.0豺瘤、6.1吆倦、7.0 或更高的 NVIDIA? GPU 卡。

1.1 查看顯卡型號(hào)

第一步查看自己的顯卡型號(hào)坐求,進(jìn)入 NVIDIA 控制面板蚕泽,點(diǎn)擊系統(tǒng)信息。

20201014-201345

顯卡型號(hào)為 GeForce GTX 850M桥嗤,電腦比較老很早前的须妻。

20201014-201520

1.2 查詢(xún)顯卡是否支持 CUDA?

顯卡型號(hào)為 GeForce GTX 850M,點(diǎn)擊查看支持 CUDA? 的 GPU 卡列表泛领,查看顯卡型號(hào)是否在支持的列表里面荒吏。

20201014-204817

計(jì)算能力為 5,顯卡支持 CUDA 渊鞋,接下來(lái)查看 CUDA 驅(qū)動(dòng)版本绰更,NVIDIA 控制面板,系統(tǒng)信息的組件里面锡宋。

20201014-211536

版本為 11.1.96儡湾,在 TensorFlow 支持 CUDA 驅(qū)動(dòng)版本范圍上,如果版本過(guò)低可查看下面提到的軟件下載進(jìn)行安裝升級(jí)最新驅(qū)動(dòng)员辩。

2 軟件下載

2.1 下載安裝 NVIDIA? GPU 驅(qū)動(dòng)程序

輸入信息查詢(xún)顯卡驅(qū)動(dòng)盒粮,下載安裝最新的 NVIDIA? GPU 驅(qū)動(dòng)程序,方便后面支持 CUDA Toolkit 安裝 10.1 版本奠滑,CUDA Toolkit 10.1 需要驅(qū)動(dòng)版本 418.x 或更高版本丹皱。

20201014-213623

版本號(hào)為 456.71,滿(mǎn)足要求宋税,然后下載下來(lái)后安裝驅(qū)動(dòng)摊崭。

20201014-213921

2.2 下載安裝 CUDA? Toolkit

CUDA 工具包提供了用于創(chuàng)建高性能GPU加速應(yīng)用程序的開(kāi)發(fā)環(huán)境。TensorFlow(TensorFlow 2.1.0 及更高版本)支持 CUDA? 10.1 的 CUDA? Toolkit 杰赛。

20201014-231747

選擇臨時(shí)文件目錄呢簸,這里選擇了默認(rèn)設(shè)置。

20201014-232646

然后一直下一步乏屯,直到這里根时,如果電腦上面沒(méi)有安裝 Visual Studio 會(huì)提示你安裝 Visual Studio,如果后續(xù)有打算從源碼構(gòu)建 Tensorflow辰晕,則需要安裝蛤迎,具體安裝內(nèi)容可查看 在 Windows 環(huán)境中從源代碼構(gòu)建

20201014-234650

安裝完成之后含友,會(huì)自動(dòng)添加了幾個(gè)環(huán)境變量到系統(tǒng)中替裆,打開(kāi)終端里面輸入 nvcc -V 驗(yàn)證安裝結(jié)果校辩。

20201014-235856

2.3 下載 cuDNN SDK 7.6

cuDNN 是一個(gè) GPU 加速的深度神經(jīng)網(wǎng)絡(luò)庫(kù),下載 cuDNN SDK 需要注冊(cè) NVIDIA Developer Program辆童,進(jìn)入下載頁(yè)面后選擇 CUDA 10.1 的 cuDNN 7.6 版本宜咒。

20201015-003912

下載成功之后將其壓縮包解壓,拷貝放到 CUDA 目錄 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\下面把鉴,這里拷貝是指將這三個(gè)目錄下面的文件拷貝放入到 CUDA v10.1 對(duì)應(yīng)的目錄里面故黑。

20201015-012751

2.4 TensorRT 6.0 (可選)

用于可縮短用某些模型進(jìn)行推斷的延遲時(shí)間并提高吞吐量,可選擇 Zip 方式安裝纸镊,這里可選安裝倍阐。

20201014-224155

3 安裝 Anaconda

使用 Anaconda 通過(guò)方便管理包依賴(lài)問(wèn)題,,如果覺(jué)得 Anaconda 占用磁盤(pán)空間過(guò)大可以使用 miniconda逗威,平時(shí)開(kāi)發(fā)電腦上用的 miniconda,關(guān)于miniconda 安裝使用可點(diǎn)擊這個(gè)岔冀。

3.1 下載 Anaconda

3.2 安裝 Anaconda

安裝過(guò)程也比較簡(jiǎn)單使套,需要注意以下兩個(gè)地方罐呼。

Anaconda 安裝使用后占有磁盤(pán)空間比較大,如果 C 盤(pán)空間有限不推薦安裝在 C盤(pán)侦高。

895802-20200603164956820-683281587

下面有兩個(gè)選擇嫉柴,第一個(gè)是將 Anaconda 添加到環(huán)境變量中,如果電腦上之前安裝了 Anaconda 的另一個(gè)版本軟件會(huì)影響 Anaconda 的使用奉呛,添加到環(huán)境變量的好處是可以直接打開(kāi)終端執(zhí)行相關(guān)命令管理包计螺,如果不添加到環(huán)境變量也可以在 windows 的開(kāi)始菜單里面找到 Anaconda Prompt ,然后在打開(kāi)的終端上執(zhí)行相關(guān)命令管理包瞧壮,所以這里可以不添加到系統(tǒng)環(huán)境變量登馒。

第二個(gè)是將 Anaconda 的 python 3.7 版本設(shè)置成我電腦上默認(rèn)的 python,這樣你的 IDE 等編輯器會(huì)檢測(cè)到這個(gè)版本咆槽,方便后面在 IDE 調(diào)試代碼的時(shí)候可以用到這個(gè)版本陈轿,如果之前電腦上有裝過(guò) python 這里可根據(jù)你的情況適當(dāng)選擇。

895802-20200603165015278-991209107

3.3 配置 Anaconda

Anaconda 官方的數(shù)據(jù)包鏡像秦忿,下載比較緩慢麦射,可以考慮用清華的鏡像 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

將新的鏡像地址配置到 .condarc 文件,配置鏡像內(nèi)容可以查看 Anaconda 清華鏡像使用幫助灯谣。

4 測(cè)試

4.1 安裝 TensorFlow

打開(kāi)安裝好的 Anaconda Navigator潜秋, 創(chuàng)建用于測(cè)試 tensorflow-gpu 虛擬環(huán)境。

20201015-022511

需要注意的是酬屉,如果你用 pip 安裝官方發(fā)布的 TensorFlow 半等,可以直接安裝 tensorflow 包即可揍愁,即 pip install --upgrade tensorflow,因?yàn)楣俜綄?duì)于 TensorFlow 1.x杀饵,CPU 和 GPU 軟件包是分開(kāi)的莽囤,而 2.x 將其打包在一起的,另外 2.x GPU 軟件包也有發(fā)布的切距,也可以 pip install --upgrade tensorflow-gpu 安裝 GPU 包朽缎。

在使用 conda 安裝時(shí), Anaconda Cloud 官方把 TensorFlow 2.x CPU 和 GPU 軟件包是拆分了的谜悟,應(yīng)該是為了減小包安裝體積话肖。

使用 conda 安裝 tensorflow-gpu,在輸入欄輸入 tensorflow 選擇 tensorflow-gpu 點(diǎn)擊 Apply 即可葡幸。

20201015-022937

4.2 運(yùn)行代碼測(cè)試安裝結(jié)果

打開(kāi)當(dāng)前環(huán)境的終端或打開(kāi) JupytarLab 或者 Notebook 運(yùn)行以下代碼最筒。

import tensorflow as tf
from tensorflow.python.client import device_lib

// 打印已有的 GPU 
print(tf.config.list_physical_devices('GPU'))
// 打印 GPU 設(shè)備名稱(chēng)
print(tf.test.gpu_device_name())
// 打印電腦上可以用于計(jì)算的設(shè)備
print(device_lib.list_local_devices())

在 JupytarLab 運(yùn)行結(jié)果為

20201015-024516

打印出來(lái)了可用于計(jì)算的設(shè)備有 CPU 與GPU,并分別打印出它們的信息及 GPU 計(jì)算能力蔚叨,安裝成功之后床蜘,接下來(lái)就可以跑代碼訓(xùn)練神經(jīng)元網(wǎng)絡(luò)了。

4.3 一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)測(cè)試

最后來(lái)跑一跑常見(jiàn)的一個(gè)入門(mén) Hellow World DEMO蔑水,根據(jù)一個(gè)簡(jiǎn)單的公式和構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)邢锯,簡(jiǎn)單預(yù)測(cè)房屋的價(jià)格。

import tensorflow as tf
import numpy as np
from tensorflow import keras

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')
xs = np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], dtype=float)
ys = np.array([5.0, 6.5, 8.0, 9.5, 11.0, 12.5], dtype=float)
model.fit(xs, ys, epochs=1000)
print(model.predict([7.0]))

假如房子的定價(jià)很簡(jiǎn)單搀别,如果一個(gè)帶臥室的房子是 15 萬(wàn) + 35 萬(wàn)丹擎,也就是一間帶主臥的房子 50 萬(wàn),兩間臥室的房子 65 萬(wàn)歇父,注此類(lèi)推蒂培。

輸入 6 條數(shù)據(jù),預(yù)測(cè) 7 間臥室的房子多少錢(qián)庶骄,這里把單位縮小毁渗,方便神經(jīng)元網(wǎng)絡(luò)對(duì)數(shù)據(jù)的處理,輸入數(shù)據(jù) 1 代表一個(gè)帶臥室的房子单刁,輸出 5灸异,表示 50 萬(wàn)。

20201016-210445

訓(xùn)練 1000 次羔飞,預(yù)測(cè)運(yùn)行結(jié)果部分截圖如下肺樟。

20201016-211824

參考鏈接

原文首發(fā)地址 https://github.com/liuvigongzuoshi/blog

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市逻淌,隨后出現(xiàn)的幾起案子么伯,更是在濱河造成了極大的恐慌,老刑警劉巖卡儒,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件田柔,死亡現(xiàn)場(chǎng)離奇詭異俐巴,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)硬爆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)欣舵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人缀磕,你說(shuō)我怎么就攤上這事缘圈。” “怎么了袜蚕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵糟把,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我牲剃,道長(zhǎng)遣疯,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任颠黎,我火速辦了婚禮另锋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘狭归。我一直安慰自己,他們只是感情好文判,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布过椎。 她就那樣靜靜地躺著,像睡著了一般戏仓。 火紅的嫁衣襯著肌膚如雪疚宇。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天赏殃,我揣著相機(jī)與錄音敷待,去河邊找鬼。 笑死仁热,一個(gè)胖子當(dāng)著我的面吹牛榜揖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抗蠢,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼举哟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了迅矛?” 一聲冷哼從身側(cè)響起妨猩,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秽褒,沒(méi)想到半個(gè)月后壶硅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體威兜,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年庐椒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了椒舵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扼睬,死狀恐怖逮栅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情窗宇,我是刑警寧澤措伐,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站军俊,受9級(jí)特大地震影響侥加,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜粪躬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一担败、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧镰官,春花似錦提前、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至笨腥,卻和暖如春拓哺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脖母。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工士鸥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谆级。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓烤礁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親哨苛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸽凶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345