在谷歌云机器学习中阅读文件

joa*_*eba 7 google-cloud-ml google-cloud-ml-engine

我尝试在google cloud ml-engine上运行tensorflow-wavenet,gcloud ml-engine jobs submit training但是在尝试读取json配置文件时云作业崩溃了:

with open(args.wavenet_params, 'r') as f:
   wavenet_params = json.load(f)
Run Code Online (Sandbox Code Playgroud)

arg.wavenet_params只是我上传到谷歌云存储桶的json文件的文件路径.文件路径如下所示:gs://BUCKET_NAME/FILE_PATH.json.

我仔细检查了文件路径是否正确,我确信这部分是导致崩溃的原因,因为我注释掉了其他所有内容.

崩溃日志文件没有提供有关发生的事情的大量信息:

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.
Run Code Online (Sandbox Code Playgroud)

我替换wavenet_params = json.load(f)f.close(),我仍然得到相同的结果.

当我在本地运行时,一切都有效gcloud ml-engine local train.

我认为问题在于gcloud ml-engine一般读取文件或者我无法从python文件中访问google云端桶gs://BUCKET_NAME/FILE_PATH.

rha*_*l80 17

Python的open功能无法从GCS读取文件.您将需要使用能够执行此操作的库.TensorFlow包含一个这样的库:

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)
Run Code Online (Sandbox Code Playgroud)