You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* DynamicPPL 0.36
* Fix prefixing test and docs
* Fix deprecation warning for VarName(::Symbol)
* Allow GibbsContext to wrap PrefixContext (but only PrefixContext)
* Bump minor version instead
* Enable non-identity VarNames in Gibbs
Closes#2403
* Add Gibbs tests for non-identity VarNames and submodels
* Update src/mcmc/gibbs.jl
Co-authored-by: Markus Hauru <markus@mhauru.org>
* Add changelog note about Gibbs
* Add more non-identity varname tests
---------
Co-authored-by: Markus Hauru <markus@mhauru.org>
Copy file name to clipboardExpand all lines: HISTORY.md
+40Lines changed: 40 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,43 @@
1
+
# Release 0.38.0
2
+
3
+
## DynamicPPL version
4
+
5
+
DynamicPPL compatibility has been bumped to 0.36.
6
+
This brings with it a number of changes: the ones most likely to affect you are submodel prefixing and conditioning.
7
+
Variables in submodels are now represented correctly with field accessors.
8
+
For example:
9
+
10
+
```julia
11
+
using Turing
12
+
@modelinner() = x ~Normal()
13
+
@modelouter() = a ~to_submodel(inner())
14
+
```
15
+
16
+
`keys(VarInfo(outer()))` now returns `[@varname(a.x)]` instead of `[@varname(var"a.x")]`
17
+
18
+
Furthermore, you can now either condition on the outer model like `outer() | (@varname(a.x) => 1.0)`, or the inner model like `inner() | (@varname(x) => 1.0)`.
19
+
If you use the conditioned inner model as a submodel, the conditioning will still apply correctly.
20
+
21
+
Please see [the DynamicPPL release notes](https://github.com/TuringLang/DynamicPPL.jl/releases/tag/v0.36.0) for fuller details.
22
+
23
+
## Gibbs sampler
24
+
25
+
Turing's Gibbs sampler now allows for more complex `VarName`s, such as `x[1]` or `x.a`, to be used.
Performance for the cases which used to previously work (i.e. `VarName`s like `x` which only consist of a single symbol) is unaffected, and `VarNames` with only field accessors (e.g. `x.a`) should be equally fast.
38
+
It is possible that `VarNames` with indexing (e.g. `x[1]`) may be slower (although this is still an improvement over not working at all!).
39
+
If you find any cases where you think the performance is worse than it should be, please do file an issue.
40
+
1
41
# Release 0.37.1
2
42
3
43
`maximum_a_posteriori` and `maximum_likelihood` now perform sanity checks on the model before running the optimisation.
Copy file name to clipboardExpand all lines: docs/src/api.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ even though [`Prior()`](@ref) is actually defined in the `Turing.Inference` modu
40
40
|`@model`|[`DynamicPPL.@model`](@extref)| Define a probabilistic model |
41
41
|`@varname`|[`AbstractPPL.@varname`](@extref)| Generate a `VarName` from a Julia expression |
42
42
|`to_submodel`|[`DynamicPPL.to_submodel`](@extref)| Define a submodel |
43
-
|`prefix`|[`DynamicPPL.prefix`](@extref)| Prefix all variable names in a model with a given symbol |
43
+
|`prefix`|[`DynamicPPL.prefix`](@extref)| Prefix all variable names in a model with a given VarName|
44
44
|`LogDensityFunction`|[`DynamicPPL.LogDensityFunction`](@extref)| A struct containing all information about how to evaluate a model. Mostly for advanced users |
0 commit comments