README.md

    该项目将数据预处理、模型构建等均放在了LSTM+Linear.py中。该模型的结构采用最简单的LSTM加Linear结构,但是在Epoch为150时结果(R2)能达到0.38左右,同时在预测结束时,该模型会保存一张图片——labels和预测结果的对比图。 在基础的模型上,还尝试了将特征拆分输入LSTM,分别输出结果,经过cat拼接后输入Linear线性层输出结果。模型大致结构如下: `class LSTMModel(nn.Module): def init(self, args): super(LSTMModel, self).init() self.args = args self.lstm = nn.LSTM(args.input_size, args.hidden_size, args.num_layers, batch_first=True, bidirectional=args.bidirectional) self.linear0 = nn.Linear(args.all_input_size * args.hidden_size, 128) self.linear1 = nn.Linear(128, args.output_size)

    def forward(self, inputs):
        out0, (h0, c0) = self.lstm(inputs[:, :, 0].view(-1, self.args.window_size, self.args.input_size))
        out1, (h1, c1) = self.lstm(inputs[:, :, 1].view(-1, self.args.window_size, self.args.input_size))
        out2, (h2, c2) = self.lstm(inputs[:, :, 2].view(-1, self.args.window_size, self.args.input_size))
        out3, (h3, c3) = self.lstm(inputs[:, :, 3].view(-1, self.args.window_size, self.args.input_size))
        out4, (h4, c4) = self.lstm(inputs[:, :, 4].view(-1, self.args.window_size, self.args.input_size))
        out5, (h5, c5) = self.lstm(inputs[:, :, 5].view(-1, self.args.window_size, self.args.input_size))
        out6, (h6, c6) = self.lstm(inputs[:, :, 6].view(-1, self.args.window_size, self.args.input_size))
        out7, (h7, c7) = self.lstm(inputs[:, :, 7].view(-1, self.args.window_size, self.args.input_size))
        inputs = torch.cat([h0, h1, h2, h3, h4, h5, h6, h7], dim=2)
        inputs = inputs.view(-1, self.args.input_size, self.args.all_input_size * self.args.hidden_size)
        out = self.linear0(inputs)
        out = self.linear1(out)
        return out`

    但是这个模型的结果尚不达标,R2结果为负,因此还在尝试阶段。 后续工作,打算继续尝试LSTM+Attention+Linear模型结构。

    项目简介

    基于Pytorch的天气污染预测任务,使用LSTM+Fc搭建模型。数据集共有七个特征,分别是DEWP,TEMP,PRES,cbwd,Iws,Is,Ir,目标是pm2.5。

    发行版本

    当前项目没有发行版本

    贡献者 1

    简单小白菜 @weixin_51336194

    开发语言

    • Python 100.0 %