我有一个非常标准的CI管道,使用Cloud Build作为基于容器的机器学习培训模型:
现在,在机器学习中,如果不使用实际数据对模型进行测试,就不可能验证模型。通常,我们会增加2张额外的支票:
这允许捕获模型代码中的问题。在我的设置中,我的Cloud Build在构建GCP项目中,数据在另一个GCP项目中。
Q1:是否有人在Cloud Build中使用AI Platform training服务来训练另一个GCP项目中的数据?
Q2:如何告诉Cloud等待AI Platform training作业完成并检查状态(成功/失败)?在查看文档链接时,似乎唯一的选择是使用--stream-logs,但这似乎不是最优的(使用这样的选项,我看到了一些巨大的延迟)。
发布于 2020-12-15 20:52:11
提交AI平台培训作业时,可以指定一个使用服务帐户电子邮件。
确保服务帐户在其他项目中有足够的授权来使用来自那里的数据。
对于你的第二个问题,你有两个解决方案
--stream-logs。如果不希望云构建中的日志,可以将stdout和/或stderr重定向到/dev/null- name: name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- -c
- |
gcloud ai-platform jobs submit training <your params> --stream-logs >/dev/null 2>/dev/null或者您可以创建一个检查状态的无限循环。
- name: name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- -c
- |
JOB_NAME=<UNIQUE Job NAME>
gcloud ai-platform jobs submit training $${JOB_NAME} <your params>
# test the job status every 60 seconds
while [ -z "$$(gcloud ai-platform jobs describe $${JOB_NAME} | grep SUCCEEDED)" ]; do sleep 60; done这里我的测试很简单,但是您可以根据需要自定义状态测试。
不要忘记按预期设置超时。
https://stackoverflow.com/questions/65309371
复制相似问题