-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy path1_hyperparameters.py
More file actions
38 lines (31 loc) · 1.1 KB
/
1_hyperparameters.py
File metadata and controls
38 lines (31 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""
This example demonstrates how to use NePS to optimize hyperparameters
of a pipeline. The pipeline is a simple function that takes in
five hyperparameters and returns their sum.
Neps uses the default optimizer to minimize this objective function.
"""
import logging
import numpy as np
import neps
def evaluate_pipeline(float1, float2, categorical, integer1, integer2):
objective_to_minimize = -float(
np.sum([float1, float2, int(categorical), integer1, integer2])
)
return {
"objective_to_minimize": objective_to_minimize,
"cost": categorical,
}
class HPOSpace(neps.PipelineSpace):
float1 = neps.Float(lower=0, upper=1)
float2 = neps.Float(lower=-10, upper=10)
categorical = neps.Categorical(choices=(0, 1))
integer1 = neps.Integer(lower=0, upper=1)
integer2 = neps.Integer(lower=2, upper=1024, log=True, log_base=2)
logging.basicConfig(level=logging.INFO)
neps.run(
evaluate_pipeline=evaluate_pipeline,
pipeline_space=HPOSpace(),
root_directory="results/hyperparameters_example",
evaluations_to_spend=5,
overwrite_root_directory=True,
)