Python 向量序列的PyTorch数据集字段(无词汇表)
我有一个“简单”的机器翻译任务,其中我有一系列向量映射到一两个单词。(矢量为258维) 例如: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字段的填充方式与顺序的填
=>“您好”[[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],
])