Skip to content

Evaluation Results

motazalqaoud edited this page Jul 3, 2026 · 5 revisions

Evaluation Results

Trained on the full Kaggle Brain Tumor 12K dataset — 8,673 train / 1,858 val / 1,860 test images. All modalities loaded: T1, T1C+, T2.


Training Configuration

Parameter Value
Model 3D Attention U-Net
Parameters 2.2M
Base filters 32
Depth 2
Image size 64×64
D-frames (pseudo-3D) 2
Epochs 50
Batch size 4
Optimizer Adam, lr=1e-3
Scheduler ReduceLROnPlateau (factor=0.5, patience=5)
Loss HybridLoss (α=0.5 Dice, β=0.3 Focal, γ=0.2 Boundary)
Classes 8 (background + 7 WHO tumor categories)
Dataset split 70% train / 15% val / 15% test
Hardware CPU (~43 min/epoch, ~36 hours total)

Per-Class Metrics

Class Val Dice (epoch 50) Test Dice (1,860 images)
Mean Tumor Dice 0.7350 0.7387
Background 0.9918 0.9917
Glioma 0.4671 0.4713
Meningioma 0.6659 0.6927
Nerve Sheath 0.7878 0.8077
Embryonic 0.7703 0.7535
Mixed Neuronal 0.7247 0.7391
Mesenchymal 0.8273 0.7786
Germ Cell 0.9020 0.9278

Glioma scores lowest of the tumor classes — expected, since gliomas are the most morphologically heterogeneous category (varying grade, shape, infiltration pattern), while Germ Cell and Nerve Sheath tumors tend to be more consistent and well-circumscribed on MRI.

Val and test scores track closely across all classes, indicating the model generalizes rather than memorizing the validation set.


Training Curves

Val Mean Tumor Dice climbed from 0.63 → 0.74 across 50 epochs, train/val gap stayed small throughout — no significant overfitting.

Training Curves


Inference Output

Glioma Inference

See results/ in the repo for inference on all 7 tumor categories.


Trained Model Download

The best checkpoint (best_model_dice_0.7350.pt) is attached to the GitHub Release v2.0.0.

Download and run inference directly without training from scratch:

# Run inference on a real image
python scripts/predict3d.py \
  --checkpoint checkpoints/best_model_dice_0.7350.pt \
  --image data/raw/Images_/Gliomas/T1C+/subtype/image.jpg \
  --out prediction.png

Clone this wiki locally