Function to create a CallbackBatch.
Optimization callbacks can be called from different stages of optimization process.
The stages are prefixed with on_*
.
Start Optimization
- on_optimization_begin
Start Optimizer Batch
- on_optimizer_before_eval
- on_optimizer_after_eval
End Optimizer Batch
- on_result
- on_optimization_end
End Optimization
See also the section on parameters for more information on the stages. A optimization callback works with ContextBatch.
Usage
callback_batch(
id,
label = NA_character_,
man = NA_character_,
on_optimization_begin = NULL,
on_optimizer_before_eval = NULL,
on_optimizer_after_eval = NULL,
on_result = NULL,
on_optimization_end = NULL,
fields = list()
)
Arguments
- id
(
character(1)
)
Identifier for the new instance.- label
(
character(1)
)
Label for the new instance.- man
(
character(1)
)
String in the format[pkg]::[topic]
pointing to a manual page for this object. The referenced help package can be opened via method$help()
.- on_optimization_begin
(
function()
)
Stage called at the beginning of the optimization. Called inOptimizer$optimize()
. The functions must have two arguments namedcallback
andcontext
.- on_optimizer_before_eval
(
function()
)
Stage called after the optimizer proposes points. Called inOptimInstance$eval_batch()
. The functions must have two arguments namedcallback
andcontext
.- on_optimizer_after_eval
(
function()
)
Stage called after points are evaluated. Called inOptimInstance$eval_batch()
. The functions must have two arguments namedcallback
andcontext
.- on_result
(
function()
)
Stage called after result are written. Called inOptimInstance$assign_result()
. The functions must have two arguments namedcallback
andcontext
.- on_optimization_end
(
function()
)
Stage called at the end of the optimization. Called inOptimizer$optimize()
. The functions must have two arguments namedcallback
andcontext
.- fields
(list of
any
)
List of additional fields.
Details
A callback can write data to its state ($state
), e.g. settings that affect the callback itself.
The ContextBatch allows to modify the instance, archive, optimizer and final result.
Examples
# write archive to disk
callback_batch("bbotk.backup",
on_optimization_end = function(callback, context) {
saveRDS(context$instance$archive, "archive.rds")
}
)
#> <CallbackBatch:bbotk.backup>
#> * Active Stages: on_optimization_end