model: name: ClimODE default_checkpoint: ./data/checkpoints/model_bak.pth pretrained_checkpoint: ./weight/ClimODE_global.pt input_channels: 5 input_height: 32 input_width: 64 solver: euler atol: 0.005 rtol: 0.005 use_attention: true use_uncertainty: true use_positional_encoder: false learning_rate: 0.0005 weight_decay: 0.00001 epochs: 10 checkpoint_dir: ./data/checkpoints data: data_dir: ./data # ERA5Dataset receives this root and resolves data/.h5 itself. raw_data_dir: ./data/data static_dir: ./data/static output_dir: ./result/output time_step_hours: 6 input_steps: 1 output_steps: 1 # ClimODE min-max normalization; ERA5Dataset's mean/std transform stays disabled. normalize: true # ClimODE uses the following order throughout the model and metrics. variables: [z, t, t2m, u10, v10] variable_sources: z: geopotential_500 t: temperature_850 t2m: 2m_temperature u10: 10m_u_component_of_wind v10: 10m_v_component_of_wind train_years: [2014, 2015] val_years: [2016] test_years: [2017] raw_height: 721 raw_width: 1440 model_height: 32 model_width: 64 regrid_method: bilinear stats_dir: ./data/static static_file: ./data/static/constants.h5 dataloader: batch_size: 8 num_workers: 0 pin_memory: false drop_last: false sequence_length: 8 velocity: cache_dir: ./data/checkpoints/velocity optimizer: Adam learning_rate: 2.0 epochs: 200 smoothing_alpha: 1.0e-7 kernel_sigma: 1.0 training: epochs: 10 finetune_epochs: 5 finetune_learning_rate: 0.00005 mode: scratch seed: 42 ddp_backend: nccl max_batches: null log_file: ./result/train.jsonl fake_data: # The default is intentionally small in time but preserves the real ERA5 grid. timesteps: 12 years: [2014, 2015, 2016, 2017] height: 721 width: 1440 seed: 42 dtype: float32 runtime: device: cuda module: sghpc-mpi-gcc/26.3 conda_env: develop_base output: checkpoint_name: model_bak.pth metrics_file: ./result/metrics.json prediction_file: ./result/output/predictions.npy figure_dir: ./result/output/figures