2
我试图在张量流中创建具有GRU单元(以及LSTM单元)的多层递归神经网络。我看了多个来源,包括官方教程。但是我一直看到下面的多层RNN模式(这里用GRU单元显示)。在张量流中创建多层递归神经网络
cell = GRUCell(num_neurons) # Or LSTMCell(num_neurons)
cell = DropoutWrapper(cell, output_keep_prob=dropout)
cell = MultiRNNCell([cell] * num_layers)
此代码片段取自RNN Tensorflow Introduction。我对[cell] * num_layers
的理解是,相同的对象cell
在列表中被引用num_layer
次。所以,MultiRNNCell
不会创建一个深层网络,其中每一层的权重都与之前的相同。如果有人能够澄清这里究竟发生了什么,这将非常有见地。
最初,是的。权重与GRU/LSTM单位的每层相同。但是随着神经网络的学习,这些权重应该被更新。这就是为什么当你创建堆叠的RNN(GRU/LSTM)时,你必须有'tf.nn.dynamic_rnn(cell,x,initial_state = Hin)'。据我所知,'Hin'将承载GRU/LSTM单元的状态,这意味着它也具有每层的权重。 –