假设我们有3个不同长度的桶。那么我们训练3个不同的网吗? 我们不能保持动态RNN 。它将根据编码器中输入序列的长度添加单位。然后编码器将最后一个隐藏状态传递给解码器。它会起作用吗?
答案 0 :(得分:0)
我经历了这个。 Bucketing 有助于加快培训流程。我们首先将示例划分为桶。然后我们可以减少我们必须填充的单位数量。 在训练迭代中,我们一次选择一个桶并训练整个网络。 在验证中,我们检查每个存储桶中测试示例的困惑。 Tensorflow支持此分组。
动态RNN与此不同,我们不具备分支机制。我们将数据输入为张量,形状为[batch_size,hidden size,max_seq_length]。
此处短于最大长度的序列应填充零。
然后它将创建动态RNN,其长度等于实际输入(没有填充零)。这在tensorflow中使用while循环。