ฝึกอบรมโมเดลการเรียนรู้เชิงลึก

กับ AWS Deep Learning Containers บน Amazon EC2

AWS Deep Learning Containers (DL Containers) คือภาพด็อคเกอร์ที่ติดตั้งไว้แล้วพร้อมกับกรอบการเรียนรู้เชิงลึกเพื่อให้ง่ายต่อการปรับใช้สภาพแวดล้อมของแมชชีนเลิร์นนิ่ง แบบกำหนดเองได้อย่างรวดเร็ว โดยเปิดโอกาสให้คุณข้ามกระบวนการที่ซับซ้อนในการสร้างและปรับสภาพแวดล้อมของคุณใหม่ตั้งแต่ต้น

เมื่อใช้ AWS DL Containers นักพัฒนาและนักวิทยาศาสตร์ด้านข้อมูลจะสามารถเพิ่มแมชชีนเลิร์นนิ่งเข้าไปในแอปพลิเคชันแบบ containerized ที่ใช้บน Amazon Elastic Container Service for Kubernetes (Amazon EKS), self-managed Kubernetes, Amazon Elastic Container Service (Amazon ECS), และ Amazon EC2 ได้อย่างรวดเร็ว

ในบทแนะนำสอนการใช้งานนี้ คุณจะได้ฝึกฝนโมเดลแมชชีนเลิร์นนิ่งของ TensorFlow บนอินสแตนซ์ Amazon EC2 โดยใช้ AWS Deep Learning Containers

เกี่ยวกับบทช่วยสอนนี้
เวลา 10 นาที                                           
ค่าใช้จ่าย น้อยกว่า 500,000 USD
กรณีใช้งาน Machine Learning
ผลิตภัณฑ์ AWS Deep Learning Containers, Amazon EC2, Amazon ECR
ผู้เข้าร่วม นักพัฒนา, นักวิทยาศาสตร์ข้อมูล
ระดับ ผู้เริ่มต้น
อัปเดตล่าสุด 27 มีนาคม 2019

1. สมัครใช้งาน AWS

คุณจะต้องมีบัญชี AWS เพื่อทำตามบทแนะนำสอนการใช้งานนี้ ไม่มีการเรียกเก็บค่าใช้จ่ายเพิ่มเติมสำหรับการใช้งาน AWS Deep Learning Containers กับบทแนะนำสอนการใช้งานนี้ - คุณชำระเฉพาะสำหรับอินสแตนซ์ Amazon c5.large ที่ใช้ในบทแนะนำสอนการใช้งานนี้ ซึ่งจะน้อยกว่า $1 หลังจากดำเนินการตามขั้นตอนการจบเมื่อเสร็จสิ้นบทแนะนำนี้ 

2. เพิ่มการอนุญาตสำหรับเข้าถึง Amazon ECR

ภาพ Amazon Deep Learning Container อยู่บน Amazon Elastic Container Registry (ECR), คอนเทนเนอร์ Docker ที่มีการจัดการอย่างเต็มรูปแบบ ที่ทำให้นักพัฒนาสามารถจัดเก็บ จัดการ และปรับใช้ภาพคอนเทนเนอร์ Docker ได้อย่างง่ายดาย ในขั้นตอนนี้ คุณจะได้รับสิทธิ์ผู้ใช้ IAM ที่มีอยู่ให้เข้าสู่ Amazon ECR (โดยใช้ AmazonECS_FullAccess Policy)

หากคุณไม่มีสิทธิ์ผู้ใช้ IAM โปรดดูข้อมูลเพิ่มเติมที่เอกสารประกอบ IAM

ก. ไปที่คอนโซล IAM

เปิด AWS Management Console เพื่อให้คุณเปิดคำแนะนำทีละขั้นตอนนี้ค้างไว้ได้ เมื่อหน้าจอโหลดข้อมูลแล้ว ให้ใส่ชื่อผู้ใช้และรหัสผ่านของคุณเพื่อเริ่มต้นใช้งาน จากนั้นพิมพ์ IAM  ในแถบค้นหาและเลือกIAM  เพื่อเปิดคอนโซลบริการ

