TensorFlow Sirviendo - AWS Deep Learning AMIs

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.

TensorFlow Sirviendo

TensorFlow Serving es un sistema de servicio flexible y de alto rendimiento para modelos de aprendizaje automático.

¡tensorflow-serving-apiViene preinstalado con Deep Learning AMI con Conda! Encontrará un ejemplo de scripts para entrenar, exportar y servir un MNIST modelo. ~/examples/tensorflow-serving/

Para ejecutar cualquiera de estos ejemplos, primero conéctese a su Deep Learning AMI con Conda y active el TensorFlow entorno.

$ source activate tensorflow2_p310

Ahora, desplácese a los directorios que contienen la carpeta de scripts de ejemplo.

$ cd ~/examples/tensorflow-serving/

Cómo servir un modelo de incepción

A continuación, se muestra un ejemplo que puede probar para servir distintos modelos como Inception. Por regla general, necesita un modelo servible y scripts de cliente descargados previamente en la DLAMI.

Cómo servir y probar la inferencia con un modelo de incepción
  1. Descargue el modelo.

    $ curl -O https://s3-us-west-2.amazonaws.com/tf-test-models/INCEPTION.zip
  2. Descomprima el modelo.

    $ unzip INCEPTION.zip
  3. Descargue una imagen de un perro esquimal.

    $ curl -O https://upload.wikimedia.org/wikipedia/commons/b/b5/Siberian_Husky_bi-eyed_Flickr.jpg
  4. Lance el servidor. Tenga en cuenta que, para Amazon Linux, debe cambiar el directorio que se utiliza para model_base_path de /home/ubuntu a /home/ec2-user.

    $ tensorflow_model_server --model_name=INCEPTION --model_base_path=/home/ubuntu/examples/tensorflow-serving/INCEPTION/INCEPTION --port=9000
  5. Con el servidor ejecutándose en primer plano, tendrá que lanzar otra sesión de terminal para continuar. Abre una nueva terminal y actívala TensorFlow consource activate tensorflow2_p310. A continuación, utilice su editor de texto preferido para crear un script que tenga el siguiente contenido. Denomínelo inception_client.py. Este script tomará un nombre de archivo de imagen como parámetro y obtendrá un resultado de predicción a partir del modelo entrenado previamente.

    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. Ahora ejecute el script pasando la ubicación y el puerto del servidor y el nombre de archivo de la foto del perro esquimal como parámetros.

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

Entrena y sirve a un MNIST modelo

En este tutorial vamos a exportar un modelo y después lo distribuiremos con la aplicación tensorflow_model_server. Por último, puede probar el servidor del modelo con un script del cliente de ejemplo.

Ejecute el script que entrenará y exportará un MNIST modelo. Como único argumento del script debe proporcionar una ubicación de carpeta para guardar el modelo. Por ahora, lo pondremos en mnist_model. El script creará la carpeta por usted.

$ python mnist_saved_model.py /tmp/mnist_model

Sea paciente, ya que el script puede tardar un rato en proporcionar resultados. Cuando se haya completado el entrenamiento y se haya exportado el modelo, debería ver lo siguiente:

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

El siguiente paso consiste en ejecutar tensorflow_model_server para distribuir el modelo exportado.

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

Se proporciona un script del cliente para probar el servidor.

Para probarlo, tendrá que abrir una nueva ventana de la terminal.

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

Más características y ejemplos

Si está interesado en obtener más información sobre TensorFlow Serving, visite el TensorFlow sitio web.

También puede usar TensorFlow Serving with Amazon Elastic Inference. Consulta la guía sobre cómo usar Elastic Inference with TensorFlow Serving para obtener más información.