Turing: Probabilistic programming in Julia.



Build Status Build Status Coverage Status Turing Gitter Wiki Status

Turing.jl is a Julia library for (universal) probabilistic programming. Current features include:

  • Universal probabilistic programming with an intuitive modelling interface
  • Hamiltonian Monte Carlo (HMC) sampling for differentiable posterior distributions
  • Particle MCMC sampling for complex posterior distributions involving discrete variables and stochastic control flows
  • Compositional MCMC sampling that combines particle MCMC and HMC

Turing.jl wiki

Please visit Turing.jl wiki for tutorials (e.g. Get started) and other topics (e.g. Advanced usages).


Turing is an open source project so if you feel you have some relevant skills and are interested in contributing then please do get in touch. You can contribute by opening issues on Github or implementing things yourself and making a pull request. We would also appreciate example models written using Truing to add to examples.


Turing was originally created and is now managed by Hong Ge. Current and past Turing team members include Hong Ge, Adam Scibior, Matej Balog, Zoubin Ghahramani, Kai Xu, Emma Smith. You can see the full list of on Github: https://github.com/yebai/Turing.jl/graphs/contributors. Thanks for the important additions, fixes and comments.

Relevant papers

  1. Ghahramani, Zoubin. “Probabilistic machine learning and artificial intelligence.” Nature 521, no. 7553 (2015): 452-459. (pdf)
  2. Ge, Hong and Ścibior, Adam and Xu, Kai and Ghahramani, Zoubin. “Turing: A fast imperative probabilistic programming language.”

Citing Turing.jl

To cite Turing, please refer to the technical report. Sample BibTeX entry is given below:

    author = {Ge, Hong and {julia-observer-html-cut-paste-0__work#39;S}cibior, Adam and Xu, Kai and Ghahramani, Zoubin},
    title = "{Turing: A fast imperative probabilistic programming language.}",
    year = 2016,
    month = jun

First Commit


Last Touched

4 days ago


1800 commits

Used By: