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

  1. Choose a pattern task using the radio buttons
  2. View the input-output pairs for your selected task
  3. The goal is to find the latent that will generate the right third image for the given input
  4. Click anywhere on the latent space to specify coordinates for the latent
  5. 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.

Select Task

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.