Lobe est un outil qui facilite la création de modèles d'apprentissage automatique publiés par Microsoft. L'article ci-dessous explique comment l'utiliser. J'ai essayé "Lobe", qui facilite la formation des modèles d'apprentissage automatique publiés par Microsoft.
Dans cet article, j'aimerais écrire la procédure pour exporter le modèle appris dans Lobe et l'utiliser depuis Python.
Sélectionnez Fichier-> Exporter.
Étant donné que TensorFlow sera utilisé cette fois, sélectionnez-le et spécifiez la destination d'enregistrement.
Si vous sélectionnez Optimiser et optimiser, vous pouvez enregistrer le modèle après l'avoir optimisé.
Vous pouvez exporter le modèle appris par les étapes jusqu'à ce point.
Il existe un dossier appelé exemple dans la destination d'enregistrement du modèle exporté. Il contient un exemple de code (tf_example.py) à utiliser à partir de TensorFlow.
Lors de l'utilisation de la ligne de commande:
# python example/tf_example.py 'Chemin de l'image'
Ci-dessous, seules les parties minimales requises de l'exemple de code sont décrites.
predict.py
import json
import numpy as np
import tensorflow as tf
from PIL import Image
predict.py
with open("Chemin où vous avez enregistré le modèle/signature.json", "r") as f:
signature = json.load(f)
inputs = signature.get('inputs')
outputs = signature.get('outputs')
predict.py
#Pour la série TensorFlow1
session = tf.compat.v1.Session(graph=tf.Graph())
tf.compat.v1.saved_model.loader.load(sess=session, tags=signature.get("tags"), export_dir='Chemin où vous avez enregistré le modèle')
#Pour la série TensorFlow 2
model = tf.saved_model.load('Chemin où vous avez enregistré le modèle')
infer = model.signatures["serving_default"]
predict.py
#Obtenez la taille de l'entrée
input_width, input_height, input_channel = inputs["Image"]["shape"][1:]
#Pour la série TensorFlow1
image = Image.open('Chemin de l'image')
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()]
#Pour la série TensorFlow 2
image = Image.open('Chemin de l'image')
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
#Pour la série TensorFlow1
output = session.run(fetches=[name for _, name in fetches], feed_dict=feed_dict)
print(output[0][0].decode())
#Pour la série TensorFlow 2
predict = infer(tf.constant(image))['Prediction'][0]
print(predict.numpy().decode())
Le modèle appris dans Lobe comme ci-dessus est très facile à utiliser à partir de Python.
J'ai téléchargé l'exemple de code sur git. lobe_py
J'ai créé une API REST en combinaison avec le service TensorFlow. Créez une API REST à l'aide du modèle appris dans Lobe et TensorFlow Serving.
Lobe est la version bêta du 31 octobre. Les modèles qui peuvent être créés ne sont que la classification d'images, mais il semble que la détection d'objets et la classification des données seront ajoutées à l'avenir.
Recommended Posts