def generate_parameters(self, parameter_id, **kwargs): """ Generate parameters for one trial. Parameters ---------- parameter_id : int The id for the generated hyperparameter **kwargs Not used Returns ------- dict One configuration from the expanded search space. Raises ------ NoMoreTrialError If all the configurations has been sent, raise :class:`~nni.NoMoreTrialError`. """ self.count += 1 while self.count <= len(self.expanded_search_space) - 1: _params_tuple = convert_dict2tuple( copy.deepcopy(self.expanded_search_space[self.count])) if _params_tuple in self.supplement_data: self.count += 1 else: return self.expanded_search_space[self.count] raise nni.NoMoreTrialError('no more parameters now.')
def import_data(self, data): """Import additional data for tuning Parameters ---------- data: a list of dictionarys, each of which has at least two keys, 'parameter' and 'value' """ _completed_num = 0 for trial_info in data: logger.info("Importing data, current processing progress %s / %s" % (_completed_num, len(data))) _completed_num += 1 assert "parameter" in trial_info _params = trial_info["parameter"] assert "value" in trial_info _value = trial_info['value'] if not _value: logger.info( "Useless trial data, value is %s, skip this trial data." % _value) continue _params_tuple = convert_dict2tuple(_params) self.supplement_data[_params_tuple] = True logger.info("Successfully import data to grid search tuner.")
def generate_parameters(self, parameter_id): self.count += 1 while (self.count <= len(self.expanded_search_space)-1): _params_tuple = convert_dict2tuple(self.expanded_search_space[self.count]) if _params_tuple in self.supplement_data: self.count += 1 else: return self.expanded_search_space[self.count] raise nni.NoMoreTrialError('no more parameters now.')