First, you need to clone the SEAL repository from GitHub. Open the terminal and run the following command:
git clone https://github.com/Visual-AI/SEAL.git
cd SEAL
We recommend setting up a conda environment for the project:
conda create --name=seal python=3.8
conda activate seal
pip install -r requirements.txt
Download the pretrained DINO/DINOv2 weights from their official repository to the PRETRAINED_PATH.
- 🛠️ TODO: We plan to release the trained model weights after the New Year Holiday.
- [2025/12/23] 🔥Released training and inference code for SSB Benchmarks.
- [2025/09/18] 🎉The paper was accepted by NeurIPS'25.
Set paths to datasets, pretrained weights, and log directories in config.py.
We use fine-grained benchmarks (CUB, Stanford-cars, FGVC-aircraft). You can find the datasets in:
The scripts to train and eval each method can be found in the folder /scripts.
Eval the model
bash scripts/eval.sh
Train the model:
bash scripts/scars_dinov2.sh
You may find the trained model weights in the following links: here. We plan to upload all model weights for both DINOv1 and DINOv2 shortly after the New Year holiday, due to ongoing checkpoint recovery and consolidation across multiple servers.
If you find this repo useful for your research, please consider citing our paper:
@inproceedings{He2025SEAL,
author = {Zhenqi He and Yuanpei Liu and Kai Han},
title = {SEAL: Semantic-Aware Hierarchical Learning for Generalized Category Discovery},
booktitle = {Conference on Neural Information Processing Systems (NeurIPS)},
year = {2025},
}
