6 votes

Les applications de Google App Engine peuvent-elles communiquer ou contrôler les modèles ou les tâches d'apprentissage automatique ?

Je veux utiliser L'apprentissage automatique de Google chose avec Moteur d'application application écrite en python.

Cette application devrait permettre de recycler TensorFlow avant chaque utilisation, en raison de la nature de l'enquête (clusterisation des données à l'aide de SOM de Kohonen ).

J'ai les questions suivantes :

Est-ce qu'un Moteur d'application pour commander L'apprentissage automatique pour entraîner un modèle avec des données d'entrée ? Est-ce qu'un Moteur d'application envoie un vecteur d'entrée dans Le truc de ML et obtenir le résultat (à quel cluster appartient ce vecteur) ? Si tout est possible, comment faire ?

Si rien de tout cela n'est possible, y a-t-il une autre architecture que je puisse utiliser pour faire une Moteur d'application utilisation des applications basées TensorFlow ?

Je parle de cette chose : enter image description here

9voto

Fematich Points 1208

Oui, vous pouvez utiliser App Engine pour communiquer avec Google Cloud Machine Learning (désigné sous le nom de CloudML à partir de maintenant).

Pour communiquer avec CloudML à partir de Python, vous pouvez utiliser la commande Bibliothèque client de l'API Google que vous pouvez utiliser avec tout service Google . Cette bibliothèque client peut également être utilisée sur App Engine, elle dispose même d'une documentation spécifique à cet effet. aquí .

Je vous recommande de commencer par expérimenter le client API localement avant de le tester sur App Engine. Pour la suite de cette réponse, je ne ferai aucune distinction entre l'utilisation de cette bibliothèque client localement ou sur App Engine.


Vous avez mentionné deux types d'opérations différentes que vous voulez faire avec CloudML :

  1. Mettre à jour un modèle avec de nouvelles données
  2. Obtenir des prédictions à partir d'un modèle formé/déployé

1. Mettre à jour un modèle avec de nouvelles données

La mise à jour d'un modèle sur de nouvelles données correspond en fait à deux étapes. Tout d'abord, l'entraînement du modèle sur de nouvelles données (avec ou sans CloudML ) et de déployer ensuite ce modèle nouvellement formé sur CloudML .

Vous pouvez effectuer ces deux étapes avec la bibliothèque client API d'App Engine, mais pour réduire la complexité, je pense que vous devriez commencer par suivre la procédure suivante démarrage rapide de la prédiction . Vous disposerez ainsi d'un modèle nouvellement formé et déployé et vous comprendrez les différentes étapes à suivre.

Une fois que vous serez familiarisé avec les concepts et les étapes à suivre, vous verrez que vous pouvez stocker vos nouvelles données sur GCS et remplacez les différentes commandes gcloud dans le quickstart par leurs appels API respectifs que vous pouvez faire avec la bibliothèque client API ( documentation ).

2. Obtenir des prédictions à partir d'un modèle déployé

Si vous disposez d'un modèle déployé (si ce n'est pas le cas, suivez la procédure suivante enlace de l'étape précédente), vous pouvez facilement communiquer avec CloudML pour obtenir 1)prédictions par lots ou 2)prédictions en ligne (ce dernier est en alpha). Puisque vous utilisez App Engine, je suppose que vous êtes intéressé par l'utilisation des prédictions en ligne (obtenir des résultats immédiats). Le code minimal requis pour ce faire :

from oauth2client.client import GoogleCredentials
from googleapiclient import discovery

projectID = 'projects/<your_project_id>'
modelName = projectID+'/models/<your_model_name>'

credentials = GoogleCredentials.get_application_default()

ml = discovery.build('ml', 'v1beta1', credentials=credentials)
# Create a dictionary with the fields from the request body.
requestDict = {"instances":[
                    {"image": [0.0,..., 0.0, 0.0], "key": 0}
        ]}
# Create a request to call projects.models.create.
request = ml.projects().predict(
      name=modelName,
      body=requestDict)
response = request.execute()

Avec {"image": <image_array>, "key": <key_id>} le format d'entrée que vous avez défini pour le modèle déployé via le lien de l'étape précédente. Ceci retournera dans response contenant la sortie attendue du modèle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X