Python 向量序列的PyTorch数据集字段(无词汇表)

Python 向量序列的PyTorch数据集字段(无词汇表),python,pytorch,torchtext,Python,Pytorch,Torchtext,我有一个“简单”的机器翻译任务,其中我有一系列向量映射到一两个单词。(矢量为258维) 例如: [[1,…,2],[3,…,4]]=>“您好” [[1,…,2],[3,…,4],[5,…,6]=>“你好,世界” 对于目标字段,我使用的是字段(eos_token=“”,is_target=True),当批处理时,它会正确地给我一个带填充的张量,在这种情况下: 张量([ [1,1],#1是“你好” [2,3],#2是“世界”,3是 [3,0],#0是 ]) 但是,src字段的填充方式与顺序的填

我有一个“简单”的机器翻译任务,其中我有一系列向量映射到一两个单词。(矢量为258维)

例如:

  • [[1,…,2],[3,…,4]]
    =>“您好”
  • [[1,…,2],[3,…,4],[5,…,6]
    =>“你好,世界”
对于目标字段,我使用的是
字段(eos_token=“”,is_target=True)
,当批处理时,它会正确地给我一个带填充的张量,在这种情况下:

张量([
[1,1],#1是“你好”
[2,3],#2是“世界”,3是
[3,0],#0是
])
但是,
src
字段的填充方式与
顺序的填充方式不同,但没有词汇表(
字段(use\u vocab=False)

当我从
BucketIterator
读取
src
时,在一批大小>1的数据中,我得到:

回溯(最近一次呼叫最后一次):

列车中第50行的文件“train.py”

for b, batch in enumerate(train_iter):
文件“/torchtext/data/iterator.py”,第156行,在iter中

yield Batch(minibatch, self.dataset, self.device)
文件“/torchtext/data/batch.py”,第34行,在init

setattr(self, name, field.process(batch, device=device))
文件“/torchtext/data/field.py”,第237行,正在处理中

tensor = self.numericalize(padded, device=device)
文件“/torchtext/data/field.py”,第359行,数值化

var = torch.tensor(arr, dtype=self.dtype, device=device)
ValueError:尺寸2处长度258的预期序列(got 5)

我想得到的是张量:

张量([
[[1, ..., 2], [1, ..., 2]],
[[3, ..., 4], [3, ..., 4]],
[[5, ..., 6], [0, ..., 0]],
[[0, ..., 0], [0, ..., 0]],
])
认为我可能有但不知道如何确认的是:

张量([
[[1, ..., 2], [1, ..., 2]],
[[3, ..., 4], [3, ..., 4]],
[[5, ..., 6], 0],
[0, 0],
])