如何解决使用自定义容器训练时调用不同的入口点/模块
我已经使用培训应用程序构建了一个自定义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的命令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。