TensorFlow RNN培训100%CPU,而仅使用60%GPU

TensorFlow RNN培训100%CPU,而仅使用60%GPU,tensorflow,gpu,deep-learning,Tensorflow,Gpu,Deep Learning,我正在编写训练相对较大的RNN(128单元LSTM和一些附加层)的代码。主进程是在CPU上最大化一个核心,我想知道这是否正常,或者我是否可以优化它。在训练循环(session.run调用)期间,它使用大约60-70%的GPU负载,而在一个内核上使用100%的CPU负载。请注意,数据采样工作已经在其他内核上同时完成,因此它只是更新模型参数。这对于TensorFlow中的此类应用程序来说是正常的,还是在使用GPU的全部容量时CPU负载应该更低?我们还没有关于它的完整文档,但您可以查看分析信息,看看它

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

我们还没有关于它的完整文档,但您可以查看分析信息,看看它是否能让您更清楚地了解时间的走向:

我们还没有关于它的完整文档,但您可以查看分析信息,看看它是否能让您对时间的走向有更多的了解:
我认为RNN单元有两个输入,它在传输数据时必须等待这两个方向的输入,换句话说,它优化并行性不像CNN那么容易。你可以使用大批量来提高GPU的利用率,但可能会导致像《深度学习的大批量训练:泛化差距和尖锐极小值》一文那样的问题,我认为RNN单元有两个输入,它在训练数据时必须等待这两个方向的输入,换句话说,它不像CNN那么容易。您可以使用大批量来提高GPU的利用率,但可能会导致其他问题,如关于深入学习的大批量培训的论文:《泛化差距和尖锐极小值》

有趣。。。我正在做一些只使用30%CPU和25%CPU的培训,寻找为什么这两种CPU都不饱和的答案。很有趣。。。我正在做一些只使用30%CPU和25%CPU的培训,并寻找为什么这两种CPU都不饱和的答案。