Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何从GCP云构建管道内部提交GCP AI平台培训工作?_Google Cloud Platform_Google Cloud Build_Gcp Ai Platform Training - Fatal编程技术网

Google cloud platform 如何从GCP云构建管道内部提交GCP AI平台培训工作?

Google cloud platform 如何从GCP云构建管道内部提交GCP AI平台培训工作?,google-cloud-platform,google-cloud-build,gcp-ai-platform-training,Google Cloud Platform,Google Cloud Build,Gcp Ai Platform Training,对于基于容器的机器学习培训模型,我有一个非常标准的CI管道,使用云构建: 使用flake8检查python错误 使用pylint、pydocstyle检查语法和样式问题 构建基本容器(CPU/GPU) 为我的模型构建专门的ML容器 检查已安装软件包的漏洞 运行测试单元 现在在机器学习中,如果不使用真实数据对模型进行测试,就不可能验证模型。通常我们会增加2张额外支票: 修复所有随机种子并运行测试数据,以查看我们是否找到完全相同的结果 对模型进行批量训练,看看我们是否可以进行过度拟合,并使损失

对于基于容器的机器学习培训模型,我有一个非常标准的
CI
管道,使用
云构建

  • 使用flake8检查python错误
  • 使用pylint、pydocstyle检查语法和样式问题
  • 构建基本容器(CPU/GPU)
  • 为我的模型构建专门的ML容器
  • 检查已安装软件包的漏洞
  • 运行测试单元
现在在机器学习中,如果不使用真实数据对模型进行测试,就不可能验证模型。通常我们会增加2张额外支票:

  • 修复所有随机种子并运行测试数据,以查看我们是否找到完全相同的结果
  • 对模型进行批量训练,看看我们是否可以进行过度拟合,并使损失为零
这允许捕获模型代码中的问题。在我的设置中,我将我的
云构建
放在一个构建
GCP
项目中,数据放在另一个
GCP
项目中

问题1:是否有人设法在
云构建
中使用
AI平台培训
服务来培训另一个
GCP
项目中的数据


问题2:如何告知云构建等待
AI平台培训工作完成,并检查状态(成功/失败)?在查看文档时,似乎唯一的选择是使用流日志,但它似乎不是最优的(使用这样的选项,我看到了一些巨大的延迟)

当您提交AI平台培训作业时,您可以指定一个

确保服务帐户在另一个项目中有足够的权限使用其中的数据

对于第二个问题,您有两种解决方案

  • 使用您提到的
    --流日志
    。如果不希望在云构建中使用日志,可以将stdout和/或stderr重定向到
    /dev/null
-name:name:'gcr.io/cloud builders/gcloud'
入口点:“bash”
args:
--c
- |
gcloud ai平台作业提交培训--流日志>/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
-name:name:'gcr.io/cloud builders/gcloud'
入口点:“bash”
args:
--c
- |
工作名称=
gcloud ai平台作业提交培训$${JOB_NAME}
#每60秒测试一次作业状态
而[-z“$$(gcloud ai平台作业描述$${JOB_NAME}}grep successed)”;睡60分钟;完成
这里我的测试很简单,但是您可以根据需要定制状态测试


不要忘了按预期设置超时。

提交AI平台培训作业时,可以指定一个

确保服务帐户在另一个项目中有足够的权限使用其中的数据

对于第二个问题,您有两种解决方案

  • 使用您提到的
    --流日志
    。如果不希望在云构建中使用日志,可以将stdout和/或stderr重定向到
    /dev/null
-name:name:'gcr.io/cloud builders/gcloud'
入口点:“bash”
args:
--c
- |
gcloud ai平台作业提交培训--流日志>/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
-name:name:'gcr.io/cloud builders/gcloud'
入口点:“bash”
args:
--c
- |
工作名称=
gcloud ai平台作业提交培训$${JOB_NAME}
#每60秒测试一次作业状态
而[-z“$$(gcloud ai平台作业描述$${JOB_NAME}}grep successed)”;睡60分钟;完成
这里我的测试很简单,但是您可以根据需要定制状态测试

不要忘记按预期设置超时