2017-03-17 212 views
0

我正在研究训练相对较大的RNN(128单元LSTM和一些添加图层)的代码。主要过程是在CPU上充满核心,我想知道这是否正常或我是否可以优化它。在训练循环(session.run调用)期间,它使用大约60-70%的GPU负载,同时在一个内核上使用100%的CPU负载。请注意,数据采样工作已在其他内核上同时完成,因此它只是更新了模型参数。这对于TensorFlow中的这些应用程序来说是否正常,或者在使用GPU的全部容量时,CPU负载是否要低得多?TensorFlow RNN培训100%的CPU,而只使用60%的GPU

+0

有趣...我正在做一些培训,只使用30%的CPU和25%的CPU,并寻找答案,为什么它不会使两者中的任何一个饱和。 – Trejkaz

回答

0

我想RNN单元有两个输入,当训练数据时它必须等待那两个方向输入,换句话说,它优化并行性并不像CNN那么容易。您可以使用大批量来提高GPU利用率,但也许会导致其他问题,如纸张关于深度学习的大批量培训:泛化差距和夏普极小值