torchtext 的 BucketIterator 能否将所有批次填充到相同的长度?

Can torchtext's BucketIterator pad all batches to the same length?

我最近开始使用 torchtext 来替换我的胶水代码,我 运行 遇到了一个问题,我想在我的架构中使用注意力层。为此,我需要知道训练数据的最大序列长度。

问题是 torchtext.data.BucketIterator 在每批基础上进行填充:

# All 4 examples in the batch will be padded to maxlen in the batch
train_iter = torchtext.data.BucketIterator(dataset=train, batch_size=4)

有什么方法可以确保所有训练样本被填充到相同的长度;即,训练中的 maxlen?

实例化 torchtext.data.Field 时,有一个名为 fix_length 的可选关键字参数,设置后,定义所有样本将被填充到的长度;默认情况下未设置,这意味着灵活的填充。