

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

AWS ARM64 DLAMIs Las GPU están diseñadas para proporcionar un alto rendimiento y rentabilidad para las cargas de trabajo de aprendizaje profundo. En concreto, el tipo de instancia G5G incluye el [procesador AWS Graviton2](https://aws.amazon.com/ec2/graviton/) basado en ARM64, que se creó desde cero AWS y se optimizó para la forma en que los clientes ejecutan sus cargas de trabajo en la nube. AWS ARM64 DLAMIs Las GPU están preconfiguradas con Docker, NVIDIA Docker, NVIDIA Driver, CUDA, cuDNN, NCCL, así como con marcos de aprendizaje automático populares como y. TensorFlow PyTorch

Con el tipo de instancia G5g, puede aprovechar las ventajas de precio y rendimiento de Graviton2 para implementar modelos de aprendizaje profundo acelerados por GPU a un costo significativamente menor en comparación con las instancias basadas en x86 con aceleración por GPU.

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

Lance una [instancia G5G](https://aws.amazon.com/ec2/instance-types/g5g/) con la ARM64 DLAMI de su elección. 

Para step-by-step obtener instrucciones sobre el lanzamiento de una DLAMI, [consulte Lanzamiento y configuración](https://docs.aws.amazon.com/dlami/latest/devguide/launch-config.html) de una DLAMI. 

Para obtener una lista de las más recientes ARM64 DLAMIs, consulte las [notas de la versión de DLAMI](https://docs.aws.amazon.com/dlami/latest/devguide/appendix-ami-release-notes.html).

## Introducción
<a name="tutorial-arm64-get-started"></a>

En los temas siguientes se muestra cómo empezar a utilizar la ARM64 DLAMI. 

**Topics**
+ [Seleccione un ARM64 DLAMI](#tutorial-arm64-select-dlami)
+ [Introducción](#tutorial-arm64-get-started)
+ [Uso de la ARM64 GPU PyTorch DLAMI](tutorial-arm64-pytorch.md)

# Uso de la ARM64 GPU PyTorch DLAMI
<a name="tutorial-arm64-pytorch"></a>

 AWS Deep Learning AMIs Está lista para usarse con un procesador Arm64 y viene optimizada para ello. GPUs PyTorch La ARM64 GPU PyTorch DLAMI incluye un entorno Python preconfigurado [PyTorch](https://aws.amazon.com/pytorch)con y para casos de uso de [TorchVision](https://pytorch.org/vision/stable/index.html)inferencia [TorchServe](https://pytorch.org/serve/)y entrenamiento de aprendizaje profundo.

**Topics**
+ [Verificar el entorno de PyTorch Python](#tutorial-arm64-pytorch-environment)
+ [Ejecute un ejemplo de entrenamiento con PyTorch](#tutorial-arm64-pytorch-training)
+ [Ejecute un ejemplo de inferencia con PyTorch](#tutorial-arm64-pytorch-inference)

## Verificar el entorno de PyTorch Python
<a name="tutorial-arm64-pytorch-environment"></a>

Conéctese a su instancia de G5g y active el entorno base de Conda con el siguiente comando:

```
source activate base
```

La línea de comandos debe indicar que está trabajando en el entorno base de Conda, que contiene PyTorch TorchVision, y otras bibliotecas.

```
(base) $
```

Compruebe las rutas de herramientas predeterminadas del PyTorch entorno:

```
(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)
```

## Ejecute un ejemplo de entrenamiento con PyTorch
<a name="tutorial-arm64-pytorch-training"></a>

Ejecute un ejemplo de trabajo de entrenamiento sobre MNIST:

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

El resultado debería tener un aspecto similar al siguiente:

```
...
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%)
```

## Ejecute un ejemplo de inferencia con PyTorch
<a name="tutorial-arm64-pytorch-inference"></a>

Utilice los siguientes comandos para descargar un modelo densenet161 previamente entrenado y ejecutar la inferencia mediante: 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
```

El resultado debería tener un aspecto similar al siguiente:

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

Utilice los siguientes comandos para anular el registro del modelo densenet161 y detener el servidor:

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

El resultado debería tener un aspecto similar al siguiente:

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