AWS Management Console

ข. เลือกผู้ใช้

ในหน้าจอนำทางที่ด้านซ้าย ให้เลือก ผู้ใช้

3b-new

ค. เพิ่มสิทธิ์

ตอนนี้คุณจะเพิ่มสิทธิ์ให้แก่ผู้ใช้ IAM ใหม่ที่คุณสร้างขึ้น หรือแก่ผู้ใช้ IAM ที่มีอยู่ เลือก Add Permissions บนหน้าสรุปผู้ใช้ IAM

3c

ง. เพิ่มนโยบายการเข้าถึง ECS เต็มรูปแบบ

เลือกแนบนโยบายที่มีอยู่แล้วโดยตรง แล้วค้นหาECS_FullAccess เลือกนโยบายAmazon_FullAccess แล้วคลิกไป ตรวจสอบ และ เพิ่มสิทธิ์

3d-new

จ. เพิ่มนโยบายแบบอินไลน์

เลือก เพิ่มนโยบายแบบอินไลน์ บนหน้าสรุปผู้ใช้ IAM

3e-new

ฉ. วางนโยบาย JSON

เลือกแถบJSON แล้ววางนโยบายดังต่อไปนี้:

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

บันทึกนโยบายนี้เป็น ‘ECR’ แล้วเลือกสร้างนโยบาย

 

3f-new

3. เปิดใช้งานอินสแตนซ์ AWS Deep Learning Base AMI

ในบทแนะนำนี้ เราจะใช้ AWS Deep Learning Containers บน AWS Deep Learning Base Amazon Machine Images (AMIs) ซึ่งมาพร้อมกับสิ่งที่จำเป็นต้องใช้งานอย่าง Nvidia drivers, docker, และ nvidia-docker คุณสามารถใช้งาน Deep Learning Containers บน AMI ใดก็ได้ด้วยแพ็คเกจเหล่านี้

ก. ไปที่คอนโซล EC2

กลับไปยังหน้าจอแรกของ AWS Management Console แล้วพิมพ์ EC2 ในแถบค้นหา แล้วเลือกEC2 เพื่อเปิดคอนโซลบริการ

step_2

ข. เปิดใช้งาน Amazon EC2 Instance

ไปยังคอนโซล Amazon EC2 อีกครั้ง แล้วเลือกปุ่มเปิดใช้อินสแตนซ์

step_4a-new

ค. เลือก AWS Deep Learning Base AMI

เลือกแท็บ AWS Marketplace ทางด้านซ้าย แล้วค้นหา ‘deep learning ubuntu’ เลือก Deep Learning Base AMI (Ubuntu) คุณยังสามารถเลือก Deep Learning Base AMI (Amazon Linux)ด้วย

step_4b-new

ง. เลือกประเภทอินสแตนซ์

เลือกประเภทอินสแตนซ์ Amazon EC2 Amazon Elastic Compute Cloud (EC2) คือ Amazon Web Service ที่คุณใช้เพื่อสร้างและรันเครื่องเสมือนในระบบคลาวด์ AWS เรียกเครื่องเสมือนเหล่านี้ว่า ‘อินสแตนซ์’

สำหรับบทแนะนำนี้ เราใช้อินสแตนซ์ c5.large แต่คุณสามารถเลือกจากประเภทอินสแตนซ์เพิ่มเติม ซึ่งรวมถึงอินสแตนซ์ P3 ที่ใช้ GPU ได้

เลือก ตรวจสอบและเปิดใช้งาน

step_4c-new

จ. จากนั้นเปิดใช้งานอินสแตนซ์ของคุณ

ตรวจสอบรายละเอียดอินสแตนซ์ของคุณแล้วเลือก เปิดใช้งาน

step_4d-new

ฉ. สร้างไฟล์คีย์ส่วนตัวใหม่

