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單元的狀態,這意味着它也具有每層的權重。 –