
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->

# vit-base-oxford-brain-tumor_x-ray

This model is a fine-tuned version of [google/vit-base-patch16-224](https://huggingface.co/google/vit-base-patch16-224) on the Mahadih534/brain-tumor-dataset dataset.
It achieves the following results on the evaluation set:
- Loss: 0.2882
- Accuracy: 0.9231
- Precision: 0.9231
- Recall: 0.9231
- F1: 0.9231

## Model description

This model is a fine-tuned version of [google/vit-base-patch16-224](https://huggingface.co/google/vit-base-patch16-224), which is a Vision Transformer (ViT)

ViT model is originaly a transformer encoder model pre-trained and fine-tuned on ImageNet 2012. 
It was introduced in the paper "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale" by Dosovitskiy et al. 
The model processes images as sequences of 16x16 patches, adding a [CLS] token for classification tasks, and uses absolute position embeddings. Pre-training enables the model to learn rich image representations, which can be leveraged for downstream tasks by adding a linear classifier on top of the [CLS] token. The weights were converted from the timm repository by Ross Wightman.

## Intended uses & limitations

This must be used for classification of x-ray images of the brain to diagnose of brain tumor.

## Training and evaluation data

The model was fine-tuned in the dataset [Mahadih534/brain-tumor-dataset](https://huggingface.co/datasets/Mahadih534/brain-tumor-dataset) that contains 253 brain images. This dataset was originally created by Yousef Ghanem.

The original dataset was splitted into training and evaluation subsets, 80% for training and 20% for evaluation. 
For  robust framework evaluation, the evaluation subset is further split into two equal parts for validation and testing. 
This results in three distinct datasets: training, validation, and testing



### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 0.0003
- train_batch_size: 20
- eval_batch_size: 8
- seed: 42
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- num_epochs: 4

### Training results

| Training Loss | Epoch | Step | Validation Loss | Accuracy | Precision | Recall | F1     |
|:-------------:|:-----:|:----:|:---------------:|:--------:|:---------:|:------:|:------:|
| 0.6519        | 1.0   | 11   | 0.3817          | 0.8      | 0.8476    | 0.8    | 0.7751 |
| 0.2616        | 2.0   | 22   | 0.0675          | 0.96     | 0.9624    | 0.96   | 0.9594 |
| 0.1219        | 3.0   | 33   | 0.1770          | 0.92     | 0.9289    | 0.92   | 0.9174 |
| 0.0527        | 4.0   | 44   | 0.0234          | 1.0      | 1.0       | 1.0    | 1.0    |


### Framework versions

- Transformers 4.41.2
- Pytorch 2.3.0+cu121
- Datasets 2.20.0
- Tokenizers 0.19.1
0 1