【时间序列预测】Pytorch搭建Transformer实现多变量多步长时间序列预测(负荷预测)

一、Transformer原理
二、Pytorch下的Transformer的具体实现
Transformer的模型搭建如下:
初始时的数据输入维度为7,也就是每个时刻的负荷值以及6个环境变量。在Transformer的原始论文中,文本嵌入维度为512,而且Pytorch规定nhead数和d_model也就是嵌入维度必须满足整除关系,因此首先将原始数据 从7维映射到d_model维度:

x = self.input_fc(x)

其中input_fc:

self.input_fc = nn.Linear(args.input_size,args.d_model)

然后对原始输入进行位置编码:

x=self.pos_emd(x)

然后经过编码层:

x=self.encoder(x)

得到的输出和输入维度一致
原始Transformer中的解码器效果很差,因此这里直接将编码器的编码结果经过两个线性层得到输出:

x=x.flatten(start_dim=1)
x=self.fc1(x)
out=self.fc2(x)

代码实现:
3.1 数据处理
利用前24个小时的负荷值+环境变量预测后12个时刻的负荷值,数据处理和前面一致

你可能感兴趣的:(时间序列(time,series),pytorch,transformer,深度学习)