2

我正在努力在celebA上培训DCGAN。培训过程似乎进行得非常缓慢,我想弄清楚是什么造成了瓶颈。当我使用规模级STANDARD_1,BASIC_GPU或仅在我的6年历史的4核CPU笔记本电脑上本地运行时,训练一个时期需要的时间似乎非常相似。在这三种配置中,每个训练步骤大约需要25秒,但我注意到每隔一段时间训练一步需要几分钟的时间。搞清Cloud ML培训中的瓶颈

使用BASIC_GPU时,CPU利用率小于.1。我使用BASIC层进行了一项实验,并将主盘托空间设置为.4,每步大约需要40秒。当使用标准_1,我得到以下CPU利用率:

  • 主:0.28
  • 工人:0.21
  • 参数服务器(PS):0.48

基本运行时使用单个工作人员,CPU利用率不应该接近100%?

以这样的速度,它将花费22个小时来培训一个celebA的时代,图像缩小到64x64。从回购看其他人的培训日志,看起来这比其他人使用GPU进行培训要高得多。

+0

你能提供一个指向你提到的其他培训日志的指针吗? – rhaertel80

+0

这个人似乎平均每个批次少于2秒:https://github.com/carpedm20/DCGAN-tensorflow/issues/34 – psoulos

回答

1

我只是猜测这里 - 但考虑看看你点代码,培训做了两两件事:

  1. 用途喂养,即加载数据的蟒蛇 - 使用阅读器队列(https://www.tensorflow.org/programmers_guide/reading_data )可能会更快。

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

不知道这是否有帮助,但它可能会提供一些指针。