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: object

Defines 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) for suggest_int or suggest_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.

save(file_path)[source]

Save this search space to a JSON file. :type file_path: :param file_path: Path to save file. :type file_path: string

classmethod load(file_path)[source]

Load a search space from a JSON file and return a new instance. :type file_path: :param file_path: Path to saved SearchSpace. :type file_path: string