证明结构来自代码
ONNX 文件由 src/models/lstm.py 和 src/models/transformer.py 创建并导出,Netron 负责查看真实计算图。
Netron Verification Desk
这一页提供由当前 PyTorch 代码导出的 ONNX 文件。打开这些文件,可以用 Netron 直接核查 LSTMForecaster 和 TransformerForecaster 的真实计算图,而不是只看手工绘制的示意结构。
Verification Role
ONNX 文件由 src/models/lstm.py 和 src/models/transformer.py 创建并导出,Netron 负责查看真实计算图。
WT、EMD、SSA、VMD 是模型前的数据分解流程,不是神经网络层;Netron 主要核查 LSTM 和 Transformer。
不同实验组的关键差异体现在输入方式:Raw 为 1 个原始风速通道,A组只输入分解分量,B组额外保留原始风速,C组逐分量建模后重构求和。
本地预览时,点击 ONNX 文件名会下载或打开本地模型文件;把下载的 .onnx 文件拖入
https://netron.app/ 页面即可查看。发布到公网静态站后,链接脚本会把 ONNX 文件名转换为
netron.app/?url=... 在线打开入口。
| 组别 | 方法 | 输入通道 | LSTM ONNX | Transformer ONNX | 说明 |
|---|---|---|---|---|---|
| Raw | Raw | 1 | raw_orig_lstm_input1.onnx | raw_orig_transformer_input1.onnx | 只输入原始风速 |
| A组 | WT | 4 | wt_modes_lstm_input4.onnx | wt_modes_transformer_input4.onnx | 只输入 WT 分量 |
| A组 | EMD | 5 | emd_modes_lstm_input5.onnx | emd_modes_transformer_input5.onnx | 只输入 EMD IMF 分量 |
| A组 | SSA | 5 | ssa_modes_lstm_input5.onnx | ssa_modes_transformer_input5.onnx | 只输入 SSA 重构分量 |
| A组 | VMD | 5 | vmd_modes_lstm_input5.onnx | vmd_modes_transformer_input5.onnx | 只输入 VMD 模态 |
| B组 | WT | 5 | wt_orig_lstm_input5.onnx | wt_orig_transformer_input5.onnx | WT 分量 + 原始风速 |
| B组 | EMD | 6 | emd_orig_lstm_input6.onnx | emd_orig_transformer_input6.onnx | EMD IMF 分量 + 原始风速 |
| B组 | SSA | 6 | ssa_orig_lstm_input6.onnx | ssa_orig_transformer_input6.onnx | SSA 重构分量 + 原始风速 |
| B组 | VMD | 6 | vmd_orig_lstm_input6.onnx | vmd_orig_transformer_input6.onnx | VMD 模态 + 原始风速 |
| C组 | WT | 1 / 分量 | c_wt_component_lstm_input1.onnx | c_wt_component_transformer_input1.onnx | 每个 WT 因果分量单独预测,再把所有分量预测重构求和 |
| 组别 | 方法 | 输入形状 | LSTM 参数量 | LSTM 节点 | Transformer 参数量 | Transformer 节点 | 核心算子 |
|---|---|---|---|---|---|---|---|
| Raw | Raw | (1,144,1) | 208,984 | 55 | 122,904 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| A组 | WT | (1,144,4) | 210,520 | 55 | 123,096 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| A组 | EMD | (1,144,5) | 211,032 | 55 | 123,160 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| A组 | SSA | (1,144,5) | 211,032 | 55 | 123,160 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| A组 | VMD | (1,144,5) | 211,032 | 55 | 123,160 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| B组 | WT | (1,144,5) | 211,032 | 55 | 123,160 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| B组 | EMD | (1,144,6) | 211,544 | 55 | 123,224 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| B组 | SSA | (1,144,6) | 211,544 | 55 | 123,224 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| B组 | VMD | (1,144,6) | 211,544 | 55 | 123,224 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
| C组 | WT component | (1,144,1) | 208,984 | 55 | 122,904 | 180 | LSTM/Gemm;MatMul/Gemm/LayerNorm/Softmax |
节点数在同一模型族内保持一致,是因为网络结构没有变;参数量随 input_dim 增加而小幅增加,
说明 Raw、A组、B组的主要差异发生在输入通道,而不是预测头结构。C组的单个分量预测器也是同一套
LSTM/Transformer 结构,但会对多个分量分别训练多个模型,并在预测阶段求和重构风速。
How To Inspect
E:\Conda\envs_dirs\wind_forecast\python.exe scripts\09_export_netron_models.py --overwrite
E:\Conda\envs_dirs\wind_forecast\python.exe scripts\10_summarize_onnx_models.py
如果模型代码或输入输出长度改了,先重新导出 ONNX,再重新生成结构摘要。
.onnx 文件名或“下载”,保存模型后拖入 netron.app。netron.app/?url=...,可以直接在线打开。
本地服务可用于预览网站和下载 ONNX;Netron 在线页仍可能拒绝读取 127.0.0.1 模型地址。
E:\Conda\envs_dirs\wind_forecast\python.exe scripts\13_serve_website.py --port 8765
Model Facts
src/models/lstm.py(1, 144, input_dim)hidden_dim=128,num_layers=20.2Linear(128,64) -> ReLU -> Dropout -> Linear(64,24)(1, 24, 1)src/models/transformer.pyLinear(input_dim,64)num_layers=2,nhead=4dim_feedforward=256Linear(64,256) -> ReLU -> Dropout -> Linear(256,24)(1, 24, 1)Generated Artifact
ONNX 文件用于展示网络结构和输入输出维度,不代表模型精度。论文结果仍然以
outputs/results/decomposition 中的实验指标为准。