Skip to content

Commit 67b704b

Browse files
change cb to callback
This makes GalacticOptim match the common interface arguments. I'm counting this as part of GalacticOptim v3 since the component solvers haven't been released so it hasn't been possible to use it anyways.
1 parent 7226223 commit 67b704b

File tree

26 files changed

+78
-78
lines changed

26 files changed

+78
-78
lines changed

docs/src/API/solve.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ These common arguments are:
1313
- `maxtime` (the maximum of time the optimization runs for)
1414
- `abstol` (absolute tolerance in changes of the objective value)
1515
- `reltol` (relative tolerance in changes of the objective value)
16-
- `cb` (a callback function)
16+
- `callback` (a callback function)
1717

1818
If the chosen global optimzer employs a local optimization method a similiar set of common local optimizer arguments exists.
1919
The common local optimizer arguments are:
@@ -38,16 +38,16 @@ If a common argument is not implemented for a optimizer a warning will be shown.
3838

3939
## Callback Functions
4040

41-
The callback function `cb` is a function which is called after every optimizer
41+
The callback function `callback` is a function which is called after every optimizer
4242
step. Its signature is:
4343

4444
```julia
45-
cb = (x,other_args) -> false
45+
callback = (x,other_args) -> false
4646
```
4747

4848
where `other_args` is are the extra return arguments of the optimization `f`.
49-
For example, if `f(x,p) = 5x`, then `cb = (x) -> ...` is used. If `f(x,p) = 5x,55x`,
50-
then `cb = (x,extra) -> ...` is used, where `extra = 55x`. This allows for saving
49+
For example, if `f(x,p) = 5x`, then `callback = (x) -> ...` is used. If `f(x,p) = 5x,55x`,
50+
then ` = (x,extra) -> ...` is used, where `extra = 55x`. This allows for saving
5151
values from the optimization and using them for plotting and display without
5252
recalculating. The callback should return a Boolean value, and the default
5353
should be `false`, such that the optimization gets stopped if it returns `true`.

docs/src/tutorials/minibatch.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function dudt_(u,p,t)
2323
ann(u, p).* u
2424
end
2525

