AAAI最佳论文Informer 复现(含python notebook代码)

AAAI最佳论文Informer 解读(含python notebook代码)

Github论文源码

由于很菜,零基础看源码的时候喜欢按照代码运行的顺序来跑一遍一个batch,从外层一点点拆进去,看代码内部的逻辑。最初复现的时候大部分都沿用args里的default,后面再尝试改用自己的数据+调参(哈哈至今也无法参透调参的这部分,希望不是玄学。。。)
记录一下本菜菜的复现过程。

1 代码运行顺序

  • main_informer.py 最外层,参数设置、让代码跑起来
    args.itr 迭代调用exp/exp_informer.py 中的 Exp_Informer类并传入args构建Exp_Informer类实例,继承了同文件夹中的exp_basic.py/Exp_Basic类
    • 执行 Exp_Informer._build_model(args) 函数, 构建Informer模型实例
    • 调用 Exp_Informer.train(setting)
      • 调用Exp_Informer._get_data(flag=‘train’)
        • 调用data/data_loader.py 中的 Dataset_ETT_hour 类,并传入args构建实例
        • Dataset实例转换为DataLoader实例
      • args.train_epochs 迭代,每个epoch 都取出dataloader中的所有batch数据
        • batch迭代,batch_x, batch_y,batch_x_mark,batch_y_mark 的形状(shape)分别是 [32, 96, 7],[32, 24, 7],[32, 96, 4],[32, 72, 4]
          • 调用 Exp_Informer._process_one_batch() 在这个函数中将每个batch的数据传递进入前面构建的Informer模型。也会在这个函数进行一些padding等,返回的输model出值。
          • 计算损失,梯度下降迭代 loss.backward()
        • 对所有batch训练结束后调用 Exp_Informer.vali() 查看当前epoch的验证集表现结果。并挑选最好的checkpoint存下来。
    • 调用Exp_Informer.test(setting)
      (略)类似train的过程
    • torch.cuda.empty_cache()

2 复现

2.1 复现结果

wandb
在这里插入图片描述
在这里插入图片描述
上图为测试集的表现
training 过程中的output和真值的对比(注意不是test!)
上图是training过程中训练集的output和真值的对比,注意并不是测试集!

2.2 复现代码

感觉现在结果有点拉,还没有调参全部用的默认参数(真的不想调参。。。)。欢迎评论区大佬们给点指导意见,,怎么才能调的更好点。
kaggle notebook
这里打开应该是这个样子的
在这里插入图片描述

3 未完待续 2023/11/22

真的菜菜菜菜菜中菜,欢迎评论区大佬指正!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值