在动态rnn中填充0个向量的批处理

时间:2017-08-12 04:42:16

标签: tensorflow rnn

我有一个预测任务,使用可变的输入数据序列。直接使用动态rnn会遇到根据这篇文章分割输出的麻烦:

Using a variable for num_splits for tf.split()

所以,我想知道是否可以填充整批序列以使所有示例具有相同数量的序列,然后在sequence_length tf.nn.dynamic_rnn参数中给出0长度填充批次序列。这会有用吗?

1 个答案:

答案 0 :(得分:-1)

您必须定义序列的max_length。之后,您可以检查输入是否小于max并用零向量填充它。 更多信息:https://danijar.com/variable-sequence-lengths-in-tensorflow/。 因此,在数据生成器中,您必须检查每个输入要素向量,并执行以下操作:

len_vec = feature_vec.shape[0]
if len_vec < max_length:
  mis_dim = max_length - len_vec
  zero_vec = np.zeros((mis_dim, feature_vec.shape[1]))
  feature_vec = np.vstack((feature_vec, zero_vec))