ravimohan19's picture
Upload optimizers/factory.py with huggingface_hub
2920e7a verified
"""Factory function to create optimizer backends."""
from physics_informed_bo.config import OptimizationConfig, OptimizerBackend
from physics_informed_bo.optimizers.base_optimizer import BaseOptimizer
from physics_informed_bo.optimizers.botorch_optimizer import BoTorchOptimizer
from physics_informed_bo.optimizers.ax_optimizer import AXOptimizer
from physics_informed_bo.optimizers.bofire_optimizer import BoFireOptimizer
def create_optimizer(config: OptimizationConfig) -> BaseOptimizer:
"""Create an optimizer backend based on the configuration.
Args:
config: Optimization configuration specifying the backend.
Returns:
An initialized optimizer backend.
"""
if config.backend == OptimizerBackend.BOTORCH:
return BoTorchOptimizer(config)
elif config.backend == OptimizerBackend.AX:
return AXOptimizer(config)
elif config.backend == OptimizerBackend.BOFIRE:
return BoFireOptimizer(config)
else:
raise ValueError(f"Unsupported backend: {config.backend}")