首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谷歌AI平台培训-等待任务完成

谷歌AI平台培训-等待任务完成
EN

Stack Overflow用户
提问于 2020-11-12 22:39:21
回答 2查看 448关注 0票数 2

我已经构建了一个具有许多并行进程的AI平台管道。每个进程在AI平台上启动一个训练任务,如下所示:

代码语言:javascript
运行
复制
gcloud ai-platform jobs submit training ... 

然后,它必须等待作业完成,才能进入下一步。为此,我尝试将参数--stream-logs添加到上述命令中。通过这种方式,它会流式传输所有日志,直到作业完成。

问题是,由于有如此多的并行进程,我用完了获取日志的请求:

代码语言:javascript
运行
复制
Quota exceeded for quota metric 'Read requests' and limit 'Read requests per minute' 
of service 'logging.googleapis.com'

但我不需要实际流式传输日志,我只需要一种方法来告诉过程“等待”,直到训练工作完成。有没有更聪明、更简单的方法呢?

EN

回答 2

Stack Overflow用户

发布于 2020-11-13 00:41:45

我刚刚发现我可以使用Python API来启动和监控作业:

代码语言:javascript
运行
复制
training_inputs = {
    'scaleTier': 'CUSTOM',
    'masterType': 'n1-standard-8',
    ...
}

job_spec = {'jobId': 'your_job_name', 'trainingInput': training_inputs}


project_name = 'your-project'
project_id = 'projects/{}'.format(project_name)


cloudml = discovery.build('ml', 'v1')

request = cloudml.projects().jobs().create(
    body=job_spec,
    parent=project_id
)
response = request.execute()

现在我可以设置一个循环,每隔60秒检查一次作业状态

代码语言:javascript
运行
复制
state = 'RUNNING'
while state == 'RUNNING':

    time.sleep(60)
    status_req = cloudml.projects().jobs().get(name=f'{project_id}/jobs/{job_name}')

    state = status_req.execute()['state']

    print(state)
票数 2
EN

Stack Overflow用户

发布于 2020-11-13 00:49:09

对于您遇到的错误消息,实际上您正在访问云日志的quota exceeded,您可以做的是请求增加配额。

另一方面,关于在没有流日志的情况下检查作业状态的更聪明的方法,您可以做的是通过运行gcloud ai-platform jobs describe <job_name>或创建Python脚本来检查状态,这将在下面的documentation中解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64806003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档