

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Model serving
<a name="model-serving"></a>

Di seguito sono riportate le opzioni di model serving installate sull'AMI Deep Learning con Conda. Fai clic su quella desiderata per informazioni su come utilizzarla.

**Topics**
+ [

# TensorFlow Servire
](tutorial-tfserving.md)
+ [

# TorchServe
](tutorial-torchserve.md)

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

[TensorFlow Serving](https://www.tensorflow.org/tfx/guide/serving) è un sistema di servizio flessibile e ad alte prestazioni per modelli di apprendimento automatico.

`tensorflow-serving-api`È preinstallato con DLAMI a framework singolo. Per utilizzare tensorflow serving, attiva prima l'ambiente. TensorFlow 

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

Quindi utilizza l'editor di testo preferito per creare uno script che ha i seguenti contenuti. Denominalo `test_train_mnist.py`. Questo script è citato in [TensorFlow Tutorial](https://github.com/tensorflow/docs/blob/master/site/en/tutorials/quickstart/beginner.ipynb) che addestrerà e valuterà un modello di apprendimento automatico di rete neurale che classifica le immagini.

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

Ora esegui lo script fornendo la posizione e la porta del server e il nome della foto dell'husky come parametri.

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

 L'esecuzione dello script può durare alcuni minuti. Una volta completato l'addestramento, dovresti vedere quanto segue: 

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

## Ulteriori funzionalità ed esempi
<a name="tutorial-tfserving-project"></a>

Se sei interessato a saperne di più su TensorFlow Serving, consulta il [TensorFlow sito web](https://www.tensorflow.org/serving/).

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

TorchServe è uno strumento flessibile per servire modelli di deep learning che sono stati esportati da PyTorch. TorchServe viene preinstallato con l'AMI Deep Learning con Conda. 

Per ulteriori informazioni sull'utilizzo TorchServe, consulta [Model Server for PyTorch](https://github.com/pytorch/serve/blob/master/docs/README.md) Documentation. 

 **Argomenti** 

## Offri un modello di classificazione delle immagini su TorchServe
<a name="tutorial-torchserve-serving"></a>

Questo tutorial mostra come utilizzare un modello di classificazione delle immagini con TorchServe. Utilizza un modello DenseNet -161 fornito da PyTorch. Una volta che il server è in esecuzione, ascolta le richieste di previsione. Quando carichi un'immagine, in questo caso l'immagine di un gattino, il server restituisce una previsione delle 5 migliori classi corrispondenti tra le classi su cui è stato addestrato il modello. 

**Per fornire un esempio di modello di classificazione delle immagini su TorchServe**

1. Connettiti a un'istanza Amazon Elastic Compute Cloud (Amazon EC2) con Deep Learning AMI con Conda v34 o versione successiva. 

1. Attiva l'ambiente. `pytorch_p310` 

   ```
   source activate pytorch_p310
   ```

1. Clona il TorchServe repository, quindi crea una directory per archiviare i tuoi modelli.  

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

1. Archivia il modello utilizzando il model archiver. Il `extra-files` parametro utilizza un file del `TorchServe` repository, quindi aggiorna il percorso se necessario. Per ulteriori informazioni sul model archiver, vedere [Torch](https://github.com/pytorch/serve/blob/master/model-archiver/README.md) Model archiver for. 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. Esegui TorchServe per avviare un endpoint. L'aggiunta `> /dev/null` disattiva l'output del registro. 

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

1. Scaricate l'immagine di un gattino e inviatela all'endpoint TorchServe previsto: 

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

   L'endpoint di previsione restituisce una previsione in JSON simile alle prime cinque previsioni seguenti, in cui l'immagine ha una probabilità del 47% di contenere un gatto egiziano, seguita da una probabilità del 46% che abbia un gatto soriano. 

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

1. Al termine del test, ferma il server: 

   ```
   torchserve --stop
   ```

 **Altri esempi** 

TorchServe contiene una serie di esempi che è possibile eseguire sulla propria istanza DLAMI. È possibile visualizzarli nella pagina [degli esempi del repository TorchServe del progetto](https://github.com/pytorch/serve/tree/master/examples). 

 **Maggiori informazioni** 

 Per ulteriore TorchServe documentazione, incluso come configurare Docker e TorchServe le TorchServe funzionalità più recenti, consulta [la pagina del TorchServe progetto](https://github.com/pytorch/serve) su GitHub. 