{ "labels": [ "barn", "bridge", "castle", "mosque", "skyscraper", "stadium", "temple", "windmill" ], "num_classes": 8, "label_to_idx": { "barn": 0, "bridge": 1, "castle": 2, "mosque": 3, "skyscraper": 4, "stadium": 5, "temple": 6, "windmill": 7 }, "idx_to_label": { "0": "barn", "1": "bridge", "2": "castle", "3": "mosque", "4": "skyscraper", "5": "stadium", "6": "temple", "7": "windmill" }, "model_file": "fine_tuning_swa.keras", "input_shape": [ 320, 320, 3 ], "preprocessing": "efficientnet_v2.preprocess_input", "architecture": "EfficientNetV2-S(ImageNet,frozen_Ph1)+Conv2D(256,3x3,relu,same)+BN+MaxPooling2D(2,2)+GeMPooling(p=3.0,trainable)+Dense(256,relu)+BN+Dropout(0.4)+Dense(n_classes,softmax)", "training": { "phase1": { "optimizer": "AdamW", "lr": 0.001, "weight_decay": 2e-05, "warmup_epochs": 3, "max_epochs": 25, "es_patience": 7, "augmentation": "Mixup+CutMix+standard", "focal_loss_gamma": 2.0, "label_smoothing": 0.1 }, "phase2": { "optimizer": "DiscriminativeAdamW", "lr": 0.0003, "weight_decay": 2e-05, "lr_multipliers": { "block6": 0.1 }, "warmup_epochs": 5, "max_epochs": 50, "es_patience": 12, "augmentation": "standard_only", "focal_loss_gamma": 2.0, "label_smoothing": 0.05, "unfreeze": "block6+top_conv (BN frozen)" }, "swa": { "epochs": 10, "lr": 0.0001, "bn_update_steps": 100 } } }