Turing

Bayesian inference with probabilistic programming.

https://github.com/turinglang/turing.jl

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: scholar.google
  • Committers with academic emails
    14 of 103 committers (13.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.5%) to scientific vocabulary

Keywords

artificial-intelligence bayesian-inference bayesian-neural-networks bayesian-statistics hacktoberfest hamiltonian-monte-carlo hmc julia-language machine-learning mcmc probabilistic-graphical-models probabilistic-inference probabilistic-models probabilistic-programming turing

Keywords from Contributors

julialang automatic-differentiation julia-compiler gradient control-flow sde differential-equations sciml pde ode
Last synced: 6 months ago · JSON representation

Repository

Bayesian inference with probabilistic programming.

Basic Info
  • Host: GitHub
  • Owner: TuringLang
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage: https://turinglang.org
  • Size: 39.5 MB
Statistics
  • Stars: 2,160
  • Watchers: 50
  • Forks: 228
  • Open Issues: 88
  • Releases: 213
Topics
artificial-intelligence bayesian-inference bayesian-neural-networks bayesian-statistics hacktoberfest hamiltonian-monte-carlo hmc julia-language machine-learning mcmc probabilistic-graphical-models probabilistic-inference probabilistic-models probabilistic-programming turing
Created almost 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Citation

README.md

Turing.jl logo

Turing.jl

Probabilistic programming and Bayesian inference in Julia

Tutorials API docs Tests Coverage ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

🚀 Get started

Install Julia (see the official Julia website; you will need at least Julia 1.10 for the latest version of Turing.jl). Then, launch a Julia REPL and run:

julia julia> using Pkg; Pkg.add("Turing")

You can define models using the @model macro, and then perform Markov chain Monte Carlo sampling using the sample function:

```julia julia> using Turing

julia> @model function myfirstmodel(data) mean ~ Normal(0, 1) sd ~ truncated(Cauchy(0, 3); lower=0) data ~ Normal(mean, sd) end

julia> model = myfirstmodel(randn())

julia> chain = sample(model, NUTS(), 1000) ```

You can find the main TuringLang documentation at https://turinglang.org, which contains general information about Turing.jl's features, as well as a variety of tutorials with examples of Turing.jl models.

API documentation for Turing.jl is specifically available at https://turinglang.org/Turing.jl/stable.

🛠️ Contributing

Issues

If you find any bugs or unintuitive behaviour when using Turing.jl, please do open an issue! Please don't worry about finding the correct repository for the issue; we can migrate the issue to the appropriate repository if we need to.

Pull requests

We are of course also very happy to receive pull requests. If you are unsure about whether a particular feature would be welcome, you can open an issue for discussion first.

When opening a PR, non-breaking releases (patch versions) should target the main branch. Breaking releases (minor version) should target the breaking branch.

If you have not received any feedback on an issue or PR for a while, please feel free to ping @TuringLang/maintainers in a comment.

💬 Other channels

The Turing.jl userbase tends to be most active on the #turing channel of Julia Slack. If you do not have an invitation to Julia's Slack, you can get one from the official Julia website.

There are also often threads on Julia Discourse (you can search using, e.g., the turing tag).

🔄 What's changed recently?

We publish a fortnightly newsletter summarising recent updates in the TuringLang ecosystem, which you can view on our website, GitHub, or Julia Slack.

For Turing.jl specifically, you can see a full changelog in HISTORY.md or our GitHub releases.

🧩 Where does Turing.jl sit in the TuringLang ecosystem?

Turing.jl is the main entry point for users, and seeks to provide a unified, convenient interface to all of the functionality in the TuringLang (and broader Julia) ecosystem.

In particular, it takes the ability to specify probabilistic models with DynamicPPL.jl, and combines it with a number of inference algorithms, such as:

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 ```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}, } ```

You can see the full list of publications that have cited Turing.jl on Google Scholar.

Owner

  • Name: The Turing Language
  • Login: TuringLang
  • Kind: organization

Bayesian inference with probabilistic programming

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 3,067
  • Total Committers: 103
  • Avg Commits per committer: 29.777
  • Development Distribution Score (DDS): 0.608
