How zhoujiahuan1991/cvpr2024-fcs works
FCS is an implementation of feature calibration and separation for non-exemplar class-incremental learning. The user starts a run with a configuration; training advances through class-increment tasks, evaluates the learned classifier and nearest-mean-of-exemplars (NME) results, and reports accuracy. Data preparation establishes class order and task increments, while the learner trains its network and builds class prototypes. The README documents CIFAR-100, TinyImageNet, and ImageNet experiment configurations. Several implementation excerpts are partial, so the graph omits uncertain internal training and evaluation links rather than inferring them.
Main entry points: trainer.py Task runner · fcs.py FCS learner · main.py CLI entry · data_manager.py Data manager
Components 14
Run orchestration
- Experiment configs
exps/fcs - CLI entry
main.py - Task runner
trainer.py - Model factory
utils/factory.py
Incremental data
- Data manager
utils/data_manager.py - Dataset loaders
utils/data.py
FCS learning
- FCS learner
models/fcs.py - Learner base
models/base.py
Model and evaluation
- Incremental network
utils/inc_net.py - CNN backbones
convs - Accuracy utilities
utils/toolkit.py
Other components
- Experiment user
- Image datasets
- Task metrics
Connections 15
- Experiment user → CLI entry: starts run
- CLI entry → Experiment configs: loads settings
- CLI entry → Task runner: calls training
- Task runner → Data manager: creates tasks
- Data manager → Dataset loaders: loads data
- Dataset loaders → Image datasets: reads images
- Task runner → Model factory: requests model
- Model factory → FCS learner: selects learner
- Task runner → FCS learner: trains and evaluates
- FCS learner → Learner base: inherits learner
- FCS learner → Incremental network: uses network
- Incremental network → CNN backbones: selects backbone
- FCS learner → Data manager: requests task data
- Task runner → Accuracy utilities: counts parameters
- Task runner → Task metrics: reports accuracy