

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.

# Service de modèle
<a name="model-serving"></a>

Les options de service de modèles installées sur l'AMI Deep Learning avec Conda sont les suivantes. Cliquez sur une option pour savoir comment l'utiliser.

**Topics**
+ [TensorFlow Servir](tutorial-tfserving.md)
+ [TorchServe](tutorial-torchserve.md)

# TensorFlow Servir
<a name="tutorial-tfserving"></a>

[TensorFlow Serving](https://www.tensorflow.org/tfx/guide/serving) est un système de service flexible et performant pour les modèles d'apprentissage automatique.

Le `tensorflow-serving-api` DLAMI est préinstallé avec un seul cadre DLAMI. Pour utiliser le service Tensorflow, activez d'abord l' TensorFlow environnement.

```
$ source /opt/tensorflow/bin/activate
```

Utilisez ensuite votre éditeur de texte préféré pour créer un script avec le contenu suivant. Nommez-la `test_train_mnist.py`. Ce script est référencé à partir du [TensorFlow didacticiel](https://github.com/tensorflow/docs/blob/master/site/en/tutorials/quickstart/beginner.ipynb) qui formera et évaluera un modèle d'apprentissage automatique par réseau neuronal qui classifie les images.

```
import tensorflow as tf
mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
```

À présent, exécutez le script en transmettant en paramètres l'emplacement et le port du serveur ainsi que le nom de fichier de la photo du husky.

```
$ /opt/tensorflow/bin/python3 test_train_mnist.py
```

 Soyez patient, car le script peut prendre un certain temps avant de fournir une sortie. Une fois la formation terminée, vous devriez voir ce qui suit : 

```
I0000 00:00:1739482012.389276    4284 device_compiler.h:188] Compiled cluster using XLA!  This line is logged at most once for the lifetime of the process.
1875/1875 [==============================] - 24s 2ms/step - loss: 0.2973 - accuracy: 0.9134 
Epoch 2/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.1422 - accuracy: 0.9582
Epoch 3/5
1875/1875 [==============================] - 3s 1ms/step - loss: 0.1076 - accuracy: 0.9687
Epoch 4/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.0872 - accuracy: 0.9731
Epoch 5/5
1875/1875 [==============================] - 3s 1ms/step - loss: 0.0731 - accuracy: 0.9771
313/313 [==============================] - 0s 1ms/step - loss: 0.0749 - accuracy: 0.9780
```

## Autres exemples et fonctions
<a name="tutorial-tfserving-project"></a>

Si vous souhaitez en savoir plus sur TensorFlow Serving, consultez le [TensorFlow site Web](https://www.tensorflow.org/serving/).

# TorchServe
<a name="tutorial-torchserve"></a>

TorchServe est un outil flexible destiné à servir des modèles de deep learning exportés depuis PyTorch. TorchServe est préinstallé avec l'AMI Deep Learning avec Conda. 

Pour plus d'informations sur l'utilisation TorchServe, consultez la [ PyTorchdocumentation de Model Server](https://github.com/pytorch/serve/blob/master/docs/README.md). 

 **Rubriques** 

## Servir un modèle de classification d'images sur TorchServe
<a name="tutorial-torchserve-serving"></a>

Ce didacticiel montre comment utiliser un modèle de classification d'images avec TorchServe. Il utilise un modèle DenseNet -161 fourni par PyTorch. Une fois que le serveur est en cours d'exécution, il écoute les demandes de prédiction. Lorsque vous téléchargez une image, dans ce cas, l'image d'un chaton, le serveur renvoie une prédiction des 5 meilleures classes correspondantes parmi les classes sur lesquelles le modèle a été entraîné. 

**Pour servir un exemple de modèle de classification d'images sur TorchServe**

1. Connectez-vous à une instance Amazon Elastic Compute Cloud (Amazon EC2) avec l'AMI Deep Learning avec Conda v34 ou version ultérieure. 

1. Activez l'`pytorch_p310`environnement. 

   ```
   source activate pytorch_p310
   ```

1. Clonez le TorchServe référentiel, puis créez un répertoire pour stocker vos modèles.  

   ```
   git clone https://github.com/pytorch/serve.git
   mkdir model_store
   ```

1. Archivez le modèle à l'aide de l'archiveur de modèles. Le `extra-files` paramètre utilise un fichier du `TorchServe` dépôt, donc mettez à jour le chemin si nécessaire. Pour plus d'informations sur l'archiveur de modèles, consultez la section [Archiveur de modèles Torch pour](https://github.com/pytorch/serve/blob/master/model-archiver/README.md). TorchServe 

   ```
   wget https://download.pytorch.org/models/densenet161-8d451a50.pth
   torch-model-archiver --model-name densenet161 --version 1.0 --model-file ./serve/examples/image_classifier/densenet_161/model.py --serialized-file densenet161-8d451a50.pth --export-path model_store --extra-files ./serve/examples/image_classifier/index_to_name.json --handler image_classifier
   ```

1. Exécutez TorchServe pour démarrer un point de terminaison. L'ajout `> /dev/null` atténue la sortie du journal. 

   ```
   torchserve --start --ncs --model-store model_store --models densenet161.mar > /dev/null
   ```

1. Téléchargez l'image d'un chaton et envoyez-la au terminal de TorchServe prédiction : 

   ```
   curl -O https://s3.amazonaws.com/model-server/inputs/kitten.jpg
   curl http://127.0.0.1:8080/predictions/densenet161 -T kitten.jpg
   ```

   Le point de terminaison de prédiction renvoie une prédiction au format JSON similaire aux cinq principales prédictions suivantes, où l'image a une probabilité de 47 % de contenir un chat égyptien, suivie d'une probabilité de 46 % qu'elle ait un chat tigré. 

   ```
   {
    "tiger_cat": 0.46933576464653015,
    "tabby": 0.463387668132782,
    "Egyptian_cat": 0.0645613968372345,
    "lynx": 0.0012828196631744504,
    "plastic_bag": 0.00023323058849200606
   }
   ```

1. Lorsque vous avez terminé le test, arrêtez le serveur : 

   ```
   torchserve --stop
   ```

 **Autres exemples** 

TorchServe contient de nombreux exemples que vous pouvez exécuter sur votre instance DLAMI. Vous pouvez les consulter sur [la page d'exemples du référentiel de TorchServe projets](https://github.com/pytorch/serve/tree/master/examples). 

 **Plus d'info** 

 Pour plus de TorchServe documentation, notamment sur la configuration TorchServe avec Docker et les dernières TorchServe fonctionnalités, consultez [la page du TorchServe projet](https://github.com/pytorch/serve) sur GitHub. 