我已经用我的培训应用程序构建了一个自定义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的命令。