@@ -5,21 +5,30 @@ Algorithm for sampling from the prior.
55"""
66struct Prior <: AbstractSampler end
77
8+ function AbstractMCMC. step (
9+ rng:: Random.AbstractRNG , model:: DynamicPPL.Model , sampler:: Prior ; kwargs...
10+ )
11+ accs = DynamicPPL. AccumulatorTuple ((
12+ DynamicPPL. ValuesAsInModelAccumulator (true ),
13+ DynamicPPL. LogPriorAccumulator (),
14+ DynamicPPL. LogLikelihoodAccumulator (),
15+ ))
16+ sampling_model = DynamicPPL. setleafcontext (
17+ model, DynamicPPL. InitContext (rng, DynamicPPL. InitFromPrior ())
18+ )
19+ vi = DynamicPPL. OnlyAccsVarInfo (accs)
20+ _, vi = DynamicPPL. evaluate!! (sampling_model, vi)
21+ return Transition (sampling_model, vi, nothing ; reevaluate= false ), (sampling_model, vi)
22+ end
23+
824function AbstractMCMC. step (
925 rng:: Random.AbstractRNG ,
1026 model:: DynamicPPL.Model ,
1127 sampler:: Prior ,
12- state= nothing ;
28+ state:: Tuple{DynamicPPL.Model,DynamicPPL.Experimental.OnlyAccsVarInfo} ;
1329 kwargs... ,
1430)
15- vi = DynamicPPL. setaccs!! (
16- DynamicPPL. VarInfo (),
17- (
18- DynamicPPL. ValuesAsInModelAccumulator (true ),
19- DynamicPPL. LogPriorAccumulator (),
20- DynamicPPL. LogLikelihoodAccumulator (),
21- ),
22- )
23- _, vi = DynamicPPL. init!! (model, vi, DynamicPPL. InitFromPrior ())
24- return Transition (model, vi, nothing ; reevaluate= false ), nothing
31+ model, vi = state
32+ _, vi = DynamicPPL. evaluate!! (model, vi)
33+ return Transition (model, vi, nothing ; reevaluate= false ), (model, vi)
2534end
0 commit comments