问题描述
我已经使用培训应用程序构建了一个自定义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.py
;从Dockerfile中删除默认的ENTRYPOINT
;确定从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.
,因为它在本地计算机而不是容器上搜索软件包路径。我该如何解决这个问题?
解决方法
您可以使用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"]
此link具有有关配置标志的更多上下文。
类似地,您可以使用 containerArgs 字段覆盖docker image的命令。