Skip to content
@TuringLang

The Turing Language

Bayesian inference with probabilistic programming

Turing.jl is a Julia library for general-purpose probabilistic programming. Turing allows the user to write models using the standard Julia syntax, and provides a wide range of Monte-Carlo sampling and optimisation-based inference methods for solving problems across probabilistic machine learning, Bayesian statistics and data science. Compared to other probabilistic programming languages, Turing specialises in modularity and decouples the modelling language (i.e., the compiler) and inference methods. Turing's modular design and the high-level numerical language Julia make Turing remarkably extensible, allowing for the easy addition of new model families and inference methods.

Current functionalities include:

Citing Turing.jl

If you have used Turing.jl in your work, we would be very grateful if you could cite the following:

Turing.jl: a general-purpose probabilistic programming language
Tor Erlend Fjelde, Kai Xu, David Widmann, Mohamed Tarek, Cameron Pfiffer, Martin Trapp, Seth D. Axen, Xianda Sun, Markus Hauru, Penelope Yong, Will Tebbutt, Zoubin Ghahramani, Hong Ge
ACM Transactions on Probabilistic Machine Learning, 2025 (Just Accepted)

Turing: A Language for Flexible Probabilistic Inference
Hong Ge, Kai Xu, Zoubin Ghahramani
Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics, PMLR 84:1682-1690, 2018.

Expand for BibTeX
@article{10.1145/3711897,
author = {Fjelde, Tor Erlend and Xu, Kai and Widmann, David and Tarek, Mohamed and Pfiffer, Cameron and Trapp, Martin and Axen, Seth D. and Sun, Xianda and Hauru, Markus and Yong, Penelope and Tebbutt, Will and Ghahramani, Zoubin and Ge, Hong},
title = {Turing.jl: a general-purpose probabilistic programming language},
year = {2025},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3711897},
doi = {10.1145/3711897},
note = {Just Accepted},
journal = {ACM Trans. Probab. Mach. Learn.},
month = feb,
}

@InProceedings{pmlr-v84-ge18b,
  title = 	 {Turing: A Language for Flexible Probabilistic Inference},
  author = 	 {Ge, Hong and Xu, Kai and Ghahramani, Zoubin},
  booktitle = 	 {Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics},
  pages = 	 {1682--1690},
  year = 	 {2018},
  editor = 	 {Storkey, Amos and Perez-Cruz, Fernando},
  volume = 	 {84},
  series = 	 {Proceedings of Machine Learning Research},
  month = 	 {09--11 Apr},
  publisher =    {PMLR},
  pdf = 	 {http://proceedings.mlr.press/v84/ge18b/ge18b.pdf},
  url = 	 {https://proceedings.mlr.press/v84/ge18b.html},
}

Pinned Loading

  1. Turing.jl Turing.jl Public

    Bayesian inference with probabilistic programming.

    Julia 2.1k 227

  2. docs docs Public

    Documentation and tutorials for the Turing language

    Markdown 236 103

  3. DynamicPPL.jl DynamicPPL.jl Public

    Implementation of domain-specific language (DSL) for dynamic probabilistic programming

    Julia 230 36

  4. JuliaBUGS.jl JuliaBUGS.jl Public

    A domain specific language (DSL) for probabilistic graphical models

    Julia 48 10

  5. AdvancedHMC.jl AdvancedHMC.jl Public

    Robust, modular and efficient implementation of advanced Hamiltonian Monte Carlo algorithms

    Jupyter Notebook 296 46

  6. Bijectors.jl Bijectors.jl Public

    Implementation of normalising flows and constrained random variable transformations

    Julia 246 38

Repositories

Showing 10 of 29 repositories

Top languages

Loading…

Most used topics

Loading…