Past Year
  • Commits: 89
  • Committers: 11
  • Avg Commits per committer: 8.091
  • Development Distribution Score (DDS): 0.674
Top Committers
Name Email Commits
Kai Xu x****0@g****m 1,203
Hong Ge h****4@c****k 469
Hong Ge h****e@d****k 286
Cameron Pfiffer c****r@g****m 239
David Widmann d****n 164
Tor Erlend Fjelde t****5@g****m 97
Martin Trapp t****n@g****m 93
Mohamed Tarek m****8@g****m 79
Emile Mathieu e****u@s****k 69
github-actions[bot] 4****] 56
Markus Hauru m****s@m****g 29
Penelope Yong p****m@g****m 27
Will Tebbutt w****1@m****k 25
Adam Scibior a****b@g****m 22
ZHUO QL K****2 21
Hessam Mehr h****r@g****m 13
Xianda Sun 5****3 13
Emile Mathieu e****m@b****r 10
Emma Smith e****x@g****m 9
Ubuntu u****u@i****l 8
Mohamed m****y@y****m 7
Philipp Gabler p****r 6
Harrison Wilde h****e@o****m 5
Jaime RZ j****3@g****m 5
Rik Huijzer t****r@r****l 5
keorn p****n@g****m 3
Arthur Lui l****r@g****m 3
FredericWantiez f****z@g****m 3
Pietro Monticone 3****e 3
Tom Röschinger 5****h 3
and 73 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 343
  • Total pull requests: 525
  • Average time to close issues: 9 months
  • Average time to close pull requests: 24 days
  • Total issue authors: 141
  • Total pull request authors: 37
  • Average comments per issue: 3.95
  • Average comments per pull request: 3.59
  • Merged pull requests: 290
  • Bot issues: 0
  • Bot pull requests: 194
Past Year
  • Issues: 136
  • Pull requests: 252
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 14 days
  • Issue authors: 40
  • Pull request authors: 16
  • Average comments per issue: 2.32
  • Average comments per pull request: 2.89
  • Merged pull requests: 120
  • Bot issues: 0
  • Bot pull requests: 97
Top Authors
Issue Authors
  • penelopeysm (51)
  • mhauru (33)
  • torfjelde (28)
  • yebai (23)
  • DominiqueMakowski (11)
  • ElOceanografo (7)
  • tiemvanderdeure (6)
  • astro-kevin (6)
  • simonsteiger (6)
  • PTWaade (5)
  • SamuelBrand1 (4)
  • willtebbutt (4)
  • sunxd3 (4)
  • CMoebus (3)
  • itsdfish (3)
Pull Request Authors
  • github-actions[bot] (237)
  • penelopeysm (112)
  • mhauru (70)
  • torfjelde (55)
  • yebai (33)
  • devmotion (22)
  • sunxd3 (16)
  • JaimeRZP (12)
  • Red-Portal (5)
  • ElOceanografo (4)
  • willtebbutt (4)
  • AoifeHughes (3)
  • FredericWantiez (3)
  • shravanngoswamii (3)
  • itsdfish (2)
Top Labels
Issue Labels
bug (33) enhancement (10) doc (10) roadmap (8) new-feature (5) enhancement: doc (4) dynamicppl (4) request-for-comments (4) autodiff (3) good-first-issue (2) meta (2) user issue (2) tests (2) solution known (1) bug: numerical issues (1) high priority (1)
Pull Request Labels
enhancement: tests (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1,087 total
  • Total dependent packages: 25
  • Total dependent repositories: 0
  • Total versions: 204
juliahub.com: Turing

Bayesian inference with probabilistic programming.

  • Versions: 204
  • Dependent Packages: 25
  • Dependent Repositories: 0
  • Downloads: 1,087 Total
Rankings
Stargazers count: 0.1%
Forks count: 0.2%
Dependent packages count: 3.2%
Average: 3.4%
Dependent repos count: 9.9%
Last synced: 6 months ago

Dependencies

.github/workflows/DynamicHMC.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/setup-julia v1 composite
.github/workflows/Numerical.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/TuringCI.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • coverallsapp/github-action master composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions