Skip to content

Releases: TuringLang/Turing.jl

PMMH Bugfix

23 Jan 22:14
ddec408
Compare
Choose a tag to compare

This release fixes the PMMH and PIMH samplers, which needed adjustment after the recent compiler refactor (see #613 for more details). Additionally, much of the internal organization has changed in preparation of future improved type stability while sampling.

Fixed DynamicHMC support and related issues.

19 Jan 09:29
079dcaa
Compare
Choose a tag to compare
v0.6.5

Updated doc for DynamicHMC.

Compiler Refactoring

29 Dec 18:41
bf0593a
Compare
Choose a tag to compare

Much of the back end of how Turing interprets models has changed with the merge of #613. See that issue for more detail.

Summary of changes

  • Models can now have default values in arguments (#544 (comment)). When an argument is not provided, it is treated as a parameter instead of an observation and is instantiated to its default value. The snippet below shows how x will be instantiated with default_x when no value is provided.
@model model_function(x = default_x, y)
	...	
end
  • Numerous improvements to allow greater internal stability and better integration with Julia's compiler.
  • Turing now places nice with other packages! The @model macro no longer needs to be avoided when used inside modules (#592), or inside a Literate.jl or Weave.jl file (#517), among other things.

Improving AD type stability.

20 Dec 21:46
bf3494a
Compare
Choose a tag to compare

This release improves the type stability of automatic differentiation. For more details, see #626. Speeds should be slightly increased across all samplers, though Gibbs sampling experienced a fairly significant performance boost (source).

You can now specify different autodiff methods for each variable. The snippet below shows using ForwardDiff to sample the mean (m) parameter, and using the Flux-based autodiff for the variance (s) parameter:

using Turing

# Define a simple Normal model with unknown mean and variance.
@model gdemo(x, y) = begin
    s ~ InverseGamma(2, 3)
    m ~ Normal(0, sqrt(s))
    x ~ Normal(m, sqrt(s))
    y ~ Normal(m, sqrt(s))
    return s, m
end
c = sample(gdemo(1.5, 2), Gibbs(1000, 
    HMC{Turing.ForwardDiffAD{1}}(2, 0.1, 5, :m), 
    HMC{Turing.FluxTrackerAD}(2, 0.1, 5, :s)))

Fixed some AD issues.

14 Dec 08:35
Compare
Choose a tag to compare
Fix and add more AD tests (#625)

* add binomlogpdf ForwardDiff.Dual workaround

* fix broken AD tests and add some more

* remove FDM from REQUIRE

Make default adaptation numerical stable

09 Dec 14:49
Compare
Choose a tag to compare
Improve numerical stability (#619)

* remove unnecessary lower bound check

* make default precond to diagonal

* add numerical stable Binomial with logit

* fix DA complete adapt

* add test of BinomialLogit

* turn off pre-cond adapt by default

Changed AD default backend to ForwardDiff.

09 Dec 03:16
Compare
Choose a tag to compare
Improve numerical stability (#619)

* remove unnecessary lower bound check

* make default precond to diagonal

* add numerical stable Binomial with logit

* fix DA complete adapt

* add test of BinomialLogit

* turn off pre-cond adapt by default

Fixed some adaption issues in HMC/NUTS.

28 Nov 14:11
1afa020
Compare
Choose a tag to compare
Merge pull request #610 from TuringLang/ChrisRackauckas-patch-1

Update REQUIRE

Fixed an issue with broadcasting in VarInfo.

02 Oct 09:37
Compare
Choose a tag to compare
v0.5.1

Merge branch 'master' of https://github.com/TuringLang/Turing.jl

v0.5.0

14 Sep 19:40
ce780b8
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release
Update REQUIRE