File size: 1,490 Bytes
f6ab35f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from __future__ import annotations

from pathlib import Path

APP_ROOT = Path(__file__).resolve().parents[1]
MODELS_DIR = APP_ROOT / "models"
RESULTS_DIR = APP_ROOT / "results"
SELECTED_ENSEMBLE_PATH = RESULTS_DIR / "selected_ensemble.json"

CLASS_NAMES = ["glioma", "meningioma", "notumor", "pituitary"]
CLASS_DISPLAY_NAMES = {
    "glioma": "Glioma",
    "meningioma": "Meningioma",
    "notumor": "No tumor",
    "pituitary": "Pituitary",
}

IMAGE_SIZE = 224
NORMALIZE_MEAN = [0.485, 0.456, 0.406]
NORMALIZE_STD = [0.229, 0.224, 0.225]

# The selected deployment ensemble from the ablation notebook.
# Zero-weight members are intentionally omitted.
ENSEMBLE_MEMBERS = [
    {
        "member": "efficientnet_b0__seed123",
        "model_name": "efficientnet_b0",
        "seed": 123,
        "weight": 0.49513684,
        "checkpoint_file": "best_efficientnet_b0_seed123.pt",
        "display_name": "EfficientNet-B0 路 seed 123",
    },
    {
        "member": "efficientnet_b0__seed2026",
        "model_name": "efficientnet_b0",
        "seed": 2026,
        "weight": 0.35077890,
        "checkpoint_file": "best_efficientnet_b0_seed2026.pt",
        "display_name": "EfficientNet-B0 路 seed 2026",
    },
    {
        "member": "mobilenet_v3_small__seed42",
        "model_name": "mobilenet_v3_small",
        "seed": 42,
        "weight": 0.15408426,
        "checkpoint_file": "best_mobilenet_v3_small_seed42.pt",
        "display_name": "MobileNetV3-Small 路 seed 42",
    },
]