Skip to content

HoinJung/NCD-DLT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Towards On-the-Fly Novel Category Discovery in Dynamic Long-Tailed Distributions

Introduction

NCD-DLT aims to discover novel classes in a challenging condition, where new unlabeled data keeps arriving dynamically within the long-tailed distribution.

Install

Requirements

cuda=11.6.1
numpy=1.23.5
pandas=1.5.3
python=3.10.9
torch=2.0.1

Clone Repository

git clone https://github.com/HoinJung/NCD-DLT.git

Pretrained DINO

  1. Download the ViT-B/16 backbone checkpoint from this repository. Link
  2. Locate the DINO's pretrained weight 'pretrained_models' directory.

Run code

  • --greedy: Use greedy hash regulazation loss.
  • --double: Use double hashing in the projection head.
  • --pseudo: Use the Hamming hash graph merging algorithm as a pseudo label with supervised contrastive learning.
  • --threshold_size: Node size threshold for graph merging.
  • --threshold_confidence: Confidence threshold for graph mering.
  • --lc or --no-lc: Long-tailed distribution or not.
  • --imb_ratio: Imbalance ratio of the long-tailed distribution.
  • Post-processing with graph merging will be applied automatically. Both the naive accuracy and post-processed accuracy will displayed together.
python NCD-DLT.py --gpu_id 0  --init_epochs 50 --epochs 10  --dataset_name cifar100 --greedy --double --pseudo --lam 10 --threshold_size 10 --threshold_confidence 0.2 --lc --imb_ratio 100

Test

During the training, the evaluation is conducted at every epoch in the initial stage and the last epoch of every dynamic stage.

Citation

TBD

LICENSE

MIT License

About

On-the-Fly Novel Category Discovery in Dynamic Long-Tailed Distributions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages