我正在研究训练相对较大的RNN(128个单元LSTM和一些添加的层)的代码。主要过程是在CPU上最大化核心,我想知道这是否正常或我是否可以优化它。在训练循环(session.run调用)期间,它使用大约60-70%的GPU负载,同时在一个核心上使用100%CPU负载。请注意,数据采样工作已在其他核心上同时进行,因此它只是更新模型参数。对于TensorFlow中的此类应用程序,这是常规的还是CPU负载要低得多,同时使用GPU的全部容量?
答案 0 :(得分:0)
我们还没有关于它的完整文档,但您可以查看分析信息,看看它是否能让您更好地了解时间的变化: https://github.com/tensorflow/tensorflow/issues/1824#issuecomment-225754659
答案 1 :(得分:0)
我认为RNN单元有两个输入,它必须在训练数据时等待那两个方向输入,换句话说,它优化并行性不像CNN那么容易。您可以使用较大的批量大小来提高GPU利用率,但可能会导致其他问题,例如论文 关于深度学习的大批量培训:泛化差距和夏普最小值