Skip to content

Commit a022dc6

Browse files
torfjeldeyebai
andauthored
New Gibbs sampler using condition (#2099)
* initial work on the new gibbs sampler * added tests for the new Gibbs sampler * added tests for new Gibbs * new Gibbs is now sampling (correctly) sequentially * let's not overload merge just yet * export GibbsV2 + added more samplers to the tests * added TODO comment * removed lots of varinfo related merging functionality that is now available in DynamicPPL * shifting some code around * removed redundant constructor for GibbsV2 * added GibbsContext which is similar to FixContext but also computes the log-prob of the fixed variables * adopted the rerun mechanism in Gibbs for GibbsV2, thus fixing the issues with some of the tests for GibbsV2 * broken tests are no longer broken * fix issues with dot_tilde_* impls for GibbsContext * fix for dot_tilde_assume when using GibbsContext * fixed re-running of models for Gibbs sampling properly this time * added new gibbs to tests * added some further comments on why we need `GibbsContext` * went back to using `DynamicPPL.condition` rather than using custom `GibbsContext` while we wait for TuringLang/DynamicPPL.jl#563 to be merged * add concrete comment about reverting changes for `gibbs_condition` * Update test/mcmc/gibbs_new.jl Co-authored-by: Hong Ge <[email protected]> * fixed recursive definition of `condition` varinfos * use `fix` instead of `condition` * Revert "use `fix` instead of `condition`" This reverts commit f87e2d1. * rmeoved unnused symbol * Revert "went back to using `DynamicPPL.condition` rather than using custom" This reverts commit 53bd707. * bump compat entry of DynamicPPL so we can overload acclogp! * update assume for SMC samplers to make use of new `acclogp!` * added proper impl of acclogp!! for SMC samplers + made accessing task local varinfo and rng a bit nicer * added experimental module and moved gibbs to it * fixed now-inccorect references in new gibbs file * updated gibbs tests * moved experimental gibbs tests * updated tests to include experiemntal tests * removed refrences to previews tests of experimental Gibbs sampler * removed solved TODO * added a comment on `reconstruct_getvalue` usage * bump patch version * added comments on future work * Update test/experimental/gibbs.jl * fixed bug where particle samplers didn't properly account for weightings of logpdf, etc. * relax atol for a numerical test with Gibbs a bit * fixed bug with `AbstractDict` constructor for experimental `Gibbs` * aaaalways link the varinfo in the new Gibbs sampler, just to be sure * add test to cover recent improvement to `DynamicPPL.subset` ref: TuringLang/DynamicPPL.jl#587 * bump compat entry for DynamicPPL * added some docstrings * fixed test * fixed import * another attempt at fixing tests * another attempt at fixing tests * attempt at fix tests * forgot something in previos commit * cleaned up the experimental Gibbs sampler a bit * removed accidentaly psuedocode inclusion * Apply suggestions from code review * relaxed olerance in one MH test a bit * bump patch version --------- Co-authored-by: Hong Ge <[email protected]>
1 parent fa6f30a commit a022dc6

File tree

10 files changed

+774
-19
lines changed

10 files changed

+774
-19
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "Turing"
22
uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0"
3-
version = "0.30.8"
3+
version = "0.30.9"
44

55
[deps]
66
ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"
@@ -58,7 +58,7 @@ Distributions = "0.23.3, 0.24, 0.25"
5858
DistributionsAD = "0.6"
5959
DocStringExtensions = "0.8, 0.9"
6060
DynamicHMC = "3.4"
61-
DynamicPPL = "0.24.7"
61+
DynamicPPL = "0.24.10"
6262
EllipticalSliceSampling = "0.5, 1, 2"
6363
ForwardDiff = "0.10.3"
6464
Libtask = "0.7, 0.8"

src/Turing.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ using .Variational
4848
include("optimisation/Optimisation.jl")
4949
using .Optimisation
5050

51+
include("experimental/Experimental.jl")
5152
include("deprecated.jl") # to be removed in the next minor version release
5253

5354
###########

src/experimental/Experimental.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module Experimental
2+
3+
using Random: Random
4+
using AbstractMCMC: AbstractMCMC
5+
using DynamicPPL: DynamicPPL, VarName
6+
using Setfield: Setfield
7+
8+
using DocStringExtensions: TYPEDFIELDS
9+
using Distributions
10+
11+
using ..Turing: Turing
12+
using ..Turing.Inference: gibbs_rerun, InferenceAlgorithm
13+
14+
include("gibbs.jl")
15+
16+
end

0 commit comments

Comments
 (0)