本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Training
本部分演示如何在上运行训练Amazon适用于 Amazon EC2 的 Deep Learning Containers,使用 Apache MXNet、PyTorch、TensorFlow 和 TensorFlow 2 的深度学习容器。
有关 Deep Learning Containers 的完整列表,请参阅Deep Learning Containers 映像.
注意
MKL 用户:读取AmazonDeep Learning Containers 英特尔数学核心库 (MKL) 建议以获得最佳训练或推理性能。
TensorFlow 训练
在您登录 Amazon EC2 实例后,您可以使用以下命令运行 TensorFlow 和 TensorFlow 2 容器。您必须使用nvidia-docker
用于 GPU 图像。
-
对于基于 CPU 的培训,请运行以下命令。
$
docker run -it<CPU training container>
-
对于基于 GPU 的培训,请运行以下命令。
$
nvidia-docker run -it<GPU training container>
上一命令以交互模式运行容器并在容器内提供一个 shell 提示符。然后,您可以运行以下命令以导入 TensorFlow。
$
python
>> import tensorflow
按 Ctrl+D 以返回到 bash 提示符。运行以下命令以开始训练:
git clone https://github.com/fchollet/keras.git
$
cd keras
$
python examples/mnist_cnn.py
后续步骤
要在 Amazon EC2 上使用带有 Deep Learning Containers 的 TensorFlow 了解推理,请参阅TensorFlow 推理.
Apache MXNet(孵化版)训练
要开始利用 Amazon EC2 实例中的 Apache MXNet (孵化) 进行训练,请运行以下命令以运行容器:
-
对于 CPU
$
docker run -it<CPU training container>
-
对于 GPU
$
nvidia-docker run -it<GPU training container>
在容器的终端中,运行以下命令以开始训练。
-
对于 CPU
$
git clone -b v1.4.x https://github.com/apache/incubator-mxnet.git python incubator-mxnet/example/image-classification/train_mnist.py -
对于 GPU
$
git clone -b v1.4.x https://github.com/apache/incubator-mxnet.git python incubator-mxnet/example/image-classification/train_mnist.py --gpus 0
使用 gluonCV 进行 MxNet 培训
在容器的终端中,运行以下命令以开始使用 GluonCV 进行训练。Deep Learning Containers 中包含 GluonCV v0.6.0。
-
对于 CPU
$
git clone -b v0.6.0 https://github.com/dmlc/gluon-cv.git python gluon-cv/scripts/classification/cifar/train_cifar10.py --model resnet18_v1b -
对于 GPU
$
git clone -b v0.6.0 https://github.com/dmlc/gluon-cv.git python gluon-cv/scripts/classification/cifar/train_cifar10.py --num-gpus 1 --model resnet18_v1b
后续步骤
要在 Amazon EC2 上使用 MxNet 与 Deep Learning Containers 一起学习推理,请参阅推理 Apache MXNet(孵化) .
PyTorch 训练
要开始利用 Amazon EC2 实例进行 PyTorch 训练,请使用以下命令来运行容器。您必须使用nvidia-docker
用于 GPU 图像。
-
对于 CPU
$
docker run -it<CPU training container>
-
对于 GPU
$
nvidia-docker run -it<GPU training container>
-
如果您的 docker-ce 版本 19.03 或更高版本,则可以在 docker 中使用 —gpus 标志:
$
docker run -it --gpus<GPU training container>
运行以下命令以开始训练。
-
对于 CPU
$
git clone https://github.com/pytorch/examples.git$
python examples/mnist/main.py --no-cuda -
对于 GPU
$
git clone https://github.com/pytorch/examples.git$
python examples/mnist/main.py
PyTorch 利用 NVIDIA Apex 分发了 GPU 培训
NVIDIA Apex 是 PyTorch 扩展程序,其实用程序可用于混合精度和分布式培训。有关 Apex 提供的实用程序的更多信息,请参阅NVIDIA 顶级网站
要使用 NVIDIA Apex 开始分布式训练,请在 GPU 训练容器的终端中运行以下命令。此示例需要在 Amazon EC2 实例上至少有两个 GPU 才能运行并行分布式培训。
$
git clone https://github.com/NVIDIA/apex.git && cd apex$
python -m torch.distributed.launch --nproc_per_node=2 examples/simple/distributed/distributed_data_parallel.py
PyTorch 的 Amazon S3 插件
Deep Learning Containers 包括一个插件,使您能够将 Amazon S3 存储桶中的数据用于 PyTorch 培训。
-
要开始在 Deep Learning Containers 中使用 Amazon S3 插件,请检查以确保您的 Amazon EC2 实例具有对 Amazon S3 的完全访问权限。创建 IAM 角色授予 Amazon S3 访问 Amazon EC2 实例的权限并将该角色附加到您的实例。您可以使用AmazonS3FullAccess
要么AmazonS3ReadOnlyAccess 政策。 设置您的
AWS_REGION
环境变量与您选择的区域。export AWS_REGION=
us-east-1
-
使用以下命令运行与 Amazon S3 插件兼容的容器。您必须使用
nvidia-docker
用于 GPU 图像。-
对于 CPU
docker run -it
763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:1.8.1-cpu-py36-ubuntu18.04-v1.6
-
对于 GPU
nvidia-docker run -it
763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-training:1.8.1-gpu-py36-cu111-ubuntu18.04-v1.7
-
-
运行以下命令来测试示例。
git clone https://github.com/aws/amazon-s3-plugin-for-pytorch.git cd amazon-s3-plugin-for-pytorch/examples python
s3_cv_iterable_shuffle_example.py
有关更多信息和其他示例,请参阅PyTorch 的 Amazon S3 插件
后续步骤
要在 Amazon EC2 上使用 PyTorch 与 Deep Learning Containers 进行推理,请参阅PyTorch 推理 .