|
- def test_config_constraint():
- from flaml import tune
-
- # Test dict return value
- def evaluate_config_dict(config):
- metric = (round(config["x"]) - 85000) ** 2 - config["x"] / config["y"]
- return {"metric": metric}
-
- def config_constraint(config):
- if config["y"] >= config["x"]:
- return 1
- else:
- return 0
-
- analysis = tune.run(
- evaluate_config_dict,
- config={
- "x": tune.qloguniform(lower=1, upper=100000, q=1),
- "y": tune.qrandint(lower=2, upper=100000, q=2),
- },
- config_constraints=[(config_constraint, "<", 0.5)],
- metric="metric",
- mode="max",
- num_samples=100,
- log_file_name="logs/config_constraint.log",
- )
-
- assert analysis.best_config["x"] > analysis.best_config["y"]
- assert analysis.trials[0].config["x"] > analysis.trials[0].config["y"]
|