ในหน้าจอถัดไป ระบบจะขอให้คุณเลือกคู่คีย์ที่มีอยู่เดิมหรือสร้างคู่คีย์ใหม่ คู่คีย์จะใช้ในการเข้าถึงอินสแตนซ์ของคุณอย่างปลอดภัยโดยใช้ SSH AWS จะจัดเก็บส่วนที่เป็นสาธารณะของคู่คีย์ซึ่งทำหน้าที่เป็นเหมือนล็อกของบ้าน คุณจะดาวน์โหลดและใช้ส่วนที่เป็นส่วนตัวของคู่คีย์ซึ่งเป็นเหมือนกุญแจบ้าน

เลือก สร้างคู่คีย์ใหม่ แล้วตั้งชื่อ แล้วเลือก ดาวน์โหลดคู่คีย์ แล้วเก็บคีย์ของคุณในตำแหน่งที่ปลอดภัย ถ้าคุณทำคีย์หาย คุณจะไม่สามารถเข้าถึงอินสแตนซ์ของคุณได้ หากมีผู้เข้าถึงคีย์ของคุณ พวกเขาจะสามารถเข้าถึงอินสแตนซ์ของคุณได้

หากคุณเพิ่งสร้างไฟล์คีย์เมื่อไม่นานมานี้และยังสามารถเข้าถึงได้ คุณจะสามารถใช้คีย์ส่วนตัวที่มีอยู่แทนการเลือกเลือกคู่คีย์ที่มีอยู่ ได้

step_4e-new

ช. ดูรายละเอียดอินสแตนซ์

เลือก ID อินสแตนซ์ เพื่อดูรายละเอียดของ Amazon EC2 ที่คุณเพิ่งสร้างบนคอนโซล 

step_4f-new

4. เชื่อมต่อกับอินสแตนซ์ของคุณ

ในขั้นตอนนี้ คุณจะเชื่อมต่อกับอินสแตนซ์ที่เพิ่งสร้างขึ้นใหม่โดยใช้ SSH คำแนะนำเบื้องล่างใช้สภาพแวดล้อม Mac / Linux หากคุณใช้ Windows ทำตามขั้นตอนที่ 4 ในบทแนะนำนี้

ก. หาและคัดลอก DNS สาธารณะของอินสแตนซ์ของคุณ

ใต้แถบ คำอธิบาย ให้คัดลอก DNS (IPv4) สาธารณะของอินสแตนซ์ Amazon EC2

step_5a-new

ข. เปิดเทอร์มินัลบรรทัดคำสั่งของคุณ

ในเทอร์มินัล ให้ใช้คำสั่งต่อไปนี้เพื่อเปลี่ยนเป็นไดเรกทอรีที่คีย์ความปลอดภัยของคุณตั้งอยู่ จากนั้นเชื่อมต่อกับอินสแตนซ์ของคุณโดยใช้ 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 Deep Learning Container อยู่บน Amazon Elastic Container Registry (ECR), คอนเทนเนอร์ Docker ที่มีการจัดการอย่างเต็มรูปแบบ ที่ทำให้นักพัฒนาสามารถจัดเก็บ จัดการ และปรับใช้ภาพคอนเทนเนอร์ Docker ได้อย่างง่ายดาย ในขั้นตอนนี้ คุณจะล็อกอินและตรวจสอบการเข้าสู่ Amazon ECR

ก. กำหนดค่าอินสแตนซ์ EC2 ของคุณด้วยข้อมูล AWS ประจำตัวของคุณ

คุณต้องแสดงรหัสคีย์การเข้าถึง AWS และคีย์ลับการเข้าถึง หากคุณไม่มีข้อมูลนี้ สามารถสร้างรหัสคีย์การเข้าถึง และคีย์ลับการเข้าถึง ได้ที่นี่

step_6a-new

ข. เข้าสู่ระบบ Amazon ECR

คุณจะใช้คำสั่งเบื้องล่างเพื่อเข้าสู่ Amazon ECR:

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

หมายเหตุ: คุณต้องมี ‘$’ กับวงเล็บในคำสั่งของคุณ เมื่อขั้นตอนนี้จบลง คุณจะเห็น ‘ล็อกอินสำเร็จ’

 

step_6b-new

6. รันการฝึก TensorFlow ด้วย Deep Learning Containers

