什么是Tensorflow中的rnn单元的cuDNN实现

时间:2017-10-16 09:28:12

标签: python-3.x tensorflow cudnn

要创建RNN单元格,可以使用GRUCellLSTMCell等类,稍后可以使用这些类创建RNN图层。
还有另外两个类CudnnGRUCudnnLSTM可以直接用于创建RNN图层。

在文档中,他们说后面的类有cuDNN实现。在创建cuDNN模型时,为什么要使用或不使用此RNN实现的类而非经典RNN实现??

2 个答案:

答案 0 :(得分:0)

简而言之:cudnnGRU和cudnnLSTM可以/必须在GPU上使用,普通的rnn实现不能。因此,如果你有tensorflow-gpu,那么RNN单元的cudnn实现会运行得更快。

答案 1 :(得分:0)

CuDNNLSTMCuDNNGRUCuDNN支持的快速实现。两者都只能在带有TensorFlow后端的GPU上运行。 cuDNN是用于深度神经网络的GPU加速的原语库。

cuDNN为标准例程提供了高度优化的实现,例如前向和后向卷积,池化,规范化和激活层。 cuDNN是NVIDIA Deep Learning SDK的一部分。

cuDNN 的重点包括:

  1. 在Tesla V100上,ResNet-50和GNMT的培训速度提高了3倍,而 特斯拉P100
  2. 改进了对合并和跨步卷积的NHWC支持
  3. 为常见工作负载(例如ResNet50和SSD)获得更高的性能,因为batchnorm现在支持NHWC数据布局,并具有附加选项             将Batchnorm与Add和ReLu操作融合在一起