{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/der-dynamically-expandable-representation-for","title":"DER: Dynamically Expandable Representation for Class Incremental Learning","arxiv_id":"2103.16788","date":"2021-03-31","proceeding":"CVPR 2021 1","authors":["Shipeng Yan","Jiangwei Xie","Xuming He"],"abstract":"We address the problem of class incremental learning, which is a core step towards achieving adaptive vision intelligence. In particular, we consider the task setting of incremental learning with limited memory and aim to achieve better stability-plasticity trade-off. To this end, we propose a novel two-stage learning approach that utilizes a dynamically expandable representation for more effective incremental concept modeling. Specifically, at each incremental step, we freeze the previously learned representation and augment it with additional feature dimensions from a new learnable feature extractor. This enables us to integrate new visual concepts with retaining learned knowledge. We dynamically expand the representation according to the complexity of novel concepts by introducing a channel-level mask-based pruning strategy. Moreover, we introduce an auxiliary loss to encourage the model to learn diverse and discriminate features for novel concepts. We conduct extensive experiments on the three class incremental learning benchmarks and our method consistently outperforms other methods with a large margin.","url_abs":"https://arxiv.org/abs/2103.16788v1","url_pdf":"https://arxiv.org/pdf/2103.16788v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"der-dynamically-expandable-representation-for","repo_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"der-dynamically-expandable-representation-for","repo_url":"https://github.com/g-u-n/pycil","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"class-incremental-learning","task_name":"Class Incremental Learning"},{"task_slug":"incremental-learning","task_name":"Incremental Learning"},{"task_slug":"novel-concepts","task_name":"Novel Concepts"},{"task_slug":"class-incremental-learning-1","task_name":"class-incremental learning"}],"methods":[{"method_slug":"pruning","method_name":"Pruning"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-2","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 10 steps of 5 classes","model":"DER(Standard ResNet-18)","rank_in_archive_order":3,"of":13,"metrics":{"Average Incremental Accuracy":"72.45"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-2","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 10 steps of 5 classes","model":"DER(Modified ResNet-32）","rank_in_archive_order":7,"of":13,"metrics":{"Average Incremental Accuracy":"66.36"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-4","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 2 steps of 25 classes","model":"DER\n(w/o P)","rank_in_archive_order":3,"of":4,"metrics":{"Average Incremental Accuracy":"74.61"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-3","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 5 steps of 10 classes","model":"DER(Standard ResNet-18)","rank_in_archive_order":3,"of":15,"metrics":{"Average Incremental Accuracy":"72.60"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-3","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 5 steps of 10 classes","model":"DER(Modified Res-32)","rank_in_archive_order":7,"of":15,"metrics":{"Average Incremental Accuracy":"67.60"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-b0-5steps","task":"Incremental Learning","dataset":"CIFAR-100-B0(5steps of 20 classes)","model":"DER(w/o P)","rank_in_archive_order":4,"of":10,"metrics":{"Average Incremental Accuracy":"76.80"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar100-b0-10steps","task":"Incremental Learning","dataset":"CIFAR100-B0(10steps of 10 classes)","model":"DER(ResNet-18)","rank_in_archive_order":4,"of":6,"metrics":{"Average Incremental Accuracy":"74.64"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar100b020step","task":"Incremental Learning","dataset":"CIFAR100B020Step(5ClassesPerStep)","model":"DER(ResNet-18)","rank_in_archive_order":4,"of":5,"metrics":{"Average Incremental Accuracy":"73.98"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar100b050s","task":"Incremental Learning","dataset":"CIFAR100B050S(2ClassesPerStep)","model":"DER(ResNet-18)","rank_in_archive_order":1,"of":1,"metrics":{"Average Incremental Accuracy":"72.05"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-imagenet-10-steps","task":"Incremental Learning","dataset":"ImageNet - 10 steps","model":"DER w/o Pruning","rank_in_archive_order":3,"of":10,"metrics":{"# M Params":"116.89","Average Incremental Accuracy":"68.84","Average Incremental Accuracy Top-5":"88.17","Final Accuracy":"60.16","Final Accuracy Top-5":"82.86"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-imagenet-10-steps","task":"Incremental Learning","dataset":"ImageNet - 10 steps","model":"DER","rank_in_archive_order":6,"of":10,"metrics":{"Average Incremental Accuracy":"66.73","Average Incremental Accuracy Top-5":"87.08","Final Accuracy":"58.62","Final Accuracy Top-5":"81.89"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-imagenet-100-50-2","task":"Incremental Learning","dataset":"ImageNet-100 - 50 classes + 10 steps of 5 classes","model":"DER","rank_in_archive_order":2,"of":5,"metrics":{"Average Incremental Accuracy":"77.73"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-imagenet100-10-steps","task":"Incremental Learning","dataset":"ImageNet100 - 10 steps","model":"DER w/o Pruning","rank_in_archive_order":6,"of":13,"metrics":{"# M Params":"112.27","Average Incremental Accuracy":"77.18","Average Incremental Accuracy Top-5":"93.23","Final Accuracy":"66.70","Final Accuracy Top-5":"87.52"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-imagenet100-10-steps","task":"Incremental Learning","dataset":"ImageNet100 - 10 steps","model":"DER","rank_in_archive_order":8,"of":13,"metrics":{"Average Incremental Accuracy":"76.12","Average Incremental Accuracy Top-5":"92.79","Final Accuracy":"66.07","Final Accuracy Top-5":"88.38"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.16788","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.16788"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/g-u-n/pycil","reach":null}],"summary":{"ran":6,"unverified":5},"by_repo_kind":{"official":{"samples":11,"ran":6,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"9f4e9833f2b84b8d","entry":"ClassErrorMeter","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9f4e9833f2b84b8d"}},{"code_sha256_prefix":"59a549e22e134aef","entry":"GradualWarmupScheduler","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"59a549e22e134aef"}},{"code_sha256_prefix":"3df51f2e829fae0e","entry":"extract_features","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3df51f2e829fae0e"}},{"code_sha256_prefix":"655d09e23b2af00d","entry":"random_selection","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"655d09e23b2af00d"}},{"code_sha256_prefix":"3fd7e4aeb10eb4da","entry":"select_examplars","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3fd7e4aeb10eb4da"}},{"code_sha256_prefix":"c1c1a3649ab6dc82","entry":"update_classes_mean","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c1c1a3649ab6dc82"}},{"code_sha256_prefix":"555fea3dd6290bee","entry":"IncModel","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"555fea3dd6290bee"}},{"code_sha256_prefix":"14b065dca3ad5ccd","entry":"IncrementalLearner","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"14b065dca3ad5ccd"}},{"code_sha256_prefix":"6fa0e1315b22f977","entry":"MemorySize","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6fa0e1315b22f977"}},{"code_sha256_prefix":"d9536cea4ed511c1","entry":"finetune_last_layer","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d9536cea4ed511c1"}},{"code_sha256_prefix":"60a5b69027a3fe6f","entry":"herding","repo":"Rhyssiyan/DER-ClassIL.pytorch","repo_kind":"official","path":"inclearn/models/incmodel.py","file_url":"https://github.com/Rhyssiyan/DER-ClassIL.pytorch/blob/HEAD/inclearn/models/incmodel.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"60a5b69027a3fe6f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}