在張量流體的dynamic_rnn函數中,我對輸出形狀感到驚訝,我希望有人能幫助提高我對RNN單元的理解。張量流動的多維動態流動
例如,如果輸入被定義爲:
x = tf.placeholder(tf.float32, [110, seq_size, input_dim])
其中seq_size = 5和input_dim = 2(即,兩個時間序列)和110是批量大小;並且小區被定義爲,
cell = rnn_cell.BasicLSTMCell(hidden_dim)
其中hidden_dim = 6
當我創建dynamic_rnn
outputs, states = rnn.dynamic_rnn(cell, x, dtype=tf.float32)
並檢查輸出的大小是[110 5 6]。這些維度由seq_size by hidden_dim批量處理。
問題:
1:這些尺寸意味着有每該時間序列的時間步6個隱藏節點,總共30個隱藏節點(5×6),而不是6隱藏節點總。這是正確的解釋嗎?
2:由於我的輸入維數是5 x 2(每個序列和2個序列中有5個步驟),因此tensorflow在每個時間步將輸入連接到隱藏節點?在每個隱藏單元格之前,張量流程是否假設一個具有2個輸入,12個權重和6個偏差的完全連接圖?或者是其他東西?
問題1:每個序列有5個隱藏節點,每個隱藏節點對應一個輸入/字。 問題2:每個輸入都是2維空間中的向量(對於您的示例)。 –
不理解數字1的答案。我原本以爲是相同的,即每個單詞/輸入對應一個隱藏節點,但上面輸出的尺寸似乎表明情況並非如此。在上面的例子中,每個批次元素都有[1 5 6],所以有30個輸出。此外,隱藏節點的數量是Cell的一個獨立變量,如https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/recurrent_network.ipynb中的示例所示。 – Kemp
我認爲[1 5 6]意味着有5個輸出,每個輸出是6維向量。你提供了[1 5 2],意思是5個輸入,每個輸入都是2維向量。 –