Transformer Decoder 接受两个输入,即编码器的输出和目标序列。此答案中提供了如何将目标送入解码器
我对评估训练模型时的目标序列是什么感到困惑?
是不是我们从第一个时间步的<SOS>标签开始,然后像在 RNN 中那样为每个时间步循环通过转换器解码器?
如果有人可以为我澄清这一点,那将会很有帮助。
Transformer Decoder 接受两个输入,即编码器的输出和目标序列。此答案中提供了如何将目标送入解码器
我对评估训练模型时的目标序列是什么感到困惑?
是不是我们从第一个时间步的<SOS>标签开始,然后像在 RNN 中那样为每个时间步循环通过转换器解码器?
如果有人可以为我澄清这一点,那将会很有帮助。
在训练时,解码器的输入是目标句子标记,在测试时确实是未知的。您所说的第二个输入是所需的输出,通常不称为解码器的输入,1. 为清楚起见,2. 从技术上讲,它们是损失函数的输入。
在测试时,我们不需要损失函数,但我们仍然需要将一些输入传递给解码器。解码以自回归方式进行,即在每个解码步骤中,我们执行解码器层并获得目标令牌上的概率分布。我们选择一个标记(通常是得分最高的标记,但使用波束搜索会变得更加棘手)并将其附加到解码器的输入中。这意味着解码器的输入一次生成一个标记,随着句子的解码逐渐生成。