deep_learning   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 54
dl 0
loc 75
rs 10
c 0
b 0
f 0
wmc 1

1 Function

Rating   Name   Duplication   Size   Complexity  
A cnn() 0 36 1
1
from keras.models import Sequential
2
from keras.layers import (
3
    Dense,
4
    Conv2D,
5
    MaxPooling2D,
6
    Flatten,
7
    Dropout,
8
    Activation,
9
)
10
from keras.datasets import cifar10
11
from keras.utils import to_categorical
12
13
from gradient_free_optimizers import BayesianOptimizer
14
15
import numpy as np
16
17
(X_train, y_train), (X_test, y_test) = cifar10.load_data()
18
19
y_train = to_categorical(y_train, 10)
20
y_test = to_categorical(y_test, 10)
21
22
X_train = X_train[0:1000]
23
y_train = y_train[0:1000]
24
25
X_test = X_test[0:1000]
26
y_test = y_test[0:1000]
27
28
29
def cnn(para):
30
    nn = Sequential()
31
    nn.add(
32
        Conv2D(
33
            para["filter.0"],
34
            (3, 3),
35
            padding="same",
36
            input_shape=X_train.shape[1:],
37
        )
38
    )
39
    nn.add(Activation("relu"))
40
    nn.add(Conv2D(para["filter.0"], (3, 3)))
41
    nn.add(Activation("relu"))
42
    nn.add(MaxPooling2D(pool_size=(2, 2)))
43
    nn.add(Dropout(0.25))
44
45
    nn.add(Conv2D(para["filter.0"], (3, 3), padding="same"))
46
    nn.add(Activation("relu"))
47
    nn.add(Conv2D(para["filter.0"], (3, 3)))
48
    nn.add(Activation("relu"))
49
    nn.add(MaxPooling2D(pool_size=(2, 2)))
50
    nn.add(Dropout(0.25))
51
52
    nn.add(Flatten())
53
    nn.add(Dense(para["dense.0"]))
54
    nn.add(Activation("relu"))
55
    nn.add(Dropout(0.5))
56
    nn.add(Dense(10))
57
    nn.add(Activation("softmax"))
58
59
    nn.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])
60
    nn.fit(X_train, y_train, epochs=5, batch_size=256)
61
62
    _, score = nn.evaluate(x=X_test, y=y_test)
63
64
    return score
65
66
67
search_space = {
68
    "filter.0": np.array([16, 32, 64, 128]),
69
    "dense.0": np.arange(100, 1000, 100),
70
}
71
72
73
opt = BayesianOptimizer(search_space)
74
opt.search(cnn, n_iter=5)
75