TensorFlow Servir - AWS Apprentissage profond (deep learning) AMIs

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.

TensorFlow Servir

TensorFlow Serving est un système de service flexible et performant pour les modèles d'apprentissage automatique.

Le Deep Learning AMI with Conda tensorflow-serving-api est préinstallé ! Vous trouverez un exemple de scripts pour entraîner, exporter et servir un MNIST modèle~/examples/tensorflow-serving/.

Pour exécuter l'un de ces exemples, connectez-vous d'abord à votre Deep Learning AMI avec Conda et activez l' TensorFlow environnement.

$ source activate tensorflow2_p310

Maintenant, accédez au dossier servant les exemples de scripts.

$ cd ~/examples/tensorflow-serving/

Service d'un modèle Inception préformé

Voici un exemple que vous pouvez tester pour servir différents modèles tels qu'Inception. En règle générale, vous devez avoir un modèle servable et des scripts clients déjà téléchargés sur votre DLAMI.

Service et test d'inférence avec un modèle Inception
  1. Téléchargez le modèle.

    $ curl -O https://s3-us-west-2.amazonaws.com/tf-test-models/INCEPTION.zip
  2. Décompactez le modèle.

    $ unzip INCEPTION.zip
  3. Tout d'abord, téléchargez une image de husky.

    $ curl -O https://upload.wikimedia.org/wikipedia/commons/b/b5/Siberian_Husky_bi-eyed_Flickr.jpg
  4. Lancez le serveur. Notez que, pour Amazon Linux, vous devez modifier le répertoire utilisé pour model_base_path : remplacez /home/ubuntu par /home/ec2-user.

    $ tensorflow_model_server --model_name=INCEPTION --model_base_path=/home/ubuntu/examples/tensorflow-serving/INCEPTION/INCEPTION --port=9000
  5. Le serveur étant en cours d'exécution au premier plan, vous devez lancer une autre session de terminal pour continuer. Ouvrez un nouveau terminal et activez-le TensorFlow avecsource activate tensorflow2_p310. Utilisez ensuite votre éditeur de texte préféré pour créer un script avec le contenu suivant. Nommez-la inception_client.py. Ce script prendra comme paramètre un nom de fichier d'image et obtiendra un résultat de prédiction à partir du modèle préformé.

    from __future__ import print_function import grpc import tensorflow as tf import argparse from tensorflow_serving.apis import predict_pb2 from tensorflow_serving.apis import prediction_service_pb2_grpc parser = argparse.ArgumentParser( description='TF Serving Test', formatter_class=argparse.ArgumentDefaultsHelpFormatter ) parser.add_argument('--server_address', default='localhost:9000', help='Tenforflow Model Server Address') parser.add_argument('--image', default='Siberian_Husky_bi-eyed_Flickr.jpg', help='Path to the image') args = parser.parse_args() def main(): channel = grpc.insecure_channel(args.server_address) stub = prediction_service_pb2_grpc.PredictionServiceStub(channel) # Send request with open(args.image, 'rb') as f: # See prediction_service.proto for gRPC request/response details. request = predict_pb2.PredictRequest() request.model_spec.name = 'INCEPTION' request.model_spec.signature_name = 'predict_images' input_name = 'images' input_shape = [1] input_data = f.read() request.inputs[input_name].CopyFrom( tf.make_tensor_proto(input_data, shape=input_shape)) result = stub.Predict(request, 10.0) # 10 secs timeout print(result) print("Inception Client Passed") if __name__ == '__main__': main()
  6. À 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.

    $ python3 inception_client.py --server=localhost:9000 --image Siberian_Husky_bi-eyed_Flickr.jpg

Former et servir un MNIST mannequin

Dans le cadre de ce didacticiel, nous allons exporter un modèle, puis le servir avec l'application tensorflow_model_server. Enfin, vous pouvez tester le modèle de serveur avec un exemple de script client.

Exécutez le script qui entraînera et exportera un MNIST modèle. En tant que seul argument du script, vous devez fournir un emplacement dossier pour qu'il y enregistre le modèle. Pour l'instant, nous le plaçons simplement dans mnist_model. Le script crée le dossier pour vous.

$ python mnist_saved_model.py /tmp/mnist_model

Soyez patient, car le script peut prendre un certain temps avant de fournir une sortie. Lorsque la formation est terminée et que le modèle est enfin exportée, vous devriez voir les éléments suivants :

Done training! Exporting trained model to mnist_model/1 Done exporting!

Votre prochaine étape consiste à exécuter tensorflow_model_server pour servir le modèle exporté.

$ tensorflow_model_server --port=9000 --model_name=mnist --model_base_path=/tmp/mnist_model

Un script client est fourni pour vous permettre de tester le serveur.

Pour le tester, vous devez ouvrir une nouvelle fenêtre de terminal.

$ python mnist_client.py --num_tests=1000 --server=localhost:9000

Autres exemples et fonctions

Si vous souhaitez en savoir plus sur TensorFlow Serving, consultez le TensorFlow site Web.

Vous pouvez également utiliser TensorFlow Serving avec Amazon Elastic Inference. Consultez le guide sur l'utilisation d'Elastic Inference with TensorFlow Serving pour plus d'informations.