Model Overview
Model Features
Model Capabilities
Use Cases
đ BEiT (large-sized model, fine-tuned on ImageNet-1k)
BEiT is a model pre-trained in a self-supervised manner on ImageNet-21k (14 million images, 21,841 classes) at a resolution of 224x224. It is then fine-tuned on ImageNet 2012 (1 million images, 1,000 classes) at a resolution of 384x384. This model was introduced in the paper BEIT: BERT Pre-Training of Image Transformers by Hangbo Bao, Li Dong, and Furu Wei, and was first released in this repository.
Disclaimer: The team releasing BEiT did not write a model card for this model, so this model card has been written by the Hugging Face team.
đ Quick Start
BEiT can be used for image classification tasks. You can directly use the pre - trained and fine - tuned model to classify images. For more fine - tuned versions, you can check the model hub.
⨠Features
- Self - supervised pre - training: BEiT is pre - trained on ImageNet - 21k in a self - supervised way, which enables it to learn rich image features.
- Relative position embeddings: Different from the original ViT models, BEiT uses relative position embeddings, which can better capture the relative position relationship between image patches.
- Flexible classification method: It classifies images by mean - pooling the final hidden states of patches, rather than relying on the [CLS] token.
đ Documentation
Model description
The BEiT model is a Vision Transformer (ViT), a transformer encoder model similar to BERT. Unlike the original ViT model, BEiT is pre - trained on a large image collection (ImageNet - 21k) in a self - supervised fashion at a resolution of 224x224 pixels. The pre - training objective is to predict visual tokens from the encoder of OpenAI's DALL - E's VQ - VAE based on masked patches.
Next, the model is fine - tuned in a supervised way on ImageNet (ILSVRC2012), a dataset with 1 million images and 1,000 classes, also at a resolution of 224x224.
Images are presented to the model as a sequence of fixed - size patches (resolution 16x16), which are linearly embedded. BEiT models use relative position embeddings (similar to T5) instead of absolute position embeddings. It classifies images by mean - pooling the final hidden states of the patches, rather than placing a linear layer on top of the final hidden state of the [CLS] token.
By pre - training the model, it learns an internal representation of images, which can be used to extract features for downstream tasks. For example, if you have a labeled image dataset, you can train a standard classifier by placing a linear layer on top of the pre - trained encoder. Usually, a linear layer is placed on top of the [CLS] token, as the last hidden state of this token can represent an entire image. Alternatively, you can mean - pool the final hidden states of the patch embeddings and then place a linear layer on top.
Intended uses & limitations
You can use the raw model for image classification. Check the model hub to find fine - tuned versions for tasks that interest you.
How to use
Here is an example of using this model to classify an image from the COCO 2017 dataset into one of the 1,000 ImageNet classes:
from transformers import BeitFeatureExtractor, BeitForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = BeitFeatureExtractor.from_pretrained('microsoft/beit-large-patch16-384')
model = BeitForImageClassification.from_pretrained('microsoft/beit-large-patch16-384')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
# model predicts one of the 1000 ImageNet classes
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
Currently, both the feature extractor and model support PyTorch.
Training data
The BEiT model was pre - trained on ImageNet - 21k, a dataset with 14 million images and 21k classes, and fine - tuned on ImageNet, a dataset with 1 million images and 1k classes.
Training procedure
Preprocessing
The exact details of image preprocessing during training/validation can be found here.
Images are resized/rescaled to the same resolution (224x224) and normalized across the RGB channels with mean (0.5, 0.5, 0.5) and standard deviation (0.5, 0.5, 0.5).
Pretraining
For all pre - training related hyperparameters, refer to page 15 of the original paper.
Evaluation results
For evaluation results on several image classification benchmarks, refer to tables 1 and 2 of the original paper. Note that for fine - tuning, the best results are obtained with a higher resolution (384x384). Of course, increasing the model size will result in better performance.
BibTeX entry and citation info
@article{DBLP:journals/corr/abs-2106-08254,
author = {Hangbo Bao and
Li Dong and
Furu Wei},
title = {BEiT: {BERT} Pre-Training of Image Transformers},
journal = {CoRR},
volume = {abs/2106.08254},
year = {2021},
url = {https://arxiv.org/abs/2106.08254},
archivePrefix = {arXiv},
eprint = {2106.08254},
timestamp = {Tue, 29 Jun 2021 16:55:04 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2106-08254.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{deng2009imagenet,
title={Imagenet: A large-scale hierarchical image database},
author={Deng, Jia and Dong, Wei and Socher, Richard and Li, Li-Jia and Li, Kai and Fei-Fei, Li},
booktitle={2009 IEEE conference on computer vision and pattern recognition},
pages={248--255},
year={2009},
organization={Ieee}
}
đ License
This model is released under the Apache - 2.0 license.
Property | Details |
---|---|
Model Type | Vision Transformer (ViT) |
Training Data | Pre - trained on ImageNet - 21k, fine - tuned on ImageNet 2012 |







