使用自定义容器进行培训时,调用不同的入口点/模块



我已经用我的培训应用程序构建了一个自定义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;决定从CCD_ 3命令调用哪个模块。所以我尝试了

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"]

此链接包含有关配置标志的更多上下文。

类似地,您可以使用containerArgs字段覆盖docker image的命令。

相关内容

  • 没有找到相关文章

最新更新