在Google Cloud ML中运行作业后出错

时间:2017-03-28 14:21:06

标签: google-cloud-ml

我尝试在Google Cloud ML上运行github上的word-RNN模型。提交作业后,我在日志文件中收到错误。

这是我提交培训的内容

gcloud ml-engine jobs submit training word_pred_7 \
    --package-path trainer \
    --module-name trainer.train \
    --runtime-version 1.0 \
    --job-dir $JOB_DIR \
    --region $REGION \
    -- \
    --data_dir gs://model-development/arpit/word-rnn-tensorflow-master/data/tinyshakespeare/real1.txt \
    --save_dir gs://model-development/arpit/word-rnn-tensorflow-master/save

这是我在日志文件中获得的内容。

enter image description here

4 个答案:

答案 0 :(得分:4)

最后,在向云ML提交77个工作后,我能够运行这个工作,并且在提交工作时问题不在于参数。它是关于文件.npy生成的IO错误,它们必须使用file_io.FileIo存储并读取为StringIO。

这些IO错误在任何地方都没有被提及,如果他们发现没有这样的文件或目录的任何错误,应该检查它们。

答案 1 :(得分:3)

您需要修改train.py以接受" - job-dir"命令行参数。

当您在gcloud中指定--job-dir时,服务会将其作为参数传递给您的程序,因此您的argparser(或tf.flags,取决于您正在使用的)将需要相应修改。

答案 2 :(得分:2)

我遇到了同样的问题,在加载您自己的脚本时,无论如何谷歌云都会以某种方式使用--job-dir(即使您将它放在--之前的gcloud命令上)

我修改它的方式就像第153行和第183行的官方gcloud census example一样:

parser.add_argument(
  '--job-dir',
  help='GCS location to write checkpoints and export models',
  required=True
)
args = parser.parse_args()
arguments = args.__dict__
job_dir = arguments.pop('job_dir')

train_model(**arguments)

基本上它意味着让你的python主程序接受这个--job-dir参数,即使你没有使用它。

答案 3 :(得分:0)

除了将--job-dir添加为可接受的参数外,我认为您还应该在--之后移动标记。

来自getting started

  

使用--distributeded选项运行本地train命令。务必   将标志放在 - 将用户参数与。分隔开   命令行参数

在这种情况下,--distribued是命令行参数

修改

--job-dir 不是用户参数,因此将其放在--

之前是正确的