Пример #1
0
 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,
         )
Пример #2
0
 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)
Пример #3
0
 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={},
     )