Skip to content

Releases: TuringLang/Turing.jl

v0.36.0

15 Jan 12:18
24d5556
Compare
Choose a tag to compare

Turing v0.36.0

Diff since v0.35.5

0.36.0 introduces a new Gibbs sampler. It's been included in several previous releases as Turing.Experimental.Gibbs, but now takes over the old Gibbs sampler, which gets removed completely.

The new Gibbs sampler currently supports the same user-facing interface as the old one, but the old constructors have been deprecated, and will be removed in the future. Also, given that the internals have been completely rewritten in a very different manner, there may be accidental breakage that we haven't anticipated. Please report any you find.

GibbsConditional has also been removed. It was never very user-facing, but it was exported, so technically this is breaking.

The old Gibbs constructor relied on being called with several subsamplers, and each of the constructors of the subsamplers would take as arguments the symbols for the variables that they are to sample, e.g. Gibbs(HMC(:x), MH(:y)). This constructor has been deprecated, and will be removed in the future. The new constructor works by mapping symbols, VarNames, or iterables thereof to samplers, e.g. Gibbs(:x=>HMC(), :y=>MH()), Gibbs(@varname(x) => HMC(), @varname(y) => MH()), Gibbs((:x, :y) => NUTS(), :z => MH()). This allows more granular specification of which sampler to use for which variable.

Likewise, the old constructor for calling one subsampler more often than another, Gibbs((HMC(0.01, 4, :x), 2), (MH(:y), 1)) has been deprecated. The new way to do this is to use RepeatSampler, also introduced at this version: Gibbs(@varname(x) => RepeatSampler(HMC(0.01, 4), 2), @varname(y) => MH()).

