Source code for orion.benchmark.task.profet.fcnet

""" Simulated Task consisting in training a fully-connected network.
"""
from dataclasses import dataclass
from typing import ClassVar, Dict, List, Tuple

from orion.benchmark.task.profet.profet_task import ProfetTask


[docs]class ProfetFcNetTask(ProfetTask): """Simulated Task consisting in training a fully-connected network."""
[docs] @dataclass class ModelConfig(ProfetTask.ModelConfig): """Config for training the Profet model on an FcNet task.""" benchmark: str = "fcnet" json_file_name: ClassVar[str] = "data_sobol_fcnet.json" hidden_space: ClassVar[int] = 5 log_cost: ClassVar[bool] = True log_target: ClassVar[bool] = False normalize_targets: ClassVar[bool] = False shapes: ClassVar[Tuple[Tuple[int, ...], Tuple[int, ...], Tuple[int, ...]]] = ( (600, 6), (27, 600), (27, 600), ) y_min: ClassVar[float] = 0.0 y_max: ClassVar[float] = 1.0 c_min: ClassVar[float] = 0.0 c_max: ClassVar[float] = 14718.31848526001
[docs] def call( self, learning_rate: float, batch_size: int, units_layer1: int, units_layer2: int, dropout_rate_l1: float, dropout_rate_l2: float, ) -> List[Dict]: return super().call( learning_rate=learning_rate, batch_size=batch_size, units_layer1=units_layer1, units_layer2=units_layer2, dropout_rate_l1=dropout_rate_l1, dropout_rate_l2=dropout_rate_l2, )
[docs] def get_search_space(self) -> Dict[str, str]: return dict( learning_rate="loguniform(1e-6, 1e-1)", batch_size="loguniform(8, 128, discrete=True)", units_layer1="loguniform(16, 512, discrete=True)", units_layer2="loguniform(16, 512, discrete=True)", dropout_rate_l1="uniform(0, 0.99)", dropout_rate_l2="uniform(0, 0.99)", )