autogen/test/tune/test_constraints.py

30 lines
905 B
Python
Raw Normal View History

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"]