@@ -62,7 +62,7 @@ macro withprogress(progress, exprs...)
6262 end |> esc
6363 end
6464
65- function __solve (prob:: OptimizationProblem , opt, _data = DEFAULT_DATA;cb = (args... ) -> (false ), maxiters:: Number = 1000 , progress = true , save_best = true , kwargs... )
65+ function __solve (prob:: OptimizationProblem , opt, data = DEFAULT_DATA;cb = (args... ) -> (false ), maxiters:: Number = 1000 , progress = true , save_best = true , kwargs... )
6666 if maxiters <= 0.0
6767 error (" The number of maxiters has to be a non-negative and non-zero number." )
6868 else
@@ -74,14 +74,10 @@ function __solve(prob::OptimizationProblem, opt, _data = DEFAULT_DATA;cb = (args
7474 θ = copy (prob. u0)
7575 ps = Flux. params (θ)
7676
77- if _data == DEFAULT_DATA && maxiters == typemax (Int)
78- error (" For Flux optimizers, either a data iterator must be provided or the `maxiters` keyword argument must be set." )
79- elseif _data == DEFAULT_DATA && maxiters != typemax (Int)
80- data = Iterators. repeated ((), maxiters)
81- elseif maxiters != typemax (Int)
82- data = take (_data, maxiters)
83- else
84- data = _data
77+ if data != DEFAULT_DATA
78+ maxiters = length (data)
79+ else
80+ data = take (data, maxiters)
8581 end
8682
8783 t0 = time ()
@@ -158,6 +154,11 @@ decompose_trace(trace) = trace
158154
159155function __solve (prob:: OptimizationProblem , opt:: Optim.AbstractOptimizer , data = DEFAULT_DATA;cb = (args... ) -> (false ), maxiters:: Number = 1000 , kwargs... )
160156 local x, cur, state
157+
158+ if data != DEFAULT_DATA
159+ maxiters = length (data)
160+ end
161+
161162 cur, state = iterate (data)
162163
163164 function _cb (trace)
202203
203204function __solve (prob:: OptimizationProblem , opt:: Union{Optim.Fminbox,Optim.SAMIN} , data = DEFAULT_DATA;cb = (args... ) -> (false ), maxiters:: Number = 1000 , kwargs... )
204205 local x, cur, state
206+
207+ if data != DEFAULT_DATA
208+ maxiters = length (data)
209+ end
210+
205211 cur, state = iterate (data)
206212
207213 function _cb (trace)
242248
243249function __solve (prob:: OptimizationProblem , opt:: Optim.ConstrainedOptimizer , data = DEFAULT_DATA;cb = (args... ) -> (false ), maxiters:: Number = 1000 , kwargs... )
244250 local x, cur, state
251+
252+ if data != DEFAULT_DATA
253+ maxiters = length (data)
254+ end
255+
245256 cur, state = iterate (data)
246257
247258 function _cb (trace)
@@ -309,6 +320,11 @@ function __init__()
309320
310321 function __solve (prob:: OptimizationProblem , opt:: BBO , data = DEFAULT_DATA; cb = (args... ) -> (false ), maxiters:: Number = 1000 , kwargs... )
311322 local x, cur, state
323+
324+ if data != DEFAULT_DATA
325+ maxiters = length (data)
326+ end
327+
312328 cur, state = iterate (data)
313329
314330 function _cb (trace)
@@ -563,6 +579,11 @@ function __init__()
563579
564580 function __solve (prob:: OptimizationProblem , opt:: Evolutionary.AbstractOptimizer , data = DEFAULT_DATA; cb = (args... ) -> (false ), maxiters:: Number = 1000 , kwargs... )
565581 local x, cur, state
582+
583+ if data != DEFAULT_DATA
584+ maxiters = length (data)
585+ end
586+
566587 cur, state = iterate (data)
567588
568589 function _cb (trace)
@@ -594,6 +615,11 @@ function __init__()
594615
595616 function __solve (prob:: OptimizationProblem , opt:: CMAEvolutionStrategyOpt , data = DEFAULT_DATA; cb = (args... ) -> (false ), maxiters:: Number = 1000 , kwargs... )
596617 local x, cur, state
618+
619+ if data != DEFAULT_DATA
620+ maxiters = length (data)
621+ end
622+
597623 cur, state = iterate (data)
598624
599625 function _cb (trace)
0 commit comments