{
  "config": {
    "base_models_folder": "../../data/2025-07-09-Training-2D-Denoising-Multiple-SMs/models/dncnn-bias-false-l1-ema-true-scheduler-true-lr-3e-4-batch_size-100-bfloat16-multi-gpu",
    "data": {
      "constant_values": 0,
      "dataset_csv": "../../data/2025-05-27-Training-Data-Generation/subset.csv",
      "folder": "../../data/2025-07-09-Training-2D-Denoising-Multiple-SMs",
      "modes": {
        "train": {
          "aug_params": {
            "gaussian_noise_sigma": [
              0.0,
              0.2
            ],
            "random_scaling_range": [
              0.7,
              1.3
            ]
          },
          "batch_size": 100,
          "num_workers": 32
        },
        "val-high-snr": {
          "batch_size": 640,
          "num_workers": 32,
          "sigma": 0.1
        },
        "val-low-snr": {
          "batch_size": 640,
          "num_workers": 32,
          "sigma": 0.3
        }
      },
      "ndim": 2,
      "noise": "../../data/noise2.npy",
      "pad_mode": "constant",
      "patch_size": 64
    },
    "debug": false,
    "device": "cuda:0",
    "model": {
      "id": "dncnn",
      "params": {
        "batch_norm": true,
        "bias": false,
        "channels": 2,
        "dim": 2,
        "features": 64,
        "kernel_size": 3,
        "num_of_layers": 17,
        "padding": 1,
        "residual": true
      }
    },
    "seed": 42,
    "training": {
      "ema": {
        "enabled": true,
        "momentum": 0.002,
        "momentum_warmup": 0.2,
        "update_every": 5,
        "warmup_iters": 100
      },
      "epochs": 4250,
      "grad_clipping_norm": 1.0,
      "loss": "l1",
      "lr": 0.0003,
      "resume_from": null,
      "step_lr_scheduler": {
        "enabled": true,
        "gamma": 0.5,
        "milestones": [
          200000,
          300000,
          350000,
          375000,
          400000
        ]
      },
      "validate_every_iteration": 1000
    }
  },
  "seed": 42
}