我有一个使用可变输入数据序列的预测任务。根据这篇文章,直接使用动态 rnn 会遇到拆分输出的麻烦:
为 tf.split() 使用 num_splits 的变量
所以,我想知道是否可以填充整批序列以使所有示例具有相同数量的序列,然后在sequence_length
参数中tf.nn.dynamic_rnn
我为填充的序列批提供 0 长度。这行得通吗?
我有一个使用可变输入数据序列的预测任务。根据这篇文章,直接使用动态 rnn 会遇到拆分输出的麻烦:
为 tf.split() 使用 num_splits 的变量
所以,我想知道是否可以填充整批序列以使所有示例具有相同数量的序列,然后在sequence_length
参数中tf.nn.dynamic_rnn
我为填充的序列批提供 0 长度。这行得通吗?
你必须定义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))