ciss_vae.training.autotune.SearchSpace
- class SearchSpace(num_hidden_layers=(1, 4), hidden_dims=[64, 512], latent_dim=[10, 100], latent_shared=[True, False], output_shared=[True, False], lr=(0.0001, 0.001), decay_factor=(0.9, 0.999), weight_decay=0.001, beta=0.01, num_epochs=1000, batch_size=64, num_shared_encode=[0, 1, 3], num_shared_decode=[0, 1, 3], encoder_shared_placement=['at_end', 'at_start', 'alternating', 'random'], decoder_shared_placement=['at_end', 'at_start', 'alternating', 'random'], refit_patience=2, refit_loops=100, epochs_per_loop=1000, reset_lr_refit=[True, False])[source]
Bases:
objectDefines tunable and fixed hyperparameter ranges for the Optuna search.
Parameters are specified as: - scalar: fixed value (e.g.,
latent_dim=16) - list: categorical choice (e.g.,hidden_dims=[64, 128, 256]) - tuple: range(min, max)forsuggest_intorsuggest_float- Parameters:
num_hidden_layers (int or list[int] or tuple[int, int], optional) – Number of encoder/decoder hidden layers, defaults to (1, 4)
hidden_dims (int or list[int] or tuple[int, int], optional) – Hidden dimension specification - int for repeated per layer, list for per-layer choices, tuple for range, defaults to [64, 512]
latent_dim (int or tuple[int, int], optional) – Latent dimension size or range, defaults to [10, 100]
latent_shared (bool or list[bool], optional) – Whether latent space is shared across clusters, defaults to [True, False]
output_shared (bool or list[bool], optional) – Whether output layer is shared across clusters, defaults to [True, False]
lr (float or tuple[float, float], optional) – Initial learning rate or range, defaults to (1e-4, 1e-3)
decay_factor (float or tuple[float, float], optional) – Learning rate exponential decay factor or range, defaults to (0.9, 0.999)
beta (float or tuple[float, float], optional) – KL divergence weight or range, defaults to 0.01
num_epochs (int or tuple[int, int], optional) – Number of epochs for initial training, defaults to 1000
batch_size (int or tuple[int, int], optional) – Mini-batch size, defaults to 64
num_shared_encode (list[int], optional) – Candidate counts of shared encoder layers, defaults to [0, 1, 3]
num_shared_decode (list[int], optional) – Candidate counts of shared decoder layers, defaults to [0, 1, 3]
encoder_shared_placement (list[str], optional) – Strategy for arranging shared vs unshared layers in encoder, defaults to [“at_end”, “at_start”, “alternating”, “random”]
decoder_shared_placement (list[str], optional) – Strategy for arranging shared vs unshared layers in decoder, defaults to [“at_end”, “at_start”, “alternating”, “random”]
refit_patience (int or tuple[int, int], optional) – Early-stop patience for refit loops, defaults to 2
refit_loops (int or tuple[int, int], optional) – Maximum number of refit loops, defaults to 100
epochs_per_loop (int or tuple[int, int], optional) – Number of epochs per refit loop, defaults to 1000
reset_lr_refit (bool or list[bool], optional) – Whether to reset learning rate before refit, defaults to [True, False]
- __init__(num_hidden_layers=(1, 4), hidden_dims=[64, 512], latent_dim=[10, 100], latent_shared=[True, False], output_shared=[True, False], lr=(0.0001, 0.001), decay_factor=(0.9, 0.999), weight_decay=0.001, beta=0.01, num_epochs=1000, batch_size=64, num_shared_encode=[0, 1, 3], num_shared_decode=[0, 1, 3], encoder_shared_placement=['at_end', 'at_start', 'alternating', 'random'], decoder_shared_placement=['at_end', 'at_start', 'alternating', 'random'], refit_patience=2, refit_loops=100, epochs_per_loop=1000, reset_lr_refit=[True, False])[source]
Methods
__init__([num_hidden_layers, hidden_dims, ...])load(file_path)Load a search space from a JSON file and return a new instance.
save(file_path)Save this search space to a JSON file.