Skip to content

Releases: TuringLang/DynamicPPL.jl

v0.34.2

27 Jan 16:26
29a6c7e
Compare
Choose a tag to compare

DynamicPPL v0.34.2

Diff since v0.34.1

  • Fixed bugs in ValuesAsInModelContext as well as DebugContext where underlying PrefixContexts were not being applied. From a user-facing perspective, this means that for models which use manually prefixed submodels, e.g.
using DynamicPPL, Distributions

@model inner() = x ~ Normal()

@model function outer()
  x1 ~ to_submodel(prefix(inner(), :a), false)
  x2 ~ to_submodel(prefix(inner(), :b), false)
end

will: (1) no longer error when sampling due to check_model_and_trace; and (2) contain both submodel's variables in the resulting chain (the behaviour before this patch was that the second x would override the first x).

  • More broadly, implemented a general prefix(ctx::AbstractContext, ::VarName) which traverses the context tree in ctx to apply all necessary prefixes. This was a necessary step in fixing the above issues, but it also means that prefix is now capable of handling context trees with e.g. multiple prefixes at different levels of nesting.

Merged pull requests:

v0.34.1

22 Jan 14:25
727da63
Compare
Choose a tag to compare

DynamicPPL v0.34.1

Diff since v0.34.0

Fix an issue that prevented merging two VarInfos if they had different dimensions for a variable.

Upper bound the compat version of KernelAbstractions to work around an issue in determining the right VarInfo type to use.

v0.34.0

16 Jan 16:07
938a69d
Compare
Choose a tag to compare

DynamicPPL v0.34.0

Diff since v0.33.1

Breaking changes

  • rng argument removed from values_as_in_model, and varinfo made non-optional. This means that the only signatures allowed are

    values_as_in_model(::Model, ::Bool, ::AbstractVarInfo)
    values_as_in_model(::Model, ::Bool, ::AbstractVarInfo, ::AbstractContext)
    

If you aren't using this function (it's probably only used in Turing.jl) then this won't affect you.

v0.33.1

10 Jan 17:13
e673b69
Compare
Choose a tag to compare

DynamicPPL v0.33.1

Diff since v0.33.0

  • Reworked internals of condition and decondition. There are no changes to the public-facing API, but internally you can no longer use condition and decondition on an AbstractContext, you can only use it on a DynamicPPL.Model. If you want to modify a context, use ConditionContext and decondition_context.

v0.33.0

10 Jan 16:31
003ff2f
Compare
Choose a tag to compare

DynamicPPL v0.33.0

Diff since v0.32.2

Breaking changes

  • values_as_in_model() now requires an extra boolean parameter, specifying whether variables on the lhs of := statements are to be included in the resulting OrderedDict of values. The type signature is now values_as_in_model([rng,] model, include_colon_eq::Bool [, varinfo, context])

Other changes

  • Moved the implementation of predict from Turing.jl to DynamicPPL.jl; the user-facing behaviour is otherwise the same
  • Improved error message when a user tries to initialise a model with parameters that don't correspond strictly to the underlying VarInfo used

Merged pull requests:

Closed issues:

  • Taking stochastic control flow a bit more seriously (#25)
  • Adopt DensityInterface (#340)
  • Remove NamedDist in favour of VarName interpolation (#400)
  • Simplify assume/observe design (#402)
  • Supporting mutating ADs in models that fill arrays of parameters (#412)
  • Name clash caused by submodels is hard to debug (#427)
  • Decouple from Distributions.jl (#523)
  • Move TestUtils to an extension (#550)
  • Issue with ReverseDiff and undef on Julia v1.7 (#612)
  • Transfer Turing.Inference.predict to DynamicPPL. (#647)
  • Distributions with latent variables (#689)
  • Chain returned by predict will contain variables used in := statements (#765)
  • Remove unneeded doctest filters and fix tests (#768)
  • Do from_internal_transform() etc. require vi and vn as arguments? (#773)

v0.32.2

18 Dec 02:02
d0cfaaf
Compare
Choose a tag to compare

DynamicPPL v0.32.2

Diff since v0.32.1

Merged pull requests:

v0.32.1

17 Dec 13:05
32a5d77
Compare
Choose a tag to compare

DynamicPPL v0.32.1

Diff since v0.32.0

Merged pull requests:

  • Make CI + tests more efficient (#749) (@penelopeysm)
  • Remove duplicated tests (#753) (@penelopeysm)
  • CompatHelper: add new compat entry for OrderedCollections at version 1 for package test, (keep existing compat) (#754) (@github-actions[bot])

Closed issues:

  • x86 2threads ubuntu CI OOM failure (#725)

v0.32.0

13 Dec 03:05
5c8fc59
Compare
Choose a tag to compare

DynamicPPL v0.32.0

Diff since v0.31.5

Merged pull requests:

  • Remove Turing integration tests (#733) (@penelopeysm)
  • CompatHelper: add new compat entry for JET at version 0.9 for package test, (keep existing compat) (#746) (@github-actions[bot])

Closed issues:

  • Turing integration tests should be moved to (or included in) Turing repo (#703)
  • New minor versions of DPPL can't be tested (#740)

v0.31.5

10 Dec 10:04
9d52b28
Compare
Choose a tag to compare

DynamicPPL v0.31.5

Diff since v0.31.4

Merged pull requests:

  • Using JET.jl to determine if typed varinfo is okay (#728) (@torfjelde)
  • CompatHelper: add new compat entry for DifferentiationInterface at version 0.6 for package test, (keep existing compat) (#742) (@github-actions[bot])

v0.31.4

08 Dec 18:12
5316700
Compare
Choose a tag to compare

DynamicPPL v0.31.4

Diff since v0.31.3

Merged pull requests: