Completed
Push — master ( f67568...5e5af8 )
by Simon
01:28
created

test_individuals()   A

Complexity

Conditions 2

Size

Total Lines 7
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 7
nop 0
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
import numpy as np
6
7
from hyperactive import Hyperactive
8
9
X, y = np.array([0]), np.array([0])
10
memory = False
11
n_iter = 25
12
13
14
def sphere_function(para, X_train, y_train):
15
    loss = []
16
    for key in para.keys():
17
        if key == "iteration":
18
            continue
19
        loss.append(para[key] * para[key])
20
21
    return -np.array(loss).sum()
22
23
24
search_config = {
25
    sphere_function: {"x1": np.arange(-3, 3, 0.1), "x2": np.arange(-3, 3, 0.1)}
26
}
27
28
29
def test_individuals():
30
    for individuals in [2, 10, 20, 50]:
31
        opt = Hyperactive(X, y, memory=memory)
32
        opt.search(
33
            search_config,
34
            n_iter=n_iter,
35
            optimizer={"EvolutionStrategy": {"individuals": individuals}},
36
        )
37
38
39
def test_mutation_rate():
40
    for mutation_rate in [0.1, 0.9]:
41
        opt = Hyperactive(X, y, memory=memory)
42
        opt.search(
43
            search_config,
44
            n_iter=n_iter,
45
            optimizer={"EvolutionStrategy": {"mutation_rate": mutation_rate}},
46
        )
47
48
49
def test_crossover_rate():
50
    for crossover_rate in [0.1, 0.9]:
51
        opt = Hyperactive(X, y, memory=memory)
52
        opt.search(
53
            search_config,
54
            n_iter=n_iter,
55
            optimizer={"EvolutionStrategy": {"crossover_rate": crossover_rate}},
56
        )
57