26-
cb = function (p,l,pred;doplot=false) #callback function to observe training
26+
callback = function (p,l,pred;doplot=false) #callback function to observe training
2727
display(l)
2828
# plot current prediction against data
2929
if doplot
@@ -65,6 +65,6 @@ l1 = loss_adjoint(pp, train_loader.data[1], train_loader.data[2])[1]
6565
optfun = OptimizationFunction((θ, p, batch, time_batch) -> loss_adjoint(θ, batch, time_batch), GalacticOptim.AutoZygote())
6666
optprob = OptimizationProblem(optfun, pp)
6767
using IterTools: ncycle
68-
res1 = GalacticOptim.solve(optprob, ADAM(0.05), ncycle(train_loader, numEpochs), cb = cb)
68+
res1 = GalacticOptim.solve(optprob, ADAM(0.05), ncycle(train_loader, numEpochs), callback = callback)
6969
@test 10res1.minimum < l1
7070
```

lib/GalacticBBO/src/GalacticBBO.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ end
1212
decompose_trace(opt::BlackBoxOptim.OptRunController) = BlackBoxOptim.best_candidate(opt)
1313

1414
function __map_optimizer_args(prob::SciMLBase.OptimizationProblem, opt::BBO;
15-
cb=nothing,
15+
callback=nothing,
1616
maxiters::Union{Number,Nothing}=nothing,
1717
maxtime::Union{Number,Nothing}=nothing,
1818
abstol::Union{Number,Nothing}=nothing,
@@ -26,8 +26,8 @@ function __map_optimizer_args(prob::SciMLBase.OptimizationProblem, opt::BBO;
2626
mapped_args = (; Method=opt.method,
2727
SearchRange=[(prob.lb[i], prob.ub[i]) for i in 1:length(prob.lb)])
2828

29-
if !isnothing(cb)
30-
mapped_args = (; mapped_args..., CallbackFunction=cb, CallbackInterval=0.0)
29+
if !isnothing(callback)
30+
mapped_args = (; mapped_args..., CallbackFunction=callback, CallbackInterval=0.0)
3131
end
3232

3333
mapped_args = (; mapped_args..., kwargs...)
@@ -48,7 +48,7 @@ function __map_optimizer_args(prob::SciMLBase.OptimizationProblem, opt::BBO;
4848
end
4949

5050
function SciMLBase.__solve(prob::SciMLBase.OptimizationProblem, opt::BBO, data=GalacticOptim.DEFAULT_DATA;
51-
cb=(args...) -> (false),
51+
callback=(args...) -> (false),
5252
maxiters::Union{Number,Nothing}=nothing,
5353
maxtime::Union{Number,Nothing}=nothing,
5454
abstol::Union{Number,Nothing}=nothing,
@@ -64,7 +64,7 @@ function SciMLBase.__solve(prob::SciMLBase.OptimizationProblem, opt::BBO, data=G
6464
cur, state = iterate(data)
6565

6666
function _cb(trace)
67-
cb_call = cb(decompose_trace(trace), x...)
67+
cb_call = callback(decompose_trace(trace), x...)
6868
if !(typeof(cb_call) <: Bool)
6969
error("The callback should return a boolean `halt` for whether to stop the optimization process.")
7070
end
@@ -84,7 +84,7 @@ function SciMLBase.__solve(prob::SciMLBase.OptimizationProblem, opt::BBO, data=G
8484
return first(x)
8585
end
8686

87-
opt_args = __map_optimizer_args(prob, opt, cb=_cb, maxiters=maxiters, maxtime=maxtime, abstol=abstol, reltol=reltol; kwargs...)
87+
opt_args = __map_optimizer_args(prob, opt, callback=_cb, maxiters=maxiters, maxtime=maxtime, abstol=abstol, reltol=reltol; kwargs...)
8888

8989
opt_setup = BlackBoxOptim.bbsetup(_loss; opt_args...)
9090

lib/GalacticCMAEvolutionStrategy/src/GalacticCMAEvolutionStrategy.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export CMAEvolutionStrategyOpt
77
struct CMAEvolutionStrategyOpt end
88

99
function __map_optimizer_args(prob::OptimizationProblem, opt::CMAEvolutionStrategyOpt;
10-
cb=nothing,
10+
callback=nothing,
1111
maxiters::Union{Number,Nothing}=nothing,
1212
maxtime::Union{Number,Nothing}=nothing,
1313
abstol::Union{Number,Nothing}=nothing,
@@ -39,7 +39,7 @@ end
3939

4040

4141
function SciMLBase.__solve(prob::OptimizationProblem, opt::CMAEvolutionStrategyOpt, data=GalacticOptim.DEFAULT_DATA;
42-
cb=(args...) -> (false),
42+
callback=(args...) -> (false),
4343
maxiters::Union{Number,Nothing}=nothing,
4444
maxtime::Union{Number,Nothing}=nothing,
4545
abstol::Union{Number,Nothing}=nothing,
@@ -54,7 +54,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::CMAEvolutionStrategyO
5454
cur, state = iterate(data)
5555

5656
function _cb(trace)
57-
cb_call = cb(decompose_trace(trace).metadata["x"], trace.value...)
57+
cb_call = callback(decompose_trace(trace).metadata["x"], trace.value...)
5858
if !(typeof(cb_call) <: Bool)
5959
error("The callback should return a boolean `halt` for whether to stop the optimization process.")
6060
end
@@ -70,7 +70,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::CMAEvolutionStrategyO
7070
return first(x)
7171
end
7272

73-
opt_args = __map_optimizer_args(prob, opt, cb=_cb, maxiters=maxiters, maxtime=maxtime, abstol=abstol, reltol=reltol; kwargs...)
73+
opt_args = __map_optimizer_args(prob, opt, callback=_cb, maxiters=maxiters, maxtime=maxtime, abstol=abstol, reltol=reltol; kwargs...)
7474

7575
t0 = time()
7676
opt_res = CMAEvolutionStrategy.minimize(_loss, prob.u0, 0.1; opt_args...)

lib/GalacticEvolutionary/src/GalacticEvolutionary.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ function Evolutionary.trace!(record::Dict{String,Any}, objfun, state, population
1111
end
1212

1313
function __map_optimizer_args(prob::OptimizationProblem, opt::Evolutionary.AbstractOptimizer;
14-
cb=nothing,
14+
callback=nothing,
1515
maxiters::Union{Number,Nothing}=nothing,
1616
maxtime::Union{Number,Nothing}=nothing,
1717
abstol::Union{Number,Nothing}=nothing,
@@ -22,8 +22,8 @@ function __map_optimizer_args(prob::OptimizationProblem, opt::Evolutionary.Abstr
2222

2323
mapped_args = (; mapped_args..., kwargs...)
2424

25-
if !isnothing(cb)
26-
mapped_args = (; mapped_args..., callback=cb)
25+
if !isnothing(callback)
26+
mapped_args = (; mapped_args..., callback=callback)
2727
end
2828

2929
if !isnothing(maxiters)
@@ -46,7 +46,7 @@ function __map_optimizer_args(prob::OptimizationProblem, opt::Evolutionary.Abstr
4646
end
4747

4848
function SciMLBase.__solve(prob::OptimizationProblem, opt::Evolutionary.AbstractOptimizer, data=GalacticOptim.DEFAULT_DATA;
49-
cb=(args...) -> (false),
49+
callback=(args...) -> (false),
5050
maxiters::Union{Number,Nothing}=nothing,
5151
maxtime::Union{Number,Nothing}=nothing,
5252
abstol::Union{Number,Nothing}=nothing,
@@ -61,7 +61,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::Evolutionary.Abstract
6161
cur, state = iterate(data)
6262

6363
function _cb(trace)
64-
cb_call = cb(decompose_trace(trace).metadata["x"], trace.value...)
64+
cb_call = callback(decompose_trace(trace).metadata["x"], trace.value...)
6565
if !(typeof(cb_call) <: Bool)
6666
error("The callback should return a boolean `halt` for whether to stop the optimization process.")
6767
end
@@ -77,7 +77,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::Evolutionary.Abstract
7777
return first(x)
7878
end
7979

80-
opt_args = __map_optimizer_args(prob, opt, cb=_cb, maxiters=maxiters, maxtime=maxtime, abstol=abstol, reltol=reltol; kwargs...)
80+
opt_args = __map_optimizer_args(prob, opt, callback=_cb, maxiters=maxiters, maxtime=maxtime, abstol=abstol, reltol=reltol; kwargs...)
8181

8282
t0 = time()
8383
if isnothing(prob.ub) | isnothing(prob.ub)

lib/GalacticFlux/src/GalacticFlux.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ using GalacticOptim, Reexport, Printf, ProgressLogging, GalacticOptim.SciMLBase
44
@reexport using Flux
55

66
function SciMLBase.__solve(prob::OptimizationProblem, opt::Flux.Optimise.AbstractOptimiser, data = GalacticOptim.DEFAULT_DATA;
7-
maxiters::Number = 0, cb = (args...) -> (false),
7+
maxiters::Number = 0, callback = (args...) -> (false),
88
progress = false, save_best = true, kwargs...)
99

1010
if data != GalacticOptim.DEFAULT_DATA
@@ -31,7 +31,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::Flux.Optimise.Abstrac
3131
for (i, d) in enumerate(data)
3232
f.grad(G, θ, d...)
3333
x = f.f(θ, prob.p, d...)
34-
cb_call = cb(θ, x...)
34+
cb_call = callback(θ, x...)
3535
if !(typeof(cb_call) <: Bool)
3636
error("The callback should return a boolean `halt` for whether to stop the optimization process. Please see the sciml_train documentation for information.")
3737
elseif cb_call
@@ -50,7 +50,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::Flux.Optimise.Abstrac
5050
opt = min_opt
5151
x = min_err
5252
θ = min_θ
53-
cb(θ, x...)
53+
callback(θ, x...)
5454
break
5555
end
5656
end

lib/GalacticGCMAES/src/GalacticGCMAES.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export GCMAESOpt
77
struct GCMAESOpt end
88

99
function __map_optimizer_args(prob::OptimizationProblem, opt::GCMAESOpt;
10-
cb=nothing,
10+
callback=nothing,
1111
maxiters::Union{Number, Nothing}=nothing,
1212
maxtime::Union{Number, Nothing}=nothing,
1313
abstol::Union{Number, Nothing}=nothing,

lib/GalacticMetaheuristics/src/GalacticMetaheuristics.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ function initial_population!(opt, prob, bounds, f)
1919
end
2020

2121
function __map_optimizer_args!(prob::OptimizationProblem, opt::Metaheuristics.AbstractAlgorithm;
22-
cb=nothing,
22+
callback=nothing,
2323
maxiters::Union{Number,Nothing}=nothing,
2424
maxtime::Union{Number,Nothing}=nothing,
2525
abstol::Union{Number,Nothing}=nothing,
@@ -36,7 +36,7 @@ function __map_optimizer_args!(prob::OptimizationProblem, opt::Metaheuristics.Ab
3636
end
3737
end
3838

39-
if !isnothing(cb)
39+
if !isnothing(callback)
4040
@warn "Callback argument is currently not used by $(typeof(opt).super)"
4141
end
4242

@@ -59,7 +59,7 @@ function __map_optimizer_args!(prob::OptimizationProblem, opt::Metaheuristics.Ab
5959
end
6060

6161
function SciMLBase.__solve(prob::OptimizationProblem, opt::Metaheuristics.AbstractAlgorithm;
62-
cb=nothing,
62+
callback=nothing,
6363
maxiters::Union{Number,Nothing}=nothing,
6464
maxtime::Union{Number,Nothing}=nothing,
6565
abstol::Union{Number,Nothing}=nothing,
@@ -97,7 +97,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::Metaheuristics.Abstra
9797
@warn "Inequality constraints are current not passed on by GalacticOptim"
9898
end
9999

100-
__map_optimizer_args!(prob, opt, cb=cb, maxiters=maxiters, maxtime=maxtime, abstol=abstol, reltol=reltol; kwargs...)
100+
__map_optimizer_args!(prob, opt, callback=callback, maxiters=maxiters, maxtime=maxtime, abstol=abstol, reltol=reltol; kwargs...)
101101

102102
if use_initial
103103
initial_population!(opt, prob, opt_bounds, _loss)

lib/GalacticNLopt/src/GalacticNLopt.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ using Reexport, GalacticOptim, GalacticOptim.SciMLBase
66
(f::NLopt.Algorithm)() = f
77

88
function __map_optimizer_args!(prob::OptimizationProblem, opt::NLopt.Opt;
9-
cb=nothing,
9+
callback=nothing,
1010
maxiters::Union{Number,Nothing}=nothing,
1111
maxtime::Union{Number,Nothing}=nothing,
1212
abstol::Union{Number,Nothing}=nothing,
@@ -86,7 +86,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::Union{NLopt.Algorithm
8686
abstol::Union{Number,Nothing}=nothing,
8787
reltol::Union{Number,Nothing}=nothing,
8888
progress=false,
89-
cb=(args...) -> (false),
89+
callback=(args...) -> (false),
9090
kwargs...)
9191
local x
9292

@@ -100,7 +100,7 @@ function SciMLBase.__solve(prob::OptimizationProblem, opt::Union{NLopt.Algorithm
100100

101101
_loss = function (θ)
102102
x = f.f(θ, prob.p)
103-
cb(θ, x...)
103+
callback(θ, x...)
104104
return x[1]
105105
end
106106

lib/GalacticNOMAD/src/GalacticNOMAD.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ struct NOMADOpt end
77

88

99
function __map_optimizer_args!(prob::OptimizationProblem, opt::NOMAD.NomadProblem;
10-
cb=nothing,
10+
callback=nothing,
1111
maxiters::Union{Number,Nothing}=nothing,
1212
maxtime::Union{Number,Nothing}=nothing,
1313
abstol::Union{Number,Nothing}=nothing,

0 commit comments

Comments
 (0)