2017-03-13 3 views
4

j'ai essayé de courir tensorflow-wavenet sur le nuage Google ml moteur avec gcloud ml-engine jobs submit training mais le travail des nuages ​​se sont écrasés quand il essayait de lire le fichier de configuration JSON:lecture de fichiers dans la machine à Google Cloud apprentissage

with open(args.wavenet_params, 'r') as f: 
    wavenet_params = json.load(f) 

arg.wavenet_params est tout simplement un chemin de fichier vers un fichier json que j'ai importé dans le compartiment de stockage google cloud. Le chemin du fichier ressemble à ceci: gs://BUCKET_NAME/FILE_PATH.json.

J'ai revérifié que le chemin du fichier est correct et je suis sûr que cette partie est responsable de l'accident puisque j'ai commenté tout le reste.

Le fichier journal de plantage ne donne pas beaucoup d'informations sur ce qui est arrivé:

Module raised an exception for failing to call a subprocess Command '['python', '-m', u'gcwavenet.train', u'--data_dir', u'gs://wavenet-test-data/VCTK-Corpus-Small/', u'--logdir_root', u'gs://wavenet-test-data//gcwavenet10/logs']' returned non-zero exit status 1. 

Je remplacé par wavenet_params = json.load(f)f.close() et je reçois toujours le même résultat.

Tout fonctionne quand je l'exécute localement avec gcloud ml-engine local train.

Je pense que le problème est de lire des fichiers avec gcloud ml-engine en général ou que je ne peux pas accéder au compartiment google cloud à partir d'un fichier python avec gs://BUCKET_NAME/FILE_PATH.

+1

connexes: http://stackoverflow.com/q/41633748/1399222, http://stackoverflow.com/q/40396552/1399222 – rhaertel80

Répondre

9

La fonction open de Python ne peut pas lire les fichiers de GCS. Vous devrez utiliser une bibliothèque capable de le faire. Tensorflow comprend une telle bibliothèque:

import tensorflow as tf 
from tensorflow.python.lib.io import file_io 

with file_io.FileIO(args.wavenet_params, 'r') as f: 
    wavenet_params = json.load(f) 
+0

grand, cela a fonctionné! Je vous remercie. – joaeba