我在这里询问动态行为是如何工作的。 这是上面的dynamic_rnn函数的张量流documentation。此功能创建的RNN输入块的最大长度是多少?它是否会根据最大输入填充所有较短的?
答案 0 :(得分:4)
您有责任填充序列,然后提供序列长度。
例如:
# Create input data
X = np.random.randn(2, 10, 8)
# The second example is of length 6
X[1,6:] = 0
X_lengths = [10, 6]
cell = tf.nn.rnn_cell.LSTMCell(num_units=64, state_is_tuple=True)
outputs, last_states = tf.nn.dynamic_rnn(
cell=cell,
dtype=tf.float64,
sequence_length=X_lengths,
inputs=X)
在这里你可以看到,我们自己填充序列X[1,6:] = 0
将为第6个元素之后的所有值赋值0,这意味着这个序列长度为6,我们通过给出X_lengths
来说明第二个值是值6