{"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/on-the-relationship-between-predictive-coding","title":"On the relationship between predictive coding and backpropagation","arxiv_id":"2106.13082","date":"2021-06-20","proceeding":null,"authors":["Robert Rosenbaum"],"abstract":"Artificial neural networks are often interpreted as abstract models of biological neuronal networks, but they are typically trained using the biologically unrealistic backpropagation algorithm and its variants. Predictive coding has been proposed as a potentially more biologically realistic alternative to backpropagation for training neural networks. This manuscript reviews and extends recent work on the mathematical relationship between predictive coding and backpropagation for training feedforward artificial neural networks on supervised learning tasks. Implications of these results for the interpretation of predictive coding and deep neural networks as models of biological learning are discussed along with a repository of functions, Torch2PC, for performing predictive coding with PyTorch neural network models.","url_abs":"https://arxiv.org/abs/2106.13082v6","url_pdf":"https://arxiv.org/pdf/2106.13082v6.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":"on-the-relationship-between-predictive-coding","repo_url":"https://github.com/RobertRosenbaum/PredictiveCodingVsBackProp","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"on-the-relationship-between-predictive-coding","repo_url":"https://github.com/RobertRosenbaum/Torch2PC","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.13082","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.13082"}},"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/RobertRosenbaum/PredictiveCodingVsBackProp","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/RobertRosenbaum/Torch2PC","reach":null}],"summary":{"ran_fixture":1,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":3,"samples":[{"code_sha256_prefix":"55eaf3cc88363bac","entry":"FixedPredPCPredErrs","repo":"RobertRosenbaum/Torch2PC","repo_kind":"official","path":"TorchSeq2PC.py","file_url":"https://github.com/RobertRosenbaum/Torch2PC/blob/HEAD/TorchSeq2PC.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"55eaf3cc88363bac"}},{"code_sha256_prefix":"10395fb43e1d9c61","entry":"FwdPassPlus","repo":"RobertRosenbaum/Torch2PC","repo_kind":"official","path":"TorchSeq2PC.py","file_url":"https://github.com/RobertRosenbaum/Torch2PC/blob/HEAD/TorchSeq2PC.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"10395fb43e1d9c61"}},{"code_sha256_prefix":"9b97d306460b5dba","entry":"StrictPCPredErrs","repo":"RobertRosenbaum/Torch2PC","repo_kind":"official","path":"TorchSeq2PC.py","file_url":"https://github.com/RobertRosenbaum/Torch2PC/blob/HEAD/TorchSeq2PC.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9b97d306460b5dba"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}