我正在尝试训练DCGAN关于celebA。培训过程似乎进展缓慢,我想弄清楚导致瓶颈的原因。当我使用比例级STANDARD_1,BASIC_GPU或者只是在我6岁的4核CPU笔记本电脑上本地运行时,训练一个时代所花费的时间似乎非常相似。在这三种配置中,每个训练步骤大约需要25秒,但我注意到每隔一段时间训练一步就需要几分钟。
使用BASIC_GPU时,cpu利用率小于.1。我使用BASIC层运行了一个实验,主人在.4处徘徊,每步约需40秒。使用STANDARD_1时,我得到以下cpu利用率:
在使用单个工作程序的BASIC上运行时,CPU利用率是否应该接近100%?
按照这个速度,将需要22个小时来训练一个celebA的时代,图像缩小到64x64。从repo看其他人的训练日志,看起来这比使用GPU训练的其他人要高得多。
答案 0 :(得分:1)
我只是在这里猜测 - 但是从你看到的代码看,培训做了两件事:
使用提要,即在python中加载数据 - 使用阅读器队列(https://www.tensorflow.org/programmers_guide/reading_data)可能会更快。
这种可能性更大。代码一次读取一个文件或一批文件,但每个都会产生对云存储的单独请求,因此不会受益于缓冲等优化。这意味着您的代码可能受I / O限制,并且可能解释了较低的CPU使用率。此外,添加GPU可能会进一步将工作卸载到GPU上,并降低CPU利用率......这仍然在忙于进行I / O.
不确定这是否有帮助,但它可能会提供一些指示。