Source code for deepobs.tuner.random_search

# -*- coding: utf-8 -*-
from .tuner import ParallelizedTuner


[docs]class RandomSearch(ParallelizedTuner): """A basic Random Search tuner. """
[docs] def __init__( self, optimizer_class, hyperparam_names, distributions, ressources, runner, ): """ Args: distributions (dict): Holds the distributions for each hyperparameter.\ Each distribution must implement an rvs() method to draw random variates.\ For instance, all scipy.stats.distribution distributions are applicable. """ super(RandomSearch, self).__init__( optimizer_class, hyperparam_names, ressources, runner ) self._distributions = distributions self._search_name = "random_search"
def _sample(self): params = [] for i in range(self._ressources): # sample parameters sample = {} for param_name, param_distr in self._distributions.items(): sample[param_name] = param_distr.rvs() params.append(sample) return params