← all repositories
facebookresearch/dino

Self-supervised Vision Transformers, the original DINO

PyTorch implementation for training Vision Transformers on unlabeled images by distilling a student network against a slow-moving teacher.

7.6k stars Python ML FrameworksComputer Vision
dino
Not currently ranked — collecting fresh signals.
star history

What it does

DINO trains Vision Transformers—and the occasional ResNet—on raw images without labels. It learns visual representations by forcing a student network to match the output of a momentum teacher. The repo ships pretrained weights for several architectures, evaluation logs, and ONNX exports.

The interesting bit

The teacher is simply an exponential moving average of the student weights, which means the method generates its own supervision without negative pairs or external labels. The README makes clear this is the original implementation; the team now directs users to the newer DINOv2.

Key highlights

  • Pretrained backbones—ViT-S, ViT-B, ResNet-50, and XCiT—are loadable via PyTorch Hub or direct download, with full checkpoints containing both student and teacher projection heads.
  • Linear evaluation reaches 80.1% with ViT-B/8 and 77.0% with ViT-S/16; k-NN scores are provided for all releases.
  • A vanilla 100-epoch run on ViT-Small takes 1.75 days on a single node with eight GPUs, and the code supports multi-node Slurm clusters via submitit.
  • Each release includes training arguments, raw logs, and ONNX exports for reproducibility.

Caveats

  • The authors flag DINOv2 as the current effort, making this repo largely a reference implementation of the original paper.
  • Training requires the full ImageNet dataset and a multi-GPU setup; the documented environment uses Python 3.6 and PyTorch 1.7.1.

Verdict

Grab these weights if you are reproducing the original “Emerging Properties” paper or studying the lineage of self-supervised ViTs. If you need a modern backbone for downstream work, the authors suggest using DINOv2 instead.

Frequently asked

What is facebookresearch/dino?
PyTorch implementation for training Vision Transformers on unlabeled images by distilling a student network against a slow-moving teacher.
Is dino open source?
Yes — facebookresearch/dino is open source, released under the Apache-2.0 license.
What language is dino written in?
facebookresearch/dino is primarily written in Python.
How popular is dino?
facebookresearch/dino has 7.6k stars on GitHub.
Where can I find dino?
facebookresearch/dino is on GitHub at https://github.com/facebookresearch/dino.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.