Merged pull requests:

  • Replace old Gibbs sampler with the experimental one. (#2328) (@mhauru)
  • CompatHelper: add new compat entry for AbstractPPL at version 0.9 for package test, (keep existing compat) (#2443) (@github-actions[bot])
  • CompatHelper: add new compat entry for BangBang at version 0.4 for package test, (keep existing compat) (#2444) (@github-actions[bot])
  • CompatHelper: bump compat for AbstractPPL to 0.10 for package test, (keep existing compat) (#2447) (@github-actions[bot])
  • CompatHelper: add new compat entry for Combinatorics at version 1 for package test, (keep existing compat) (#2448) (@github-actions[bot])
  • Increase atol on specific tests for x86 (#2449) (@penelopeysm)
  • Rework Gibbs constructors (#2456) (@mhauru)
  • Replace Gibbs inner loop with recursion (#2464) (@mhauru)
  • variable naming / destructuring (#2465) (@penelopeysm)
  • Remove mention of GibbsConditional from API docs (#2467) (@mhauru)

Closed issues:

  • Custom distributions required rand to be implemented when "unnecessary" (#907)
  • Recontruct vs Function with array of parameters (#1969)
  • Import style and modularisation (#2288)
  • Remove old Gibbs sampler, make the experimental one the default (#2318)
  • test/mcmc/Inference.jl segfaults on GHA Windows runner (sometimes) (#2379)
  • Automate choice of AD backend (#2417)
  • Remove Gibbs(; m=HMC(0.2, 3), s=PG(10)) in favour of Gibbs(:m=>HMC(0.2, 3), :s=>PG(10)) (#2442)
  • Gibbs performance regression on Julia v1.11 (#2445)
  • initial_params working incorrectly and differently in v0.34.0 and v0.33.0 (#2452)
  • Question: Getting 404 error when accesing https://turing.ml/v0.22/docs/using-turing/. (#2466)

v0.35.5

18 Dec 19:31
2707d12
Compare
Choose a tag to compare

Turing v0.35.5

Diff since v0.35.4

v0.35.4

18 Dec 19:08
700a19a
Compare
Choose a tag to compare

Turing v0.35.4

Diff since v0.35.3

Merged pull requests:

Closed issues:

  • Update MCMC sampler wrappers in Turing.jl to use AbstractMCMC (#2426)
  • JuliaBUGS Meta Issue (#2435)

v0.35.3

02 Dec 00:39
c0a4ee9
Compare
Choose a tag to compare

Turing v0.35.3

Diff since v0.35.2

Merged pull requests:

Closed issues:

  • Using Bayesian Inference for noise free Likelihood (#1914)
  • Depreciate MCMC-interface code in favour of AbstractMCMC. (#2281)
  • Using the score function estimator as gradient for VI (#2287)
  • How to save a model / fit and load it? Issue with JLD2 for "reconstructing" (#2309)
  • Nested sampling integration (#2329)
  • MethodError matching getϵ for AdvancedHMC Adaption (#2400)

v0.35.2

07 Nov 15:19
5b24ceb
Compare
Choose a tag to compare

Turing v0.35.2

Diff since v0.35.1

Merged pull requests:

Closed issues:

  • update() method for updating a fitted model with new data (#2308)
  • Drop support for Tracker (#2356)
  • Upgrade julia-actions/cache to v2 (#2370)
  • AdvancedMH external-sampler tests fail intermittently with 2 threads (#2371)
  • Use version = "min" in CI (#2373)
  • Data transformation code slows down sampling? (#2380)
  • New predict() behaviour and syntax? (#2388)
  • Sampling with HMC can hang if AD is bugged (#2389)

v0.35.1

25 Oct 16:49
42189fd
Compare
Choose a tag to compare

Turing v0.35.1

Diff since v0.35.0

  • Bump Optimization compat to v4
  • Bump DynamicPPL compat to v0.30.2

Merged pull requests:

v0.35.0

23 Oct 21:46
f388e61
Compare
Choose a tag to compare

Turing v0.35.0

Diff since v0.34.1

  • Drop support for Julia 1.9 and earlier. Minimum Julia version is now 1.10.
  • Drop support for Tracker as an AD backend.
  • Replace Tapir.jl with its reincarnated form, Mooncake.jl.

Merged pull requests:

  • Widen Optimization compat to v4, and related packages accordingly (#2327) (@mhauru)
  • CompatHelper: bump compat for DynamicPPL to 0.29, (keep existing compat) (#2339) (@github-actions[bot])
  • CompatHelper: bump compat for DynamicPPL to 0.29 for package test, (keep existing compat) (#2340) (@github-actions[bot])
  • DynamicPPL -> 0.29; Julia -> 1.10; Tapir -> Mooncake (#2341) (@penelopeysm)
  • Revert changing Optimization compat to v4 (#2343) (@penelopeysm)
  • Generate API docs (#2347) (@penelopeysm)
  • Add issue templates (#2355) (@penelopeysm)
  • Remove redundant code in hmc.jl (#2357) (@sunxd3)
  • More autoformatting (#2359) (@mhauru)
  • Update to tilde overloads in mh.jl (#2360) (@torfjelde)

Closed issues:

  • Safety for poisson random calls (#2301)
  • MLE estimation fails with error (#2342)
  • Regenerate API docs (#2344)

v0.34.1

04 Sep 14:55
78d110a
Compare
Choose a tag to compare

Turing v0.34.1

Diff since v0.34.0

Merged pull requests:

Closed issues:

  • Can DifferentiationInterface be useful for Turing? (#2187)
  • Add an option to the sample function to force using SimpleVarInfo. (#2213)
  • Add Tapir to Turing's AD test suite (#2247)
  • Ensure that strictly positive distribution parameter is > 0 after exp() transformation (#2310)

v0.34.0

30 Aug 19:38
a26ce11
Compare
Choose a tag to compare

Turing v0.34.0

Diff since v0.33.3

Merged pull requests:

Closed issues:

  • Tests to check that the correct AD method is actually used (#2235)
  • Enable Aqua.test_ambiguities (#2261)
  • Mode estimation's support of Pathfinder integration (#2268)
  • Multithread tests fail on master (#2302)
  • Julia 1.7 tests are failing (#2305)
  • Support potential type argument in rand for eltype of Sampleable (#2306)
  • Dead code in mcmc/hmc.jl? (#2311)

v0.33.3

31 Jul 18:50
4766fdd
Compare
Choose a tag to compare

Turing v0.33.3

Diff since v0.33.2

Merged pull requests:

Closed issues:

  • Attempt fixing bnn tests in Ezyme PR (#2277)
  • Allow for a named tuple for initial_params (#2286)
  • JuliaFormatter GHA workflow fails on public forks due to insufficient permissions (#2293)
  • Turing fails to precompile due to deprecated method dispatches with v1.10 (#2296)