訓練深度學習模型

利用 Amazon E2C 上的 AWS Deep Learning Containers

AWS Deep Learning Containers (DL Containers) 是連同深度學習架構一併預先安裝的 Docker 映像檔,讓您可以略過從頭建置及最佳化環境的複雜流程,輕鬆部署自訂機器學習環境。

使用 AWS DL Containers,開發人員和資料科學家可以將機器學習快速加入其部署在 Amazon Elastic Container Service for Kubernetes (Amazon EKS)、自我管理 Kubernetes、Amazon Elastic Container Service (Amazon ECS) 及 Amazon EC2 上的容器化應用程式裡。

在本教學中,您將使用 AWS Deep Learning Containers 在 Amazon EC2 執行個體訓練 TensorFlow 機器學習模型。

關於本教學
時間 10 分鐘                                           
費用 低於 1 USD
使用案例 Machine Learning
產品 AWS Deep Learning Containers、Amazon EC2、Amazon ECR
對象 開發人員、資料科學家
等級 初階
上次更新日期 2019 年 3 月 27 日

1.註冊 AWS

您需要一個 AWS 帳戶才能跟上本教學。在本教學中使用 AWS Deep Learning Containers 無需額外費用,只有本教學中使用的 Amazon c5.large 執行個體才需要費用,在完成本教學結束時的終止步驟後,其費用將不到 1 美元。 

已經有帳戶了嗎? 登入您的帳戶

2.新增存取 Amazon ECR 的權限

Amazon Elastic Container Registry (ECR) 上託管 AWS Deep Learning Container 映像,ECR 是一個全受管的 Docker 容器登錄檔,可讓開發人員輕鬆存放、管理以及部署 Docker 容器映像。在此步驟中,您將准許現有 IAM 使用者存取 Amazon ECR 的權限 (使用 AmazonECS_FullAccess 政策存取)。

如果您沒有現有的 IAM 使用者,請參閱 IAM 文件以取得更多資訊。

a.瀏覽至 IAM 主控台

開啟 AWS 管理主控台,以便讓此逐步指南保持開啟狀態。當畫面載入時,請輸入您的使用者名稱和密碼以開始使用。在搜尋列輸入 IAM,然後選取 IAM 開啟服務主控台。

AWS Management Console

b.選取使用者

從左側導覽窗格選取使用者

3b-new

c.新增權限

您現將新增權限到您建立的新 IAM 使用者或現有的 IAM 使用者。在 IAM 使用者摘要頁面上選取新增權限

3c

d.新增 ECS 完全存取政策

選取直接附加現有政策,然後搜尋 ECS_FullAccess。選取 Amazon_FullAccess 政策,然後按一下 檢閱新增權限

3d-new

e.選取內嵌政策

在 IAM 使用者摘要頁面上,選取新增內嵌政策。

3e-new

f.貼上 JSON 政策

選取 JSON 標籤並貼上以下政策:

{
       "Version": "2012-10-17",
       "Statement": [
              {
                     "Action": "ecr:*",
                     "Effect": "Allow",
                     "Resource": "*"
              }
       ]
}

將此政策另存為 「ECR」,然後選取建立政策

 

3f-new

3.啟動 AWS 深度學習基本 AMI 執行個體

在本教學中,我們將在 AWS 深度學習基本 Amazon 機器映像 (AMI) 上使用 AWS Deep Learning Containers,其已隨著必要的相依性而預先封裝,例如 Nvidia 驅動程式、Docker 和 Nvidia-Docker。您可以使用這些套件在任何 AMI 上執行 Deep Learning Containers。

a.瀏覽至 EC2 主控台

返回 AWS 管理主控台主畫面,然後在搜尋列中鍵入 EC2 並選取 EC2 以開啟服務主控台。

step_2

b.啟動 Amazon EC2 執行個體

再次瀏導至 Amazon EC2 主控台,然後選取啟動執行個體按鈕。

step_4a-new

c.選取 AWS 深度學習基本 AMI

選擇左側的 AWS Marketplace 標籤,然後搜尋「深度學習基本 ubuntu」。選取深度學習基本 AMI (Ubuntu)。您還可以選取深度學習基本 AMI (Amazon Linux)

step_4b-new

d.選取執行個體類型

選擇 Amazon EC2 執行個體類型。Amazon Elastic Compute Cloud (EC2) 是一種可用來在雲端建立和執行虛擬機器的 Amazon Web Service。AWS 稱這些虛擬機器為「執行個體」。

我們將在本教學中使用 c5.large 執行個體,不過您可選擇其他執行個體類型,包括 GPU 型 P3 執行個體。

選取 Review and Launch

step_4c-new

e.啟動您的執行個體

檢閱執行個體的詳細資訊,然後選取啟動。

step_4d-new

f.建立新的私有金鑰檔案

下個畫面將會要求您選擇現有的金鑰對或建立新的金鑰對。金鑰對搭配 SSH 之後就可以安全地存取執行個體。AWS 會儲存金鑰對中的公開部分,就像房子的鎖一樣。您下載並使用金鑰對中的私密部分,就像是房子的鑰匙一樣。

