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
¡tensorflow-serving-api
Viene 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
-
Descargue el modelo.
$
curl -O https://s3-us-west-2.amazonaws.com/tf-test-models/INCEPTION.zip -
Descomprima el modelo.
$
unzip INCEPTION.zip -
Descargue una imagen de un perro esquimal.
$
curl -O https://upload.wikimedia.org/wikipedia/commons/b/b5/Siberian_Husky_bi-eyed_Flickr.jpg -
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 -
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 con
source activate tensorflow2_p310
. A continuación, utilice su editor de texto preferido para crear un script que tenga el siguiente contenido. Denomíneloinception_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()
-
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.