|
--- |
|
license: apache-2.0 |
|
base_model: google/vit-base-patch16-224-in21k |
|
tags: |
|
- generated_from_keras_callback |
|
model-index: |
|
- name: nprasad24/bean_classifier |
|
results: [] |
|
metrics: |
|
- accuracy |
|
datasets: |
|
- AI-Lab-Makerere/beans |
|
--- |
|
|
|
<!-- This model card has been generated automatically according to the information Keras had access to. You should |
|
probably proofread and complete it, then remove this comment. --> |
|
|
|
# nprasad24/bean_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 <a href = "https://huggingface.co/datasets/AI-Lab-Makerere/beans">Beans</a> dataset. |
|
It achieves the following results on the evaluation set: |
|
- Train Loss: 0.1964 |
|
- Validation Loss: 0.0917 |
|
- Train Accuracy: 0.9925 |
|
- Epoch: 4 |
|
|
|
## Model description |
|
|
|
The Vision Transformer (ViT) is a transformer encoder model (BERT-like) pretrained on a large collection of images in a supervised fashion, namely ImageNet-21k, at a resolution of 224x224 pixels. |
|
|
|
Images are presented to the model as a sequence of fixed-size patches (resolution 16x16), which are linearly embedded. One also adds a [CLS] token to the beginning of a sequence to use it for classification tasks. One also adds absolute position embeddings before feeding the sequence to the layers of the Transformer encoder. |
|
|
|
Note that this model does not provide any fine-tuned heads, as these were zero'd by Google researchers. However, the model does include the pre-trained pooler, which can be used for downstream tasks (such as image classification). |
|
|
|
By pre-training the model, it learns an inner representation of images that can then be used to extract features useful for downstream tasks: if you have a dataset of labeled images for instance, you can train a standard classifier by placing a linear layer on top of the pre-trained encoder. One typically places a linear layer on top of the [CLS] token, as the last hidden state of this token can be seen as a representation of an entire image. |
|
|
|
## Intended uses & limitations |
|
|
|
Can only be used on the beans dataset |
|
|
|
## Training procedure |
|
|
|
### Training hyperparameters |
|
|
|
The following hyperparameters were used during training: |
|
- optimizer: {'name': 'AdamWeightDecay', 'learning_rate': {'module': 'keras.optimizers.schedules', 'class_name': 'PolynomialDecay', 'config': {'initial_learning_rate': 3e-05, 'decay_steps': 5170, 'end_learning_rate': 0.0, 'power': 1.0, 'cycle': False, 'name': None}, 'registered_name': None}, 'decay': 0.0, 'beta_1': 0.9, 'beta_2': 0.999, 'epsilon': 1e-08, 'amsgrad': False, 'weight_decay_rate': 0.01} |
|
- training_precision: float32 |
|
|
|
### Training results |
|
|
|
| Train Loss | Validation Loss | Train Accuracy | Epoch | |
|
|:----------:|:---------------:|:--------------:|:-----:| |
|
| 0.7278 | 0.3480 | 0.9699 | 0 | |
|
| 0.3124 | 0.1376 | 0.9925 | 1 | |
|
| 0.2559 | 0.1105 | 0.9850 | 2 | |
|
| 0.1914 | 0.0796 | 1.0 | 3 | |
|
| 0.1964 | 0.0917 | 0.9925 | 4 | |
|
|
|
|
|
### Framework versions |
|
|
|
- Transformers 4.41.2 |
|
- TensorFlow 2.15.0 |
|
- Datasets 2.20.0 |
|
- Tokenizers 0.19.1 |