File size: 1,979 Bytes
9b62a9b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# SFNO 训练配置示例
# 论文默认配置为 0.25° 全球网格(721×1440)与 26/73 通道;
# 当前 img_size/embed_dim 等为连通性验证用的小配置,完整论文复现需按论文调整。
model:
  start_epoch: 0
  max_epoch: 100
  lr: 1E-3
  patience: 50
  checkpoint_dir: "./data/checkpoints"

  # SFNO 网络参数(模型名对应 Bonev et al. 2023 Spherical Fourier Neural Operator)
  img_size: [32, 64]          # 论文为 [721, 1440](0.25° ERA5)
  scale_factor: 2             # 潜在空间频谱降采样倍数(论文天气模型未公开精确值)
  embed_dim: 16               # 嵌入维度(论文为 256,需大显存)
  num_layers: 2               # SFNO block 层数(论文约 8 层)
  activation_function: "gelu"
  use_mlp: true
  mlp_ratio: 2.0
  drop_rate: 0.0
  drop_path_rate: 0.0
  normalization_layer: "instance_norm"
  hard_thresholding_fraction: 1.0
  residual_prediction: false
  pos_embed: "none"           # 可选: none / sequence / spectral / learnable lat / learnable latlon
  bias: false

# 整个数据读取流程
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, 64]
    verbose: true
    cache: false

    # 气象变量(此处为论文 26/73 变量配置的一个小子集,用于连通性验证)
    channels: ['10m_u_component_of_wind', '10m_v_component_of_wind', '2m_temperature',
               'mean_sea_level_pressure', 'geopotential_500', 'temperature_850']

  # DataLoader 配置
  dataloader:
    mask_dtype: "float32"
    batch_size: 2
    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