程序代码如果用文本方式呈现,格式会乱掉。Python又是以缩进方式编码,所以只能以图片方式展示。
1、PositionalEncoding是位置编码功能
2、Transformer模型算法
其中的nn.Embedding调用pytorch的词向量嵌入模块,nn.Transformer调用pytorch的注意力计算模块,还包括自回归掩码(确保解码器在生成序列时只能看到当前位置及之前的词)和序列长度不足时词占位填充掩码(..._mask)功能。
3、构造训练数据
为了演示的简单明了易懂,只构造了三组序列数据。
4、前两个嵌套for循环是用数据训练模型
5、给定源序列(句子),预测目标序列(句子)
随机给定一个源序列,目标序列从起始符1开始,通过最后一个for循环,一个词接一个词地预测和拼接。
6、打印预测出的目标序列(句子)