{
  "description": "WiFi-DensePose hyperparameter sweep — 10 configurations exploring learning rate, batch size, backbone width, window length, loss ratios, and warmup schedules.",
  "base": {
    "num_subcarriers": 56,
    "native_subcarriers": 114,
    "num_antennas_tx": 3,
    "num_antennas_rx": 3,
    "heatmap_size": 56,
    "num_keypoints": 17,
    "num_body_parts": 24,
    "weight_decay": 1e-4,
    "num_epochs": 50,
    "lr_gamma": 0.1,
    "grad_clip_norm": 1.0,
    "val_every_epochs": 1,
    "early_stopping_patience": 10,
    "save_top_k": 3,
    "use_gpu": true,
    "gpu_device_id": 0,
    "num_workers": 4,
    "seed": 42
  },
  "configs": [
    {
      "_name": "baseline",
      "_description": "Default config — reference baseline",
      "learning_rate": 1e-3,
      "batch_size": 8,
      "backbone_channels": 256,
      "window_frames": 100,
      "warmup_epochs": 5,
      "lr_milestones": [30, 45],
      "lambda_kp": 0.3,
      "lambda_dp": 0.6,
      "lambda_tr": 0.1
    },
    {
      "_name": "low_lr_large_batch",
      "_description": "Lower LR with larger batch — stable convergence",
      "learning_rate": 1e-4,
      "batch_size": 16,
      "backbone_channels": 256,
      "window_frames": 100,
      "warmup_epochs": 10,
      "lr_milestones": [30, 45],
      "lambda_kp": 0.3,
      "lambda_dp": 0.6,
      "lambda_tr": 0.1
    },
    {
      "_name": "high_lr_small_batch",
      "_description": "Higher LR with small batch — fast exploration",
      "learning_rate": 2e-3,
      "batch_size": 4,
      "backbone_channels": 256,
      "window_frames": 100,
      "warmup_epochs": 3,
      "lr_milestones": [20, 40],
      "lambda_kp": 0.3,
      "lambda_dp": 0.6,
      "lambda_tr": 0.1
    },
    {
      "_name": "narrow_backbone",
      "_description": "128-channel backbone — faster training, lower VRAM",
      "learning_rate": 1e-3,
      "batch_size": 16,
      "backbone_channels": 128,
      "window_frames": 100,
      "warmup_epochs": 5,
      "lr_milestones": [30, 45],
      "lambda_kp": 0.3,
      "lambda_dp": 0.6,
      "lambda_tr": 0.1
    },
    {
      "_name": "short_window",
      "_description": "50-frame window — lower latency, tests temporal sensitivity",
      "learning_rate": 5e-4,
      "batch_size": 16,
      "backbone_channels": 256,
      "window_frames": 50,
      "warmup_epochs": 5,
      "lr_milestones": [30, 45],
      "lambda_kp": 0.3,
      "lambda_dp": 0.6,
      "lambda_tr": 0.1
    },
    {
      "_name": "keypoint_heavy",
      "_description": "Heavier keypoint loss — prioritize skeleton accuracy",
      "learning_rate": 5e-4,
      "batch_size": 8,
      "backbone_channels": 256,
      "window_frames": 100,
      "warmup_epochs": 5,
      "lr_milestones": [30, 45],
      "lambda_kp": 0.5,
      "lambda_dp": 0.4,
      "lambda_tr": 0.1
    },
    {
      "_name": "contrastive_heavy",
      "_description": "Strong contrastive/transfer loss — self-supervised pretraining focus",
      "learning_rate": 5e-4,
      "batch_size": 8,
      "backbone_channels": 256,
      "window_frames": 100,
      "warmup_epochs": 10,
      "lr_milestones": [30, 45],
      "lambda_kp": 0.2,
      "lambda_dp": 0.3,
      "lambda_tr": 0.5
    },
    {
      "_name": "wide_backbone_long_warmup",
      "_description": "256-ch backbone + long warmup + moderate LR",
      "learning_rate": 5e-4,
      "batch_size": 8,
      "backbone_channels": 256,
      "window_frames": 100,
      "warmup_epochs": 10,
      "lr_milestones": [35, 48],
      "lambda_kp": 0.3,
      "lambda_dp": 0.6,
      "lambda_tr": 0.1
    },
    {
      "_name": "narrow_short_aggressive",
      "_description": "128-ch + 50-frame + high LR — fast cheap exploration",
      "learning_rate": 2e-3,
      "batch_size": 16,
      "backbone_channels": 128,
      "window_frames": 50,
      "warmup_epochs": 3,
      "lr_milestones": [20, 40],
      "lambda_kp": 0.4,
      "lambda_dp": 0.5,
      "lambda_tr": 0.1
    },
    {
      "_name": "balanced_medium",
      "_description": "Balanced loss, medium LR, medium batch — robust default",
      "learning_rate": 5e-4,
      "batch_size": 8,
      "backbone_channels": 256,
      "window_frames": 100,
      "warmup_epochs": 5,
      "lr_milestones": [25, 40],
      "lambda_kp": 0.35,
      "lambda_dp": 0.45,
      "lambda_tr": 0.2
    }
  ]
}
