Passed
Push — master ( 51ad4e...734fb3 )
by Simon
02:30
created

keras_example   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 38
dl 0
loc 53
rs 10
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A cnn() 0 33 1
1
from keras.models import Sequential
2
from keras.layers import Dense, Conv2D, MaxPooling2D, Flatten, Dropout, Activation
3
from keras.datasets import cifar10
4
from keras.utils import to_categorical
5
6
from hyperactive import Hyperactive
7
8
(X_train, y_train), (X_test, y_test) = cifar10.load_data()
9
10
y_train = to_categorical(y_train, 10)
11
y_test = to_categorical(y_test, 10)
12
13
14
def cnn(para, X_train, y_train):
15
    model = Sequential()
16
    model.add(
17
        Conv2D(para["filter.0"], (3, 3), padding="same", input_shape=X_train.shape[1:])
18
    )
19
    model.add(Activation("relu"))
20
    model.add(Conv2D(para["filter.0"], (3, 3)))
21
    model.add(Activation("relu"))
22
    model.add(MaxPooling2D(pool_size=(2, 2)))
23
    model.add(Dropout(0.25))
24
25
    model.add(Conv2D(para["filter.0"], (3, 3), padding="same"))
26
    model.add(Activation("relu"))
27
    model.add(Conv2D(para["filter.0"], (3, 3)))
28
    model.add(Activation("relu"))
29
    model.add(MaxPooling2D(pool_size=(2, 2)))
30
    model.add(Dropout(0.25))
31
32
    model.add(Flatten())
33
    model.add(Dense(para["layer.0"]))
34
    model.add(Activation("relu"))
35
    model.add(Dropout(0.5))
36
    model.add(Dense(10))
37
    model.add(Activation("softmax"))
38
39
    model.compile(
40
        optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"]
41
    )
42
    model.fit(X_train, y_train, epochs=25, batch_size=128)
43
44
    loss, score = model.evaluate(x=X_test, y=y_test)
45
46
    return score
47
48
49
search_config = {cnn: {"filter.0": [16, 32, 64, 128], "layer.0": range(100, 1000, 100)}}
50
51
opt = Hyperactive(search_config, n_iter=5)
52
opt.search(X_train, y_train)
53