1
|
|
|
import tensorflow as tf |
2
|
|
|
|
3
|
|
|
from hyperactive import Hyperactive |
4
|
|
|
|
5
|
|
|
mnist = tf.keras.datasets.mnist |
6
|
|
|
|
7
|
|
|
(x_train, y_train), (x_test, y_test) = mnist.load_data() |
8
|
|
|
x_train, x_test = x_train / 255.0, x_test / 255.0 |
9
|
|
|
|
10
|
|
|
|
11
|
|
|
def cnn(params): |
12
|
|
|
nn = tf.keras.models.Sequential( |
13
|
|
|
[ |
14
|
|
|
tf.keras.layers.Flatten(input_shape=(28, 28)), |
15
|
|
|
tf.keras.layers.Dense(128, activation="relu"), |
16
|
|
|
tf.keras.layers.Dropout(0.2), |
17
|
|
|
tf.keras.layers.Dense(10), |
18
|
|
|
] |
19
|
|
|
) |
20
|
|
|
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) |
21
|
|
|
|
22
|
|
|
nn.compile(optimizer="adam", loss=loss_fn, metrics=["accuracy"]) |
23
|
|
|
nn.fit(x_train, y_train, epochs=5) |
24
|
|
|
_, score = nn.evaluate(x=x_test, y=y_test) |
25
|
|
|
|
26
|
|
|
return score |
27
|
|
|
|
28
|
|
|
|
29
|
|
|
search_space = { |
30
|
|
|
"filters_0": [16, 32, 64], |
31
|
|
|
"filters_1": [16, 32, 64], |
32
|
|
|
"dense_0": list(range(100, 2000, 100)), |
33
|
|
|
} |
34
|
|
|
|
35
|
|
|
hyper = Hyperactive() |
36
|
|
|
hyper.add_search(cnn, search_space, n_iter=5) |
37
|
|
|
hyper.run() |
38
|
|
|
|