ML 引擎上的 Tensorflow:副本主机 0 以非零状态 1 退出

Tensorflow on ML Engine: The replica master 0 exited with a non-zero status of 1

我在 ML Engine 上启动了一个 tensorflow 任务,大约 2 分钟后我不断收到一条错误消息“副本主 0 以非零状态 1 退出。

(该任务在本地 ml-engine 上运行良好。)

问题:有没有什么地方或日志文件可以让我看到关于发生的事情的更多信息?

日志查看器仅提供以下内容:

{
 insertId:  "ibal72g1rxhr63"  
 logName:  "projects/**-***-ml/logs/ml.googleapis.com%2Fcnn180322_170649"  
 receiveTimestamp:  "2018-03-22T17:08:38.344282172Z"  
 resource: {
  labels: {
   job_id:  "cnn180322_170649"    
   project_id:  "**-***-ml"    
   task_name:  "service"    
  }
  type:  "ml_job"   
 }
 severity:  "ERROR"  
 textPayload:  "The replica master 0 exited with a non-zero status of 1."  
 timestamp:  "2018-03-22T17:08:38.344282172Z"  
}

提前感谢您的指点!

Stackdriver 代理可以监控许多指标并提供有关 ML 引擎的详细信息。详情请参考here。 AFAIK、普通事件日志记录和 Stackdriver 代理是唯一在 GCP 上监控 ML 作业的工具。

请注意,Tensorflow 中使用的 Python 2.7 与相关导入一起使用。您可能在本地使用了 Python 3.4,它与绝对导入一起使用。这就是为什么它在本地工作而不是在 Google 云上工作的原因。您可以参考修改您的导入语句。因此,如果您在代码顶部包含行 “from __future__ import absolute_import”,在行“import tensorflow as tf”之前,您的代码可能会工作。

解决明显缺少日志文件的方法是缺少写入日志的权限。

在 IAM & admin 下,添加 Logs Writer 角色帐户 cloud-ml-service@<project_id>.iam.gserviceaccount.com 解决了问题,并使 master 和 worker 能够按预期将日志消息写入 Stackdriver。

有关类似的讨论和一些附加信息,请参阅 Stackdriver logs not available for Cloud ML jobs since migration to V2

感谢大家的参与!