Deep learning 使用TorchText(PyTorch)进行语言翻译

Deep learning 使用TorchText(PyTorch)进行语言翻译,deep-learning,pytorch,torch,language-translation,torchtext,Deep Learning,Pytorch,Torch,Language Translation,Torchtext,我最近开始使用PyTorch使用ML/DL。下面的pytorch示例解释了如何训练从德语到英语的简单翻译模型 然而,我对如何使用该模型在自定义输入上运行推理感到困惑。据我目前的理解: 1) 我们需要保存德语(输入)和英语(输出)的“vocab”[使用torch.save()],以便以后可以用于运行预测 2) 在对德语段落进行推理时,我们首先需要使用德语vocab文件将德语文本转换为张量 3) 上述张量将传递给模型的正向方法进行转换 4) 该模型将再次返回目标语言的张量,即当前示例中的英语 5)

我最近开始使用PyTorch使用ML/DL。下面的pytorch示例解释了如何训练从德语到英语的简单翻译模型

然而,我对如何使用该模型在自定义输入上运行推理感到困惑。据我目前的理解:

1) 我们需要保存德语(输入)和英语(输出)的“vocab”[使用torch.save()],以便以后可以用于运行预测

2) 在对德语段落进行推理时,我们首先需要使用德语vocab文件将德语文本转换为张量

3) 上述张量将传递给模型的正向方法进行转换

4) 该模型将再次返回目标语言的张量,即当前示例中的英语

5) 我们将使用第一步中保存的英语词汇将这个张量转换回英语文本

问题: 1) 如果上述理解是正确的,如果我们知道源语言和目标语言,并且有相同的vocab文件,那么上述步骤是否可以被视为在任何语言翻译模型上运行推理的通用方法?或者我们可以使用第三方库(如spacy)提供的vocab吗

2) 我们如何将从模型返回的输出张量转换回目标语言?我找不到任何关于如何做到这一点的例子。上面的博客解释了如何使用源语言vocab将输入文本转换为张量


我可以很容易地找到图像/视觉模型的各种示例和详细解释,但文本的示例和详细解释不多。

是的,从全球范围来看,您所说的是正确的,当然,您可以使用任何vocab,例如spacy提供的。要将张量转换为自然文本,最常用的技术之一是保留一个将索引映射到单词的dict和另一个将单词映射到索引的dict,下面的代码可以做到这一点:

tok2idx = defaultdict(lambda: 0)
idx2tok = {}

for seq in sequences:
    for tok in seq:
        if not tok in tok2idx:
            tok2idx[tok] = index
            idx2tok[index] = tok
            index += 1
这里的序列是所有序列的列表(即数据集中的句子)。如果只有一个单词或标记列表,只需保持内部循环,就可以轻松地更改模型