ในขั้นตอนนี้ เราจะใช้ภาพ AWS Deep Learning Container ในการฝึก TensorFlow บนอินสแตนซ์ CPU ด้วย Python 3.6

ก. AWS Deep Learning Containers

ในตอนนี้คุณจะรันภาพ AWS Deep Learning Container บนอินสแตนซ์ EC2 ของคุณโดยใช้คำสั่งด้านล่างนี้ คำสั่งนี้จะดึงภาพ 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’ เมื่อขั้นตอนนี้เสร็จสิ้นลง คุณจะเข้าสู่การแจ้งเตือนแบบแบชสำหรับคอนเทนเนอร์ของคุณ

 

7a-new

ข. ดึงโมเดลตัวอย่างเพื่อฝึก

เราจะโคลน Keras repository ซึ่งมีตัวอย่างของสคริปต์ Python เพื่อฝึกโมเดล

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

ค. เริ่มต้นการฝึก

เริ่มต้นฝึกโมเดล MNIST CNN มาตรฐานด้วยคำสั่งดังต่อไปนี้:

python keras/examples/mnist_cnn.py

คุณประสบความสำเร็จในการฝึกด้วย AWS Deep Learning Container แล้ว

 

7c-new

7. ยกเลิกทรัพยากรของคุณ

ในขั้นตอนนี้ คุณจะเลิกใช้อินสแตนซ์ Amazon EC2 ที่คุณสร้างขึ้นในระหว่างบทแนะนำสอนการใช้งานนี้

ข้อสำคัญ: การยกเลิกทรัพยากรที่ไม่ได้ใช้งานจะช่วยลดต้นทุนและเป็นแนวปฏิบัติที่ดีที่สุด การไม่ยกเลิกทรัพยากรของคุณอาจทำให้มีการเรียกเก็บค่าบริการไปยังบัญชีของคุณ

ก. เลือกอินสแตนซ์ที่เรียกใช้อยู่ของคุณ

บนคอนโซล Amazon EC2 ให้เลือก อินสแตนซ์ที่เรียกใช้อยู่

 

8a-new

ข. ยกเลิก EC2 instance ของคุณ

เลือก EC2 instance ที่คุณสร้างไว้ แล้วเลือก การดำเนินการ > สถานะอินสแตนซ์ > ยกเลิก

8b-new

ค. ยืนยันการยกเลิกใช้งาน

คุณจะถูกขอให้ยืนยันการยกเลิกของคุณ เลือก ใช่ ยกเลิก

หมายเหตุ: กระบวนการนี้อาจใช้เวลาหลายวินาทีจึงจะเสร็จสมบูรณ์ เมื่ออินสแตนซ์ของคุณถูกยกเลิกการใช้งานแล้ว สถานะอินสแตนซ์บน EC2 Console ของคุณจะเปลี่ยนเป็น ยกเลิกแล้ว

 

8c-new

ขอแสดงความยินดี

คุณประสบความสำเร็จในการฝึกโมเดล MNIST CNN ด้วย TensorFlow โดยใช้ AWS Deep Learning Containers

คุณสามารถใช้ AWS DL Containers ในการฝึกอบรม และการอนุมานบน CPU และทรัพยากร GPU บน Amazon EC2, Amazon ECS, Amazon EKS, และ Kubernetes

ใช้ภาพการเรียนรู้เชิงลึกที่เหมาะสมเหล่านี้ ซึ่งได้รับการปรับให้มีประสิทธิภาพและมีขนาดที่เหมาะสมบน AWS เพื่อสร้างสภาพแวดล้อมการเรียนรู้เชิงลึกแบบเฉพาะตัวของคุณ

บทช่วยสอนนี้เป็นประโยชน์หรือไม่

ขอบคุณ
โปรดบอกเราว่าคุณชอบอะไร
Close
ขออภัยที่ทำให้คุณผิดหวัง
มีเนื้อหาที่ไม่อัปเดต คลุมเครือ หรือไม่ถูกต้องหรือไม่ โปรดช่วยเราในการปรับปรุงบทช่วยสอนนี้โดยการให้คำติชม
Close