config = {
    "model_name": "resnet18",  # change to "mobilenet" or "resnet18" or "resnet50"
    # Standard configuration
    "image_width": 1224,
    "image_height": 1024,
    "batch_size": 16,
    "train_dir": "./data/train",
    "val_dir": "./data/val",
    "test_dir": "./data/test",
    # "test_dir": "./data",
    "model_save_dir_path": "./artifacts/",
    # training parameters
    "num_epochs": 150,
    "learning_rate": 0.0001,
    "reduce_lr_on_plateau": {
        "factor": 0.5,
        "patience": 2,
        "min_lr": 1e-6,
        "threshold": 1e-2 # lower (e.g. 1e-5) for stable learning
    },
    "early_stop_patience": 15,
    "freeze_epochs": 3  # number of epochs to keep backbone frozen
}