{"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/rethinking-experience-replay-a-bag-of-tricks","title":"Rethinking Experience Replay: a Bag of Tricks for Continual Learning","arxiv_id":"2010.05595","date":"2020-10-12","proceeding":null,"authors":["Pietro Buzzega","Matteo Boschini","Angelo Porrello","Simone Calderara"],"abstract":"In Continual Learning, a Neural Network is trained on a stream of data whose distribution shifts over time. Under these assumptions, it is especially challenging to improve on classes appearing later in the stream while remaining accurate on previous ones. This is due to the infamous problem of catastrophic forgetting, which causes a quick performance degradation when the classifier focuses on learning new categories. Recent literature proposed various approaches to tackle this issue, often resorting to very sophisticated techniques. In this work, we show that naive rehearsal can be patched to achieve similar performance. We point out some shortcomings that restrain Experience Replay (ER) and propose five tricks to mitigate them. Experiments show that ER, thus enhanced, displays an accuracy gain of 51.2 and 26.9 percentage points on the CIFAR-10 and CIFAR-100 datasets respectively (memory buffer size 1000). As a result, it surpasses current state-of-the-art rehearsal-based methods.","url_abs":"https://arxiv.org/abs/2010.05595v1","url_pdf":"https://arxiv.org/pdf/2010.05595v1.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":"rethinking-experience-replay-a-bag-of-tricks","repo_url":"https://github.com/hastings24/rethinking_er","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"rethinking-experience-replay-a-bag-of-tricks","repo_url":"https://github.com/aimagelab/mammoth","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"rethinking-experience-replay-a-bag-of-tricks","repo_url":"https://github.com/mostafaelaraby/Real-DEEL-Dark-Experience","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"continual-learning","task_name":"Continual Learning"}],"methods":[{"method_slug":"experience-replay","method_name":"Experience Replay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2010.05595","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2010.05595"}},"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/aimagelab/mammoth","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hastings24/rethinking_er","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mostafaelaraby/Real-DEEL-Dark-Experience","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"ran_honours":1,"unverified":3},"by_repo_kind":{"official":{"samples":3,"ran":1,"repositories":1},"listed":{"samples":2,"ran":1,"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":"5d65b508e8b1cbad","entry":"project","repo":"hastings24/rethinking_er","repo_kind":"official","path":"models/agem.py","file_url":"https://github.com/hastings24/rethinking_er/blob/HEAD/models/agem.py","link_basis":"harvester_set","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":"5d65b508e8b1cbad"}},{"code_sha256_prefix":"7e522e4817696b98","entry":"reservoir","repo":"mostafaelaraby/Real-DEEL-Dark-Experience","repo_kind":"listed","path":"real_deel_dark_experience/utils/buffer_tricks.py","file_url":"https://github.com/mostafaelaraby/Real-DEEL-Dark-Experience/blob/HEAD/real_deel_dark_experience/utils/buffer_tricks.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7e522e4817696b98"}},{"code_sha256_prefix":"f7c36379f7dc1c82","entry":"ResNet18","repo":"hastings24/rethinking_er","repo_kind":"official","path":"backbone/ResNet.py","file_url":"https://github.com/hastings24/rethinking_er/blob/HEAD/backbone/ResNet.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":"f7c36379f7dc1c82"}},{"code_sha256_prefix":"4c2989ace7c5c0da","entry":"conv3x3","repo":"hastings24/rethinking_er","repo_kind":"official","path":"backbone/ResNet.py","file_url":"https://github.com/hastings24/rethinking_er/blob/HEAD/backbone/ResNet.py","link_basis":"harvester_set","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":"4c2989ace7c5c0da"}},{"code_sha256_prefix":"23ae9bb933416a1a","entry":"sample_action","repo":"mostafaelaraby/Real-DEEL-Dark-Experience","repo_kind":"listed","path":"real_deel_dark_experience/utils/rl_utils.py","file_url":"https://github.com/mostafaelaraby/Real-DEEL-Dark-Experience/blob/HEAD/real_deel_dark_experience/utils/rl_utils.py","link_basis":"harvester_set","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":"23ae9bb933416a1a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}