{
  "train": {
    "seed": 20260717,
    "batch_size": 32,
    "max_epochs": 150,
    "patience": 20,
    "weight_decay": 0.001,
    "label_smoothing": 0.05,
    "num_workers": 0,
    "device": "cuda",
    "amp": false,
    "max_shift_samples": 10,
    "amplitude_low": 0.95,
    "amplitude_high": 1.05,
    "dc_sd_fraction": 0.05
  },
  "pretrain": {
    "seed": 20260717,
    "batch_size": 128,
    "validation_batch_size": 256,
    "max_steps": 60000,
    "minimum_steps": 20000,
    "validate_every": 1000,
    "validation_patience_steps": 12000,
    "warmup_steps": 2000,
    "learning_rate": 0.0003,
    "weight_decay": 0.03,
    "gradient_clip": 1.0,
    "num_workers": 2,
    "device": "cuda",
    "amp": true
  },
  "cache_roots": {
    "1_40": "/workspace/data_cache_1_40",
    "8_30": "/workspace/data_cache_8_30"
  },
  "channels": [
    "Fp1",
    "Fp2",
    "Fz",
    "C3",
    "C4",
    "Pz",
    "O1",
    "O2"
  ],
  "models": [
    "ShallowConvNet",
    "ConvMAE scratch",
    "ConvMAE SSL"
  ],
  "augmentation": {
    "amplitude": "U(0.95,1.05)",
    "dc": "U(-0.05,0.05) x per-channel window SD",
    "shift": "integer U(-10,10) samples with reflection padding"
  }
}