{"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/the-reversible-residual-network","title":"The Reversible Residual Network: Backpropagation Without Storing Activations","arxiv_id":"1707.04585","date":"2017-07-14","proceeding":"NeurIPS 2017 12","authors":["Aidan N. Gomez","Mengye Ren","Raquel Urtasun","Roger B. Grosse"],"abstract":"Deep residual networks (ResNets) have significantly pushed forward the\nstate-of-the-art on image classification, increasing in performance as networks\ngrow both deeper and wider. However, memory consumption becomes a bottleneck,\nas one needs to store the activations in order to calculate gradients using\nbackpropagation. We present the Reversible Residual Network (RevNet), a variant\nof ResNets where each layer's activations can be reconstructed exactly from the\nnext layer's. Therefore, the activations for most layers need not be stored in\nmemory during backpropagation. We demonstrate the effectiveness of RevNets on\nCIFAR-10, CIFAR-100, and ImageNet, establishing nearly identical classification\naccuracy to equally-sized ResNets, even though the activation storage\nrequirements are independent of depth.","url_abs":"http://arxiv.org/abs/1707.04585v1","url_pdf":"http://arxiv.org/pdf/1707.04585v1.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":"the-reversible-residual-network","repo_url":"https://github.com/renmengye/revnet-public","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"the-reversible-residual-network","repo_url":"https://github.com/LEGO999/BIgBiGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}},{"paper_slug":"the-reversible-residual-network","repo_url":"https://github.com/LEGO999/BigBiGAN-TensorFlow2.0","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}},{"paper_slug":"the-reversible-residual-network","repo_url":"https://github.com/O1sims/reversible-residual-network","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"the-reversible-residual-network","repo_url":"https://github.com/gigantenbein/ReVAE","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"the-reversible-residual-network","repo_url":"https://github.com/lucidrains/equiformer-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"the-reversible-residual-network","repo_url":"https://github.com/lucidrains/se3-transformer-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"the-reversible-residual-network","repo_url":"https://github.com/osmr/imgclsmob","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"mxnet","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"the-reversible-residual-network","repo_url":"https://github.com/silvandeleemput/memcnn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"image-classification","task_name":"image-classification"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"pointwise-convolution","method_name":"Pointwise Convolution"},{"method_slug":"revnet","method_name":"RevNet"},{"method_slug":"reversible-residual-block","method_name":"Reversible Residual Block"}],"datasets_introduced":[],"methods_introduced":[{"slug":"revnet","name":"RevNet","full_name":"RevNet"}],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1707.04585","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1707.04585"}},"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/LEGO999/BigBiGAN-TensorFlow2.0","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lucidrains/se3-transformer-pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/silvandeleemput/memcnn","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lucidrains/equiformer-pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/osmr/imgclsmob","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/LEGO999/BIgBiGAN","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/renmengye/revnet-public","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/gigantenbein/ReVAE","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/O1sims/reversible-residual-network","reach":{"status":"unanswered"}}],"summary":{"ran_honours":3,"ran_fixture":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"repositories":1},"listed":{"samples":1,"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":"90df0fb80b7e2878","entry":"evaluate","repo":"renmengye/revnet-public","repo_kind":"official","path":"run_cifar_train.py","file_url":"https://github.com/renmengye/revnet-public/blob/HEAD/run_cifar_train.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"90df0fb80b7e2878"}},{"code_sha256_prefix":"87522c59fd90aded","entry":"loss_function","repo":"gigantenbein/ReVAE","repo_kind":"listed","path":"model.py","file_url":"https://github.com/gigantenbein/ReVAE/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"87522c59fd90aded"}},{"code_sha256_prefix":"afcb9f0b0da3af03","entry":"train_step","repo":"renmengye/revnet-public","repo_kind":"official","path":"run_cifar_train.py","file_url":"https://github.com/renmengye/revnet-public/blob/HEAD/run_cifar_train.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"afcb9f0b0da3af03"}},{"code_sha256_prefix":"c5abb3c9365dc91c","entry":"train_step","repo":"renmengye/revnet-public","repo_kind":"official","path":"run_imagenet_train.py","file_url":"https://github.com/renmengye/revnet-public/blob/HEAD/run_imagenet_train.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c5abb3c9365dc91c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}