亞馬遜研究員手把手教你用AWS Batch玩轉深度學習
本文編譯自aws.amazon,該文說明了如何在AWS Batch上運行基於GPU的深度學習工作任務。亞馬遜研究員Chris Barclay介紹了一個訓練卷積神經網路(LeNet)的示例,使用ApacheMXNet識別使用MNIST數據集的手寫數字。
GPU實例與深度學習自然搭配的神經網路演算法可以利用其自身巨大的並行處理能力。AWS提供GPU實例系列,如g2和p2,可以讓客戶運行可擴展的GPU工作負載。你可以通過AWS Batch高效地利用這種可擴展性。
AWS Batch可以以你的名義進行基礎計算資源的管理,使你能夠專註於建模任務,而無需擔心資源管理的支出。AWS Batch中的計算環境(即集群)就是你帳戶中的實例池,其中AWS Batch可動態地上下調度,配置並終止關於作業數的實例。這可以最大限度地減少空閑實例,從而優化成本。
除此之外,AWS Batch可以確保提交的作業都被安置在適當的實例上,從而管理作業的生命周期。隨著客戶提供的AMI的增加,AWS Batch中的用戶現在可以利用這種彈性和便利性來更好地完成那些需要GPU的作業。
在AWS Batch中運行MXNet作業
Apache的MXNet是一個全功能、靈活可編程且高度可擴展的深度學習框架,支持最先進的深層模型,包括卷積神經網路(CNN)和長短期記憶網路(LSTM)。
運行一個AWS Batch作業需要三個步驟:
創建自定義AMI
創建AWS Batch實體
提交訓練工作
★創建自定義AMI
首先創建一個包含NVIDIA驅動程序和AmazonECS代理的AMI。在AWS Batch中,可以通過在創建計算環境時指定imageId來啟動具有所選擇的特定AMI的實例。由於你正在運行一個需要GPU的作業,因此你需要一個安裝了NVIDIA驅動程序的AMI。
選擇啟動堆棧以便在你帳戶中的us-east-1中啟動CloudFormation模板:
如下所示,請注意CloudFormation堆棧的「輸出」選項卡中的AMI值。因為在下一節中創建計算環境時,你可以將其用作imageId值。
或者,你也可以按照AWS Batch文檔來創建一個支持GPU的AMI。
(http://docs.aws.amazon.com/batch/latest/userguide/batch-gpu-ami.html)
★創建AWS Batch資源
當你完成AMI的構建後,你可以開始創建以下資源:
計算環境
作業隊列
作業定義
計算環境是相同或不同實例類型的實例(計算資源)的集合。在這種情況下,你將創建一個託管計算環境,在這個環境中實例的類型為p2.xlarge。而至於imageId,你可以指定在上一節中構建的AMI。
然後,創建一個作業隊列。在AWS Batch中,作業將被提交到與計算環境的有序列表相關聯的作業隊列中。當低階計算環境被填滿後,作業會溢出到下一個計算環境中。對於此示例,你把一個單個計算環境與作業隊列相關聯。
最後,創建作業定義,這是作業規範的一個模板。對於熟悉Amazon ECS的用戶,這類似於任務定義。將主機上包含NVIDIA驅動程序的目錄裝載到容器上的/ usr / local / nvidia上。除此之外,你還需要在容器屬性上設置特權標誌。
以下代碼在AWS Batch中創建了上述資源。想要了解更多有關信息,請參閱AWS Batch用戶指南。
★提交訓練作業
現在,你提交了一個訓練卷積神經網路模型的作業,而這個卷積神經網路模型是用來實現手寫數字識別的。這和Amazon ECS任務很相似,AWS Batch中的作業按照Docker容器中的命令運行。要使用MXNet作為你的深度學習庫,你需要一個包含MXNet的Docker映像。對於這個例子,你可以使用mxnet / python:gpu(https://hub.docker.com/r/mxnet/python/)。
這個submit-job.py腳本提交作業,並從CloudWatch Logs中拖出輸出。
你應該會看到如下所示的輸出結果(點圖放大):
實際上,你可能需要修改作業命令從而將經過訓練的模型工件保存到AmazonS3,以便隨後的預測作業可以針對模型生成預測。有關如何在作業中引用Amazon S3中的對象的信息,請參閱創建簡單的獲取並運行」AWS Batch作業的文章。
總結
在這篇文章中,我向大家展示了一個在AWS Batch中運行支持GPU的作業的示例,使用MXNet作為深度學習庫。AWS Batch揭示了框架原語,從而讓你專註於為你的工作負載實施最有效的演算法。它使你能夠管理提交的作業的生命周期,並在指定的範圍內動態調整作業的基礎架構要求。利用AWS提供的計算實例,我們可以以一個經濟高效的方式輕鬆利用其水平可擴展性。
另一方面,MXNet提供了一整套高度優化和可擴展的構建塊來開始實現你自己的深度學習演算法。總而言之,你不僅可以解決需要大型神經網路模型的問題,還可以通過利用Amazon EC2中看似無限的計算資源來減少迭代時間。
通過AWS Batch中以你的名義來管理資源,你可以輕鬆實施諸如超參數優化之類的工作負載,並行排列數十甚至數百個搜索,從而為你的問題空間找到最佳的模型參數集。此外,由於你的作業在Docker容器中運行,你可以選擇與你的需求最匹配的工具和庫,構建Docker映像,並使用你選擇的映像提交作業。
我們鼓勵你自己可以進行嘗試,並且,我們十分希望你可以讓我們知道你的想法!
機器人圈附上反饋地址,有興趣嘗試的圈友可以去留言
https://aws.amazon.com/cn/blogs/compute/deep-learning-on-aws-batch/?from=groupmessage&isappinstalled=0
※Snapchat是如何實現個性化「Discover」標籤的?
※IBM推出PowerAI最新版本,大幅降低深度學習訓練時間
※「激光雷達」PK「攝像頭」,誰是無人駕駛的王道?這裡為你解惑
※3D列印有多強?西子湖畔的這個大會將見分曉!
※谷歌:為何從Scikit-learn轉向TensorFlow
TAG:機器人圈 |
※HandScape智能觸控手機殼帶你玩轉各大手游
※「攻略」如何玩好WhatsApp?手把手帶你玩轉WhatsApp
※Mac新手必看教程—輕鬆玩轉Mac OS
※想玩轉工業界機器學習?先學Spark吧
※使用手冊請查收 宅小秘教你玩轉HTC VIVE Focus Plus
※如何使用Tensorflow玩轉深度學習?
※小姐姐帶你玩轉TREK Checkpoint SL5 WSD
※新手攻略3分鐘玩轉Hustle Castle
※ALIFE 玩轉 Swoosh 鉤子
※快速玩轉DJI新品|後世代的兵器原型RobotMaster S1 上手體驗
※AJboy VS AJgirl,學生黨才能玩轉的「穿不起」!
※Amanda Style 玩轉指尖
※MODE JAT showroom 玩轉配飾
※春季穿搭示範!Wood Wood攜手Gosha Rubchinskiy,COMME des GAR?ONS等玩轉混搭風!
※TensorFlow.js:讓你在瀏覽器中玩轉機器學習
※在 Scale Up 中使用 Health Check-每天5分鐘玩轉 Docker 容器技術
※K寶送乾貨 教你玩轉Facebook Messenger
※Joanna Mrówka 數學家玩轉街頭
※春季穿搭示範!Wood Wood攜手Gosha Rubchinskiy, COMME des GAR?ONS等玩轉混搭風!
※UanKids帶你玩轉英倫博物館