Skip to content

DLinear 总览与 Level 树

Abstract

这篇是 DLinear/ 目录的唯一总入口。

它只做四件事:

  1. 固定当前真实运行例子
  2. 固定一个最小 toy 例子
  3. 给出从命令行到 DLinear.forward(...) 的总顺序图和 Level 树
  4. 说明后续每篇文档各自展开哪一部分

0. 当前学习这组 DLinear 文档的第一性

当前学习 DLinear,不是为了背一个简单模型名字,而是为了建立三种能力:

  1. 代码实现能力
    • 知道一个最简单的 forecasting 模型怎样接到 TFB 里、怎样收输入、怎样吐输出。
  2. 实验运行能力
    • 知道改 seq_len / pred_len / moving_avg / individual 会影响哪里,能跑通最小实验。
  3. 模型对照能力
    • 用 DLinear 这个最简单基线,分清哪些是 TFB 固定外壳,哪些是 Informer 这种复杂模型才额外引入的机制。

所以这组文档的第一性不是“学一个模型名字”,而是:

用最小模型建立“读模型代码 -> 接框架 -> 动代码 -> 跑实验”的底座。

1. 当前真实运行例子

固定主线例子:

  • 数据:ETTh1.csv
  • 模型:time_series_library.DLinear
  • adapter:transformer_adapter
  • strategy:rolling_forecast

关键参数:

  • seq_len = 96
  • label_len = 48
  • horizon = pred_len = 24
  • batch_size = 4
  • moving_avg = 25
  • enc_in = 7
  • individual = False

这组参数的意义:

  • seq_len = 96
    • 每次喂给 DLinear 的历史长度。
  • pred_len = 24
    • DLinear 每次要预测未来多少步。
  • moving_avg = 25
    • 分解趋势项时使用的滑动平均窗口。
  • enc_in = 7
    • 每个时间步有 7 个变量。
  • individual = False
    • 7 个变量共享一套 seasonal / trend 线性头。

2. 固定 toy 例子

为了让文档能脱离源码阅读,固定一个极小 toy 例子:

  • B = 1
  • seq_len = 4
  • pred_len = 2
  • enc_in = 2
  • moving_avg = 3
  • individual = False

toy 输入:

text
x_enc =
[
  [1, 10],
  [2, 11],
  [3, 12],
  [4, 13],
]
shape = (1, 4, 2)

这 4 个时间步、2 个变量,会被一路送进:

  • series_decomp
  • Linear_Seasonal
  • Linear_Trend
  • 最终输出 (1, 2, 2)

3. 总顺序图

4. 总抽象树

5. Level 到文档的映射表

层级文档这一层解决的问题入口出口
Level 101-Level1-配置进入DLinear为什么当前命令最后会变成 DLinear(config)run_benchmark.py + argsmodel = DLinear(config)
Level 202-Level2-数据进入DLinearbatch 四元组怎么进入 DLinear_process(input, target, input_mark, target_mark)DLinear.forward(...)
Level 303-Level3-forward主链forecasting 任务里 forward(...) 实际走哪条分支DLinear.forward(...)forecast(x_enc)
Level 404-Level4-encoder分解与线性预测总览encoder(x_enc) 内部到底做了什么encoder(x_enc)(B, pred_len, C)

6. Level 4 的子块

Level 4 已继续下钻到两个子块:

注意:

  • 4C4D 目前还并在 04-Level4-encoder分解与线性预测总览 里讲。
  • 如果以后继续拆,也应该作为 04 的子块,而不是新开假 Level。

7. 附录文档

这些不是 Level 主线,而是辅助文档:

8. 固定阅读顺序

严格按这个顺序:

  1. 01-Level1-配置进入DLinear
  2. 02-Level2-数据进入DLinear
  3. 03-Level3-forward主链
  4. 04-Level4-encoder分解与线性预测总览
  5. 04A-series_decomp与moving_avg
  6. 04B-SeasonalTrend线性头
  7. 09-DLinear全览流程图收束

遇到看不懂的 torch 算子,再查:

如果想从论文原理反接代码,再看:

如果想知道“为什么要学模型、学到什么程度算够”,再看:

9. 只留一句

这组 DLinear 文档以后不再按“主题并列”组织,而是按“真实运行链 + Level 主树 + 必要附录”组织,用来支撑你尽量不读源码也能把 DLinear 跑通、讲清、改动。

*记录并在线阅读我的笔记*