Skip to content
Variational Latent Gaussian Process
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
notebook Do not save synthetic data Feb 16, 2019
tests Add the function computing log-likelihood Mar 26, 2019
vlgp Add the function computing log-likelihood Mar 26, 2019
.gitattributes Fix GitHub identification Mar 5, 2019
LICENSE add MIT license Mar 23, 2016
Pipfile Update dependency Jan 31, 2019 Update README Mar 26, 2019
pyproject.toml Update version Mar 19, 2019
requirements.txt Update requirements.txt Feb 15, 2019 Remove legacy h5py functions Mar 19, 2019

variational Latent Gaussian Process

license python 3.5 python 3.6 pip


This repo contains the implementation of variational Latent Gaussian Process (vLGP) (arXiv) (video) by Yuan Zhao ( and Il Memming Park ( It has been developed with the goal of recovering low-dimensional dynamics from neural population recordings.



pip install vlgp

from source

git clone
cd vlgp
pip install -e .


The main entry is The fit function requires two arguments trials and n_factors. The former is expected as a list of dictionaries, each of which stores on trial and at least contains a identifier ID and the observation y in the shape of (bin, channel). The later specifies the number of factors (latent processes).

result =
    trials,       # list of dictionaries
    n_factors=3,  # dimensionality

The fit function returns a dictionary of trials, params and config as the fitted model.

Please see the tutorial for details.


  author    = {Yuan Zhao and Il Memming Park},
  title     = {Variational Latent Gaussian Process for Recovering Single-Trial Dynamics from Population Spike Trains},
  journal   = {Neural Computation},
  year      = {2017},
  volume    = {29},
  number    = {5},
  pages     = {1293--1316},
  month     = {may},
  doi       = {10.1162/neco_a_00953},
  publisher = {{MIT} Press - Journals},



  • New uniform data structure
  • Support trials of unequal duration
  • Faster
  • Use NumPy data format


  • New fit function now only requires observation and the number of latent.
  • Save snapshots if path is passed to fit.
  • You can access the iterations via callback.
You can’t perform that action at this time.