【发布时间】:2019-06-17 17:33:14
【问题描述】:
想象一下,您正在 tensorflow 中为序列分类任务训练 LSTM 模型。在每个时间步,您有一个二进制向量 v_i(例如,v_i=[0, 1, 0, 1]),并且对于每个序列,您有可变数量的时间步(尽管二进制向量 v_i 的长度是相等的)。
在 tensorflow 中训练 LSTM 模型时如下:
lstm_cell=tf.nn.rnn_cell.LSTMCell(number_of_hidden)
tf.contrib.rnn.static_rnn (lstm_cell, training_data)
单个训练序列(具有三个时间步长,v_1=[0, 1, 0, 1]、v_2=[1, 1, 1, 0] 和 v_3=[0, 0, 1, 1])应该看起来像
[[0, 1, 0, 1], [1, 1, 1, 0], [0, 0, 1, 1]]
或
[[0], [1], [0], [1], [1], [1], [1], [0], [0], [0], [1], [1]]
还是别的什么?
我对 LSTMCell 在每个时间步如何处理输入有点困惑。
【问题讨论】:
-
static_rnn的输入形状为[timesteps,batch_size, features]。这是形状为[batch_size, features]的二维张量的列表。你可以参考stackoverflow.com/a/53947413/7389608。所以应该是[[[0, 1, 0, 1]], [[1, 1, 1, 0]], [[0, 0, 1, 1]]]。 -
谢谢,@giser_yugang!
标签: tensorflow lstm recurrent-neural-network