{"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/neural-programmer-interpreters","title":"Neural Programmer-Interpreters","arxiv_id":"1511.06279","date":"2015-11-19","proceeding":null,"authors":["Scott Reed","Nando de Freitas"],"abstract":"We propose the neural programmer-interpreter (NPI): a recurrent and\ncompositional neural network that learns to represent and execute programs. NPI\nhas three learnable components: a task-agnostic recurrent core, a persistent\nkey-value program memory, and domain-specific encoders that enable a single NPI\nto operate in multiple perceptually diverse environments with distinct\naffordances. By learning to compose lower-level programs to express\nhigher-level programs, NPI reduces sample complexity and increases\ngeneralization ability compared to sequence-to-sequence LSTMs. The program\nmemory allows efficient learning of additional tasks by building on existing\nprograms. NPI can also harness the environment (e.g. a scratch pad with\nread-write pointers) to cache intermediate results of computation, lessening\nthe long-term memory burden on recurrent hidden units. In this work we train\nthe NPI with fully-supervised execution traces; each program has example\nsequences of calls to the immediate subprograms conditioned on the input.\nRather than training on a huge number of relatively weak labels, NPI learns\nfrom a small number of rich examples. We demonstrate the capability of our\nmodel to learn several types of compositional programs: addition, sorting, and\ncanonicalizing 3D models. Furthermore, a single NPI learns to execute these\nprograms and all 21 associated subprograms.","url_abs":"http://arxiv.org/abs/1511.06279v4","url_pdf":"http://arxiv.org/pdf/1511.06279v4.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":"neural-programmer-interpreters","repo_url":"https://github.com/git-niraj/Neural-Program-Learning-Project","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"neural-programmer-interpreters","repo_url":"https://github.com/siddk/npi","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1511.06279","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}