DeepAI AI Chat
Log In Sign Up

Neural Programmer-Interpreters

by   Scott Reed, et al.

We propose the neural programmer-interpreter (NPI): a recurrent and compositional neural network that learns to represent and execute programs. NPI has three learnable components: a task-agnostic recurrent core, a persistent key-value program memory, and domain-specific encoders that enable a single NPI to operate in multiple perceptually diverse environments with distinct affordances. By learning to compose lower-level programs to express higher-level programs, NPI reduces sample complexity and increases generalization ability compared to sequence-to-sequence LSTMs. The program memory allows efficient learning of additional tasks by building on existing programs. NPI can also harness the environment (e.g. a scratch pad with read-write pointers) to cache intermediate results of computation, lessening the long-term memory burden on recurrent hidden units. In this work we train the NPI with fully-supervised execution traces; each program has example sequences of calls to the immediate subprograms conditioned on the input. Rather than training on a huge number of relatively weak labels, NPI learns from a small number of rich examples. We demonstrate the capability of our model to learn several types of compositional programs: addition, sorting, and canonicalizing 3D models. Furthermore, a single NPI learns to execute these programs and all 21 associated subprograms.


page 1

page 2

page 3

page 4


Learning to Execute

Recurrent Neural Networks (RNNs) with Long Short-Term Memory units (LSTM...

Improving the Universality and Learnability of Neural Programmer-Interpreters with Combinator Abstraction

To overcome the limitations of Neural Programmer-Interpreters (NPI) in i...

Compositional Verification of Heap-Manipulating Programs through Property-Guided Learning

Analyzing and verifying heap-manipulating programs automatically is chal...

Write, Execute, Assess: Program Synthesis with a REPL

We present a neural program synthesis approach integrating components wh...

ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesis

When writing programs, people have the ability to tackle a new complex t...

Learning compositional programs with arguments and sampling

One of the most challenging goals in designing intelligent systems is em...

Learning Compositional Neural Programs with Recursive Tree Search and Planning

We propose a novel reinforcement learning algorithm, AlphaNPI, that inco...

Code Repositories


Neural Programmer-Interpreter Implementation (Reed, de Freitas:, in Tensorflow

view repo



view repo


a Neural Programmer-Interpreters implementation(NPI) with Tensorflow

view repo