Skip to content

v0.43.3

Choose a tag to compare

@github-actions github-actions released this 26 Mar 19:26
· 30 commits to main since this release
f86999b

Turing v0.43.3

Diff since v0.43.2

Unify parameter initialisation for HMC and external samplers.
External samplers (like HMC) now attempt multiple times to generate valid initial parameters, instead of just taking the first set of parameters.

Re-exports set_logprob_type! from DynamicPPL to allow users to control the base log-probability type used when evaluating Turing models.
For example, calling set_logprob_type!(Float32) will mean that Turing will use Float32 for log-probability calculations, only promoting if there is something in the model that causes it to be (e.g. a distribution that returns Float64 log-probabilities).
Note that this is a compile-time preference: for it to take effect you will have to restart your Julia session after calling set_logprob_type!.

Furthermore, note that sampler support for non-Float64 log-probabilities is currently limited.
Although DynamicPPL promises not promote float types unnecessarily, many samplers, including HMC and NUTS, still use Float64 internally and thus will cause log-probabilities and parameters to be promoted to Float64, even if the model itself uses Float32.

Merged pull requests:

  • Unify HMC + externalsampler + DynamicHMC parameter initialisation; re-export DynamicPPL.set_logprob_type! (#2794) (@penelopeysm)

Closed issues:

  • New Turing domain: please visit turinglang.org (#2041)
  • Support for Float32 (#2212)
  • Including VarNames in sampler states, etc. (#2511)
  • Modifying an array input as part of struct and passing it to a softmax throws a conversion MethodError when done with ForwardDiff (#2516)
  • Gibbs when a variable has no sampler (#2536)
  • Dispatch error on loglikelihood when sampling from arraydist of multivariate distributions (#2549)
  • Remove MH in favour of externalsampler(MH) (#2593)
  • Segfault on test mcmc/Inference (#2655)
  • Stop using squash commits? (#2700)
  • External sampler should try harder at generating initial params (#2739)
  • Remove IS 'sampler' (maybe also SGLD + SGHMC)? (#2767)
  • replace ParticleMCMCContext with init strategy (#2768)
  • Export Model as GraphViz, Mermaid, NetworkX and probably Cytoscape.js (#2782)
  • Add convenience functionality for general Bayesian workflow methods (#2785)
  • densify VNT inside ModeResult? (#2786)
  • initial_params in sample won't allow me to change a variable like t[1] (#2792)