{"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/read-between-the-layers-leveraging-intra","title":"Read Between the Layers: Leveraging Multi-Layer Representations for Rehearsal-Free Continual Learning with Pre-Trained Models","arxiv_id":"2312.08888","date":"2023-12-13","proceeding":null,"authors":["Kyra Ahrens","Hans Hergen Lehmann","Jae Hee Lee","Stefan Wermter"],"abstract":"We address the Continual Learning (CL) problem, wherein a model must learn a sequence of tasks from non-stationary distributions while preserving prior knowledge upon encountering new experiences. With the advancement of foundation models, CL research has pivoted from the initial learning-from-scratch paradigm towards utilizing generic features from large-scale pre-training. However, existing approaches to CL with pre-trained models primarily focus on separating class-specific features from the final representation layer and neglect the potential of intermediate representations to capture low- and mid-level features, which are more invariant to domain shifts. In this work, we propose LayUP, a new prototype-based approach to CL that leverages second-order feature statistics from multiple intermediate layers of a pre-trained network. Our method is conceptually simple, does not require access to prior data, and works out of the box with any foundation model. LayUP surpasses the state of the art in four of the seven class-incremental learning benchmarks, all three domain-incremental learning benchmarks and in six of the seven online continual learning benchmarks, while significantly reducing memory and computational requirements compared to existing baselines. Our results demonstrate that fully exhausting the representational capacities of pre-trained models in CL goes well beyond their final embeddings.","url_abs":"https://arxiv.org/abs/2312.08888v3","url_pdf":"https://arxiv.org/pdf/2312.08888v3.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":"read-between-the-layers-leveraging-intra","repo_url":"https://github.com/ky-ah/layup","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"class-incremental-learning","task_name":"Class Incremental Learning"},{"task_slug":"continual-learning","task_name":"Continual Learning"},{"task_slug":"incremental-learning","task_name":"Incremental Learning"},{"task_slug":"class-incremental-learning-1","task_name":"class-incremental learning"}],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.08888","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.08888"}},"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/ky-ah/layup","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"ran_honours":1,"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":"c671a43aac3cfcaf","entry":"convert_module","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/util.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/util.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":"c671a43aac3cfcaf"}},{"code_sha256_prefix":"6315877fcb9b006a","entry":"get_extended_state_dict","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/util.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/util.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":"6315877fcb9b006a"}},{"code_sha256_prefix":"e8318b2d967c44c7","entry":"init_ssf_scale_shift","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/ssf.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/ssf.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":"e8318b2d967c44c7"}},{"code_sha256_prefix":"9e82f563cdb33d99","entry":"load_from_extended_state_dict","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/util.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/util.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":"9e82f563cdb33d99"}},{"code_sha256_prefix":"61e8364b7e9bcb70","entry":"ssf_ada","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/ssf.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/ssf.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"61e8364b7e9bcb70"}},{"code_sha256_prefix":"5924c99e9a1d5d6f","entry":"target2onehot","repo":"ky-ah/layup","repo_kind":"official","path":"src/modules/ridge.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/modules/ridge.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":"5924c99e9a1d5d6f"}},{"code_sha256_prefix":"7269b079418e3027","entry":"add_adapters","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/adapter.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/adapter.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":"7269b079418e3027"}},{"code_sha256_prefix":"ac1158c40bae34cb","entry":"add_ssf","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/ssf.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/ssf.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":"ac1158c40bae34cb"}},{"code_sha256_prefix":"f7b4fed516f29530","entry":"add_vpt","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/vpt.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/vpt.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":"f7b4fed516f29530"}},{"code_sha256_prefix":"97da5d529666cfe5","entry":"calculate_ridge_weights","repo":"ky-ah/layup","repo_kind":"official","path":"src/modules/ridge.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/modules/ridge.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":"97da5d529666cfe5"}},{"code_sha256_prefix":"892e324f237b4d5d","entry":"get_backbone","repo":"ky-ah/layup","repo_kind":"official","path":"src/backbone/general.py","file_url":"https://github.com/ky-ah/layup/blob/HEAD/src/backbone/general.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":"892e324f237b4d5d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}