找出Cloud ML培训中的瓶颈

时间:2017-03-17 17:29:33

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

我正在尝试训练DCGAN关于celebA。培训过程似乎进展缓慢,我想弄清楚导致瓶颈的原因。当我使用比例级STANDARD_1,BASIC_GPU或者只是在我6岁的4核CPU笔记本电脑上本地运行时,训练一个时代所花费的时间似乎非常相似。在这三种配置中,每个训练步骤大约需要25秒,但我注意到每隔一段时间训练一步就需要几分钟。

使用BASIC_GPU时,cpu利用率小于.1。我使用BASIC层运行了一个实验,主人在.4处徘徊,每步约需40秒。使用STANDARD_1时,我得到以下cpu利用率:

  • master:.28
  • worker:.21
  • 参数server(ps):。48

在使用单个工作程序的BASIC上运行时,CPU利用率是否应该接近100%?

按照这个速度,将需要22个小时来训练一个celebA的时代,图像缩小到64x64。从repo看其他人的训练日志,看起来这比使用GPU训练的其他人要高得多。

1 个答案:

答案 0 :(得分:1)

我只是在这里猜测 - 但是从你看到的代码看,培训做了两件事:

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

  2. 这种可能性更大。代码一次读取一个文件或一批文件,但每个都会产生对云存储的单独请求,因此不会受益于缓冲等优化。这意味着您的代码可能受I / O限制,并且可能解释了较低的CPU使用率。此外,添加GPU可能会进一步将工作卸载到GPU上,并降低CPU利用率......这仍然在忙于进行I / O.

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