# ytashan/brain-tumor-mri-image-classification-hybrid-model architecture

> Architecture diagram of the GitHub repository ytashan/brain-tumor-mri-image-classification-hybrid-model, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ytashan/brain-tumor-mri-image-classification-hybrid-model
- Repository: https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model
- Video tour (about a minute): https://gitdiagram.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/video

## Overview

This notebook implements a brain-MRI classification workflow: it loads and stratifies image data, prepares an input pipeline, trains a six-branch hybrid model, and evaluates it alongside individual-backbone and soft-voting comparisons. It also documents Grad-CAM, model persistence, and single-image or batch inference. The README supplies the workflow and capabilities, but no notebook source excerpts were available, so internal call details beyond those documented stages are not inferred.

Main entry points: [`brain-tumor-hybrid-model.ipynb`](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb) (Two-phase training)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data preparation"]
  node_loading["Load and split"]
  node_eda["Explore data"]
  node_pipeline["tf.data pipeline"]
  node_augmentation["Data augmentation"]
end

subgraph group_models["Model construction"]
  node_custom["Custom CNN"]
  node_efficientnet["EfficientNetB3"]
  node_vgg["VGG16"]
  node_resnet["ResNet50"]
  node_densenet["DenseNet121"]
  node_medicalnet["MedicalNet-inspired CNN"]
  node_fusion["Hybrid feature fusion"]
end

subgraph group_training["Training and evaluation"]
  node_weights["Class weights and callbacks"]
  node_training["Two-phase training"]
  node_evaluation["Test evaluation"]
  node_baselines["Backbone baselines"]
  node_voting["Soft-voting ensemble"]
end

subgraph group_inference["Interpretation and inference"]
  node_gradcam["Grad-CAM"]
  node_persistence["Save and load model"]
  node_inference["Image and batch inference"]
  node_classification["Tumor class predictions"]
end

node_dataset[("MRI dataset")]
node_analyst(("User"))

node_dataset -->|"provides images"| node_loading
node_loading -->|"explores data"| node_eda
node_loading -->|"creates splits"| node_pipeline
node_pipeline -->|"augments images"| node_augmentation
node_pipeline -->|"supplies batches"| node_training
node_custom -->|"extracts features"| node_fusion
node_efficientnet -->|"extracts features"| node_fusion
node_vgg -->|"extracts features"| node_fusion
node_resnet -->|"extracts features"| node_fusion
node_densenet -->|"extracts features"| node_fusion
node_medicalnet -->|"extracts features"| node_fusion
node_weights -->|"configures training"| node_training
node_fusion -->|"trains model"| node_training
node_training -->|"evaluates model"| node_evaluation
node_training -->|"compares backbones"| node_baselines
node_baselines -->|"combines predictions"| node_voting
node_training -->|"explains predictions"| node_gradcam
node_training -->|"saves model"| node_persistence
node_persistence -->|"loads model"| node_inference
node_analyst -->|"submits images"| node_inference
node_inference -->|"predicts class"| node_classification

click node_loading "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_eda "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_pipeline "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_augmentation "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_custom "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_efficientnet "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_vgg "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_resnet "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_densenet "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_medicalnet "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_fusion "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_weights "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_training "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_evaluation "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_baselines "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_voting "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_gradcam "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_persistence "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_inference "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"
click node_classification "https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_loading,node_eda,node_pipeline,node_augmentation,node_analyst toneBlue
class node_custom,node_efficientnet,node_vgg,node_resnet,node_densenet,node_medicalnet,node_fusion,node_dataset toneAmber
class node_weights,node_training,node_evaluation,node_baselines,node_voting toneMint
class node_gradcam,node_persistence,node_inference,node_classification toneRose
```

## Components

### Data preparation

- [Load and split](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Explore data](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [tf.data pipeline](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Data augmentation](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`

### Model construction

- [Custom CNN](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [EfficientNetB3](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [VGG16](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [ResNet50](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [DenseNet121](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [MedicalNet-inspired CNN](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Hybrid feature fusion](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`

### Training and evaluation

- [Class weights and callbacks](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Two-phase training](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Test evaluation](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Backbone baselines](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Soft-voting ensemble](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`

### Interpretation and inference

- [Grad-CAM](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Save and load model](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Image and batch inference](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`
- [Tumor class predictions](https://github.com/ytashan/brain-tumor-mri-image-classification-hybrid-model/blob/main/brain-tumor-hybrid-model.ipynb): `brain-tumor-hybrid-model.ipynb`

### Other components

- **MRI dataset**
- **User**

## Connections

- MRI dataset → Load and split: provides images
- Load and split → Explore data: explores data
- Load and split → tf.data pipeline: creates splits
- tf.data pipeline → Data augmentation: augments images
- tf.data pipeline → Two-phase training: supplies batches
- Custom CNN → Hybrid feature fusion: extracts features
- EfficientNetB3 → Hybrid feature fusion: extracts features
- VGG16 → Hybrid feature fusion: extracts features
- ResNet50 → Hybrid feature fusion: extracts features
- DenseNet121 → Hybrid feature fusion: extracts features
- MedicalNet-inspired CNN → Hybrid feature fusion: extracts features
- Class weights and callbacks → Two-phase training: configures training
- Hybrid feature fusion → Two-phase training: trains model
- Two-phase training → Test evaluation: evaluates model
- Two-phase training → Backbone baselines: compares backbones
- Backbone baselines → Soft-voting ensemble: combines predictions
- Two-phase training → Grad-CAM: explains predictions
- Two-phase training → Save and load model: saves model
- Save and load model → Image and batch inference: loads model
- User → Image and batch inference: submits images
- Image and batch inference → Tumor class predictions: predicts class
