besmarts.core.optimization module

besmarts.core.optimization

Optimization of SMARTS hierarchies.

class besmarts.core.optimization.optimization_iteration(steps)[source]

Bases: object

is_done() bool[source]
next() optimization_step[source]
repeat_step()[source]
besmarts.core.optimization.optimization_iteration_is_done(oi)[source]
besmarts.core.optimization.optimization_iteration_next(oi) optimization_step[source]
besmarts.core.optimization.optimization_iteration_repeat_step(oi)[source]
class besmarts.core.optimization.optimization_step[source]

Bases: object

copy()[source]
besmarts.core.optimization.optimization_step_copy(step) optimization_step[source]
class besmarts.core.optimization.optimization_strategy(bounds: smarts_perception_config, overlaps=None)[source]

Bases: object

Determines how to step the optimization forward, choosing which hyperparameters to try next. The steps are divided into macro and micro iterations, where the (best) nodes are created given the candidates produced by a single macro step consisting of one more micro steps.

MERGE = -1
MODIFY = 0
SPLIT = 1
bounds: smarts_perception_config
build_steps()[source]
filter_above: float
is_done() bool[source]
keep_below: float
macro_accept_max_per_cluster: int
macro_accept_max_total: int
macro_iteration(clusters: List[tree_node]) optimization_iteration[source]

Return a list of iterations that form a macro iteration, where we may want to analyze a group of candidates before proceeding to the next level of searching

Parameters:

clusters (List[trees.tree_node]) – The nodes of a trees.tree_index to consider in the step

Return type:

optimization_step

micro_accept_max_per_cluster: int
micro_accept_max_total: int
repeat_step()[source]

Repeat the last macro iteration by returning the same optimization_iteration in the next call to macro_iteration

restart()[source]
steps: List[optimization_iteration]
tree_iterator: Callable
besmarts.core.optimization.optimization_strategy_build_macro_iterations(strat: optimization_strategy)[source]
besmarts.core.optimization.optimization_strategy_is_done(os) bool[source]
besmarts.core.optimization.optimization_strategy_iteration_next(oi: optimization_strategy, clusters: List[tree_node]) optimization_iteration[source]
besmarts.core.optimization.optimization_strategy_repeat_step(oi)[source]
besmarts.core.optimization.optimization_strategy_restart(os: optimization_strategy)[source]