@@ -146,7 +146,7 @@ function __solve(prob::OptimizationProblem, opt::Optim.AbstractOptimizer,
146
146
end
147
147
cur, state = iterate (data, state)
148
148
cb_call
149
- end
149
+ end
150
150
151
151
if ! (isnothing (maxiters)) && maxiters <= 0.0
152
152
error (" The number of maxiters has to be a non-negative and non-zero number." )
@@ -203,13 +203,13 @@ function __solve(prob::OptimizationProblem, opt::Union{Optim.Fminbox,Optim.SAMIN
203
203
204
204
cur, state = iterate (data)
205
205
206
- function _cb (trace)
207
- cb_call = ! (opt isa Optim. SAMIN) && opt. method == NelderMead () ? cb (decompose_trace (trace). metadata[" centroid" ],x... ) : cb (decompose_trace (trace). metadata[" x" ],x... )
208
- if ! (typeof (cb_call) <: Bool )
206
+ function _cb (trace)
207
+ cb_call = ! (opt isa Optim. SAMIN) && opt. method == NelderMead () ? cb (decompose_trace (trace). metadata[" centroid" ],x... ) : cb (decompose_trace (trace). metadata[" x" ],x... )
208
+ if ! (typeof (cb_call) <: Bool )
209
209
error (" The callback should return a boolean `halt` for whether to stop the optimization process." )
210
210
end
211
211
cur, state = iterate (data, state)
212
- cb_call
212
+ cb_call
213
213
end
214
214
215
215
if ! (isnothing (maxiters)) && maxiters <= 0.0
@@ -233,7 +233,7 @@ function __solve(prob::OptimizationProblem, opt::Union{Optim.Fminbox,Optim.SAMIN
233
233
234
234
return _loss (θ)
235
235
end
236
- optim_f = OnceDifferentiable (_loss, f. grad, fg!, prob. u0)
236
+ optim_f = OnceDifferentiable (_loss, (G, θ) -> f. grad (G, θ, cur ... ) , fg!, prob. u0)
237
237
238
238
original = Optim. optimize (optim_f, prob. lb, prob. ub, prob. u0, opt,
239
239
! (isnothing (maxiters)) ? Optim. Options (;
0 commit comments