2017-08-25 2 views
0

Les appels gcloud ml-engine sont-ils inclus dans la bibliothèque client google-cloud pour python? Je ne peux actuellement pas trouver de documentation pour cela (même si je vois l'API en langage naturel). Je suis en train de répliquer la commande suivante dans un carnet de jupyter via l'API et n'ont pas eu de succès:gcloud ml-engine API

gcloud ml-engine local predict --json-instances=XXX --model-dir=YYY 

MISE À JOUR w/solution

with open('test.json') as data_file:  
    json_request = json.load(data_file) 

response = predict_json(project = PROJECT_ID, 
         model= 'test_model', 
         instances = [json_request], 
         version = 'v1') 

Répondre

1

Je crois que ce que vous cherchez peut se trouve dans le official documentation sous la section "Demander des prédictions" (assurez-vous de cliquer sur l'onglet Python).

Pour votre confort:

def predict_json(project, model, instances, version=None): 
    """Send json data to a deployed model for prediction. 

    Args: 
     project (str): project where the Cloud ML Engine Model is deployed. 
     model (str): model name. 
     instances ([Mapping[str: Any]]): Keys should be the names of Tensors 
      your deployed model expects as inputs. Values should be datatypes 
      convertible to Tensors, or (potentially nested) lists of datatypes 
      convertible to tensors. 
     version: str, version of the model to target. 
    Returns: 
     Mapping[str: any]: dictionary of prediction results defined by the 
      model. 
    """ 
    # Create the ML Engine service object. 
    # To authenticate set the environment variable 
    # GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file> 
    service = googleapiclient.discovery.build('ml', 'v1') 
    name = 'projects/{}/models/{}'.format(project, model) 

    if version is not None: 
     name += '/versions/{}'.format(version) 

    response = service.projects().predict(
     name=name, 
     body={'instances': instances} 
    ).execute() 

    if 'error' in response: 
     raise RuntimeError(response['error']) 

    return response['predictions'] 
+0

Je suis en train de mettre en œuvre la solution que vous proposez, mais se est heurtée une erreur. Pouvez-vous suggérer ce que je fais mal? – reese0106

+0

Ahh il semble que je devais juste ajouter [] autour de mon json_request – reese0106