深层循环神经网络(DRNN)
DRNN可以增强模型的表达能力,主要是将每个时刻上的循环体重复多次,每一层循环体中参数是共享的,但不同层之间的参数可以不同。DRNN结构图如图5所示。
TensorFlow中可以通过rnn_cell.MultiRNNCell([lstm] * number_of_layer)
来构建DRNN,其中number_of_layer
表示了有多少层。
在我们构建自己的任务模型时,往往会设置dropout来让构建的网络模型更加健壮,类似在卷积神经网络只在最后全连接层使用dropout,DRNN一般只在不同层循环体结构中使用dropout,而不在同一层的循环体结构中使用。即从时刻t-1
传递到t
时刻时,RNN不进行状态的dropout,但在同一时刻t中,不同层循环体之间会使用dropout,图6展示了DRNN中使用dropout,其中实线箭头表示不使用dropout,虚线箭头表示使用dropout。
TensorFlow中可以使用tf.nn.rnn_cell.DropoutWrapper
类来实现dropout功能
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深层循环神经网络(DRNN) - Python技术站