Interactive Visualization of a Latent Program Network (LPN)
Introduction
The LPN is an architecture for inductive program synthesis that builds in test-time adaption by learning a latent space that can be used for search. This interactive demo showcases a latent traversal of the LPN in the latent program space. More specifically, the decoder of the LPN is conditioned on a latent vector representing an abstract program, which is then used to generate an output.
How to Use
- Choose a pattern task using the radio buttons
- View the input-output pairs for your selected task
- The goal is to find the latent that will generate the right third image for the given input
- Click anywhere on the latent space to specify coordinates for the latent
- See the generated image based on your selected latent
Use the "Find Optimal Latent" button to find the latent that maximizes likelihood of generating the other input-output pairs.
Latent Space Search
Click anywhere in the 2D latent space below to condition the decoder on a specific latent vector. The heatmap shows the decoder log-likelihood of generating the first two input-output pairs conditioning on any point in the latent space. The goal is to find the latent that generates the third image for the given input.
Input-Output Pairs
Generated Output
Technical Details
For more information, please refer to our paper or GitHub repository.