Skip to content

Instantly share code, notes, and snippets.

@lzamparo
Created February 14, 2017 15:09
Show Gist options
  • Save lzamparo/bf79353bab5ff354ace2699854eb1f31 to your computer and use it in GitHub Desktop.
Save lzamparo/bf79353bab5ff354ace2699854eb1f31 to your computer and use it in GitHub Desktop.
Simple spearmint max test
Running iteration 0
Running iteration 1
Running iteration 2
Running iteration 3
Running iteration 4
Running iteration 5
Running iteration 6
Running iteration 7
Running iteration 8
Running iteration 9
Running iteration 10
Running iteration 11
Running iteration 12
Running iteration 13
Running iteration 14
Running iteration 15
Running iteration 16
Running iteration 17
Running iteration 18
Running iteration 19
Running iteration 20
Running iteration 21
Running iteration 22
Running iteration 23
Running iteration 24
Running iteration 25
Running iteration 26
Running iteration 27
Running iteration 28
Running iteration 29
Running iteration 30
Running iteration 31
Running iteration 32
Running iteration 33
Running iteration 34
Running iteration 35
Running iteration 36
Running iteration 37
Running iteration 38
Running iteration 39
Running iteration 40
Running iteration 41
Running iteration 42
Running iteration 43
Running iteration 44
Running iteration 45
Running iteration 46
Running iteration 47
Running iteration 48
Running iteration 49
Running iteration 50
Running iteration 51
Running iteration 52
Running iteration 53
Running iteration 54
Running iteration 55
Running iteration 56
Running iteration 57
Running iteration 58
Running iteration 59
Running iteration 60
Running iteration 61
Running iteration 62
Running iteration 63
Running iteration 64
Running iteration 65
Running iteration 66
Running iteration 67
Running iteration 68
Running iteration 69
Running iteration 70
Running iteration 71
Running iteration 72
Running iteration 73
Running iteration 74
Running iteration 75
Running iteration 76
Running iteration 77
Running iteration 78
Running iteration 79
Running iteration 80
Running iteration 81
Running iteration 82
Running iteration 83
Running iteration 84
Running iteration 85
Running iteration 86
Running iteration 87
Running iteration 88
Running iteration 89
Running iteration 90
Running iteration 91
Running iteration 92
Running iteration 93
Running iteration 94
Running iteration 95
Running iteration 96
Running iteration 97
Running iteration 98
Running iteration 99
Done. Best min value was 0.0 best max value was -0.0
from simple_spearmint import SimpleSpearmint
import numpy as np
# Define an objective function, must return a scalar value
def squared(x):
return x ** 2
def negative_squared(x):
return -1.0 * (x ** 2)
# test to see if the minimum of f(x) = x^2 is the same point that maximizes f(x) = -x^2
def test_maximize():
min_ss = SimpleSpearmint({'x': {'type': 'float', 'min': -3, 'max': 3}})
max_ss = SimpleSpearmint({'x': {'type': 'float', 'min': -3, 'max': 3}}, minimize=False)
# minimize f(x) = x^2
# Run for 100 hyperparameter optimization trials
for n in range(100):
print("Running iteration ", n)
# Get a suggestion from the optimizer
min_suggestion = min_ss.suggest()
max_suggestion = max_ss.suggest()
# Get an objective value; the ** syntax is equivalent to
# the call to objective above
min_ss_value = squared(**min_suggestion)
max_ss_value = negative_squared(**max_suggestion)
# Update the optimizer on the result
min_ss.update(min_suggestion, min_ss_value)
max_ss.update(max_suggestion, max_ss_value)
best_min_parameters, best_min_objective = min_ss.get_best_parameters()
best_max_parameters, best_max_objective = max_ss.get_best_parameters()
print("Done. Best min value was ", best_min_objective, " best max value was ", best_max_objective)
# test to see if the best params are roughly equal
assert(np.allclose(np.asarray([best_min_parameters['x']]), np.asarray([best_max_parameters['x']])))
if __name__ == '__main__':
test_maximize()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment