通过TensorFlow使用GPU加速训练复现神经网络

时间:2017-04-26 13:18:03

标签: tensorflow recurrent-neural-network

我对并行计算(包括一些CUDA),前馈神经网络和循环神经网络(以及它们如何使用BPTT)有基本了解。

当使用例如TensorFlow时,您可以将GPU加速应用于网络的训练阶段。但是,递归神经网络本质上是顺序的,具有时间步长,其中当前时间步长取决于前一个,下一个时间步长取决于电流等。

如果像这样,GPU加速如何工作?可以并行计算的所有内容都是以这种方式计算的,而时间步长相关的部分是序列化的吗?

2 个答案:

答案 0 :(得分:3)

通过使用足够大的批量大小来计算单个单元的前向/后向传递消耗足够的计算以使GPU忙碌,您可以获得针对递归神经网络的GPU训练的性能的方式。

答案 1 :(得分:3)

RNNs使用反向传播进行训练。循环网络结构展开为有限长度的有向无环图,看起来就像正常的前馈网络一样。然后使用随机梯度下降进行训练,其中在每个时间步之间存在权重必须相等的约束。

如果您理解它是这样训练的,因为它只是限制了给定长度的序列上的反向传播,您会发现没有任何关于阻止此过程可并行化的顺序性。