Shiwon Kim*, Dongjun Hwang*, Sungwon Woo*, Rita Singh (* Equal Contribution)
Abstract: Class-incremental learning (CIL) aims to adapt to continuously emerging new classes while preserving knowledge of previously learned ones. Few-shot class-incremental learning (FSCIL) presents a greater challenge that requires the model to learn new classes from only a limited number of samples per class. While incremental learning typically assumes restricted access to past data, it often remains available in many real-world scenarios. This raises a practical question: should one retrain the model on the full dataset (i.e., joint training), or continue updating it solely with new data? In CIL, joint training serves as an ideal benchmark that offers a reference for evaluating the trade-offs between performance and computational cost. However, in FSCIL, joint training becomes less reliable due to severe class imbalance. This results in the absence of a practical baseline, making it unclear which strategy is preferable for practitioners. To this end, we revisit joint training in the context of FSCIL by integrating imbalance mitigation techniques. Through extensive comparisons with existing FSCIL methods, we analyze which training strategies are suitable when access to prior data is permitted. Our work provides realistic insights and practical guidance for method selection in real-world FSCIL applications.
Official implementation of "Does Prior Data Matter? Exploring Joint Training in the Context of Few-Shot Class-Incremental Learning (ICCVW 2025)".
We follow FSCIL setting to use the same data index_list for training.
Please refer CEC for the detailed preparation.
The codebase expects datasets in the following structure:
data/
├── cifar100/ # CIFAR-100 dataset files
├── cub200/ # CUB-200 dataset files
├── mini_imagenet/ # Mini-ImageNet dataset files
└── index_list/ # Pre-defined class splits
├── cifar100/session_*.txt
├── cub200/session_*.txt
└── mini_imagenet/session_*.txt
# Train CEC on CIFAR-100
bash ./scripts/cifar100/run_cec.sh 0
# Train joint baseline with data augmentation
bash ./scripts/cifar100/run_joint.sh 0 -data_aug
# Train FACT method on CUB-200
bash ./scripts/cub200/run_fact.sh 0- You can execute every FSCIL methods and joint training approaches on three benchmark datasets. Please refer
./scripts/in detail.
# CEC training
python train.py cec -project cec -dataset cifar100 -dataroot data/cifar100 -base_mode ft_cos -new_mode avg_cos -gpu 0
# Joint training with balanced loss
python train.py joint -project joint -dataset cifar100 -balanced_loss -epochs_base 400 -gpu 0-project: Selects the FSCIL method (cec, fact, teen, joint, etc.)-dataset: cifar100, cub200, mini_imagenet (add_jointsuffix for joint training)-dataroot: Path to dataset directory-epochs_base: Training epochs for base session (typically 100-1000)-epochs_new: Training epochs for incremental sessions-gpu: GPU device number-shot_num: Number of shots per class in few-shot sessions (default: 5)
TBD