Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions CNP_IO_updated9_dev_dw_repeat.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Dataset roots (any absolute paths)
TRENDY1_PATH: /mnt/proj-shared/AI4BGC_7xw/TrainingData/Trendy_1_data_CNP
TRENDY05_PATH: /mnt/proj-shared/AI4BGC_7xw/TrainingData/Trendy_05_data_CNP
TVA4KM_PATH: /mnt/proj-shared/AI4BGC_7xw/TrainingData/TVA_4km_data_CNP

# Optional extra roots (comma-separated)
DATA_PATHS: /another/path1, /another/path2

# Global fallback pattern if a dataset-specific one isn't set
#FILE_PATTERN: enhanced_1_training_data_batch_*.pkl
FILE_PATTERN: 1_training_data_batch_*.pkl

# Per-dataset patterns (overrides FILE_PATTERN for that path only)
TVA4KM_FILE_PATTERN: enhanced_monthly_training_data_batch_*.pkl


LONGITUDE FILTERING - 2 longitudes:
• 0, 358.75

TIME SERIES VARIABLES (Climate Forcing) - 6 variables:
• FLDS, PSRF, FSDS, QBOT, PRECTmms, TBOT

SURFACE PROPERTIES - 49 variables:
• Latitude, Longitude, AREA, landfrac, LANDFRAC_PFT, PCT_NATVEG

• OCCLUDED_P, SECONDARY_P, LABILE_P, APATITE_P

• SOIL_COLOR, SOIL_ORDER

• PCT_NAT_PFT_0, PCT_NAT_PFT_1, PCT_NAT_PFT_2, PCT_NAT_PFT_3, PCT_NAT_PFT_4, PCT_NAT_PFT_5, PCT_NAT_PFT_6, PCT_NAT_PFT_7, PCT_NAT_PFT_8
• PCT_NAT_PFT_9, PCT_NAT_PFT_10, PCT_NAT_PFT_11, PCT_NAT_PFT_12, PCT_NAT_PFT_13, PCT_NAT_PFT_14, PCT_NAT_PFT_15, PCT_NAT_PFT_16

• PCT_CLAY_0, PCT_CLAY_1, PCT_CLAY_2, PCT_CLAY_3, PCT_CLAY_4, PCT_CLAY_5, PCT_CLAY_6, PCT_CLAY_7, PCT_CLAY_8, PCT_CLAY_9
• PCT_SAND_0, PCT_SAND_1, PCT_SAND_2, PCT_SAND_3, PCT_SAND_4, PCT_SAND_5, PCT_SAND_6, PCT_SAND_7, PCT_SAND_8, PCT_SAND_9

PFT PARAMETERS (Plant Functional Type Characteristics) - 44 variables:

• pft_deadwdcn, pft_frootcn, pft_leafcn, pft_lflitcn, pft_livewdcn, pft_c3psn, pft_croot_stem, pft_crop, pft_dleaf
• pft_dsladlai, pft_evergreen, pft_fcur, pft_flivewd, pft_flnr, pft_fr_fcel, pft_fr_flab, pft_fr_flig, pft_froot_leaf
• pft_grperc, pft_grpnow, pft_leaf_long, pft_lf_fcel, pft_lf_flab, pft_lf_flig, pft_rholnir, pft_rholvis, pft_rhosnir, pft_rhosvis
• pft_roota_par, pft_rootb_par, pft_rootprof_beta, pft_season_decid, pft_slatop, pft_smpsc, pft_smpso, pft_stem_leaf, pft_stress_decid
• pft_taulnir, pft_taulvis, pft_tausnir, pft_tausvis, pft_woody, pft_xl, pft_z0mr

SCALAR VARIABLES (1D - 4 variables):
• GPP, NPP, AR, HR

1D PFT VARIABLES (41 variables):

• deadcrootc, deadcrootc_storage, deadcrootn, deadcrootn_storage, deadcrootp, deadcrootp_storage
• deadstemc, deadstemc_storage, deadstemn, deadstemn_storage, deadstemp, deadstemp_storage

• leafc, leafc_storage, leafn, leafn_storage, leafp, leafp_storage
• frootc, frootc_storage, frootn, frootn_storage, frootp, frootp_storage

• livestemc, livestemc_storage, livestemn, livestemn_storage, livestemp, livestemp_storage,
• livecrootc, livecrootc_storage, livecrootn, livecrootn_storage, livecrootp, livecrootp_storage

