我使用dynamic_rnn處理MNIST數據:在張量流中獲取dynamic_rnn的最後一個輸出嗎?
# LSTM Cell
lstm = rnn_cell.LSTMCell(num_units=200,
forget_bias=1.0,
initializer=tf.random_normal)
# Initial state
istate = lstm.zero_state(batch_size, "float")
# Get lstm cell output
output, states = rnn.dynamic_rnn(lstm, X, initial_state=istate)
# Output at last time point T
output_at_T = output[:, 27, :]
全碼:http://pastebin.com/bhf9MgMe
輸入到LSTM是(batch_size, sequence_length, input_size)
結果的output_at_T
尺寸是(batch_size, sequence_length, num_units)
其中num_units=200
。
我需要沿sequence_length
尺寸獲得最後一個輸出。在上面的代碼中,這被硬編碼爲27
。但是,我不知道提前sequence_length
,因爲它可以在我的應用程序中按批次更改。
我嘗試:
output_at_T = output[:, -1, :]
但它說負索引還沒有實現,我試圖使用佔位符變量以及一個常數(在其中我可以理想地喂sequence_length
針對特定批次) ;既沒有工作。
任何方式在tensorflow atm中實現這樣的東西?
你的序列長度是否相等? – danijar
[獲取TensorFlow中動態\ _rnn的最後一個輸出]的可能重複(http://stackoverflow.com/questions/41273361/get-the-last-output-of-a-dynamic-rnn-in-tensorflow) – Alex