微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Google AI平台培训-等待工作完成

如何解决Google AI平台培训-等待工作完成

我建立了一个具有许多并行流程的AI平台管道。每个过程都会在AI平台上启动一个培训工作,如下所示:

gcloud ai-platform jobs submit training ... 

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

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

Quota exceeded for quota metric 'Read requests' and limit 'Read requests per minute' 
of service 'logging.googleapis.com'

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

解决方法

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

df %>% 
pivot_longer(-genre) %>% 
group_by(genre) %>% 
mutate(p=100*value/sum(value)) %>% 
ggplot(aes(x=genre,y=p,fill=name)) + 
geom_col() + 
geom_text(aes(label=paste(p,"%","(",value,")")),position = position_stack(vjust = .5))

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

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()
,

关于您遇到的错误消息,实际上您是在quota exceeded进行Cloud Logging时,您可以做的是请求增加配额。

另一方面,关于一种无需流日志即可检查作业状态的更智能方法,您可以做的是通过运行gcloud ai-platform jobs describe <job_name>偶尔检查一次状态或创建Python脚本来检查状态,请参见以下documentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。