• cpool, npool, ppool

• tlai, totvegc

2D VARIABLES (layered - 25 variables):

• cwdc_vr, cwdn_vr, cwdp_vr

• litr2c_vr, litr3c_vr
• litr2n_vr, litr3n_vr
• litr2p_vr, litr3p_vr

• soil1c_vr, soil1n_vr, soil1p_vr
• soil2c_vr, soil2n_vr, soil2p_vr
• soil3c_vr, soil3n_vr, soil3p_vr
• soil4c_vr, soil4n_vr, soil4p_vr

• labilep_vr , occlp_vr, primp_vr, secondp_vr, solutionp_vr
8 changes: 7 additions & 1 deletion commands.txt
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ python train_cnp_model.py \
--variable-list CNP_IO_updated9_dev_dw.txt \
--training-config-json config/training_config_experiment_2.json \
--pft-zero-sparsity-weight 1.0 \
--epoch 50 \
--epoch 80 \
--tropical-only \
2>&1 | tee training_cpool_experiment.log &

Expand Down Expand Up @@ -160,4 +160,10 @@ python train_cnp_model.py \
--variable-list CNP_IO_updated9_dev_dw.txt \
--training-config config/training_config_experiment_2_plus.json \
--epoch 80 \
--tropical-only


python train_cnp_model.py \
--variable-list CNP_IO_updated9_dev_dw_repeat.txt \
--training-config config/training_config_experiment_2_repeat.json \
--tropical-only
131 changes: 131 additions & 0 deletions config/training_config_experiment_2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
{
"training_hyperparameters": {
"num_epochs": 100,
"batch_size": 128,
"learning_rate": 0.0001,
"optimizer_type": "adam",
"weight_decay": 0.0,
"use_scheduler": false,
"xsmrpool_loss_weight": 10.0,
"litter_c_loss_weight": 1.0,
"litter_n_loss_weight": 1.0,
"litter_p_loss_weight": 1.0,
"scalar_loss_weight": 1.0,
"vector_loss_weight": 1.0,
"matrix_loss_weight": 1.0
},
"reproducibility_config": {
"random_seed": 42,
"strict_determinism": false,
"train_split": 0.8,
"normalization": "individual",
"dropout_p": null
},
"data_filtering_config": {
"tropical_only": true,
"tropical_lat_range": [-23.5, 23.5]
},
"variable_weights": {
"pft1d_weights": {
"cpool": 6,
"npool": 8,
"ppool": 8,
"totvegc": 6,
"leafc": 6,
"leafn": 6,
"leafp": 6,
"leafc_storage": 5,
"leafn_storage": 5,
"leafp_storage": 5,
"deadstemc": 6,
"deadstemn": 6,
"deadstemp": 5,
"frootc": 4,
"frootn": 4,
"frootp": 4,
"frootc_storage": 3,
"frootn_storage": 3,
"frootp_storage": 3,
"tlai": 4
},
"soil2d_weights": {
"primp_vr": 9,
"litr2c_vr": 8,
"litr2p_vr": 8,
"litr2n_vr": 8,
"soil1c_vr": 7,
"soil1n_vr": 7,
"soil1p_vr": 7,
"litr3n_vr": 5,
"labilep_vr": 5,
"secondp_vr": 2.5,
"solutinorganicp_vr": 5,
"litr3p_vr": 5
},
"scalar_weights": {
"GPP": 1.5,
"NPP": 1.5,
"AR": 1.2,
"HR": 1.2
}
},
"tail_aware_config": {
"loss": "log1p_mse",
"epsilon": 1e-8
},
"tail_aware_weights": {
"cpool": 6,
"deadstemc": 6,
"deadcrootc": 5,
"livestemc": 5,
"livecrootc": 5,
"npool": 8,
"ppool": 8,
"totvegc": 6,
"leafc": 6,
"leafn": 6,
"leafp": 6,
"leafc_storage": 5,
"leafn_storage": 5,
"leafp_storage": 5,
"deadstemp": 5,
"deadstemn": 6,
"frootc": 4,
"frootn": 4,
"frootp": 4,
"labilep": 5,
"labilep_vr": 5,
"primp_vr": 9,
"litr2c_vr": 8,
"litr2p_vr": 8,
"litr2n_vr": 8,
"litr3c_vr": 5,
"litr3p_vr": 5,
"litr3n_vr": 5,
"soil1c_vr": 7,
"soil1n_vr": 7,
"soil1p_vr": 7
},
"pft_mask_config": {
"mask_absent_pfts": true,
"pft_presence_threshold": 0.0
},
"pft_zero_sparsity_config": {
"weight": 1.0,
"threshold": 1e-8
},
"pft_zero_sparsity_weights": {
"cpool": 2,
"deadstemc": 1,
"deadcrootc": 1,
"livestemc": 1,
"livecrootc": 1
},
"pft1d_activation_overrides": {
"cpool": "abs",
"deadstemc": "abs",
"deadcrootc": "abs",
"livestemc": "abs",
"livecrootc": "abs"
}
}
135 changes: 135 additions & 0 deletions config/training_config_experiment_2_repeat.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
{
"_description": "Repeat of run_20260212_162802_experiment_2: 100 epochs, AdamW, cosine scheduler. Use this config (with same variable list) to reproduce experiment_2 behavior.",
"training_hyperparameters": {
"num_epochs": 100,
"batch_size": 128,
"learning_rate": 0.0001,
"optimizer_type": "adamw",
"weight_decay": 0.01,
"use_scheduler": true,
"scheduler_type": "cosine",
"scheduler_step_size": 10,
"scheduler_gamma": 0.1,
"xsmrpool_loss_weight": 10,
"litter_c_loss_weight": 1,
"litter_n_loss_weight": 1,
"litter_p_loss_weight": 1,
"scalar_loss_weight": 1,
"vector_loss_weight": 1,
"matrix_loss_weight": 1
},
"reproducibility_config": {
"random_seed": 42,
"strict_determinism": false,
"train_split": 0.8,
"normalization": "individual",
"dropout_p": null
},
"data_filtering_config": {
"tropical_only": true,
"tropical_lat_range": [-23.5, 23.5]
},
"variable_weights": {
"pft1d_weights": {
"cpool": 6,
"npool": 8,
"ppool": 8,
"totvegc": 6,
"leafc": 6,
"leafn": 6,
"leafp": 6,
"leafc_storage": 5,
"leafn_storage": 5,
"leafp_storage": 5,
"deadstemc": 6,
"deadstemn": 6,
"deadstemp": 5,
"frootc": 4,
"frootn": 4,
"frootp": 4,
"frootc_storage": 3,
"frootn_storage": 3,
"frootp_storage": 3,
"tlai": 4
},
"soil2d_weights": {
"primp_vr": 9,
"litr2c_vr": 8,
"litr2p_vr": 8,
"litr2n_vr": 8,
"soil1c_vr": 7,
"soil1n_vr": 7,
"soil1p_vr": 7,
"litr3n_vr": 5,
"labilep_vr": 5,
"secondp_vr": 2.5,
"solutinorganicp_vr": 5,
"litr3p_vr": 5
},
"scalar_weights": {
"GPP": 1.5,
"NPP": 1.5,
"AR": 1.2,
"HR": 1.2
}
},
"tail_aware_config": {
"loss": "log1p_mse",
"epsilon": 1e-8
},
"tail_aware_weights": {
"cpool": 6,
"deadstemc": 6,
"deadcrootc": 5,
"livestemc": 5,
"livecrootc": 5,
"npool": 8,
"ppool": 8,
"totvegc": 6,
"leafc": 6,
"leafn": 6,
"leafp": 6,
"leafc_storage": 5,
"leafn_storage": 5,
"leafp_storage": 5,
"deadstemp": 5,
"deadstemn": 6,
"frootc": 4,
"frootn": 4,
"frootp": 4,
"labilep": 5,
"labilep_vr": 5,
"primp_vr": 9,
"litr2c_vr": 8,
"litr2p_vr": 8,
"litr2n_vr": 8,
"litr3c_vr": 5,
"litr3p_vr": 5,
"litr3n_vr": 5,
"soil1c_vr": 7,
"soil1n_vr": 7,
"soil1p_vr": 7
},
"pft_mask_config": {
"mask_absent_pfts": true,
"pft_presence_threshold": 0
},
"pft_zero_sparsity_config": {
"weight": 1,
"threshold": 1e-8
},
"pft_zero_sparsity_weights": {
"cpool": 2,
"deadstemc": 1,
"deadcrootc": 1,
"livestemc": 1,
"livecrootc": 1
},
"pft1d_activation_overrides": {
"cpool": "abs",
"deadstemc": "abs",
"deadcrootc": "abs",
"livestemc": "abs",
"livecrootc": "abs"
}
}
Loading