noah34 commited on
Commit
9772250
·
verified ·
1 Parent(s): 5c35a85

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -8
app.py CHANGED
@@ -16,6 +16,7 @@ DISCLAIMER = "⚠️ Educational demo only. Not for clinical/diagnostic use."
16
 
17
  LABEL_NAMES = ["Mild_Demented", "Moderate_Demented", "Non_Demented", "Very_Mild_Demented"]
18
 
 
19
  SILPA_LABEL_MAP = {
20
  "MildDemented": "Mild_Demented",
21
  "ModerateDemented": "Moderate_Demented",
@@ -72,15 +73,26 @@ def reset_cm():
72
  fig = _plot_confusion_matrix([], [], CLASS_NAMES)
73
  return fig, [], []
74
 
75
- def run_full_evaluation(progress=gr.Progress()):
76
- """Evaluate on combined Falah test set (1,280) + SilpaCS train set (6,400) = 7,680 images."""
77
- progress(0, desc="Loading datasets...")
 
 
 
 
 
 
 
 
78
 
 
 
 
79
  falah = load_dataset("Falah/Alzheimer_MRI", split="test")
80
- silpa = load_dataset("SilpaCS/Alzheimer", split="train")
81
-
82
  falah_label_names = falah.features["label"].names
83
- silpa_label_names = silpa.features["label"].names
 
 
84
 
85
  y_true, y_pred = [], []
86
  total = len(falah) + len(silpa)
@@ -95,12 +107,12 @@ def run_full_evaluation(progress=gr.Progress()):
95
  y_pred.append(top)
96
  i += 1
97
 
98
- # --- SilpaCS train split (unseen by model) ---
99
  for example in silpa:
100
  progress(i / total, desc=f"Evaluating image {i+1}/{total}...")
101
  img = example["image"].convert("RGB")
102
  top = _get_top_label(clf(img))
103
- raw = silpa_label_names[example["label"]]
104
  y_true.append(SILPA_LABEL_MAP.get(raw, raw))
105
  y_pred.append(top)
106
  i += 1
 
16
 
17
  LABEL_NAMES = ["Mild_Demented", "Moderate_Demented", "Non_Demented", "Very_Mild_Demented"]
18
 
19
+ # SilpaCS uses no underscores — map to model's label format
20
  SILPA_LABEL_MAP = {
21
  "MildDemented": "Mild_Demented",
22
  "ModerateDemented": "Moderate_Demented",
 
73
  fig = _plot_confusion_matrix([], [], CLASS_NAMES)
74
  return fig, [], []
75
 
76
+ def load_silpa_safe():
77
+ """
78
+ SilpaCS/Alzheimer has a broken label schema on HuggingFace (git hash as label name).
79
+ Load the raw Parquet files directly to bypass the broken dataset builder.
80
+ """
81
+ silpa = load_dataset(
82
+ "parquet",
83
+ data_files="hf://datasets/SilpaCS/Alzheimer/data/train-*.parquet",
84
+ split="train"
85
+ )
86
+ return silpa
87
 
88
+ def run_full_evaluation(progress=gr.Progress()):
89
+ """Evaluate on combined Falah test set (1,280) + SilpaCS (6,400) = 7,680 images."""
90
+ progress(0, desc="Loading Falah dataset...")
91
  falah = load_dataset("Falah/Alzheimer_MRI", split="test")
 
 
92
  falah_label_names = falah.features["label"].names
93
+
94
+ progress(0.05, desc="Loading SilpaCS dataset...")
95
+ silpa = load_silpa_safe()
96
 
97
  y_true, y_pred = [], []
98
  total = len(falah) + len(silpa)
 
107
  y_pred.append(top)
108
  i += 1
109
 
110
+ # --- SilpaCS (loaded via parquet, label column is raw string) ---
111
  for example in silpa:
112
  progress(i / total, desc=f"Evaluating image {i+1}/{total}...")
113
  img = example["image"].convert("RGB")
114
  top = _get_top_label(clf(img))
115
+ raw = example["label"] # already a string when loaded via parquet
116
  y_true.append(SILPA_LABEL_MAP.get(raw, raw))
117
  y_pred.append(top)
118
  i += 1