我尝试在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
这是我在日志文件中获得的内容。
答案 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
添加为可接受的参数外,我认为您还应该在--
之后移动标记。
使用--distributeded选项运行本地train命令。务必 将标志放在 - 将用户参数与。分隔开 命令行参数
在这种情况下, --distribued
是命令行参数
修改强>
--job-dir
不是用户参数,因此将其放在--