【问题标题】:Tensorflow on ML Engine: The replica master 0 exited with a non-zero status of 1ML Engine 上的 Tensorflow:副本主控 0 以非零状态 1 退出
【发布时间】:2018-09-01 06:11:05
【问题描述】:

我在 ML Engine 上启动了一个 tensorflow 任务,大约 2 分钟后,我不断收到一条错误消息“replica master 0 exited with a non-zero status of 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"  
}

提前感谢您的任何指点!

【问题讨论】:

  • 你检查过机器学习/jobs下的console.cloud.google.com(然后点击job)查看内存使用情况吗?在错误之前或之后,Stackdriver 日志中是否还有其他信息(有时堆栈跟踪可能高几行)。
  • 我确实看了看,没有发现任何进一步的帮助。前两个条目是“等待供应作业”。和“等待 TensorFlow 启动”。错误之后的一个只是“作业失败”。我想知道是否有办法捕获更多信息,让主节点写一些日志/调试信息?通过进一步的测试,我猜我的问题可能与我尝试安装一些 Python 依赖项的方式有关(通过 setup.py)。

标签: tensorflow google-cloud-ml


【解决方案1】:

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

在 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

感谢大家提供意见!

【讨论】:

  • 非常感谢!不知道我怎么会想出这个。对我来说,要添加的帐户与我必须添加到云存储中的帐户相同(通过云外壳直接提供给我)
【解决方案2】:

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

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

【讨论】:

  • 谢谢。我能够解决核心问题(一些模块丢失和/或依赖问题)。不过,一般来说,我仍然无法在 ML Engine 中使用日志记录。例如,如果我将 tf.logging.set_verbosity('DEBUG')tf.logging.info("logging test") 添加到我的培训师,我仍然在堆栈驱动程序日志中看到除了 7 条标准消息之外的任何消息 (Validating job requirements... | Job creation request has been successfully validated | Job is queued | job to be provisioned. | Waiting for TensorFlow to start | Job completed successfully.) 这对任何人都有效吗? (2.7 Python, ML runtime-version 1.5)
猜你喜欢
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 2014-01-13
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多