天天看點

使用TensorFlow,GPU和Docker容器進行深度學習

在過去的幾個月中,我和多個企業的資料科學團隊進行了多次合作,也看到越來越多的機器學習和深度學習架構被廣泛應用到實際生活中。

<b>部署TensorFlow的注意事項</b><b></b>

以下是部署資料科學應用程式和TensorFlow時的一些注意事項(尤其是在企業大規模部署時更應該注意):

1.如何對部署的複雜性進行管理,例如在OS,核心庫和TensorFlow不同版本之間進行部署。

2.如何在作業期間支援建立臨時叢集。

3.如何隔離正在使用的資源并阻止同時隊同一資源的通路請求。

4.如何在共享的多租戶環境中對GPU和CPU資源進行管理和配置設定。

BlueData的最新版本可以支援啟動采用GPU加速的叢集,并且支援TensorFlow在GPU或Intel架構的CPU上進行深度學習。資料科學家可以在BlueData EPIC軟體平台上啟動即時TensorFlow叢集在Docker容器上進行深度學習。BlueData支援在Intel Xeon硬體和Intel MKL上運作基于CPU的TensorFlow,也支援采用NVIDIA CUDA庫、CUDA擴充以及用于Docker容器的字元裝置映射的基于GPU的TensorFlow。

BlueData EPIC軟體平台可以為TensorFlow提供自助服務、彈性和安全環境,無論是在本地、公共雲還是在二者的混合結構中都擁有同樣的界面,不管其底層架構多麼不同,使用者都會有相同的使用者體驗。

如下圖所示,使用者可以像用于其他大資料分析、資料科學和機器學習環境一樣,能夠很容易地将帶有BigDL的即時TensorFlow叢集在BlueData軟體平台上進行深度學習。并且,使用者可以指定在TensorFlow運作的Docker容器放置在有GPU還是CPU配置的基礎架構,以及在公共雲還是在本地。

<b>按需建立TensorFlow叢集</b><b></b>

在BlueData EPIC軟體平台上,使用者隻需點選幾下滑鼠即可根據自己的需求建立TensorFlow群集。BlueData的最新版本引入主機标簽,使用者可以建立具有主機标記的基于GPU或CPU的TensorFlow叢集,這些主機标記為特定工作負載指定所需要的硬體,如下圖所示。

使用TensorFlow,GPU和Docker容器進行深度學習

一旦建立完成,TensorFlow叢集将擁有一個或多個Docker容器節點,這些Docker容器使用TensorFlow軟體和相應的GPU和/或CPU加速庫進行部署。例如,基于GPU的TensorFlow群集将在Docker容器内具有NVIDIA CUDA和CUDA擴充;而基于CPU的TensorFlow群集則在Docker容器中具有Intel MKL和Jupyter Notebook擴充。

<b>高效的GPU資源管理</b><b></b>

GPU和特定的CPU通常不會作為Docker容器的獨立資源。BlueData EPIC軟體平台通過在所有主機上管理GPU的共享池并在群集建立期間将GPU所請求的數量配置設定給群集來處理此問題。這種排他性(或隔離性)保證了對深度學習作業的服務品質,并防止多個處理作業嘗試同時通路同一資源。

對于今天的大多數企業來說,GPU是一種需要有效利用的高端資源。當一個叢集沒有在使用或完成一項作業時,BlueData EPIC軟體平台可以停止該叢集使用并将GPU配置設定給其他正在使用的叢集。 這允許使用者在不同的租戶環境中建立多個叢集,并且僅僅在叢集需要時才使用GPU,而不需要删除或重新建立群叢集。還有一種機制,即在作業期間建立一個群集作為暫時性叢集。

<b>提高使用者生産力</b><b></b>

一旦TensorFlow叢集建立完成,使用者可以使用AD / LDAP控制的SSH啟用容器并保護Jupyter Notebook。

為了進行驗證和測試,TensorFlow叢集預設包含Jupyter Notebook,用例如下圖所示。

使用TensorFlow,GPU和Docker容器進行深度學習

在BlueData EPIC軟體平台上使用TensorFlow庫和圖表繪制的MNIST資料集的輸入數字圖像的重建示例如下圖所示。

使用TensorFlow,GPU和Docker容器進行深度學習

根據輸入圖像和模型(使用TensorFlow GradientDescentOptimizer訓練)提取資料集和模型預測如下圖所示:

使用TensorFlow,GPU和Docker容器進行深度學習

對輸入圖像和輸出預測結果的對比如下圖所示:

使用TensorFlow,GPU和Docker容器進行深度學習

<b>對運作的TensorFlow叢集更新</b><b></b>

随着新的庫和軟體包不斷被推出,資料科學團隊的需求也在不斷的變化,是以BlueData EPIC軟體平台提供了一種稱為“操作腳本”的機制,該機制允許使用者使用新的庫和軟體包對正在運作叢集的所有節點進行更新。在長時間運作的互動或批處理作業中,使用者還可以使用基于Web的UI或RESTful API将Python作業送出。

 以上為譯文。

<b>文章原标題《</b><b>Deep Learning With TensorFlow, GPUs, and Docker Containers</b><b>》,譯者:Mags,審校:袁虎。</b>

繼續閱讀