【发布时间】:2016-04-23 23:25:13
【问题描述】:
我正在使用 dynamic_rnn 处理 MNIST 数据:
# 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 中实现类似的东西?
【问题讨论】:
-
你的序列是等长的吗?
标签: python tensorflow