File size: 2,484 Bytes
0ba2894
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
67
68
69
70
71
72
73
# Prithvi WxC 训练配置示例
# 论文配置为 0.5°×0.625°(360/361×576)网格、160 动态变量、embed_dim=2560、
# 编码器 13 本地+12 全局块、解码器 3 本地+2 全局块(约 23 亿参数,需大规模显存)。
# 当前为连通性验证小配置(约百万级参数)。
model:
  start_epoch: 0
  max_epoch: 100
  lr: 1E-3
  patience: 50
  checkpoint_dir: "./data/checkpoints"

  # Prithvi WxC 结构参数
  in_channels: 6                 # 论文为 160(20 单层 + 10 变量 ×14 层)
  input_size_time: 2             # 两个输入时刻
  in_channels_static: 4          # 静态通道数(论文 MEMRA-2 为 4)
  n_lats_px: 32                  # 数据纬度方向像元数(论文约 360)
  n_lons_px: 64                  # 数据经度方向像元数(论文 576)
  patch_size_px: [2, 2]          # token 尺寸(论文 2×2 像素)
  mask_unit_size_px: [8, 8]      # 掩码单元尺寸
  mask_ratio_inputs: 0.0         # 预训练为 0.5;预报滚动微调为 0.0
  embed_dim: 32                  # 隐藏维度(论文 2560)
  n_blocks_encoder: 1            # 编码器本地-全局对数量(论文 13 对 -> 25 块)
  n_blocks_decoder: 1            # 解码器本地-全局对数量(论文 5 块)
  mlp_multiplier: 4.0
  n_heads: 4                     # 注意力头数(论文 16)
  dropout: 0.0
  drop_path: 0.0
  parameter_dropout: 0.0
  residual: "none"               # none / temporal / climate
  masking_mode: "global"
  positional_encoding: "absolute"
  encoder_shifting: false
  decoder_shifting: 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

    # 气象变量(论文 160 通道配置的子集,用于连通性验证)
    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: 1
    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