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
Copy file name to clipboardExpand all lines: HISTORY.md
+11-2Lines changed: 11 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,9 @@
1
1
# DynamicPPL Changelog
2
2
3
+
## 0.37.1
4
+
5
+
Update DynamicPPLMooncakeExt to work with Mooncake 0.4.147.
6
+
3
7
## 0.37.0
4
8
5
9
DynamicPPL 0.37 comes with a substantial reworking of its internals.
@@ -25,9 +29,14 @@ Please see the API documentation for more details.
25
29
26
30
There is now also an `rng` keyword argument to help seed parameter generation.
27
31
28
-
Finally, instead of specifying `value_atol` and `grad_atol`, you can now specify `atol` and `rtol` which are used for both value and gradient.
32
+
Instead of specifying `value_atol` and `grad_atol`, you can now specify `atol` and `rtol` which are used for both value and gradient.
29
33
Their semantics are the same as in Julia's `isapprox`; two values are equal if they satisfy either `atol` or `rtol`.
30
34
35
+
Finally, the `ADResult` object returned by `run_ad` now has both `grad_time` and `primal_time` fields, which contain (respectively) the time it took to calculate the gradient of logp, and the time taken to calculate logp itself.
36
+
Times are reported in seconds.
37
+
Previously there was only a single `time_vs_primal` field which represented the ratio of these two.
38
+
You can of course access the same quantity by dividing `grad_time` by `primal_time`.
39
+
31
40
### `DynamicPPL.TestUtils.check_model`
32
41
33
42
You now need to explicitly pass a `VarInfo` argument to `check_model` and `check_model_and_trace`.
@@ -95,7 +104,7 @@ Because this is one of the more arcane features of DynamicPPL, some extra explan
95
104
For example, the particle Gibbs method has a _reference particle_, for which variables are never resampled.
96
105
However, if the reference particle is _forked_ (i.e., if the reference particle is selected by a resampling step multiple times and thereby copied), then the variables that have not yet been evaluated must be sampled anew to ensure that the new particle is independent of the reference particle.
97
106
98
-
Previousy, this was accomplished by setting the `del` flag in the `VarInfo` object for all variables with `order` greater or equal to than `num_produce`.
107
+
Previously, this was accomplished by setting the `del` flag in the `VarInfo` object for all variables with `order` greater or equal to than `num_produce`.
99
108
Note that setting the `del` flag does not itself trigger a new value to be sampled; rather, it indicates that a new value should be sampled _if the variable is encountered again_.
100
109
[This Turing.jl PR](https://github.com/TuringLang/Turing.jl/pull/2629) changes the implementation to set the `del` flag for _all_ variables in the `VarInfo`.
101
110
Since the `del` flag only makes a difference when encountering a variable, this approach is entirely equivalent as long as the same variable is not seen multiple times in the model.
0 commit comments