Comment utiliser le modèle appris dans Lobe en Python

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.

Exporter le modèle appris

Sélectionnez Fichier-> Exporter. スクリーンショット 2020-10-31 20.30.04.png

Étant donné que TensorFlow sera utilisé cette fois, sélectionnez-le et spécifiez la destination d'enregistrement. スクリーンショット 2020-10-31 20.35.42.png

Si vous sélectionnez Optimiser et optimiser, vous pouvez enregistrer le modèle après l'avoir optimisé. スクリーンショット 2020-10-31 20.39.02.png

Vous pouvez exporter le modèle appris par les étapes jusqu'à ce point.

Utiliser le modèle entraîné en Python

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.

Importation des bibliothèques requises

predict.py


import json

import numpy as np
import tensorflow as tf
from PIL import Image

Lire les informations d'entrée / sortie de Signature

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')

modèle de charge

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"]

Préparez une image à prédire

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])

Faire des prédictions

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

Comment utiliser le modèle appris dans Lobe en Python
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment utiliser ChemSpider en Python
Comment utiliser la méthode __call__ dans la classe Python
[Introduction à Python] Comment utiliser la classe en Python?
Comment utiliser les expressions régulières en Python
Comment utiliser is et == en Python
Comment utiliser l'astérisque (*) en Python. C'est peut-être tout? ..
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Comment utiliser la bibliothèque d'images Python dans la série python3
Résumé de l'utilisation de MNIST avec Python
[Algorithm x Python] Comment utiliser la liste
Comment utiliser tkinter avec python dans pyenv
python3: Comment utiliser la bouteille (2)
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment utiliser Python Argparse
Python: comment utiliser pydub
[Python] Comment utiliser checkio
Comment développer en Python
[Python] Comment utiliser input ()
Comment utiliser le décorateur
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser les octets Python
Comment récupérer la nième plus grande valeur en Python
[Pour les débutants] Comment utiliser la commande say avec python!
Comment obtenir le nom de la variable lui-même en python
Comment obtenir le nombre de chiffres en Python
Comment connaître le répertoire actuel en Python dans Blender
Comment utiliser Raspeye Relay Module Python
[Introduction à Udemy Python3 + Application] 27. Comment utiliser le dictionnaire
J'ai essayé de résumer comment utiliser les pandas de python
[Introduction à Udemy Python3 + Application] 30. Comment utiliser l'ensemble
[Python] Comment afficher les valeurs de liste dans l'ordre
Comment utiliser le modèle japonais Spacy avec Google Colaboratory
Je veux utiliser le jeu de données R avec python
[Python] Comment faire PCA avec Python
Python: comment utiliser async avec
Comment utiliser la fonction zip
Comment utiliser le module optparse
Comment utiliser les classes dans Theano
[Python] Comment utiliser la série Pandas
Comment collecter des images en Python
Comment utiliser les requêtes (bibliothèque Python)
Dans la commande python, python pointe vers python3.8
Comment obtenir la version Python
[Python] Comment utiliser la liste 3 Ajouté
Comment utiliser l'API Python d'OpenPose
Python: Comment utiliser pydub (lecture)
Comment utiliser la fonction zip de python
Comment utiliser le module ConfigParser
Comment gérer le japonais avec Python
[Python] Comment utiliser l'API Typetalk
[python] Comment vérifier si la clé existe dans le dictionnaire
[python] Comment utiliser Matplotlib, une bibliothèque pour dessiner des graphiques