# ============================================ # Fichier: interfaces/hyperparameter_optimizer.py # ============================================ from abc import ABC, abstractmethod from typing import Dict, Any, TYPE_CHECKING if TYPE_CHECKING: from base_trainer import BaseTrainer class HyperparameterOptimizer(ABC): """ Interface pour la classe responsable de l'optimisation des hyperparamètres. """ @abstractmethod def optimize(self, trainer: "BaseTrainer", param_grid: Dict[str, Any]) -> Dict[str, Any]: """ Recherche les meilleurs hyperparamètres pour un 'trainer' donné, selon la grille 'param_grid'. :param trainer: Instance d'une classe implémentant BaseTrainer. :param param_grid: Dictionnaire définissant l'espace de recherche pour chaque hyperparamètre. :return: Un dictionnaire contenant les hyperparamètres optimaux trouvés. """ pass