romtools.workflows.inverse.eki_bound_transforms#
Bound-handling adapters for EKI and MF-EKI.
The historical EKI implementations operate directly on their input parameter
ensemble. This module adds the same clip/transform choice used by VI
without duplicating the EKI algorithms. In transform mode, the legacy drivers
see an unconstrained optimizer-coordinate ensemble while FOM/ROM interfaces,
restart files, and returned samples remain in physical coordinates.
Functions
|
Run automatic-ROM MF-EKI with clipping or transformed bounds. |
|
Run EKI with historical clipping or an unconstrained bound transform. |
|
Run MF-EKI with historical clipping or an unconstrained bound transform. |
- romtools.workflows.inverse.eki_bound_transforms.mf_eki_with_auto_rom(model, parameter_space, observations, observations_covariance, parameter_mins=None, parameter_maxes=None, absolute_work_dir=None, fom_ensemble_size=10, rom_extra_ensemble_size=30, rom_tolerance=0.005, use_updated_rom_in_update_on_rebuild=False, initial_step_size=0.05, regularization_parameter=0.0001, step_size_growth_factor=1.25, step_size_decay_factor=2.0, max_step_size_decrease_trys=5, relaxation_parameter=1.05, error_norm_tolerance=1e-05, delta_params_tolerance=0.001, rejuvenation_strategy='none', rejuvenation_interval=5, rejuvenation_inflation=1.1, rejuvenation_prior_weight=0.0025, max_rejuvenations=3, rejuvenation_cooldown=10, max_rom_training_history=1, rom_substep_start_iteration=0, rom_substep_end_iteration=None, num_rom_substeps=0, max_iterations=50, random_seed=1, fom_evaluation_concurrency=1, rom_evaluation_concurrency=1, restart_file=None, rom_type='gp', rom_args=None, dispatcher=None, *, bounded_parameter_handling='clip', transform_interior_margin=0.0, transform_map='sigmoid', absolute_eki_directory=None)[source]#
Run automatic-ROM MF-EKI with clipping or transformed bounds.
- Parameters:
model (QoiModel)
parameter_space (ParameterSpace)
observations (ndarray)
observations_covariance (ndarray)
parameter_mins (ndarray)
parameter_maxes (ndarray)
absolute_work_dir (str)
fom_ensemble_size (int)
rom_tolerance (float)
use_updated_rom_in_update_on_rebuild (bool)
initial_step_size (float)
regularization_parameter (float)
step_size_growth_factor (float)
step_size_decay_factor (float)
max_step_size_decrease_trys (int)
relaxation_parameter (float)
error_norm_tolerance (float)
delta_params_tolerance (float)
rejuvenation_strategy (str)
rejuvenation_interval (int)
rejuvenation_inflation (float)
rejuvenation_prior_weight (float)
max_rejuvenations (int)
rejuvenation_cooldown (int)
max_rom_training_history (int)
rom_substep_start_iteration (int)
rom_substep_end_iteration (int | None)
num_rom_substeps (int)
max_iterations (int)
random_seed (int)
fom_evaluation_concurrency (int)
rom_evaluation_concurrency (int)
restart_file (str)
rom_type (str)
rom_args (dict | None)
dispatcher (BaseDispatcher | None)
bounded_parameter_handling (str)
transform_interior_margin (float)
transform_map (str)
absolute_eki_directory (str)
- romtools.workflows.inverse.eki_bound_transforms.run_eki(model, parameter_space, observations, observations_covariance, parameter_mins=None, parameter_maxes=None, absolute_work_dir=None, ensemble_size=30, initial_step_size=0.05, regularization_parameter=0.0001, step_size_growth_factor=1.25, step_size_decay_factor=2.0, max_step_size_decrease_trys=5, relaxation_parameter=1.05, error_norm_tolerance=1e-05, delta_params_tolerance=0.001, rejuvenation_strategy='none', rejuvenation_interval=5, rejuvenation_inflation=1.1, rejuvenation_prior_weight=0.0025, max_rejuvenations=3, rejuvenation_cooldown=10, max_iterations=50, random_seed=1, evaluation_concurrency=1, restart_file=None, dispatcher=None, *, bounded_parameter_handling='clip', transform_interior_margin=0.0, transform_map='sigmoid', absolute_eki_directory=None)[source]#
Run EKI with historical clipping or an unconstrained bound transform.
- Parameters:
model (QoiModel)
parameter_space (ParameterSpace)
observations (ndarray)
observations_covariance (ndarray)
parameter_mins (ndarray)
parameter_maxes (ndarray)
absolute_work_dir (str)
ensemble_size (int)
initial_step_size (float)
regularization_parameter (float)
step_size_growth_factor (float)
step_size_decay_factor (float)
max_step_size_decrease_trys (int)
relaxation_parameter (float)
error_norm_tolerance (float)
delta_params_tolerance (float)
rejuvenation_strategy (str)
rejuvenation_interval (int)
rejuvenation_inflation (float)
rejuvenation_prior_weight (float)
max_rejuvenations (int)
rejuvenation_cooldown (int)
max_iterations (int)
random_seed (int)
dispatcher (BaseDispatcher | None)
bounded_parameter_handling (str)
transform_interior_margin (float)
transform_map (str)
absolute_eki_directory (str)
- romtools.workflows.inverse.eki_bound_transforms.run_mf_eki(model, rom_model_builder, parameter_space, observations, observations_covariance, parameter_mins=None, parameter_maxes=None, absolute_work_dir=None, fom_ensemble_size=10, rom_extra_ensemble_size=30, rom_tolerance=0.005, use_updated_rom_in_update_on_rebuild=True, initial_step_size=0.1, regularization_parameter=0.0001, step_size_growth_factor=1.25, step_size_decay_factor=2.0, max_step_size_decrease_trys=5, relaxation_parameter=1.05, error_norm_tolerance=1e-05, delta_params_tolerance=0.001, rejuvenation_strategy='none', rejuvenation_interval=5, rejuvenation_inflation=1.1, rejuvenation_prior_weight=0.0025, max_rejuvenations=3, rejuvenation_cooldown=10, max_rom_training_history=1, rom_substep_start_iteration=0, rom_substep_end_iteration=None, num_rom_substeps=0, max_iterations=50, random_seed=1, fom_evaluation_concurrency=1, rom_evaluation_concurrency=1, restart_file=None, dispatcher=None, *, bounded_parameter_handling='clip', transform_interior_margin=0.0, transform_map='sigmoid', absolute_eki_directory=None)[source]#
Run MF-EKI with historical clipping or an unconstrained bound transform.
- Parameters:
model (QoiModel)
rom_model_builder (QoiModelBuilderWithTrainingData)
parameter_space (ParameterSpace)
observations (ndarray)
observations_covariance (ndarray)
parameter_mins (ndarray)
parameter_maxes (ndarray)
absolute_work_dir (str)
fom_ensemble_size (int)
rom_tolerance (float)
use_updated_rom_in_update_on_rebuild (bool)
initial_step_size (float)
regularization_parameter (float)
step_size_growth_factor (float)
step_size_decay_factor (float)
max_step_size_decrease_trys (int)
relaxation_parameter (float)
error_norm_tolerance (float)
delta_params_tolerance (float)
rejuvenation_strategy (str)
rejuvenation_interval (int)
rejuvenation_inflation (float)
rejuvenation_prior_weight (float)
max_rejuvenations (int)
rejuvenation_cooldown (int)
max_rom_training_history (int)
rom_substep_start_iteration (int)
rom_substep_end_iteration (int | None)
num_rom_substeps (int)
max_iterations (int)
random_seed (int)
fom_evaluation_concurrency (int)
rom_evaluation_concurrency (int)
restart_file (str)
dispatcher (BaseDispatcher | None)
bounded_parameter_handling (str)
transform_interior_margin (float)
transform_map (str)
absolute_eki_directory (str)