

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Le ARM64 DLAMI
<a name="tutorial-arm64"></a>

AWS ARM64 DLAMIs Les GPU sont conçus pour fournir des performances élevées et une rentabilité élevées pour les charges de travail liées au deep learning. Plus précisément, le type d'instance G5g intègre le [processeur AWS Graviton2](https://aws.amazon.com/ec2/graviton/) basé sur ARM64, qui a été entièrement conçu AWS et optimisé pour la façon dont les clients exécutent leurs charges de travail dans le cloud. AWS ARM64 DLAMIs Les GPU sont préconfigurés avec Docker, NVIDIA Docker, NVIDIA Driver, CUDA, cuDNN, NCCL, ainsi que des frameworks d'apprentissage automatique populaires tels que et. TensorFlow PyTorch

Avec le type d'instance G5g, vous pouvez tirer parti des avantages en termes de prix et de performances de Graviton2 pour déployer des modèles d'apprentissage profond accélérés par GPU à un coût nettement inférieur à celui des instances x86 avec accélération GPU.

## Sélectionnez un ARM64 DLAMI
<a name="tutorial-arm64-select-dlami"></a>

Lancez une [instance G5g](https://aws.amazon.com/ec2/instance-types/g5g/) avec le ARM64 DLAMI de votre choix. 

Pour step-by-step obtenir des instructions sur le lancement d'un DLAMI, [reportez-vous à la section Lancement et configuration](https://docs.aws.amazon.com/dlami/latest/devguide/launch-config.html) d'un DLAMI. 

Pour obtenir la liste des versions les plus récentes ARM64 DLAMIs, consultez les [notes de mise à jour relatives au DLAMI](https://docs.aws.amazon.com/dlami/latest/devguide/appendix-ami-release-notes.html).

## Démarrer
<a name="tutorial-arm64-get-started"></a>

Les rubriques suivantes expliquent comment commencer à utiliser le ARM64 DLAMI. 

**Topics**
+ [Sélectionnez un ARM64 DLAMI](#tutorial-arm64-select-dlami)
+ [Démarrer](#tutorial-arm64-get-started)
+ [Utilisation du ARM64 PyTorch DLAMI du GPU](tutorial-arm64-pytorch.md)

# Utilisation du ARM64 PyTorch DLAMI du GPU
<a name="tutorial-arm64-pytorch"></a>

 AWS Apprentissage profond (deep learning) AMIs Il est prêt à être utilisé avec le processeur Arm64 et est GPUs optimisé pour. PyTorch Le ARM64 PyTorch DLAMI GPU inclut un environnement Python préconfiguré [PyTorch](https://aws.amazon.com/pytorch)avec [TorchVision](https://pytorch.org/vision/stable/index.html), et pour les cas d'utilisation de l'apprentissage profond, de la formation [TorchServe](https://pytorch.org/serve/)et de l'inférence.

**Topics**
+ [Vérifier l'environnement PyTorch Python](#tutorial-arm64-pytorch-environment)
+ [Exécutez un exemple d'entraînement avec PyTorch](#tutorial-arm64-pytorch-training)
+ [Exécutez un échantillon d'inférence avec PyTorch](#tutorial-arm64-pytorch-inference)

## Vérifier l'environnement PyTorch Python
<a name="tutorial-arm64-pytorch-environment"></a>

Connectez-vous à votre instance G5g et activez l'environnement Conda de base à l'aide de la commande suivante :

```
source activate base
```

Votre invite de commande doit indiquer que vous travaillez dans l'environnement Conda de base, qui contient PyTorch TorchVision, et d'autres bibliothèques.

```
(base) $
```

Vérifiez les trajectoires d'outils par défaut de l' PyTorch environnement :

```
(base) $ which python
(base) $ which pip
(base) $ which conda
(base) $ which mamba
>>> import torch, torchvision
>>> torch.__version__
>>> torchvision.__version__
>>> v = torch.autograd.Variable(torch.randn(10, 3, 224, 224))
>>> v = torch.autograd.Variable(torch.randn(10, 3, 224, 224)).cuda()
>>> assert isinstance(v, torch.Tensor)
```

## Exécutez un exemple d'entraînement avec PyTorch
<a name="tutorial-arm64-pytorch-training"></a>

Exécutez un exemple de tâche de formation MNIST :

```
git clone https://github.com/pytorch/examples.git
cd examples/mnist
python main.py
```

Votre sortie doit ressembler à ce qui suit :

```
...
Train Epoch: 14 [56320/60000 (94%)]    Loss: 0.021424
Train Epoch: 14 [56960/60000 (95%)]    Loss: 0.023695
Train Epoch: 14 [57600/60000 (96%)]    Loss: 0.001973
Train Epoch: 14 [58240/60000 (97%)]    Loss: 0.007121
Train Epoch: 14 [58880/60000 (98%)]    Loss: 0.003717
Train Epoch: 14 [59520/60000 (99%)]    Loss: 0.001729
Test set: Average loss: 0.0275, Accuracy: 9916/10000 (99%)
```

## Exécutez un échantillon d'inférence avec PyTorch
<a name="tutorial-arm64-pytorch-inference"></a>

Utilisez les commandes suivantes pour télécharger un modèle densenet161 préentraîné et exécuter l'inférence en utilisant : TorchServe

```
# Set up TorchServe
cd $HOME
git clone https://github.com/pytorch/serve.git
mkdir -p serve/model_store
cd serve

# Download a pre-trained densenet161 model
wget https://download.pytorch.org/models/densenet161-8d451a50.pth >/dev/null

# Save the model using torch-model-archiver
torch-model-archiver --model-name densenet161 \
    --version 1.0 \
    --model-file examples/image_classifier/densenet_161/model.py \
    --serialized-file densenet161-8d451a50.pth \
    --handler image_classifier \
    --extra-files examples/image_classifier/index_to_name.json  \
    --export-path model_store 

# Start the model server
torchserve --start --no-config-snapshots \
    --model-store model_store \
    --models densenet161=densenet161.mar &> torchserve.log

# Wait for the model server to start
sleep 30

# Run a prediction request
curl http://127.0.0.1:8080/predictions/densenet161 -T examples/image_classifier/kitten.jpg
```

Votre sortie doit ressembler à ce qui suit :

```
{
  "tiger_cat": 0.4693363308906555,
  "tabby": 0.4633873701095581,
  "Egyptian_cat": 0.06456123292446136,
  "lynx": 0.0012828150065615773,
  "plastic_bag": 0.00023322898778133094
}
```

Utilisez les commandes suivantes pour annuler l'enregistrement du modèle densenet161 et arrêter le serveur :

```
curl -X DELETE http://localhost:8081/models/densenet161/1.0
torchserve --stop
```

Votre sortie doit ressembler à ce qui suit :

```
{
  "status": "Model \"densenet161\" unregistered"
}
TorchServe has stopped.
```