Turing models are easy to read and write–models work the way you write them.
Specify complex models with discrete parameters and stochastic control flow easily.
Turing is modular, written fully in Julia and can be modified to suit your needs.
Turing's modelling syntax allows you to specify a model easily. Simple models can be expressed in the same way as complex, hierarchical models with stochastic control flow.
function lingauss(x, y) # Assumptions σ² ~ InverseGamma(2, 3) μ ~ Normal(0, sqrt(σ²)) # Observations x ~ Normal(μ, sqrt(σ²)) y ~ Normal(μ, sqrt(σ²)) end
Turing provides Hamiltonian Monte Carlo sampling for differentiable posterior distributions, Particle MCMC sampling for complex posterior distributions involving discrete variables and stochastic control flow, and Gibbs sampling which combines particle MCMC, HMC and many other MCMC algorithms.
Turing supports Julia's Flux package for automatic differentiation. Combine Turing and Flux to construct probabilistic variants of traditional machine learning models.
Join the Turing community to contribute, learn and get your questions answered.
Report bugs, request features, discuss statistical applications/theory, and more.
Browse and join discussions on Turing.
Explore a rich ecosystem of libraries, tools, and more to support development.
Robust, modular and efficient implementation of advanced Hamiltonian Monte Carlo algorithms.