前言
代码参考文章:一文彻底搞懂 Transformer(图解+代码手撕)
以下说明的transformer的使用以翻译任务为例子,其目标是将中文句子翻译成英文句子。因此中文句子为源序列,英文句子为目标序列,原序列词典大小就是用于模型训练的所有中文词汇数量,目标序列词典大小则是用于模型训练的所有英文单词数量,所有的词汇在模型训练前都会被标上唯一的数字索引作为一套词典,相应地所有的单词也会在模型训练前都会被标上唯一的数字索引作为另一套词典。在模型训练时,输入数据(源序列)和目标数据(目标序列)都是以这些索引的形式提供的。
代码实现过程中的一个细节:pytorch的函数需要先实例化然后才能使用,后面注释为“定义xxx”就是在实例化。