Skip to content

收束 — 端到端流程 + Tensor 汇总


1. 端到端流程图(含 subgraph)


2. Tensor 变化汇总表

步骤操作输入 shape输出 shape关键参数
dec_input 构造cat(历史, zeros)(3,5,6) + (3,7,6)(3,12,6)label_len=5, pred_len=7
enc_embeddingTokenEmb+TimeEmb+PosEmb(3,10,6) + (3,10,4)(3,10,8)d_model=8
dec_embedding同上(3,12,6) + (3,12,4)(3,12,8)d_model=8
EncoderLayer[0]ProbSparse self-attn + FFN(3,10,8)(3,10,8)L=10, u=3
ConvLayerConv1d(k=3,p=2) + MaxPool(k=3,s=2,p=1)(3,10,8)(3,6,8)10→12→6
EncoderLayer[1]ProbSparse self-attn + FFN(3,6,8)(3,6,8)L=6, u=2
Encoder LayerNormLayerNorm(8)(3,6,8)(3,6,8)
DecoderLayer selfProbSparse masked self-attn(3,12,8)(3,12,8)mask_flag=True, u=3
DecoderLayer crossProbSparse cross-attnQ:(3,12,8) K/V:(3,6,8)(3,12,8)mask_flag=False, L_Q=12, L_K=6
DecoderLayer FFNConv1d(k=1)×2(3,12,8)(3,12,8)d_ff=24
Decoder LayerNormLayerNorm(8)(3,12,8)(3,12,8)
projectionLinear(8→6)(3,12,8)(3,12,6)c_out=6
输出切片[:,-7:,:](3,12,6)(3,7,6)pred_len=7

3. 核心设计决策回顾

ProbSparse Attention — 活跃度筛选

方面标准 TransformerInformer ProbSparse
复杂度O(L²)O(L log L)
计算方式所有 L_Q 个 query 都算完整注意力只有 top-u = factor×ceil(ln L_Q) 个活跃 query 精算
懒 query 输出mean(V) 近似(encoder)/ cumsum(V)(decoder masked)
活跃度度量M = max(采样点积) - sum(采样点积)/L_K

Distilling — 序列压缩

方面描述
Conv1d(k=3, p=2, circular)序列长度 +2(circular 填充不缩短序列)
MaxPool(k=3, s=2, p=1)步长 2 下采样:floor((L+2-3)/2+1) = floor(L/2)+1
toy 效果seq=10 → Conv1d → 12 → MaxPool → 6
目的逐层减小序列,后层注意力矩阵更小

Generative Decoder — 并行预测

方面Autoregressive(传统)Generative(Informer)
推理次数pred_len 次 forward1 次 forward
decoder 输入逐步扩展历史+零 一次性输入
预测质量误差积累(exposure bias)没有误差累积

4. 与同类模型的结构对比

模型注意力复杂度解码方式时间嵌入特色
InformerO(L log L) ProbSparse并行 Generative DecoderTimeFeatureEmbedding + PositionalEmbedding稀疏注意力 + 蒸馏
TransformerO(L²) full attention并行(非 autoregressive 训练)同上基线
DLinear无注意力Linear 直接映射无时间嵌入极简线性,速度最快
PatchTSTO(P²) patch-level无 decoderPatchEmbeddingchannel-independent patch

5. 文档索引 + 下一步建议

文档覆盖内容tensor 入/出
00-总览论文动机、3 个创新 ASCII 图、BFS 索引树、toy 参数
01-Layer0-接入界面config 映射、_process() dec_input 构造、forward() 分支(3,10,6) 进 → (3,7,6)
02-Layer1-forecast主链long/short 路径、embedding、encoder、decoder 调用链(3,10,8) enc → (3,6,8) 压缩 → (3,12,6) 输出
03A-Layer2A-DataEmbedding三路嵌入:TokenEmb + TimeFeatureEmb + PositionalEmb(3,L,enc_in)(3,L,8)
03B-Layer2B-EncoderConvLayer 蒸馏(seq 10→6)、EncoderLayer 双残差、ProbSparse 调用(3,10,8)(3,6,8)
03C-Layer2C-Decoder三段式:masked self-attn + cross-attn + FFN,projection(3,12,8)(3,12,6)
03B1-Layer3-EncoderLayer双残差块:ProbAttention self-attn + FFN (Conv1d k=1)(3,L,8)(3,L,8)
03C1-Layer3-DecoderLayer三段式:masked self-attn + cross-attn + FFN(3,12,8)(3,12,8)
04-Layer4-AttentionLayerd_model ↔ 多头格式桥梁;Q/K/V Linear 投影;4 种调用场景(B,L,d_model)(B,L,d_model)
04A-Layer5-ProbAttention_prob_QK M 分数、_get_initial_context、_update_context(B,L,H,D)(B,H,L,D)

已覆盖所有核心组件,无需进一步下钻。

如果下一步想深入,可参考:

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