Lobe ist ein Tool, mit dem sich auf einfache Weise von Microsoft veröffentlichte Modelle für maschinelles Lernen erstellen lassen. Der folgende Artikel erklärt die Verwendung. Ich habe "Lobe" ausprobiert, wodurch es einfach ist, von Microsoft veröffentlichte Modelle für maschinelles Lernen zu trainieren.
In diesem Artikel möchte ich die Prozedur zum Exportieren des in Lobe erlernten Modells und zur Verwendung aus Python schreiben.
Wählen Sie Datei-> Exportieren.
Da diesmal TensorFlow verwendet wird, wählen Sie es aus und geben Sie das Speicherziel an.
Wenn Sie Optimieren & Optimieren auswählen, können Sie das Modell optimieren und speichern.
Sie können das Modell exportieren, das Sie in den Schritten bis zu diesem Punkt gelernt haben.
Im Speicherziel des exportierten Modells befindet sich ein Ordner namens example. Es enthält Beispielcode (tf_example.py) zur Verwendung von TensorFlow.
Bei Verwendung der Befehlszeile:
# python example/tf_example.py 'Bildpfad'
Im Folgenden werden nur die minimal erforderlichen Teile aus dem Beispielcode beschrieben.
predict.py
import json
import numpy as np
import tensorflow as tf
from PIL import Image
predict.py
with open("Pfad, in dem Sie das Modell gespeichert haben/signature.json", "r") as f:
signature = json.load(f)
inputs = signature.get('inputs')
outputs = signature.get('outputs')
predict.py
#Für die TensorFlow1-Serie
session = tf.compat.v1.Session(graph=tf.Graph())
tf.compat.v1.saved_model.loader.load(sess=session, tags=signature.get("tags"), export_dir='Pfad, in dem Sie das Modell gespeichert haben')
#Für die TensorFlow 2-Serie
model = tf.saved_model.load('Pfad, in dem Sie das Modell gespeichert haben')
infer = model.signatures["serving_default"]
predict.py
#Holen Sie sich die Größe der Eingabe
input_width, input_height, input_channel = inputs["Image"]["shape"][1:]
#Für die TensorFlow1-Serie
image = Image.open('Bildpfad')
image = image.resize((input_width, input_height))
image = np.asarray(image) / 255.0
feed_dict = {inputs["Image"]["name"]: [image]}
fetches = [(key, output["name"]) for key, output in outputs.items()]
#Für die TensorFlow 2-Serie
image = Image.open('Bildpfad')
image = image.resize((input_width, input_height))
image = np.array(image, dtype=np.float32) / 255.0
image = image.reshape([1, input_width, input_height, input_channel])
predict.py
#Für die TensorFlow1-Serie
output = session.run(fetches=[name for _, name in fetches], feed_dict=feed_dict)
print(output[0][0].decode())
#Für die TensorFlow 2-Serie
predict = infer(tf.constant(image))['Prediction'][0]
print(predict.numpy().decode())
Das oben in Lobe erlernte Modell ist von Python aus sehr einfach zu verwenden.
Ich habe den Beispielcode auf git hochgeladen. lobe_py
Ich habe eine REST-API in Kombination mit TensorFlow Serving erstellt. Erstellen Sie eine REST-API mit dem in Lobe und TensorFlow Serving erlernten Modell.
Lobe ist ab dem 31. Oktober in der Beta-Version. Die Modelle, die erstellt werden können, sind nur Bildklassifizierungen, aber es scheint, dass Objekterkennung und Datenklassifizierung in Zukunft hinzugefügt werden.
Recommended Posts