Description: Le but de cette écriture est de vérifier comment les modèles d'apprentissage automatique appel de service via l'API dans le Notebook Jupyter.
1, Environnement Description
CentOS7 (déployé dans VMware Workstation machine virtuelle Pro)
besoin d'avoir docker
2. Pré-requis: Préparation miroir
Services de test déployé miroir de modèle: codait / max-Image Générateur Caption-
Github Adresse: https://github.com/IBM/MAX-Image-Caption-Generator
Ce modèle identifie les données d'image cibles fixées 80 COCO différentes classes d'objets de haut niveau existent.
Déployer la mise en miroir des services Jupyter: onnx / onnx-écosystème
Github Adresse: https://github.com/onnx/onnx-docker/tree/master/onnx-ecosystem
Etant donné que dans CentOS jupyter installés, donc l'utilisation directe d'un miroir comprenant jupyter en utilisant une autre image avant d'utiliser le miroir, mais il peut y avoir des problèmes d'installation de package échoue.
3, l'image de démarrage
docker run -it -p 5000:5000 codait/max-image-caption-generator
Détecter l'adresse du conteneur d'image et les services fournis à l'adresse http: // IP hôte: 5000 / modèle / prédire
docker run -p 8888:8888 onnx/onnx-ecosystem
4, appeler le service de détection d'image dans l'ordinateur portable
! pip install -q matplotlib Pillow requests
import io
from PIL import Image
import matplotlib
from matplotlib import pyplot as plt
import matplotlib.patches as patches
import requests
def call_model(input_img, local_port=None):
"""
Takes in input image file path, posts the image to the model and returns face bboxes and emotion predictions
If local port is not specified, uses the long running instance.
If local port is specificed, uses the local instance.
"""
if local_port:
url = 'http://192.168.64.242:'+ str(local_port)+'/model/predict'
else:
url = 'nothing'
files = {'image': ('image.jpg', open(input_img, 'rb'), 'images/jpeg') }
r = requests.post(url, files=files).json()
return r
img_path = './dog'
image = Image.open(img_path)
image
model_response = call_model(img_path, 5000)
import json
print(json.dumps(model_response, indent=2))
Titre généré après l'exécution est la suivante:
La signification de base du titre des trois plus grandes probabilité est « un carlin sourire sur planche à roulettes », vous pouvez vérifier que le succès du chien et le visage du chien, mais le sol sera reconnu comme une planche à roulettes.
{
"status": "ok",
"predictions": [
{
"caption": "a small pug dog standing on a skateboard .",
"index": "0",
"probability": 0.0010022024578866463
},
{
"caption": "a small pug dog standing on top of a skateboard .",
"index": "1",
"probability": 0.0006507893851378613
},
{
"caption": "a small pug dog sitting on a skateboard .",
"index": "2",
"probability": 0.0005334585197032779
}
]
}
Code capture d'écran d'exécution suit comme: