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