(使用python)Tensorflow LSTM-Cell的輸出
我對Tensorflow LSTM實現有個疑問。目前在TF幾個實現,但是使用:
cell = tf.contrib.rnn.BasicLSTMCell(n_units)
- 其中n_units是「平行」 LSTM細胞的量。
然後讓我的輸出I撥打:
rnn_outputs, rnn_states = tf.nn.dynamic_rnn(cell, x,
initial_state=initial_state, time_major=False)
- 其中(如
time_major=False
)x
是形狀(batch_size, time_steps, input_length)
- 其中
batch_size
是我的batch_size - 其中
time_steps
是量timeteps我的RNN將通過 - 其中
input_length
是我的輸入矢量中的一個(在載體一個特定批次供給到網絡上的一個特定時間步長)的長度
我期望rnn_outputs是形狀(batch_size, time_steps, n_units, input_length)
作爲我還沒有指定的另一個輸出大小。 nn.dynamic_rnn
的文檔告訴我輸出形狀爲(batch_size, input_length, cell.output_size)
。 tf.contrib.rnn.BasicLSTMCell
的文檔確實有一個屬性output_size
,默認爲n_units(我使用的LSTM-cells的數量)。
那麼每個LSTM-Cell只會爲每個給定的時間步輸出一個標量嗎?我希望它能輸出一個輸入矢量長度的矢量。這似乎不是我現在的理解,所以我很困惑。你能告訴我是否是這種情況,或者我可以如何改變它以輸出每個單獨的lstm-cell的輸入向量大小的向量?
您是如何得出結論的:每個LSTM單元只輸出每個給定時步的標量? – jabalazs
你可以發佈一個主題或更大的代碼片段,以便我們可以自己查看/運行代碼以更好地理解上下文嗎? –