我正在编写训练相对较大的RNN (128单元LSTM和一些附加层)的代码。主要的进程是在CPU上最大限度地使用内核,我想知道这是否正常,或者我是否可以优化它。在训练循环(session.run调用)中,它使用大约60-70%的GPU负载,而在一个内核上使用100%的CPU负载。请注意,数据采样工作已经在其他内核上并行完成,因此这只是模型参数的更新。这对于TensorFlow中的这类应用程序来说是正常的吗?或者当使用图形处理器的全部容量时,CPU负载应该低得多?
发布于 2017-03-21 05:04:48
我们还没有关于它的完整文档,但您可以查看分析信息,看看它是否能让您对时间的走向有更多的了解:https://github.com/tensorflow/tensorflow/issues/1824#issuecomment-225754659
发布于 2017-12-30 13:12:17
我认为RNN单元有两个输入,它在训练数据时必须等待这两个方向的输入,换句话说,它优化并行性并不像CNN那么容易。你可以使用大批量来提高图形处理器的利用率,但可能会导致其他问题,比如深度学习的大批量训练的论文:泛化差距和夏普迷你。
https://stackoverflow.com/questions/42852383
复制相似问题