CML使用Nvidia GPU進行深度學習

介紹

在本系列的上一篇部落格文章中,我們探索了將GPU用於資料科學工作流的好處,並演示瞭如何在Cloudera Machine Learning(CML)中設定會話以訪問NVIDIA GPU來加速機器學習專案。儘管將GPU用於複雜和大型任務的省時潛力巨大,但設定這些環境和任務(例如整理NVIDIA驅動程式,管理CUDA版本以及為特定專案需求部署自定義引擎)可能既耗時又充滿挑戰。為了簡化這些流程,並使資料科學家更快地在ML用例上工作,我們簡化了在CML中本地配置和利用NVIDIA GPU的工作。在接下來的部分中,我們將為您提供三種簡單的方法,使資料科學團隊可以開始使用GPU來為CML中的深度學習模型提供支援。

場景

為了說明如何利用這些NVIDIA GPU執行時,我們將使用計算機視覺影象分類示例,並訓練一個深度學習模型,以使用Fashion MNIST資料集對時尚商品進行分類。

MNIST是一種手寫數字分類任務,多年來一直是Computer Vision 101示例問題,涉及手寫數字數字的分類。但是,問題集並沒有跟上時代的發展,現代的GPU和演算法現在能夠比閱讀本段內容更快地解決它。

Fashion MNIST面臨著更嚴峻的分類挑戰,旨在取代傳統MNIST。藉助Fashion MNIST資料集,我們的演算法具有10種不同的服裝專案類別,可以分別識別10,000個樣本。

Libraries

對於本文,我將提供三種使用PyTorch、Tensorflow和MXNet中的程式碼解決此情況的方法,以供您遵循。分別參見相關子資料夾pytorch、mxnet和tensorflow。在本文中,我們將探討如何將Tensorflow與NVIDIA GPU結合使用。其他子資料夾的執行方式相同,易於您自行探索。按照此處的程式碼進行操作。請注意,儘管我們在練習中使用上述方法,但GPU非常靈活,並且可以根據專案本身使用各種框架和庫。

教程

每個資料夾(“ pytorch”,“ mxnet”和“ tensorflow”)都包含一個“ main。py”函式,其中包含安裝庫、載入資料、設定網路和訓練模型所需的所有程式碼。讓我們看一下以下螢幕快照中的tensorflow示例:

首先,從主螢幕上的“新建專案”選項卡,git將儲存庫克隆到一個新專案中。

CML使用Nvidia GPU進行深度學習

載入完畢後,您將進入專案頁面。

CML使用Nvidia GPU進行深度學習

從那裡,您可以在專案頁面的右上角建立一個新會話。建立會話時,我們可以從不同的CPU / RAM和GPU配置中進行選擇。就我而言,我選擇了4核/ 8GB RAM和1個GPU。使用FashionMNIST,1個GPU足以讓我們相對快速地適應演算法。對於更高階的問題和更復雜的深度學習模型,可能需要更多的GPU。但是,利用多個GPU進行深度學習的技術可能會變得複雜,因此我今天不再贅述。

在以下示例中,我將使用本機CML IDE,但如果您願意,JupyterLabis也可在CML中使用。

CML使用Nvidia GPU進行深度學習

有了我們的IDE和會話,我們現在需要安裝相關的庫。在我的tensorflow子資料夾的`main。py`指令碼中,您可以在頂部看到pip命令來安裝庫。對於我們正在執行的用於互動編碼的Ipython,`%pip`是我們無需去bash終端即可執行`pip`的方式。

%pip install tensorflow

%pip install scikit-learn pandas

執行這兩行以安裝庫。這可以透過選擇兩行並點選Ctrl + Enter來完成。

CML使用Nvidia GPU進行深度學習

安裝了庫之後,我們可以執行庫匯入語句作為快速檢查,以確保Tensorflow正確地利用了我們的GPU資源。您應該看到一系列“成功開啟動態庫xxxx”訊息,最後看到“新增可見的gpu裝置:0”。0是圖形卡的索引。如果您有1個以上的圖形卡,您將看到額外的索引,例如:“新增可見的GPU裝置:0、1”

-

**注意**通常將Tensorflow之類的庫打包併發布到pypi和Conda通道上,以支援特定的NVIDIA CUDA版本,直到發行為止。例如,CUDA 11。0庫可能與CUDA 11。1有關。

如果所安裝的CUDA版本與打包的庫所編譯的版本不匹配,則可能需要重新編譯該庫才能正常工作。

-

CML使用Nvidia GPU進行深度學習

要檢視我們使用了多少GPU,我將開啟一個終端會話並載入`nvidia-smi`工具來跟蹤使用情況。執行命令“ nvidia-smi -l”以開啟重新整理跟蹤器以利用GPU

CML使用Nvidia GPU進行深度學習

現在,我們可以執行指令碼的其餘部分,並觀看我們的模型訓練

在我們的模型訓練過程中,我們可以看到記憶體使用率從3MiB變為11320MiB,而揮發性GPU-Util為17%,而之前為0%

CML使用Nvidia GPU進行深度學習

訓練模型後,我們可以檢視模型訓練結果,以瞭解模型的質量。

CML使用Nvidia GPU進行深度學習

成功!您現在就可以在Tensorflow中開始在CML中使用GPU。其他子資料夾可以用相同的方式設定,並可以讓您自己進行探索。

更多資訊

在本文中,我們回顧瞭如何啟動支援GPU的Cloudera機器學習課程,並展示瞭如何利用GPU進行深度學習應用程式。開始使用GPU加速的機器學習技術在現在CDP,你就可以開始在這裡。

原文作者:Brian Law

TAG: GPU我們CMLNVIDIA使用