| # GraphDOP 训练配置示例 | |
| # 论文配置:输入一个 12 小时观测窗口(O96 reduced Gaussian 网格约 1°、40320 潜节点), | |
| # 经 GNN 编码器映射到潜网格、Transformer 处理器推进时间、GNN 解码器预测下一窗口观测; | |
| # 潜空间通道 1024,WMSE 目标,18 年数据(2004-2021)训练,64×H100 70k 步。 | |
| # 当前为连通性验证小配置:虚拟数据 32×32 网格、潜网格 8×8、latent_dim=64。 | |
| model: | |
| start_epoch: 0 | |
| max_epoch: 100 | |
| lr: 1E-3 # 论文起始 lr=1e-3,cosine 退火到 3e-7(warmup 1000 步) | |
| patience: 50 | |
| checkpoint_dir: "./data/checkpoints" | |
| # GraphDOP 结构参数(论文值见注释) | |
| in_channels: 6 # 观测通道数(论文为多仪器通道,如 ATMS/AMSU-A/IASI 等) | |
| out_channels: 6 # 预报通道数 | |
| input_steps: 2 # 输入窗口帧数(论文为单个 12h 窗口;time_step=6h 故取 2 帧) | |
| output_steps: 2 # 输出窗口帧数(论文为下一个 12h 窗口) | |
| grid_shape: [32, 32] # 观测网格尺寸(论文 O96 约 1°) | |
| mesh_shape: [8, 8] # 潜网格尺寸(论文 O96 reduced Gaussian 40320 节点) | |
| latent_dim: 64 # 潜空间通道数(论文 1024) | |
| num_encoder_layers: 2 # 编码器 GNN 消息传递层数 | |
| num_decoder_layers: 2 # 解码器 GNN 消息传递层数 | |
| num_processor_blocks: 1 # 处理器 Transformer 块数 | |
| n_heads: 4 | |
| hidden_dim: 64 | |
| channel_weights: [1, 1, 1, 1, 1, 1] # WMSE 逐通道权重(论文 w_{c,i} 经验值) | |
| # 整个数据读取流程 | |
| datapipe: | |
| name: "ERA5" | |
| task: "weather_forecasting" | |
| dataset: | |
| type: "hdf5" | |
| data_dir: './data/' | |
| train_time: [1951, 1952] | |
| val_time: [1953] | |
| test_time: [1954] | |
| img_size: [32, 32] | |
| verbose: true | |
| cache: false | |
| # 气象变量(论文观测类型占位:ATMS 亮温/掩星弯角/散射计后向散射/雷达高度计有效波高/常规观测) | |
| channels: ['atms_brightness_temperature', 'gpsro_bending_angle', 'ascat_sigma0', | |
| 'significant_wave_height', '2m_temperature', '10m_wind_speed'] | |
| # DataLoader 配置 | |
| dataloader: | |
| mask_dtype: "float32" | |
| batch_size: 4 | |
| num_workers: 1 | |
| pin_memory: true | |
| drop_last: true | |
| shuffle: false | |
| prefetch_factor: 2 | |
| persistent_workers: true | |
| # 分布式配置 | |
| distributed: | |
| enabled: true | |
| sampler: "DistributedSampler" | |
| rank: 0 | |
| world_size: 2 | |
| shuffle: true | |
| seed: 42 | |
| drop_last: true | |