Python BucketIterator未返回正确大小的批次

Python BucketIterator未返回正确大小的批次,python,nlp,pytorch,torchtext,Python,Nlp,Pytorch,Torchtext,我正在PyTorch中实现一个简单的LSTM语言模型,并想查看torchtext提供的BucketIterator 结果表明,返回的批具有我的整个语料库的大小,因此在初始化过程中我一定做错了什么 我已经使用了BPTTIterator了,但是由于我想能够训练成批完整的句子,我认为BucketIterator应该是一个不错的选择 我使用以下设置,我的语料库是一个简单的txt文件,每行都包含句子 field = Field(use_vocab=True, batch_first=True) corpu

我正在
PyTorch
中实现一个简单的LSTM语言模型,并想查看
torchtext
提供的
BucketIterator

结果表明,返回的批具有我的整个语料库的大小,因此在初始化过程中我一定做错了什么

我已经使用了
BPTTIterator
了,但是由于我想能够训练成批完整的句子,我认为
BucketIterator
应该是一个不错的选择

我使用以下设置,我的语料库是一个简单的txt文件,每行都包含句子

field = Field(use_vocab=True, batch_first=True)
corpus = PennTreebank('project_2_data/train_lines.txt', field)
field.build_vocab(corpus)

iterator = BucketIterator(corpus,
                          batch_size=64,
                          repeat=False,
                          sort_key=lambda x: len(x.text),
                          sort_within_batch=True,
                          )
我希望这个迭代器中的一批具有shape
(batch\u size,max\u len)
,但它将整个语料库附加到shape
(1,corpus\u size)
的一个张量中

我的设置中缺少什么

编辑:似乎
PenntreBank
对象与
BucketIterator
不兼容(如此处所述,它只包含1个
示例
)。只使用一个
字段的
表格数据集
使其工作


如果有人知道如何在
torchtext
中以更优雅的方式使用填充语句批量进行语言建模,我很乐意听到

同样的问题。