0

Je cours un modèle tensorflow soumettant l'entraînement sur ml moteur. J'ai construit un pipeline qui se lit de BigQuery utilisant tf.contrib.cloud.python.ops.bigquery_reader_ops.BigQueryReade r comme lecteur pour la file d'attente .Moteur ML BigQuery: La demande avait des champs d'authentification insuffisants

Tout fonctionne très bien en DataLab et locale, le réglage des variables pointage GOOGLE_APPLICATION_CREDENTIALS au fichier JSON pour les informations d'identification clés. Cependant, lorsque je soumets le travail de formation dans le nuage, je reçois ces erreurs (je viens de poster les deux principales):

  1. Autorisation refusée: Erreur lors de l'exécution d'une requête HTTP (code de réponse HTTP 403, code d'erreur 0, erreur message '') lors de la lecture du schéma pour ...

  2. Une erreur s'est produite lors de la création du modèle. Vérifiez les détails: La demande comportait des champs d'authentification insuffisants.

je l'ai déjà vérifié tout le reste comme définir correctement le schéma de la table dans le script et projet/jeu de données/tableau ids/noms

je colle ici toute erreur présente dans le journal pour plus de clarté :

message: « retraçage (appel le plus récent en dernier).

File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main 
    "__main__", fname, loader, pkg_name) 

File "/usr/lib/python2.7/runpy.py", line 72, in _run_code 
    exec code in run_globals 

File "/root/.local/lib/python2.7/site-packages/trainer/task.py", line 131, in <module> 
    hparams=hparam.HParams(**args.__dict__) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/learn_runner.py", line 210, in run 
    return _execute_schedule(experiment, schedule) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/learn_runner.py", line 47, in _execute_schedule 
    return task() 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py", line 495, in train_and_evaluate 
    self.train(delay_secs=0) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py", line 275, in train 
    hooks=self._train_monitors + extra_hooks) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/experiment.py", line 665, in _call_train 
    monitors=hooks) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/deprecation.py", line 289, in new_func 
    return func(*args, **kwargs) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 455, in fit 
    loss = self._train_model(input_fn=input_fn, hooks=hooks) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 1007, in _train_model 
    _, loss = mon_sess.run([model_fn_ops.train_op, model_fn_ops.loss]) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 521, in __exit__ 
    self._close_internal(exception_type) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 556, in _close_internal 
    self._sess.close() 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 791, in close 
    self._sess.close() 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/monitored_session.py", line 888, in close 
    ignore_live_threads=True) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/coordinator.py", line 389, in join 
    six.reraise(*self._exc_info_to_raise) 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/queue_runner_impl.py", line 238, in _run 
    enqueue_callable() 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1063, in _single_operation_run 
    target_list_as_strings, status, None) 

File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__ 
    self.gen.next() 

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/errors_impl.py", line 466, in raise_exception_on_not_ok_status 
    pywrap_tensorflow.TF_GetCode(status)) 
PermissionDeniedError: Error executing an HTTP request (HTTP response code 403, error code 0, error message '') 
    when reading schema for pasquinelli-bigdata:[email protected] 
    [[Node: GenerateBigQueryReaderPartitions = GenerateBigQueryReaderPartitions[columns=["F_RACC_GEST", "LABEL", "F_RCA", "W24", "ETA", "W22", "W23", "W20", "W21", "F_LEASING", "W2", "W16", "WLABEL", "SEX", "F_PIVA", "F_MUTUO", "Id_client", "F_ASS_VITA", "F_ASS_DANNI", "W19", "W18", "W17", "PROV", "W15", "W14", "W13", "W12", "W11", "W10", "W7", "W6", "W5", "W4", "W3", "F_FIN", "W1", "ImpTot", "F_MULTIB", "W9", "W8"], dataset_id="Transactions", num_partitions=1, project_id="pasquinelli-bigdata", table_id="t_11_Hotel_25_w_train", test_end_point="", timestamp_millis=1505224768418, _device="/job:localhost/replica:0/task:0/cpu:0"]()]] 

Toute suggestion serait extrêmement utile car je suis relativement nouveau avec GC Merci à tous.

Répondre

0

La prise en charge de la lecture des données BigQuery à partir de Cloud ML Engine est toujours en cours de développement. Par conséquent, ce que vous faites n'est actuellement pas pris en charge. Le problème que vous rencontrez est que les machines exécutées par ML Engine n'ont pas les bonnes portées pour parler à BigQuery. Un problème potentiel que vous pouvez également rencontrer en cours d'exécution localement est une mauvaise lecture des performances de BigQuery. Ce sont deux exemples de travail qui doivent être traités.

En attendant, je recommande d'exporter des données vers GCS pour la formation. Cela va être beaucoup plus évolutif, donc vous n'avez pas à vous soucier de la mauvaise performance de la formation à mesure que vos données augmentent. Cela peut être un bon exemple, car il vous permet de pré-traiter vos données une fois, d'écrire le résultat dans GCS au format CSV, puis d'effectuer plusieurs sessions d'entraînement pour essayer différents algorithmes ou hyperparamètres.

+0

Merci beaucoup pour votre réponse. Je vais procéder comme vous le suggérez. –