0

我已经使用我的训练应用程序构建了一个自定义 Docker 容器。目前,Dockerfile 类似于

FROM python:slim
COPY ./src /pipelines/component/src
RUN pip3 install -U ...
...
ENTRYPOINT ["python3", "/pipelines/component/src/training.py"]

所以当我跑步时

gcloud ai-platform jobs submit training JOB_NAME \
--region=$REGION \
--master-image-uri=$IMAGE_URI

它按预期进行。

我想做的是添加另一个模块,例如/pipelines/component/src/tuning.pyENTRYPOINT从 Dockerfile中删除默认值;决定从gcloud命令调用哪个模块。所以我尝试了

gcloud ai-platform jobs submit training JOB_NAME \
--region=$REGION \
--master-image-uri=$IMAGE_URI \
--module-name=src.tuning \
--package-path=/pipelines/component/src

它返回Source directory [/pipelines/component] is not a valid directory.,因为它在本地机器上搜索包路径,而不是容器。我怎么解决这个问题?

4

1 回答 1

1

您可以使用TrainingInput.ReplicaConfig.ContainerCommand字段来覆盖 docker 映像的入口点。这是一个示例命令:

gcloud ai-platform jobs submit training JOB_NAME \
--region=$REGION
--master-image-uri=$IMAGE_URI
--config=config.yaml

config.yaml 内容将是这样的:

trainingInput:
  scaleTier: BASIC
  masterConfig:
    containerCommand: ["python3", "/pipelines/component/src/tuning.py"]

这个链接有更多关于配置标志的上下文。

同样,您可以使用containerArgs字段覆盖 docker image 的命令。

于 2020-08-18T21:45:00.923 回答