Google Cloud ML Engine中找不到培训师模块

时间:2017-10-03 19:32:12

标签: machine-learning tensorflow google-cloud-ml-engine

我正在尝试使用Google Cloud ML Engine调整变分自动编码器的超参数。我使用他们在文档中推荐的结构设置我的包,因此我指定“trainer.task”作为我的主模块名称。下面是我的目录结构的图像。

image of directory structure

当我包含以下行时,这适用于我自己的机器:

import sys
sys.path.append("/path/to/project/directory/")

当我使用下面的命令运行时,我收到错误“No module named trainer”。是否需要指定不同的路径或在Google Cloud ML Engine上运行需要做些什么?

gcloud ml-engine jobs submit training $JOB_NAME --package-path $TRAINER_PACKAGE_PATH --module-name $MAIN_TRAINER_MODULE --job-dir $JOB_DIR --region $REGION --config config.yaml

2 个答案:

答案 0 :(得分:0)

你有一个setup.py文件吗?如果是这样,您可能会点击此issue

调试:

从作业中获取包的GCS位置

gcloud --project=$PROJECT ml-engine jobs describe $JOB_NAME 

这将输出类似

的内容
jobId: somejob
state: PREPARING
trainingInput:
  jobDir: gs://BUCKET/job
  packageUris:
  - gs://bucket/job/packages/7d2611c7366f266058da5a9e2c93467426c5fdd018491fa33853516d9db533b1/somepackage-0.0.0.tar.gz
  pythonModule: cifar.task
  region: us-central1
trainingOutput: {} 
  • 请注意,上述值仅用于说明目的,与您的输出不同。

将GCS包复制到您的计算机

gsutil cp gs://bucket/job/packages/7d2611c7366f266058da5a9e2c93467426c5fdd018491fa33853516d9db533b1/somepackage-0.0.0.tar.gz /tmp

解压缩.tar.gz并检查它是否有一个带有__init__.py文件和task.py的目录教程。如果没有,那么您可能为命令行指定了不正确的值。

如果你包括实际的命令行(即变量的值)和.tar.gz的内容,我可以提供更好的答案。

答案 1 :(得分:0)

杰里米我有类似的问题。我下载并解压缩了我的文件,但其中没有task.py

这些是我使用的cmd行参数:

gcloud ml-engine jobs submit training job11 --package-path=./trainer --module-
 name='Keras_On_GoogleCloud.trainer.shallownet_train' --job-dir=gs://zubair-gc-
 bucket/jobs/job11 --region='us-central1' --config=trainer/cloudml-gpu.yaml -- -
 -job_name='zubair-gc-job11'  --dataset='dataset/animals' --model='shallownet_weights1.hdf5'