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
author = {Fjelde, Tor Erlend and Xu, Kai and Widmann, David and Tarek, Mohamed and Pfiffer, Cameron and Trapp, Martin and Axen, Seth D. and Sun, Xianda and Hauru, Markus and Yong, Penelope and Tebbutt, Will and Ghahramani, Zoubin and Ge, Hong},
3
+
title = {Turing.jl: a general-purpose probabilistic programming language},
4
+
year = {2025},
5
+
publisher = {Association for Computing Machinery},
6
+
address = {New York, NY, USA},
7
+
url = {https://doi.org/10.1145/3711897},
8
+
doi = {10.1145/3711897},
9
+
note = {Just Accepted},
10
+
journal = {ACM Trans. Probab. Mach. Learn.},
11
+
month = feb,
12
+
}
13
+
14
+
@InProceedings{pmlr-v84-ge18b,
15
+
title = {Turing: A Language for Flexible Probabilistic Inference},
16
+
author = {Ge, Hong and Xu, Kai and Ghahramani, Zoubin},
17
+
booktitle = {Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics},
18
+
pages = {1682--1690},
19
+
year = {2018},
20
+
editor = {Storkey, Amos and Perez-Cruz, Fernando},
21
+
volume = {84},
22
+
series = {Proceedings of Machine Learning Research},
23
+
month = {09--11 Apr},
24
+
publisher = {PMLR},
25
+
pdf = {http://proceedings.mlr.press/v84/ge18b/ge18b.pdf},
Copy file name to clipboardExpand all lines: HISTORY.md
+91-17Lines changed: 91 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,78 @@
1
-
# Release 0.38.0
1
+
# 0.39.5
2
+
3
+
Fixed a bug where sampling with an `externalsampler` would not set the log probability density inside the resulting chain.
4
+
Note that there are still potentially bugs with the log-Jacobian term not being correctly included.
5
+
A fix is being worked on.
6
+
7
+
# 0.39.4
8
+
9
+
Bumped compatibility of AbstractPPL to include 0.12.
10
+
11
+
# 0.39.3
12
+
13
+
Improved the performance of `Turing.Inference.getparams` when called with an untyped VarInfo as the second argument, by first converting to a typed VarInfo.
14
+
This makes, for example, the post-sampling Chains construction for `Prior()` run much faster.
15
+
16
+
# 0.39.2
17
+
18
+
Fixed a bug in the support of `OrderedLogistic` (by changing the minimum from 0 to 1).
19
+
20
+
# 0.39.1
21
+
22
+
No changes from 0.39.0 — this patch is released just to re-trigger a Documenter.jl run.
23
+
24
+
# 0.39.0
25
+
26
+
## Update to the AdvancedVI interface
27
+
28
+
Turing's variational inference interface was updated to match version 0.4 version of AdvancedVI.jl.
29
+
30
+
AdvancedVI v0.4 introduces various new features:
31
+
32
+
- location-scale families with dense scale matrices,
33
+
- parameter-free stochastic optimization algorithms like `DoG` and `DoWG`,
34
+
- proximal operators for stable optimization,
35
+
- the sticking-the-landing control variate for faster convergence, and
36
+
- the score gradient estimator for non-differentiable targets.
37
+
38
+
Please see the [Turing API documentation](https://turinglang.org/Turing.jl/stable/api/#Variational-inference), and [AdvancedVI's documentation](https://turinglang.org/AdvancedVI.jl/stable/), for more details.
39
+
40
+
## Removal of Turing.Essential
41
+
42
+
The Turing.Essential module has been removed.
43
+
Anything exported from there can be imported from either `Turing` or `DynamicPPL`.
44
+
45
+
## `@addlogprob!`
46
+
47
+
The `@addlogprob!` macro is now exported from Turing, making it officially part of the public interface.
48
+
49
+
# 0.38.6
50
+
51
+
Added compatibility with AdvancedHMC 0.8.
52
+
53
+
# 0.38.5
54
+
55
+
Added compatibility with ForwardDiff v1.
56
+
57
+
# 0.38.4
58
+
59
+
The minimum Julia version was increased to 1.10.2 (from 1.10.0).
60
+
On versions before 1.10.2, `sample()` took an excessively long time to run (probably due to compilation).
61
+
62
+
# 0.38.3
63
+
64
+
`getparams(::Model, ::AbstractVarInfo)` now returns an empty `Float64[]` if the VarInfo contains no parameters.
65
+
66
+
# 0.38.2
67
+
68
+
Bump compat for `MCMCChains` to `7`.
69
+
By default, summary statistics and quantiles for chains are no longer printed; to access these you should use `describe(chain)`.
70
+
71
+
# 0.38.1
72
+
73
+
The method `Bijectors.bijector(::DynamicPPL.Model)` was moved to DynamicPPL.jl.
74
+
75
+
# 0.38.0
2
76
3
77
## DynamicPPL version
4
78
@@ -38,12 +112,12 @@ Performance for the cases which used to previously work (i.e. `VarName`s like `x
38
112
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
113
If you find any cases where you think the performance is worse than it should be, please do file an issue.
40
114
41
-
# Release 0.37.1
115
+
# 0.37.1
42
116
43
117
`maximum_a_posteriori` and `maximum_likelihood` now perform sanity checks on the model before running the optimisation.
44
118
To disable this, set the keyword argument `check_model=false`.
45
119
46
-
# Release 0.37.0
120
+
# 0.37.0
47
121
48
122
## Breaking changes
49
123
@@ -84,7 +158,7 @@ On the other hand, we have added a few more exports:
84
158
-`DynamicPPL.returned` and `DynamicPPL.prefix` are exported (for use with submodels).
85
159
-`LinearAlgebra.I` is exported for convenience.
86
160
87
-
# Release 0.36.0
161
+
# 0.36.0
88
162
89
163
## Breaking changes
90
164
@@ -98,7 +172,7 @@ The old Gibbs constructor relied on being called with several subsamplers, and e
98
172
99
173
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())`.
100
174
101
-
# Release 0.35.0
175
+
# 0.35.0
102
176
103
177
## Breaking changes
104
178
@@ -109,7 +183,7 @@ You can use Mooncake.jl by passing `adbackend=AutoMooncake(; config=nothing)` to
109
183
110
184
Support for Tracker.jl as an AD backend has been removed.
111
185
112
-
# Release 0.33.0
186
+
# 0.33.0
113
187
114
188
## Breaking changes
115
189
@@ -126,21 +200,21 @@ The same functionality is now offered by the new exported functions
126
200
-`maximum_likelihood`
127
201
-`maximum_a_posteriori`
128
202
129
-
# Release 0.30.5
203
+
# 0.30.5
130
204
131
205
-`essential/ad.jl` is removed, `ForwardDiff` and `ReverseDiff` integrations via `LogDensityProblemsAD` are moved to `DynamicPPL` and live in corresponding package extensions.
132
206
-`LogDensityProblemsAD.ADgradient(ℓ::DynamicPPL.LogDensityFunction)` (i.e. the single argument method) is moved to `Inference` module. It will create `ADgradient` using the `adtype` information stored in `context` field of `ℓ`.
133
207
-`getADbackend` function is renamed to `getADType`, the interface is preserved, but packages that previously used `getADbackend` should be updated to use `getADType`.
134
208
-`TuringTag` for ForwardDiff is also removed, now `DynamicPPLTag` is defined in `DynamicPPL` package and should serve the same [purpose](https://www.stochasticlifestyle.com/improved-forwarddiff-jl-stacktraces-with-package-tags/).
135
209
136
-
# Release 0.30.0
210
+
# 0.30.0
137
211
138
212
-[`ADTypes.jl`](https://github.com/SciML/ADTypes.jl) replaced Turing's global AD backend. Users should now specify the desired `ADType` directly in sampler constructors, e.g., `HMC(0.1, 10; adtype=AutoForwardDiff(; chunksize))`, or `HMC(0.1, 10; adtype=AutoReverseDiff(false))` (`false` indicates not to use compiled tape).
139
213
- Interface functions such as `ADBackend`, `setadbackend`, `setadsafe`, `setchunksize`, and `setrdcache` are deprecated and will be removed in a future release.
140
214
- Removed the outdated `verifygrad` function.
141
215
- Updated to a newer version of `LogDensityProblemsAD` (v1.7).
142
216
143
-
# Release 0.12.0
217
+
# 0.12.0
144
218
145
219
- The interface for defining new distributions with constrained support and making them compatible with `Turing` has changed. To make a custom distribution type `CustomDistribution` compatible with `Turing`, the user needs to define the method `bijector(d::CustomDistribution)` that returns an instance of type `Bijector` implementing the `Bijectors.Bijector` API.
146
220
-`~` is now thread-safe when used for observations, but not assumptions (non-observed model parameters) yet.
@@ -153,7 +227,7 @@ The same functionality is now offered by the new exported functions
153
227
- The macros `@varinfo`, `@logpdf`, and `@sampler` are removed. Instead, one can access the internal variables `_varinfo`, `_model`, `_sampler`, and `_context` in the `@model` definition.
154
228
- Additional constructors for `SMC` and `PG` make it easier to choose the resampling method and threshold.
155
229
156
-
# Release 0.11.0
230
+
# 0.11.0
157
231
158
232
- Removed some extraneous imports and dependencies ([#1182](https://github.com/TuringLang/Turing.jl/pull/1182))
159
233
- Minor backend changes to `sample` and `psample`, which now use functions defined upstream in AbstractMCMC.jl ([#1187](https://github.com/TuringLang/Turing.jl/pull/1187))
@@ -165,11 +239,11 @@ The same functionality is now offered by the new exported functions
165
239
- Updates to allow AdvancedHMC 0.2.23 ([#1218](https://github.com/TuringLang/Turing.jl/pull/1218))
166
240
- Add more informative error messages for SMC ([#900](https://github.com/TuringLang/Turing.jl/pull/900))
167
241
168
-
# Release 0.10.1
242
+
# 0.10.1
169
243
170
244
- Fix bug where arrays with mixed integers, floats, and missing values were not being passed to the `MCMCChains.Chains` constructor properly [#1180](https://github.com/TuringLang/Turing.jl/pull/1180).
171
245
172
-
# Release 0.10.0
246
+
# 0.10.0
173
247
174
248
- Update elliptical slice sampling to use [EllipticalSliceSampling.jl](https://github.com/TuringLang/EllipticalSliceSampling.jl) on the backend. [#1145](https://github.com/TuringLang/Turing.jl/pull/1145). Nothing should change from a front-end perspective -- you can still call `sample(model, ESS(), 1000)`.
175
249
- Added default progress loggers in [#1149](https://github.com/TuringLang/Turing.jl/pull/1149).
@@ -180,7 +254,7 @@ The same functionality is now offered by the new exported functions
180
254
- Fix bug in VI where the bijectors where being inverted incorrectly [#1168](https://github.com/TuringLang/Turing.jl/pull/1168).
181
255
- The Gibbs sampler handles state better by passing `Transition` structs to the local samplers ([#1169](https://github.com/TuringLang/Turing.jl/pull/1169) and [#1166](https://github.com/TuringLang/Turing.jl/pull/1166)).
182
256
183
-
# Release 0.4.0-alpha
257
+
# 0.4.0-alpha
184
258
185
259
- Fix compatibility with Julia 0.6 [#341, #330, #293]
186
260
- Support of Stan interface [#343, #326]
@@ -193,7 +267,7 @@ The same functionality is now offered by the new exported functions
193
267
- Add type alias CSMC for PG [#333]
194
268
- Fix progress meter [#317]
195
269
196
-
# Release 0.3
270
+
# 0.3
197
271
198
272
- NUTS implementation #188
199
273
- HMC: Transforms of ϵ for each variable #67 (replace with introducing mass matrix)
@@ -205,21 +279,21 @@ The same functionality is now offered by the new exported functions
0 commit comments