我正在尝试使用Google Cloud ML ML引擎来调整变异自动编码器的超参数。我设置了我在文档中建议的结构的包装,以便将" Trainer.Task"指定为我的主模块名称。下面是我目录结构的图像。
目录结构的图像
当我包含以下几行时,这在我自己的机器上工作:
import sys
sys.path.append("/path/to/project/directory/")
当我使用以下命令运行时,我会收到错误"无模块名称培训师"。我需要指定其他路径,还是我需要在Google Cloud ML引擎上运行的特殊路径?
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
您有一个setup.py文件吗?如果是这样,您可能会遇到此问题
调试以下内容:
从作业获取包裹的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的内容,我可能可以提供更好的答案。
杰里米(Jeremy)我也有类似的问题。我下载并解开了文件,但其中没有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'