Python,Pytorch中构建Transformer进行序列预测源程序。包含所有的源代码和数据,程序能够一键运行。此程序是完整的Transformer,即使用了Encoder、Decoder和Embedding所有模块。源程序是用jupyterLab所写,建议分块运行。也整理了.py格式供PyCharm等运行。
工作是进行序列预测,此示例是使用12个值,来预测1个值。
具体工作如下:
1、加载数据。数据为Excel文件,525行,13列。即525个样本,前12列为数据,第13列为预测值(标签)。原序列长度为12,预测步长为1。为了符合Transformer的输入,将原始的1x12序列强行调整为3x4的格式,即序列长度=3,维度=4。这一步对于Transformer非常重要。依次划分70%、10%、20%作为训练集、验证集和测试集。
2、构建Encoder、Decoder类,进而构建Transformer。用summary显示网络结构。
3、训练,计算Loss。
4、测试,计算测试集R2、MAE、RMSE、MAPE,绘图。