雖然大多數(shù)深度學(xué)習(xí)模型都是在 Linux 系統(tǒng)上訓(xùn)練的,但 Windows 也是一個(gè)非常重要的系統(tǒng),也可能是很多機(jī)器學(xué)習(xí)初學(xué)者更為熟悉的系統(tǒng)。要在 Windows 上開發(fā)模型,首先當(dāng)然是配置開發(fā)環(huán)境。Kaggle Master 及機(jī)器學(xué)習(xí)實(shí)踐者 Abhinand 立足于自己的實(shí)踐,給出了一種簡單易行的 Windows 深度學(xué)習(xí)環(huán)境配置流程。
本文將介紹在 Windows 計(jì)算機(jī)上配置深度學(xué)習(xí)環(huán)境的全過程,其中涉及安裝所需的工具和驅(qū)動(dòng)軟件。出人意料的是,即便只是配置深度學(xué)習(xí)環(huán)境,任務(wù)也不輕松。你很有可能在這個(gè)過程中犯錯(cuò)。我個(gè)人已經(jīng)很多次從頭開始配置深度學(xué)習(xí)環(huán)境了,但是通常是在對(duì)程序員更友好的操作系統(tǒng) Linux 中。 而對(duì)于 Windows 操作系統(tǒng),沒有多少文章詳細(xì)解釋這一過程。所以我打算自己來試試。這些天,經(jīng)過多次試錯(cuò)之后,我終于找到了解決方案。這個(gè)方法不僅能夠配置成功,還比我見過的其它教程簡單得多。
本教程為誰而寫,以及為什么要用 Windows?
相信我,我自己也不喜歡在 Windows 上鼓搗 CUDA。但我們常常遇到這種情況:開發(fā)者經(jīng)常需要在并非深度學(xué)習(xí)或程序開發(fā)專用的筆記本電腦或更強(qiáng)大的硬件上工作。在這種情況下,你并不總能避免使用 Windows。如果你遇到這種情況,或者正好擁有一臺(tái) Windows 計(jì)算機(jī),又或者還不能熟練使用 Linux,那么這份指南肯定能幫到你。 本文包含以下內(nèi)容:
硬件和軟件的最低要求
安裝 Python 和所需工具
設(shè)置開發(fā)環(huán)境
一些 GPU 術(shù)語
安裝 GPU 驅(qū)動(dòng)
安裝 TensorFlow(CPU 和 GPU)
安裝 PyTorch(CPU 和 GPU)
驗(yàn)證安裝情況
我的個(gè)人經(jīng)驗(yàn)和替代方法
硬件和軟件的最低要求
如果你要按照本指南操作并且計(jì)劃使用 GPU,你必須使用英偉達(dá) GPU。 開發(fā)深度學(xué)習(xí)應(yīng)用涉及到訓(xùn)練神經(jīng)網(wǎng)絡(luò),這自然需要執(zhí)行大量計(jì)算。也因此,我們需要越來越多的并行運(yùn)算,而 GPU 正好能夠滿足我們的需求。這也是當(dāng)前 GPU 需求旺盛的主要原因之一。大多數(shù)深度學(xué)習(xí)框架都自帶 GPU 加速支持,這讓開發(fā)者和研究者無需執(zhí)行任何 GPU 編程就能在幾分鐘內(nèi)使用 GPU 進(jìn)行計(jì)算。 大部分這些框架都(只)支持 CUDA,而這只能在英偉達(dá) GPU 上使用,這也是你需要使用英偉達(dá) GPU 的原因。但是,使用 AMD 的 GPU 也不是不可能。 不過,就算你沒有 GPU,也依然可以繼續(xù)本教程。但為了有效進(jìn)行深度學(xué)習(xí),至少你要有好用的 CPU、內(nèi)存和存儲(chǔ)空間。 我的硬件——筆記本電腦的配置如下:
CPU——AMD Ryzen 7 4800HS 8C -16T@ 4.2GHz on Turbo
GPU——Nvidia GeForce RTX 2060 Max-Q @ 6GB GDDR6 顯存
對(duì)于硬件配置,我推薦至少使用 4 核 2.6 GHz 的 CPU、16GB 內(nèi)存和 6GB 顯存的英偉達(dá) GPU。 另外,對(duì)于本教程,你當(dāng)然需要使用 Windows 10 系統(tǒng)。我也假設(shè)你對(duì) Python 軟件包和環(huán)境具備基本認(rèn)知。不管怎樣,后面都會(huì)給出解釋。 推薦使用的 Windows 版本是最新的 64 位 Windows 10 穩(wěn)定版。 本教程假設(shè)你的操作系統(tǒng)是剛裝好的,沒有執(zhí)行過額外的修改。不過只要你知道自己在做什么,依然可以參考本教程。
安裝 Python 和所需工具
第一步當(dāng)然是安裝 Python。我建議使用 Mini-Conda 來安裝 Python。先給剛?cè)腴T的新手解釋一下原因。 Conda 是一個(gè)軟件包管理工具,可以幫助你安裝、管理和移除各種不同的軟件包。不過 Conda 并不是唯一的選擇,還有 pip——這是我很喜歡的 Python 默認(rèn)軟件包管理工具。這里我們選擇 Conda 的原因是在 Windows 上使用它更簡單直接。 Anaconda 和 Mini-Conda 都是 Conda 的軟件發(fā)行版,其中預(yù)安裝了一些非常有用的數(shù)據(jù)科學(xué) / 機(jī)器學(xué)習(xí)軟件包,能節(jié)省很多時(shí)間。Anaconda 包含 150 多個(gè)在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)中有用的軟件包,基本上包含了你可能需要的一切,而 Mini-Conda 僅包含一些必需的工具和軟件包。 我推薦使用 Mini-Conda,因?yàn)槲蚁矚g對(duì)所安裝的軟件包有(幾乎)完整的控制權(quán)。清楚地了解你所安裝的東西完全不是壞事。當(dāng)然這還能幫你節(jié)省一些存儲(chǔ)空間,你也不會(huì)裝上幾十個(gè)你可能永遠(yuǎn)也用不上的奇怪軟件包。 要安裝 Mini-Conda,下載 Windows 64 位版本的 Python3 安裝工具,然后像安裝其它 Windows 軟件一樣安裝它。一定要勾選詢問你是否要將 Conda 和 Python 加入到 PATH 的勾選框。 現(xiàn)在你可以通過以下命令檢查 Conda 和 Python 是否安裝成功。如果安裝成功,則會(huì)顯示版本號(hào);否則你可能需要再次正確安裝 Mini-Conda 并將其加入到 PATH。
>python—versionPython 3.8.3 >conda—versionconda 4.8.4 下一步是安裝 jupyter-notebook,請(qǐng)?jiān)诿钚薪缑媸褂靡韵旅睿?
>condainstall-yjupyter 你可以通過運(yùn)行 jupyter notebook 來驗(yàn)證安裝,這會(huì)幫你在瀏覽器上打開 Jupyter Notebook。
設(shè)置開發(fā)環(huán)境
這一步很重要,但很多人會(huì)忽視它。使用 Anaconda 這種包含所有已知軟件包的工具是可以理解的,但如果要開發(fā)自己的項(xiàng)目,真正構(gòu)建一些東西,你可能還是需要一個(gè)專門針對(duì)該項(xiàng)目或你的工作性質(zhì)的定制開發(fā)環(huán)境。使用專門虛擬環(huán)境的另一大優(yōu)勢是你可以將軟件包與全局設(shè)置隔離開。這樣,就算你在該環(huán)境中使用軟件包時(shí)搞錯(cuò)了,你也可以輕松地丟棄它們,而不對(duì)全局軟件包產(chǎn)生任何影響。 這也能讓你靈活地使用任何之前版本的 Python 創(chuàng)建環(huán)境。這樣,你就可以避免使用那些還不穩(wěn)定的新特性,之后再根據(jù)支持情況選擇是否升級(jí)。 創(chuàng)建 Conda 環(huán)境還算簡單。為了方便解釋,我創(chuàng)建了一個(gè)名為 tensorflow 的環(huán)境,你可以將其改為任何名稱。我將使用 Python 3.7,因?yàn)槲抑?TensorFlow 對(duì)其有很好的支持。順便一提,這將是安裝 TensorFlow 的位置,我還會(huì)創(chuàng)建一個(gè)名為 torch 的環(huán)境來安裝 PyTorch。
>condacreate--nametensorflowpython=3.7 環(huán)境創(chuàng)建完成之后,你可以使用以下命令進(jìn)入該環(huán)境,其中的 tensorflow 只是我們之前提供給該環(huán)境的名稱。
>condaactivatetensorflow 進(jìn)入環(huán)境之后,你會(huì)在提示框的左邊看到類似這樣的信息: 如果你沒在 Powershell 上看到這個(gè)信息,那么你可能需要先在 Powershell 初始化 conda 一次:
>condainitpowershell
然后,你可能會(huì)在左邊看到 (base),如上圖所示,此時(shí)你已不在任何環(huán)境中。之后,你再進(jìn)入任何環(huán)境,你應(yīng)該都會(huì)看見環(huán)境名。 此外,你還可以在環(huán)境中安裝 nb 工具,并將其鏈接到我們之前安裝的 Jupyter Notebook。
>condainstallnb_conda 要將該環(huán)境注冊到 Jupyter Notebook,可運(yùn)行以下命令:
>python-mipykernelinstall--user--nametensorflow--display-name“Python3.7(tensorflow)” 要退出 Conda 環(huán)境,則運(yùn)行以下命令:
>condadeactivate 現(xiàn)在按照同樣的步驟創(chuàng)建一個(gè)名為 torch 的環(huán)境:
>condacreate--nametorchpython=3.7 >condaactivatetorch>condainstallnb_conda >python-mipykernelinstall--user--nametorch--display-name“Python3.7(torch)” 如果環(huán)境設(shè)置成功,你可以在環(huán)境列表中看到它們。
>condaenvlist
要驗(yàn)證每個(gè)環(huán)境是否都已安裝了各自的軟件包,你可以進(jìn)入各個(gè)環(huán)境,執(zhí)行 conda list,這會(huì)顯示該環(huán)境中已安裝的所有軟件包。
不要因?yàn)檫@個(gè)列表很長而感到困擾。Conda 已經(jīng)妥善地處理了主要部分和依賴包。
一些 GPU 術(shù)語
在安裝 GPU 相關(guān)軟件之前,我們有必要了解這些軟件是什么,以及你需要它們的原因。 GPU 驅(qū)動(dòng):顧名思義,GPU 驅(qū)動(dòng)是讓操作系統(tǒng)及程序能使用 GPU 硬件的軟件。游戲玩家肯定很熟悉這個(gè)。如果你喜歡打游戲,你可能需要讓這個(gè)軟件保持最新以獲得最好的游戲體驗(yàn)。 CUDA:簡單來說,這是英偉達(dá)開發(fā)的一個(gè)編程接口層,能讓你調(diào)用 GPU 的指令集及其并行計(jì)算單元。 自 2010 年代末的 GeForce 8 系列 GPU 以來,幾乎所有 GPU 都兼容 CUDA。要想了解你的 GPU 是否啟用 CUDA,可以訪問英偉達(dá)的網(wǎng)站。 舉個(gè)例子,如果你有一臺(tái)消費(fèi)級(jí) GPU,不管是 GeForce 系列還是 Titan 系列,你都可以在下圖中看到你的 GPU 是否支持 CUDA。
數(shù)據(jù)截至 2020 年 9 月,截圖僅含部分型號(hào)。 如果你的電腦是筆記本,你應(yīng)該看右邊的列表;如果你的電腦是臺(tái)式機(jī),你顯然就該看左邊的列表。 之前已經(jīng)提到,我的 GPU 是右側(cè)列表中的 RTX 2060 Max-Q。另外,你不必在意顯卡型號(hào)名稱是否與該列表中的名稱完全匹配,Max-Q 和 Super 的底層架構(gòu)一樣,只在 TDP、CUDA 核及張量核數(shù)量方面有一些差異。 比如,不管你的 GPU 是 RTX 2080 Super 還是 2080 Max-Q 又或是 2080 Super Max-Q,看列表中的 RTX 2080 就夠了。但如果你的 GPU 是 RTX 2080Ti 或其它加了 Ti 的型號(hào),則說明你的 GPU 是該系列中最高端的那一款,這些 GPU 通常在顯存大小和 CUDA 核及張量核數(shù)量方面更具優(yōu)勢。
截至 2020 年 9 月,要使用 TensorFlow 2.0,顯卡計(jì)算能力必須高于 3.5,但建議使用計(jì)算能力至少為 6 的顯卡以獲得更好的體驗(yàn)。TensorFlow 2.0 還需要 CUDA 10 版本,而這又進(jìn)一步要求驅(qū)動(dòng)版本至少為 418.x。 PyTorch 需要的 CUDA 版本至少為 9.2,但也支持 10.1 和 10.2。所需的計(jì)算能力至少要高于 3.0。
CuDNN:即 CUDA Deep Neural Network 軟件庫,這是一個(gè)用于深度神經(jīng)網(wǎng)絡(luò)的 GPU 加速原語庫。cuDNN 為前向和反向卷積、池化、歸一化和激活層等標(biāo)準(zhǔn)例程提供了經(jīng)過高度微調(diào)的實(shí)現(xiàn)。 (可選)TensorRT:NVIDIA TensorRT 是一套用于高性能深度學(xué)習(xí)接口的 SDK。其包含深度學(xué)習(xí)接口優(yōu)化器和運(yùn)行時(shí)優(yōu)化器,能為深度學(xué)習(xí)接口應(yīng)用提供低延遲和高通量的特性。
安裝 GPU 驅(qū)動(dòng)
首先,你需要搞清楚所使用的 GPU 型號(hào),而且你的 GPU 必須啟用了 CUDA。 如果你還沒有安裝驅(qū)動(dòng),你可能需要運(yùn)行一次 Windows 更新,它會(huì)自動(dòng)處理有用軟件的安裝過程,比如英偉達(dá)控制面板。這能幫助你獲悉 GPU 的相關(guān)信息,還有一些與本文無關(guān)的設(shè)置。 英偉達(dá)控制面板就緒之后,你可以在開始菜單打開它,也可以右鍵點(diǎn)擊桌面,然后選擇英偉達(dá)控制面板。 打開之后,你可以點(diǎn)擊「幫助→系統(tǒng)信息」來查看 GPU 驅(qū)動(dòng)版本。驅(qū)動(dòng)版本號(hào)列在「細(xì)節(jié)」窗口的頂部。
如上圖所示,我的驅(qū)動(dòng)版本是 456.x,遠(yuǎn)超過 418.x 的最低要求,所以我不必安裝新驅(qū)動(dòng)。 但你的電腦可能不是這樣的。要安裝最新版的驅(qū)動(dòng),然后輸入 GPU 信息,下載合適的驅(qū)動(dòng)。
驅(qū)動(dòng)下載完成后,運(yùn)行安裝包,選擇快速安裝會(huì)更輕松。驅(qū)動(dòng)安裝完成之后,可使用英偉達(dá)控制面板進(jìn)行驗(yàn)證。 另一個(gè)安裝驅(qū)動(dòng)的方法是使用英偉達(dá)的 GeForce Experience 應(yīng)用程序。只要你購買的是主打游戲的電腦,應(yīng)該都預(yù)裝了該軟件。安裝過程很簡單。 這一步是可選的。如果你已經(jīng)按照上面的步驟安裝了驅(qū)動(dòng),或你的電腦沒有預(yù)裝該軟件,那就不用在乎這個(gè)步驟。 你可在這里下載該程序,然后跟著安裝流程將其安裝到電腦上。安裝完成,打開它,進(jìn)入驅(qū)動(dòng)選項(xiàng)卡,檢查更新并安裝新驅(qū)動(dòng)。你也可以在該應(yīng)用中查看驅(qū)動(dòng)的版本號(hào)。 GeForce Experience 演示 現(xiàn)在安裝驅(qū)動(dòng)過程中最重要的步驟已經(jīng)完成,你可以選擇手動(dòng)安裝 CUDA 工具包,也可以選擇在安裝 TensorFlow 或 PyTorch 時(shí)留給 Conda 來安裝(強(qiáng)烈推薦后者)。 如果決定手動(dòng)安裝,你可以從這里下載安裝包,然后跟著指示操作即可。
安裝 CUDA 工具包 CUDA 工具包裝好之后,你可以在 cmd 或 Powershell 中執(zhí)行 nvidia-smi 命令進(jìn)行驗(yàn)證。
nvidia-smi 的輸出
安裝 TensorFlow
現(xiàn)在終于來到本教程的關(guān)鍵了。如果你已經(jīng)完成了前述步驟,那么這一步會(huì)非常簡單。 我們通過 Conda 來安裝 TensorFlow 2.x。 要注意,首先進(jìn)入我們之前創(chuàng)建的 tensorflow 環(huán)境,然后再進(jìn)行操作。
>condaactivatetensorflow 如果你需要 GPU 支持,就運(yùn)行以下命令:
>condainstall-canacondatensorflow-gpu
通過 anaconda 通道安裝 TensorFlow 的 GPU 支持軟件。使用 conda 而非 pip 安裝 TensorFlow 的一大優(yōu)勢是 conda 的軟件包管理系統(tǒng)。使用 conda 安裝 TensorFlow 時(shí),conda 還會(huì)安裝所有必需和兼容的依賴包。這個(gè)過程是自動(dòng)的,用戶無需通過系統(tǒng)軟件包管理器或其它方式安裝任何其它軟件。 其中也包含 TensorFlow 或 PyTorch 所需的版本合適的 CUDA 工具包。因此,使用 conda 能讓這個(gè)過程變得非常簡單。 我們只能在安裝了 TensorFlow GPU 的環(huán)境中看到所安裝的 CUDA 工具包。這既不會(huì)影響到全局系統(tǒng)的 CUDA 版本,同時(shí)也能滿足 TensorFlow 和 PyTorch 的不同版本 CUDA 需求。這就是使用虛擬環(huán)境的最大好處,它能讓不同的虛擬環(huán)境完全隔離開。 如果一切順利,你不會(huì)在安裝過程中看到任何報(bào)錯(cuò)信息。 要驗(yàn)證 TensorFlow 和所需的軟件包是否成功安裝,你可以執(zhí)行 conda list,這會(huì)顯示已安裝軟件包的列表,你應(yīng)該能在其中找到與 TensorFlow 相關(guān)的軟件包以及 CUDA 工具包。
你也可以打開 Python prompt 來驗(yàn)證是否已安裝 TensorFlow。
>>>importtensorflowastf >>>tf.version '2.1.0' 如果你看到了版本號(hào),那么恭喜你,TensorFlow 已安裝成功!任務(wù)完成。
在 Python prompt 中驗(yàn)證 TensorFlow 的安裝情況 你在 Python prompt 中使用 TensorFlow 時(shí)可能會(huì)看到這樣的信息:「Opened Dynamic Library」,但這并不是壞消息。這只是一條日志消息,說明 TensorFlow 可以打開這些軟件庫。 GPU 上的安裝情況驗(yàn)證將在下文中介紹。 如果要安裝僅使用 CPU 的 TensorFlow,你需要對(duì)安裝命令進(jìn)行簡單的修改。
>condainstall-canacondatensorflow 這將會(huì)安裝沒有 CUDA 工具包和 GPU 支持的 TensorFlow。
安裝 PyTorch
安裝 PyTorch 的過程與安裝 TensorFlow 其實(shí)沒太大差異。conda 讓這一切都變得非常簡單。 首先,進(jìn)入我們創(chuàng)建的 torch 環(huán)境。
>condaactivatetorch 如果你想安裝支持 CUDA 的 PyTorch,使用以下命令:
>condainstallpytorchtorchvisioncudatoolkit-cpytorch 該命令會(huì)通過 Conda 的 PyTorch 通道安裝兼容 CUDA 的 PyTorch。 至于僅使用 CPU 的 PyTorch,只需從以上命令中移除 cudatookit 即可:
>condainstallpytorchtorchvisioncpuonly-cpytorch 這會(huì)安裝無 CUDA 支持的 PyTorch。 和之前一樣,你可以使用 conda list 驗(yàn)證安裝情況,也可使用以下代碼在 Python 上執(zhí)行驗(yàn)證。
>>>importtorch >>>torch.version '1.6.0' 如果返回版本號(hào),則說明已成功安裝 PyTorch。
驗(yàn)證安裝情況
有時(shí)候,你覺得一切都很順利,準(zhǔn)備開始使用這些工具時(shí)卻遇到了一些重大錯(cuò)誤。如果你正好遇到了這種情況,有可能是機(jī)器的問題,也可能是流程出錯(cuò)了,不能一概而論,要具體問題具體分析。 為了幫助你更好地驗(yàn)證安裝情況,并確保 TensorFlow 和 PyTorch 使用的是指定的硬件,這里分享一些筆記。 你可以在 文件夾中找到它們。你可以克隆這些筆記然后運(yùn)行其中的代碼。如果返回的信息正確,你就可以放手開發(fā)了。 下圖是該筆記的代碼示例:
注:如果你沒有從正確的環(huán)境啟動(dòng) Jupyter Notebook,就可能會(huì)遇到一些錯(cuò)誤。例如,如果你想使用 tensorflow 環(huán)境,你可以從 base 環(huán)境啟動(dòng) notebook,然后將核改到 tensorflow 環(huán)境,但我在這樣操作時(shí)遇到過報(bào)錯(cuò)。因此,如果你要運(yùn)行 TensorFlow,就在 tensorflow 環(huán)境里啟動(dòng) Notebook;如果你要運(yùn)行 PyTorch,就在 torch 環(huán)境中啟動(dòng) Notebook。不要從 base 或其它地方啟動(dòng)。
我的個(gè)人經(jīng)驗(yàn)和替代方法
我一直使用這套配置完成一些輕量級(jí)的深度學(xué)習(xí)工作,反正這套本地硬件足夠了?,F(xiàn)在幾周過去了,一切都還不錯(cuò)。但是,在此之前我還嘗試過其它一些方法,也出現(xiàn)過一些嚴(yán)重問題。
比如有一次我嘗試了這里的方法,其中涉及在 WSL(Windows Subsystem for Linux)中啟用 CUDA 和英偉達(dá)驅(qū)動(dòng)以便使用 GPU 來進(jìn)行深度學(xué)習(xí)訓(xùn)練。目前這個(gè)功能還在預(yù)覽階段,但一旦官方發(fā)布,必將為深度學(xué)習(xí)實(shí)踐者帶來重大影響。這能將讓人驚喜的 WSL 與 CUDA/GPU 驅(qū)動(dòng)結(jié)合到一起。
不過這是有條件的。要想使用這一功能,你必須參與 Windows Insider Program 項(xiàng)目。當(dāng)然,根據(jù)我的經(jīng)歷,內(nèi)部預(yù)覽版往往有很多漏洞。我在使用時(shí)遇到過很多問題,包括所有 Windows 應(yīng)用不再響應(yīng)、GSOD(綠屏死機(jī))錯(cuò)誤、未正確啟動(dòng)、驅(qū)動(dòng)故障。我個(gè)人不喜歡不穩(wěn)定的環(huán)境,所以選擇退出只是時(shí)間問題。
你有可能在使用預(yù)覽版時(shí)不會(huì)遇到任何問題,只不過我的經(jīng)歷太糟了,所以不推薦使用預(yù)覽版。
其它替代選擇包括完全不使用 Windows,只使用基于 Linux 的系統(tǒng),享受更加流暢的體驗(yàn)。只不過 Linux 沒有 Windows 中那樣花哨的 GUI 安裝工具。
本文介紹了如何在 Windows 系統(tǒng)中安裝 TensorFlow、PyTorch 和 Jupyter 工具,希望對(duì)大家有所幫助。
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209497 -
WINDOWS
+關(guān)注
關(guān)注
3文章
3545瀏覽量
88694 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121162
原文標(biāo)題:超詳細(xì)配置教程:用 Windows 電腦訓(xùn)練深度學(xué)習(xí)模型
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論