Bayesian Program Learning toolkit in Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bpl renderer base class, text renderer WIP class, and refactor for May 29, 2016
LICENSE Initial commit Jan 9, 2016 Update Feb 13, 2018 cpd starter; ignore IDEA files Jan 22, 2016
requirements.txt add test, nose Jan 24, 2016

UPDATE Feb 2018

This repo is no longer active.


Code Climate Join the chat at Bayesian Program Learning toolkit in Python


This project is intended to build BPL into highly reusable Python modules, for the purpose of expiermentation and eventual use in production systems.

The idea is to encourage discussion and experimentation around BPL and BPL-inspired variants, and to explore this class of models in production settings.

Please see the wiki for details.

What PyBPL is: A framework for developing BPL variants from a generalized form of the BPL algortithm. See this wiki entry for more info.

What PyBPL is not: A faithful implementation of the BPL as applied to the handwriting use case. To run the Matlab tests for handwriting, get the original repository and run the code as described there.


  • numpy
  • nose


pip install -r requirements.txt

The following system packages are are also required (the command below should work on Ubuntu/Linux):

sudo apt-get install g++ python-dev liblapack-dev gfortran




Original Repo & Paper

The original BPL Matlab repo is here:

The original BPL paper can be found on Science:

Lake, B. M., Salakhutdinov, R., and Tenenbaum, J. B. (2015). Human-level concept learning through probabilistic program induction. Science, 350(6266), 1332-1338.


-Base BPL class, with tests

-Base parser class (for learning primitives), with tests

-Tests for base class

-Data formatters (text, time series, etc)

-Helper methods and utility classes as needed