dymad.training.driver

Functions

Classes

CVSearchBoundSpec(key, lower, upper, value_kind)

CVSearchRunResult(all_results[, ...])

DriverBase(config_path, model_class[, ...])

Base driver: loops over (parameter combos x folds) and calls the optimizer.

KFoldDriver(config_path, model_class[, ...])

SingleSplitDriver(config_path, model_class)

Single fixed split; can still scan param_grid.

class dymad.training.driver.CVSearchBoundSpec(key, lower, upper, value_kind, parity=None)

Bases: object

key: str
lower: float
parity: str | None = None
upper: float
value_kind: str
class dymad.training.driver.CVSearchRunResult(all_results, selection_combo_indices=None)

Bases: object

all_results: list[CVResult]
selection_combo_indices: list[int] | None = None
class dymad.training.driver.DriverBase(config_path, model_class, config_mod=None, device=None, max_workers=1)

Bases: object

Base driver: loops over (parameter combos x folds) and calls the optimizer.

CV_SEARCH_HANDLERS: dict[str, str] = {'grid': '_execute_cv_search_grid', 'nelder_mead_like': '_execute_cv_search_nelder_mead_like'}
iter_folds()

Yield (fold_id, fold_config) pairs.

fold_config is a full config dict (deep copy of base_config with fold-specific overrides, e.g. split_seed).

Return type:

Iterable[tuple[int, dict[str, Any]]]

train(continue_training=False)

Core loop over hyperparameter and folds combinations.

Return type:

tuple[int, CVResult, list[CVResult]]

Returns:

best_result, all_results

train_sets: list[TrajectoryManager | TrajectoryManagerGraph]
valid_sets: list[TrajectoryManager | TrajectoryManagerGraph]
class dymad.training.driver.KFoldDriver(config_path, model_class, k_folds=5, base_seed=123, config_mod=None, device=None, max_workers=1)

Bases: DriverBase

iter_folds()

For fold i, set data.split_seed = base_seed + i and yield the config.

class dymad.training.driver.SingleSplitDriver(config_path, model_class, config_mod=None, device=None, max_workers=1)

Bases: DriverBase

Single fixed split; can still scan param_grid.

Extreme case

  • schedule has only one phase,

  • param_grid empty or singleton,

Just “one trainer of one phase.”

iter_folds()

Yield (fold_id, fold_config) pairs.

fold_config is a full config dict (deep copy of base_config with fold-specific overrides, e.g. split_seed).

dymad.training.driver.run_cv_single(args)