WindFM 是用于风功率时间序列预测的模型,来自 WindFM 项目。
该模型采用多层 Transformer 架构,结合时间特征 embedding 和离散化风功率嵌入,实现风功率预测。
| 属性 | 值 |
|---|---|
| 参数量 | 4.10M |
| d_model | 256 |
| Transformer 层数 | 4 |
| Attention Heads | 8 |
| FFN Dimension | 512 |
| S1/S2 Embedding Size | 1024 |
| S1 Bits | 10 |
| S2 Bits | 10 |
| 权重精度 | float32 |
(batch_size, seq_len, 2) 的离散化风功率索引(batch_size, seq_len, 5) 的时间特征 (day, hour, minute, month, weekday)(batch_size, seq_len, 1024) 的 S1 预测 logits(batch_size, seq_len, 1024) 的 S2 预测 logits| 依赖项 | 版本要求 | 说明 |
|---|---|---|
| 操作系统 | CentOS 7.6+ / Ubuntu 18.04+ | 支持主流 Linux 发行版 |
| CANN | 5.0.RC2+ | 华为昇腾计算架构 |
| Python | 3.10 / 3.12 | 推荐 3.12 |
| PyTorch | 2.0.0+ | 推荐 2.10 |
| torch_npu | 与 PyTorch 版本匹配 | 昇腾 PyTorch 扩展 |
| safetensors | 0.4.0+ | 安全张量加载 |
pip install torch_npu -i https://repo.huaweicloud.com/repository/pypi/simple
pip install safetensors -i https://repo.huaweicloud.com/repository/pypi/simplecd /workspace/agent/WindFM-ascendpython3 inference.py --device npu:0python3 inference.py --device npu:0 --show_npu_memorypython3 inference.py --device npu:0 --seq_len 200python3 inference.py --device npu:0 --show_npu_memory输出结果:
[W819 07:11:51.701549030 FunctionLoader.cpp:48] Warning: LD_PRELOAD detected...
[设备] npu:0
NPU设备数量: 1
设备 0: Ascend910B2
[配置] d_model: 256
[配置] n_heads: 8
[配置] n_layers: 4
[配置] ff_dim: 512
[配置] s1_bits: 10
[配置] s2_bits: 10
[参数量] 4.10M
[模型加载]
模型: WindFM (风功率预测)
- 任务: 风功率时间序列预测
- 参数量: 4.10M
[模型已迁移至] npu:0
[NPU显存 · 模型加载后] 总显存=61.0GB | 已分配=15.7MB | 缓存=34.00MB | 峰值=15.7MB
构建测试输入: 随机风功率数据 (seq_len=96)
输入形状 x: (1, 96, 2)
时间特征形状: (1, 96, 5)
运行推理...
[NPU显存 · 推理完成后] 总显存=61.0GB | 已分配=16.5MB | 缓存=34.00MB | 峰值=17.1MB
==============================================================================
输出摘要
==============================================================================
模型: WindFM (风功率预测)
输入形状: (1, 96, 2)
时间特征形状: (1, 96, 5)
输出 S1 形状: (1, 96, 1024)
输出 S2 形状: (1, 96, 1024)
总耗时: 0.30s
输出 S1 finite: True
输出 S2 finite: True
输出 S1 均值: -2.6320
输出 S1 范围: [-8.3477, 2.6805]
输出 S2 均值: -2.2659
输出 S2 范围: [-7.7282, 3.1618]性能指标:
| 指标 | 值 |
|---|---|
| 参数量 | 4.10M |
| 推理耗时 | 0.30s |
| NPU 显存峰值 | 17.1 MB |
| 输出精度 | float32 |
python3 inference.py --device npu:0 --seq_len 200 --show_npu_memory输出结果:
...
输入形状 x: (1, 200, 2)
时间特征形状: (1, 200, 5)
输出 S1 形状: (1, 200, 1024)
输出 S2 形状: (1, 200, 1024)
总耗时: 0.30s
输出 S1 finite: True
输出 S2 finite: True
输出 S1 均值: -2.6478
输出 S1 范围: [-8.0242, 3.0149]
输出 S2 均值: -2.2753
输出 S2 范围: [-7.5028, 3.4965]python3 inference.py --device cpu| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
--model_path | str | /workspace/agent/WindFM | 模型路径 |
--device | str | npu:0 | 设备 (npu:0, cpu, cuda:0) |
--show_npu_memory | bool | False | 显示 NPU 显存信息 |
--seq_len | int | 96 | 输入序列长度 |