oschamp's picture
Update README.md
a973557
|
raw
history blame
No virus
3.25 kB
metadata
license: apache-2.0
tags:
  - generated_from_trainer
datasets:
  - imagefolder
metrics:
  - accuracy
model-index:
  - name: vit-artworkclassifier
    results:
      - task:
          name: Image Classification
          type: image-classification
        dataset:
          name: imagefolder
          type: imagefolder
          config: artbench10-vit
          split: test
          args: artbench10-vit
        metrics:
          - name: Accuracy
            type: accuracy
            value: 0.5947786606129398

vit-artworkclassifier

This model returns the artwork style of any image input.

This model is a fine-tuned version of google/vit-base-patch16-224-in21k on the imagefolder dataset. This is a subset of the artbench-10 dataset, with a train set of 1000 artworks per class and a test set of 100 artworks per class. It achieves the following results on the evaluation set:

  • Loss: 1.1392
  • Accuracy: 0.5948

Model description

More information needed

Intended uses & limitations

More information needed

Training and evaluation data

More information needed

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 0.0001
  • train_batch_size: 32
  • 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
  • mixed_precision_training: Native AMP

Training results

Training Loss Epoch Step Validation Loss Accuracy
1.5906 0.36 100 1.4709 0.4847
1.3395 0.72 200 1.3208 0.5074
1.1461 1.08 300 1.3363 0.5165
0.9593 1.44 400 1.1790 0.5846
0.8761 1.8 500 1.1252 0.5902
0.5922 2.16 600 1.1392 0.5948
0.4803 2.52 700 1.1560 0.5936
0.4454 2.88 800 1.1545 0.6118
0.2271 3.24 900 1.2284 0.6039
0.207 3.6 1000 1.2625 0.5959
0.1958 3.96 1100 1.2621 0.6005

Framework versions

  • Transformers 4.26.1
  • Pytorch 1.13.1+cu117
  • Datasets 2.9.0
  • Tokenizers 0.13.2

Code to Run

def vit_classify(image): vit = ViTForImageClassification.from_pretrained("oschamp/vit-artworkclassifier") vit.eval() device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') vit.to(device)

model_name_or_path = 'google/vit-base-patch16-224-in21k'
feature_extractor = ViTFeatureExtractor.from_pretrained(model_name_or_path)

#LOAD IMAGE

encoding = feature_extractor(images=image, return_tensors="pt")
encoding.keys()

pixel_values = encoding['pixel_values'].to(device)

outputs = vit(pixel_values)
logits = outputs.logits

prediction = logits.argmax(-1)
return prediction.item() #vit.config.id2label[prediction.item()]