File size: 2,877 Bytes
f0d487c
 
 
e82ba78
f0d487c
 
 
2231cef
f0d487c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a0294fc
f0d487c
a0294fc
f0d487c
a0294fc
 
 
 
f0d487c
a0294fc
 
 
 
f0d487c
a0294fc
 
 
f0d487c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
---
license: apache-2.0
base_model: google/vit-base-patch16-224-in21k
library_name: pytorch
tags:
- generated_from_trainer
datasets:
- VinayHajare/Fruits-30
metrics:
- accuracy
model-index:
- name: vit-fruit-classifier
  results:
  - task:
      name: Image Classification
      type: image-classification
    dataset:
      name: imagefolder
      type: imagefolder
      config: default
      split: train
      args: default
    metrics:
    - name: Accuracy
      type: accuracy
      value: 0.9698795180722891
---

<!-- 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-fruit-classifier

This model is a fine-tuned version of [google/vit-base-patch16-224-in21k](https://huggingface.co/google/vit-base-patch16-224-in21k) on the imagefolder dataset.
It achieves the following results on the evaluation set:
- Loss: 1.0194
- Accuracy: 0.9699

## Training and evaluation data

This model was fine-tuned on [the Fruits-30 dataset](https://huggingface.co/datasets/VinayHajare/Fruits-30), a collection of images featuring 30 different types of fruits. Each image has been preprocessed and standardized to a size of 224x224 pixels for uniformity.

### Dataset Composition
- Number of Classes: 30
- Image Resolution: 224x224 pixels
- Total Images: 826

### Training and Evaluation Split
The dataset was split into training and evaluation sets using dataset.train_test_split function with a 80/20 train-test split, resulting in:
- Training Set: 660 images
- Evaluation Set: 166 images

### Splitting Strategy
- The data was shuffled (shuffle=True) before splitting to ensure a random distribution of classes across the training and evaluation sets.
- Additionally, stratification was applied based on the "label" column (stratify_by_column='label') to maintain a balanced class distribution across both sets. This helps prevent the model from biasing towards classes with more samples in the training data.

## Training procedure

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 5e-05
- train_batch_size: 16
- eval_batch_size: 16
- seed: 42
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- num_epochs: 10
- mixed_precision_training: Native AMP

### Training results

| Training Loss | Epoch | Step | Validation Loss | Accuracy |
|:-------------:|:-----:|:----:|:---------------:|:--------:|
| 2.668         | 2.38  | 100  | 2.0731          | 0.9217   |
| 1.6565        | 4.76  | 200  | 1.4216          | 0.9518   |
| 1.1627        | 7.14  | 300  | 1.1256          | 0.9578   |
| 0.9571        | 9.52  | 400  | 1.0224          | 0.9639   |


### Framework versions

- Transformers 4.38.2
- Pytorch 2.2.1+cu121
- Datasets 2.18.0
- Tokenizers 0.15.2