-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathmodels.py
More file actions
62 lines (44 loc) · 2.08 KB
/
models.py
File metadata and controls
62 lines (44 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from keras.models import Model
from keras.layers import Input, Dense, Dropout, Flatten
def deep(features_shape, num_classes, act='relu'):
# Input
x = Input(name='inputs', shape=features_shape, dtype='float32')
o = x
# Flatten
o = Flatten(name='flatten')(o)
# Dense layer
o = Dense(512, activation=act, name='dense1')(o)
o = Dense(512, activation=act, name='dense2')(o)
o = Dense(512, activation=act, name='dense3')(o)
# Predictions
o = Dense(num_classes, activation='softmax', name='pred')(o)
# Print network summary
Model(inputs=x, outputs=o).summary()
return Model(inputs=x, outputs=o)
from keras.layers import Conv2D, MaxPooling2D, BatchNormalization
def deep_cnn(features_shape, num_classes, act='relu'):
x = Input(name='inputs', shape=features_shape, dtype='float32')
o = x
# Block 1
o = Conv2D(32, (3, 3), activation=act, padding='same', strides=1, name='block1_conv', input_shape=features_shape)(o)
o = MaxPooling2D((3, 3), strides=(2,2), padding='same', name='block1_pool')(o)
o = BatchNormalization(name='block1_norm')(o)
# Block 2
o = Conv2D(32, (3, 3), activation=act, padding='same', strides=1, name='block2_conv')(o)
o = MaxPooling2D((3, 3), strides=(2,2), padding='same', name='block2_pool')(o)
o = BatchNormalization(name='block2_norm')(o)
# Block 3
o = Conv2D(32, (3, 3), activation=act, padding='same', strides=1, name='block3_conv')(o)
o = MaxPooling2D((3, 3), strides=(2,2), padding='same', name='block3_pool')(o)
o = BatchNormalization(name='block3_norm')(o)
# Flatten
o = Flatten(name='flatten')(o)
# Dense layer
o = Dense(64, activation=act, name='dense')(o)
o = BatchNormalization(name='dense_norm')(o)
o = Dropout(0.2, name='dropout')(o)
# Predictions
o = Dense(num_classes, activation='softmax', name='pred')(o)
# Print network summary
Model(inputs=x, outputs=o).summary()
return Model(inputs=x, outputs=o)