| 
									
										
										
										
											2022-01-14 13:39:09 -08:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-15 05:30:23 -07:00
										 |  |  |     analysis = tune.run( | 
					
						
							| 
									
										
										
										
											2022-01-14 13:39:09 -08:00
										 |  |  |         evaluate_config_dict, | 
					
						
							|  |  |  |         config={ | 
					
						
							|  |  |  |             "x": tune.qloguniform(lower=1, upper=100000, q=1), | 
					
						
							|  |  |  |             "y": tune.qrandint(lower=2, upper=100000, q=2), | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2022-08-15 05:30:23 -07:00
										 |  |  |         config_constraints=[(config_constraint, "<", 0.5)], | 
					
						
							| 
									
										
										
										
											2022-01-14 13:39:09 -08:00
										 |  |  |         metric="metric", | 
					
						
							|  |  |  |         mode="max", | 
					
						
							|  |  |  |         num_samples=100, | 
					
						
							| 
									
										
										
										
											2022-08-15 06:15:31 -07:00
										 |  |  |         log_file_name="logs/config_constraint.log", | 
					
						
							| 
									
										
										
										
											2022-01-14 13:39:09 -08:00
										 |  |  |     ) | 
					
						
							| 
									
										
										
										
											2022-08-15 05:30:23 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     assert analysis.best_config["x"] > analysis.best_config["y"] | 
					
						
							|  |  |  |     assert analysis.trials[0].config["x"] > analysis.trials[0].config["y"] |