7

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

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

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.

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

当我使用本地运行它时,一切正常gcloud ml-engine local train

我认为问题在于通常使用 读取文件,gcloud ml-engine或者我无法从带有gs://BUCKET_NAME/FILE_PATH.

4

1 回答 1

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)
于 2017-03-13T14:06:49.440 回答