@@ -34,8 +34,7 @@ function Optim.optimize(
3434 options:: Optim.Options = Optim. Options ();
3535 kwargs... ,
3636)
37- vi = DynamicPPL. setaccs!! (VarInfo (model), (DynamicPPL. LogLikelihoodAccumulator (),))
38- f = Optimisation. OptimLogDensity (model, vi)
37+ f = Optimisation. OptimLogDensity (model, DynamicPPL. getloglikelihood)
3938 init_vals = DynamicPPL. getparams (f. ldf)
4039 optimizer = Optim. LBFGS ()
4140 return _mle_optimize (model, init_vals, optimizer, options; kwargs... )
@@ -57,8 +56,7 @@ function Optim.optimize(
5756 options:: Optim.Options = Optim. Options ();
5857 kwargs... ,
5958)
60- vi = DynamicPPL. setaccs!! (VarInfo (model), (DynamicPPL. LogLikelihoodAccumulator (),))
61- f = Optimisation. OptimLogDensity (model, vi)
59+ f = Optimisation. OptimLogDensity (model, DynamicPPL. getloglikelihood)
6260 init_vals = DynamicPPL. getparams (f. ldf)
6361 return _mle_optimize (model, init_vals, optimizer, options; kwargs... )
6462end
@@ -74,8 +72,7 @@ function Optim.optimize(
7472end
7573
7674function _mle_optimize (model:: DynamicPPL.Model , args... ; kwargs... )
77- vi = DynamicPPL. setaccs!! (VarInfo (model), (DynamicPPL. LogLikelihoodAccumulator (),))
78- f = Optimisation. OptimLogDensity (model, vi)
75+ f = Optimisation. OptimLogDensity (model, DynamicPPL. getloglikelihood)
7976 return _optimize (f, args... ; kwargs... )
8077end
8178
@@ -105,8 +102,7 @@ function Optim.optimize(
105102 options:: Optim.Options = Optim. Options ();
106103 kwargs... ,
107104)
108- vi = DynamicPPL. setaccs!! (VarInfo (model), (LogPriorWithoutJacobianAccumulator (), DynamicPPL. LogLikelihoodAccumulator (),))
109- f = Optimisation. OptimLogDensity (model, vi)
105+ f = Optimisation. OptimLogDensity (model, Optimisation. getlogjoint_without_jacobian)
110106 init_vals = DynamicPPL. getparams (f. ldf)
111107 optimizer = Optim. LBFGS ()
112108 return _map_optimize (model, init_vals, optimizer, options; kwargs... )
@@ -128,8 +124,7 @@ function Optim.optimize(
128124 options:: Optim.Options = Optim. Options ();
129125 kwargs... ,
130126)
131- vi = DynamicPPL. setaccs!! (VarInfo (model), (LogPriorWithoutJacobianAccumulator (), DynamicPPL. LogLikelihoodAccumulator (),))
132- f = Optimisation. OptimLogDensity (model, vi)
127+ f = Optimisation. OptimLogDensity (model, Optimisation. getlogjoint_without_jacobian)
133128 init_vals = DynamicPPL. getparams (f. ldf)
134129 return _map_optimize (model, init_vals, optimizer, options; kwargs... )
135130end
@@ -145,8 +140,7 @@ function Optim.optimize(
145140end
146141
147142function _map_optimize (model:: DynamicPPL.Model , args... ; kwargs... )
148- vi = DynamicPPL. setaccs!! (VarInfo (model), (LogPriorWithoutJacobianAccumulator (), DynamicPPL. LogLikelihoodAccumulator (),))
149- f = Optimisation. OptimLogDensity (model, vi)
143+ f = Optimisation. OptimLogDensity (model, Optimisation. getlogjoint_without_jacobian)
150144 return _optimize (f, args... ; kwargs... )
151145end
152146
@@ -169,7 +163,9 @@ function _optimize(
169163 # whether initialisation is really necessary at all
170164 vi = DynamicPPL. unflatten (f. ldf. varinfo, init_vals)
171165 vi = DynamicPPL. link (vi, f. ldf. model)
172- f = Optimisation. OptimLogDensity (f. ldf. model, vi; adtype= f. ldf. adtype)
166+ f = Optimisation. OptimLogDensity (
167+ f. ldf. model, f. ldf. getlogdensity, vi; adtype= f. ldf. adtype
168+ )
173169 init_vals = DynamicPPL. getparams (f. ldf)
174170
175171 # Optimize!
@@ -186,7 +182,9 @@ function _optimize(
186182 # Get the optimum in unconstrained space. `getparams` does the invlinking.
187183 vi = f. ldf. varinfo
188184 vi_optimum = DynamicPPL. unflatten (vi, M. minimizer)
189- logdensity_optimum = Optimisation. OptimLogDensity (f. ldf. model, vi_optimum; adtype= f. ldf. adtype)
185+ logdensity_optimum = Optimisation. OptimLogDensity (
186+ f. ldf. model, f. ldf. getlogdensity, vi_optimum; adtype= f. ldf. adtype
187+ )
190188 vns_vals_iter = Turing. Inference. getparams (f. ldf. model, vi_optimum)
191189 varnames = map (Symbol ∘ first, vns_vals_iter)
192190 vals = map (last, vns_vals_iter)
0 commit comments