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