def test_update(self, _mock_update, _mock_gen): exp = get_experiment_for_value() exp.optimization_config = get_optimization_config_no_constraints() ss = get_search_space_for_range_values() exp.search_space = ss modelbridge = ModelBridge( search_space=ss, model=Model(), transforms=[Log], experiment=exp ) exp.new_trial(generator_run=modelbridge.gen(1)) modelbridge._set_training_data( observations_from_data( data=Data( pd.DataFrame( [ { "arm_name": "0_0", "metric_name": "m1", "mean": 3.0, "sem": 1.0, } ] ) ), experiment=exp, ), ss, ) exp.new_trial(generator_run=modelbridge.gen(1)) modelbridge.update( new_data=Data( pd.DataFrame( [{"arm_name": "1_0", "metric_name": "m1", "mean": 5.0, "sem": 0.0}] ) ), experiment=exp, ) exp.new_trial(generator_run=modelbridge.gen(1)) # Trying to update with unrecognised metric should error. with self.assertRaisesRegex(ValueError, "Unrecognised metric"): modelbridge.update( new_data=Data( pd.DataFrame( [ { "arm_name": "1_0", "metric_name": "m2", "mean": 5.0, "sem": 0.0, } ] ) ), experiment=exp, )
def test_gen_on_experiment_with_imm_ss_and_opt_conf(self, _, __): exp = get_experiment_for_value() exp._properties[Keys.IMMUTABLE_SEARCH_SPACE_AND_OPT_CONF] = True exp.optimization_config = get_optimization_config_no_constraints() ss = get_search_space_for_range_value() modelbridge = ModelBridge(search_space=ss, model=Model(), transforms=[], experiment=exp) self.assertTrue( modelbridge._experiment_has_immutable_search_space_and_opt_config) gr = modelbridge.gen(1) self.assertIsNone(gr.optimization_config) self.assertIsNone(gr.search_space)
def testGenWithDefaults(self, _, mock_gen): exp = get_experiment_for_value() exp.optimization_config = get_optimization_config_no_constraints() ss = get_search_space_for_range_value() modelbridge = ModelBridge(ss, None, [], exp) modelbridge.gen(1) mock_gen.assert_called_with( modelbridge, n=1, search_space=ss, fixed_features=ObservationFeatures(parameters={}), model_gen_options=None, optimization_config=OptimizationConfig( objective=Objective(metric=Metric("test_metric"), minimize=False), outcome_constraints=[], ), pending_observations={}, )