@@ -34,8 +34,8 @@ function Optim.optimize(
34
34
options:: Optim.Options = Optim. Options ();
35
35
kwargs... ,
36
36
)
37
- ctx = Optimisation . OptimizationContext ( DynamicPPL. LikelihoodContext ( ))
38
- f = Optimisation. OptimLogDensity (model, ctx )
37
+ vi = DynamicPPL . setaccs!! ( VarInfo (model), ( DynamicPPL. LogLikelihoodAccumulator (), ))
38
+ f = Optimisation. OptimLogDensity (model, vi )
39
39
init_vals = DynamicPPL. getparams (f. ldf)
40
40
optimizer = Optim. LBFGS ()
41
41
return _mle_optimize (model, init_vals, optimizer, options; kwargs... )
@@ -57,8 +57,8 @@ function Optim.optimize(
57
57
options:: Optim.Options = Optim. Options ();
58
58
kwargs... ,
59
59
)
60
- ctx = Optimisation . OptimizationContext ( DynamicPPL. LikelihoodContext ( ))
61
- f = Optimisation. OptimLogDensity (model, ctx )
60
+ vi = DynamicPPL . setaccs!! ( VarInfo (model), ( DynamicPPL. LogLikelihoodAccumulator (), ))
61
+ f = Optimisation. OptimLogDensity (model, vi )
62
62
init_vals = DynamicPPL. getparams (f. ldf)
63
63
return _mle_optimize (model, init_vals, optimizer, options; kwargs... )
64
64
end
@@ -74,8 +74,9 @@ function Optim.optimize(
74
74
end
75
75
76
76
function _mle_optimize (model:: DynamicPPL.Model , args... ; kwargs... )
77
- ctx = Optimisation. OptimizationContext (DynamicPPL. LikelihoodContext ())
78
- return _optimize (Optimisation. OptimLogDensity (model, ctx), args... ; kwargs... )
77
+ vi = DynamicPPL. setaccs!! (VarInfo (model), (DynamicPPL. LogLikelihoodAccumulator (),))
78
+ f = Optimisation. OptimLogDensity (model, vi)
79
+ return _optimize (f, args... ; kwargs... )
79
80
end
80
81
81
82
"""
@@ -104,8 +105,8 @@ function Optim.optimize(
104
105
options:: Optim.Options = Optim. Options ();
105
106
kwargs... ,
106
107
)
107
- ctx = Optimisation . OptimizationContext ( DynamicPPL. DefaultContext ( ))
108
- f = Optimisation. OptimLogDensity (model, ctx )
108
+ vi = DynamicPPL . setaccs!! ( VarInfo (model), ( LogPriorWithoutJacobianAccumulator (), DynamicPPL. LogLikelihoodAccumulator (), ))
109
+ f = Optimisation. OptimLogDensity (model, vi )
109
110
init_vals = DynamicPPL. getparams (f. ldf)
110
111
optimizer = Optim. LBFGS ()
111
112
return _map_optimize (model, init_vals, optimizer, options; kwargs... )
@@ -127,8 +128,8 @@ function Optim.optimize(
127
128
options:: Optim.Options = Optim. Options ();
128
129
kwargs... ,
129
130
)
130
- ctx = Optimisation . OptimizationContext ( DynamicPPL. DefaultContext ( ))
131
- f = Optimisation. OptimLogDensity (model, ctx )
131
+ vi = DynamicPPL . setaccs!! ( VarInfo (model), ( LogPriorWithoutJacobianAccumulator (), DynamicPPL. LogLikelihoodAccumulator (), ))
132
+ f = Optimisation. OptimLogDensity (model, vi )
132
133
init_vals = DynamicPPL. getparams (f. ldf)
133
134
return _map_optimize (model, init_vals, optimizer, options; kwargs... )
134
135
end
@@ -144,9 +145,11 @@ function Optim.optimize(
144
145
end
145
146
146
147
function _map_optimize (model:: DynamicPPL.Model , args... ; kwargs... )
147
- ctx = Optimisation. OptimizationContext (DynamicPPL. DefaultContext ())
148
- return _optimize (Optimisation. OptimLogDensity (model, ctx), args... ; kwargs... )
148
+ vi = DynamicPPL. setaccs!! (VarInfo (model), (LogPriorWithoutJacobianAccumulator (), DynamicPPL. LogLikelihoodAccumulator (),))
149
+ f = Optimisation. OptimLogDensity (model, vi)
150
+ return _optimize (f, args... ; kwargs... )
149
151
end
152
+
150
153
"""
151
154
_optimize(f::OptimLogDensity, optimizer=Optim.LBFGS(), args...; kwargs...)
152
155
@@ -166,7 +169,7 @@ function _optimize(
166
169
# whether initialisation is really necessary at all
167
170
vi = DynamicPPL. unflatten (f. ldf. varinfo, init_vals)
168
171
vi = DynamicPPL. link (vi, f. ldf. model)
169
- f = Optimisation. OptimLogDensity (f. ldf. model, vi, f . ldf . context ; adtype= f. ldf. adtype)
172
+ f = Optimisation. OptimLogDensity (f. ldf. model, vi; adtype= f. ldf. adtype)
170
173
init_vals = DynamicPPL. getparams (f. ldf)
171
174
172
175
# Optimize!
@@ -183,9 +186,7 @@ function _optimize(
183
186
# Get the optimum in unconstrained space. `getparams` does the invlinking.
184
187
vi = f. ldf. varinfo
185
188
vi_optimum = DynamicPPL. unflatten (vi, M. minimizer)
186
- logdensity_optimum = Optimisation. OptimLogDensity (
187
- f. ldf. model, vi_optimum, f. ldf. context
188
- )
189
+ logdensity_optimum = Optimisation. OptimLogDensity (f. ldf. model, vi_optimum; adtype= f. ldf. adtype)
189
190
vns_vals_iter = Turing. Inference. getparams (f. ldf. model, vi_optimum)
190
191
varnames = map (Symbol ∘ first, vns_vals_iter)
191
192
vals = map (last, vns_vals_iter)
0 commit comments