Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
TensorFlow Servieren
TensorFlow Serving
Auf dem tensorflow-serving-api
ist Deep Learning AMI mit Conda vorinstalliert! Sie finden ein Beispielskript zum Trainieren, Exportieren und Bereitstellen eines MNIST Modells. ~/examples/tensorflow-serving/
Um eines dieser Beispiele auszuführen, stellen Sie zunächst AMI mit Conda eine Verbindung zu Ihrem Deep Learning her und aktivieren Sie die TensorFlow Umgebung.
$
source activate tensorflow2_p310
Jetzt setzen Sie die Verzeichnisse auf den Ordner mit den Beispiel-Skripts.
$
cd ~/examples/tensorflow-serving/
Bereitstellen eines vorgeschulten Inception-Modells
Im Folgenden finden Sie ein Beispiel, mit dem Sie die Bereitstellung verschiedener Modelle wie Inception testen können. In der Regel benötigen Sie ein servierbares Modell und Client-Skripte, die bereits auf Ihre heruntergeladen wurden. DLAMI
Bereitstellen und Testen von Inference mit einem Inception-Modell
-
Laden Sie das Modell herunter.
$
curl -O https://s3-us-west-2.amazonaws.com/tf-test-models/INCEPTION.zip -
Entpacken Sie das Modell.
$
unzip INCEPTION.zip -
Laden Sie das Bild eines Huskys herunter.
$
curl -O https://upload.wikimedia.org/wikipedia/commons/b/b5/Siberian_Husky_bi-eyed_Flickr.jpg -
Starten Sie den Server. Beachten Sie, dass Sie in Amazon Linux das Verzeichnis, das für
model_base_path
verwendet wird, von/home/ubuntu
in/home/ec2-user
ändern müssen.$
tensorflow_model_server --model_name=INCEPTION --model_base_path=/home/ubuntu/examples/tensorflow-serving/INCEPTION/INCEPTION --port=9000 -
Wenn der Server im Vordergrund läuft, müssen Sie eine weitere Terminalsitzung starten, um fortzufahren. Öffnen Sie ein neues Terminal und aktivieren Sie es TensorFlow mit
source activate tensorflow2_p310
. Verwenden Sie anschließend den von Ihnen bevorzugten Texteditor, um ein Skript mit folgendem Inhalt zu erstellen. Geben Sie ihr den Nameninception_client.py
. Dieses Skript verwendet einen Image-Dateinamen als Parameter und ruft ein Voraussageergebnis von dem vorgeschulten Modell ab.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()
-
Führen Sie nun das Skript aus und geben Sie Server-Standort sowie Port und Dateinamen des Husky-Bilds als Parameter weiter.
$
python3 inception_client.py --server=localhost:9000 --image Siberian_Husky_bi-eyed_Flickr.jpg
Trainiere und diene einem MNIST Model
Für dieses Tutorial exportieren wir ein Modell und stellen es mit der Anwendung tensorflow_model_server
bereit. Schließlich können Sie den Modell-Server mit einem Beispiel-Client-Skript testen.
Führen Sie das Skript aus, das ein MNIST Modell trainiert und exportiert. Als einziges Argument für das Skript müssen Sie einen Ordnerspeicherort angeben, wo es das Modell speichern kann. Hier können wir es einfach in mnist_model
ablegen. Das Skript erstellt den Ordner für Sie.
$
python mnist_saved_model.py /tmp/mnist_model
Haben Sie Geduld, da dieses Skript kann eine Weile brauchen kann, bevor es etwas ausgibt. Wenn das Training abgeschlossen ist und das Modell schließlich exportiert wurde, sollten Sie Folgendes sehen:
Done training! Exporting trained model to mnist_model/1 Done exporting!
Ihr nächster Schritt besteht darin, den tensorflow_model_server
auszuführen, um das exportierte Modell bereitzustellen.
$
tensorflow_model_server --port=9000 --model_name=mnist --model_base_path=/tmp/mnist_model
Ein Client-Skript wird bereitgestellt, damit Sie den Server testen können.
Wenn Sie einen Test durchführen, müssen Sie ein neues Terminal-Fenster öffnen.
$
python mnist_client.py --num_tests=1000 --server=localhost:9000
Weitere Funktionen und Beispiele
Wenn Sie mehr über TensorFlow Serving erfahren möchten, besuchen Sie die TensorFlow Website
Sie können TensorFlow Serving auch mit Amazon Elastic Inference verwenden. Weitere Informationen finden Sie in der Anleitung zur Verwendung von Elastic Inference with TensorFlow Serving.