Created
February 14, 2017 15:09
-
-
Save lzamparo/bf79353bab5ff354ace2699854eb1f31 to your computer and use it in GitHub Desktop.
Simple spearmint max test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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