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

寫在前面

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

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

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

1 硬件條件

首先查看自己的顯卡型號(hào)是否滿足條件,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 查詢顯卡是否支持 CUDA?

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

20201014-204817

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

20201014-211536

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

2 軟件下載

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

輸入信息查詢顯卡驅(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,滿足要求,然后下載下來后安裝驅(qū)動(dòng)。

20201014-213921

2.2 下載安裝 CUDA? Toolkit

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

20201014-231747

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

20201014-232646

然后一直下一步,直到這里,如果電腦上面沒有安裝 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)中,打開終端里面輸入 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)入下載頁面后選擇 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 通過方便管理包依賴問題,,如果覺得 Anaconda 占用磁盤空間過大可以使用 miniconda,平時(shí)開發(fā)電腦上用的 miniconda,關(guān)于miniconda 安裝使用可點(diǎn)擊這個(gè)

3.1 下載 Anaconda

3.2 安裝 Anaconda

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

Anaconda 安裝使用后占有磁盤空間比較大,如果 C 盤空間有限不推薦安裝在 C盤。

895802-20200603164956820-683281587

下面有兩個(gè)選擇,第一個(gè)是將 Anaconda 添加到環(huán)境變量中,如果電腦上之前安裝了 Anaconda 的另一個(gè)版本軟件會(huì)影響 Anaconda 的使用,添加到環(huán)境變量的好處是可以直接打開終端執(zhí)行相關(guān)命令管理包,如果不添加到環(huán)境變量也可以在 windows 的開始菜單里面找到 Anaconda Prompt ,然后在打開的終端上執(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è)版本,如果之前電腦上有裝過 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

打開安裝好的 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 軟件包是分開的,而 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é)果

打開當(dāng)前環(huán)境的終端或打開 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è)備名稱
print(tf.test.gpu_device_name())
// 打印電腦上可以用于計(jì)算的設(shè)備
print(device_lib.list_local_devices())

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

20201015-024516

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

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

最后來跑一跑常見的一個(gè)入門 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 萬 + 35 萬,也就是一間帶主臥的房子 50 萬,兩間臥室的房子 65 萬,注此類推。

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

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)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評(píng)論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,538評(píng)論 3 417
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評(píng)論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,761評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,207評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,419評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,959評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評(píng)論 1 286
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,678評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,978評(píng)論 2 374