web-dev-qa-db-fra.com

Exemple de déploiement d'un modèle Tensorflow via une API RESTful

Existe-t-il un exemple de code pour déployer un modèle Tensorflow via une API RESTful? Je vois des exemples pour un programme en ligne de commande et pour une application mobile. Existe-t-il un cadre pour cela ou les gens chargent simplement le modèle et exposent la méthode de prédiction via un cadre Web (comme Flask) pour prendre des données (par exemple via JSON) et renvoyer la réponse? Par cadre, j'entends la mise à l'échelle d'un grand nombre de demandes de prédiction. Bien sûr, puisque les modèles sont immuables, nous pouvons lancer plusieurs instances de notre serveur de prédiction et le mettre derrière un équilibreur de charge (comme HAProxy). Ma question est: les gens utilisent-ils un cadre pour cela ou le font-ils à partir de zéro, ou peut-être que cela est déjà disponible dans Tensorflow et je ne l'ai pas remarqué.

22
Nikhil

https://github.com/sugyan/tensorflow-mnist montre un exemple simple de restAPI en utilisant Flask et en chargeant le mode pré-formé (restauration).

@app.route('/api/mnist', methods=['POST'])
def mnist():
    input = ((255 - np.array(request.json, dtype=np.uint8)) / 255.0).reshape(1, 784)
    output1 = simple(input)
    output2 = convolutional(input)
    return jsonify(results=[output1, output2])

Voir également la démo en ligne sur https://tensorflow-mnist.herokuapp.com/ . Il semble que l'API soit assez rapide.

23
Sung Kim

TensorFlow Serving est un système de service open source hautes performances pour les modèles d'apprentissage automatique, conçu pour les environnements de production et optimisé pour TensorFlow. La version initiale contient des exemples construits avec gRPC , mais vous pouvez facilement remplacer le frontal (désigné par "client" dans le diagramme ci-dessous) par une API RESTful pour répondre à vos besoins.

enter image description here

Pour commencer rapidement, consultez le tutoriel .

19
Jarek Wilkiewicz