選取 Create a new key pair 並指定名稱。接著選取下載金鑰對,然後金鑰儲存在安全的位置。如果遺失金鑰,便無法存取您的執行個體。如果有人取得您的金鑰,就能存取您的執行個體。

如果您曾經建立過仍可存取私有金鑰檔案,則可使用現有的私有金鑰,而不是選取選擇現有金鑰對。

step_4e-new

g.檢視執行個體詳細資訊

選取執行個體 ID ,以在主控台上檢視新建立的 Amazon EC2 的詳細資訊。 

step_4f-new

4.連接您的執行個體

在此步驟中,您將使用 SSH 連接到新啟動的執行個體。以下說明使用 Mac/Linux 環境。如果您使用的是 Windows,請遵循本教學的步驟 4。

a.尋找並複製您的執行個體的公有 DNS

說明標籤下,複製您的 Amazon EC2 執行個體的公有 DNS (IPv4)。

step_5a-new

b.開啟您的命令列終端

在您的終端上,請使用以下命令變更至安全金鑰位在的目錄,接著使用 SSH 連線至執行個體。

cd /Users/<your_username>/Downloads/

chmod 0400 <your .pem filename>

ssh -L localhost:8888:localhost:8888 -i <your .pem filename> ubuntu@<your instance DNS>
step_5b-new

5.登入 Amazon ECR

Amazon Elastic Container Registry (ECR) 上託管 AWS Deep Learning Container 映像,ECR 是一個全受管的 Docker 容器登錄檔,可讓開發人員輕鬆存放、管理以及部署 Docker 容器映像。在此步驟中,您將登入並驗證對 Amazon ECR 的存取權。

a.使用 AWS 憑證設定 EC2 執行個體

您必須提供您的 AWS 存取金鑰 ID 和私密存取金鑰。如果您還沒有此資訊,則可在這裡建立存取金鑰 ID 和私密存取金鑰。

step_6a-new

b.登入 Amazon ECR

您將使用以下命令來登入 Amazon ECR:

$(aws ecr get-login --region us-east-1 --no-include-email --registry-ids 763104351884)

注意:您的命令中必須包括「$」和小括號。完成此步驟後,您將看到「登入成功」。

 

step_6b-new

6.使用 Deep Learning Containers 執行 TensorFlow 培訓

在此步驟中,我們將使用 AWS Deep Learning Container 映像以 Python 3.6 對 CPU 執行個體進行 TensorFlow 培訓。

a.執行 AWS Deep Learning Containers

您現將使用以下命令在 EC2 執行個體上執行 AWS Deep Learning Container 映像。如果本機不存在,則此命令將自動提取 Deep Learning Container 映像。

docker run -it 763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-training:1.13-cpu-py36-ubuntu16.04

注意:取決於映像大小,此步驟可能需要幾分鐘時間。如果您使用的是 GPU 執行個體,請改用「nvidia-docker」,不要使用「 docker」。 成功完成此步驟後,您將為容器輸入 bash 提示。

 

7a-new

b.提取範例模型進行培訓

我們將複製 Keras 儲存庫,其中包括用於培訓模型的範例 python 指令碼。

git clone https://github.com/fchollet/keras.git
7b-new

c.開始培訓

使用以下命令開始進行正式 MNIST CNN 模型培訓:

python keras/examples/mnist_cnn.py

您剛才已成功使用 AWS Deep Learning Container 開始培訓。

 

7c-new

7.終止您的資源

在此步驟中,您將終止在本教學中建立的 Amazon EC2 執行個體。

重要說明:終止非主動使用的資源可降低成本,且為最佳實務。未終止資源可能使您的帳戶產生費用。

a.選取您正在執行的執行個體

在 Amazon EC2 主控台上,選取執行執行個體

 

8a-new

b.終止您的 EC2 執行個體

選取您建立的 EC2 執行個體,然後選擇 Actions > Instance State > Terminate。

8b-new

c.確認終止

系統將要求您確認終止。選擇是,終止

注意:此程序會花幾秒鐘的時間來完成。您的執行個體終止之後,EC2 主控台上的「執行個體狀態」會變為已終止

 

8c-new

恭喜

您已成功使用 AWS Deep Learning Containers 透過 TensorFlow 接受 MNIST CNN 模型培訓。

您可使用 AWS DL Containers 對 Amazon EC2、Amazon ECS、Amazon EKS 和 Kubernetes 上的 CPU 和 GPU 資源進行培訓和推斷。

使用這些穩定的深度學習映像來建置您自己的自訂深度學習環境,這些映像已在 AWS 上針對效能和規模進行優化。

本教學對您有幫助嗎?

感謝您
請告訴我們您喜歡的部分。
抱歉,讓您失望
是有內容過時、令人困擾,或不準確嗎? 請提供意見回饋,協助我們改進此教學課程。