【问题标题】:Figuring out bottleneck in Cloud ML training找出 Cloud ML 训练的瓶颈
【发布时间】:2017-03-17 17:29:33
【问题描述】:

我正在尝试在 celebA 上训练 DCGAN。训练过程似乎进展得很慢,我想弄清楚是什么导致了瓶颈。当我使用扩展层 STANDARD_1、BASIC_GPU 或仅在我 6 年使用的 4 核 CPU 笔记本电脑上本地运行时,训练一个 epoch 所需的时间似乎非常相似。在这三种配置中,每个训练步骤大约需要 25 秒,尽管我注意到每隔一段时间训练步骤需要几分钟。

使用 BASIC_GPU 时,cpu 利用率低于 0.1。我使用 BASIC 层进行了一个实验,master 悬停在 0.4 处,每步大约需要 40 秒。使用 STANDARD_1 时,我得到以下 cpu 利用率:

  • 主人:.28
  • 工人:.21
  • 参数服务器(ps):.48

在使用单个 worker 的 BASIC 上运行时,CPU 利用率不应该接近 100% 吗?

按照这个速度,将图像缩小到 64x64 需要 22 小时来训练 celebA 的一个 epoch。从 repo 中查看其他人的训练日志,看起来这明显高于使用 GPU 进行训练的其他人。

【问题讨论】:

标签: google-cloud-platform google-cloud-ml google-cloud-ml-engine


【解决方案1】:

我只是在这里猜测——但是通过查看您指出的代码,培训做了两件事:

  1. 使用馈送,即在 python 中加载数据——使用读取器队列 (https://www.tensorflow.org/programmers_guide/reading_data) 可能会更快。

  2. 这更有可能。该代码一次读取一个文件或一批文件,但每个文件都会导致对云存储的单独请求,因此无法从缓冲等优化中受益。这意味着您的代码可能受 I/O 限制,并且可能解释较低的 CPU 使用率。此外,添加 GPU 可能会进一步将工作分担到 GPU 上,并降低 CPU 利用率......它仍在忙于 I/O。

不确定这是否有帮助,但它可能会提供一些指导。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2019-03-20
    • 2017-11-08
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多