-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCreate_CNN_Model.py
More file actions
20 lines (19 loc) · 1.05 KB
/
Copy pathCreate_CNN_Model.py
File metadata and controls
20 lines (19 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from keras import regularizers
from keras.models import Sequential
from keras.layers import Dense, Conv1D, MaxPooling1D, GlobalMaxPooling1D, BatchNormalization, Dropout
from keras.optimizers import Adam
def create_cnn_model(conv=[32, 16], window=[3,3], pool=3, dropout=0.3, penalty=0.01, input_shape=25, batch_normalize=False, initial_lr=0.001):
model = Sequential()
model.add(Conv1D(conv[0], window[0], activation='relu', kernel_initializer = 'he_normal',
kernel_regularizer=regularizers.l2(penalty), input_shape=(None,input_shape)))
model.add(MaxPooling1D(pool))
model.add(Conv1D(conv[1], window[1], activation='relu', kernel_initializer = 'he_normal',
kernel_regularizer=regularizers.l2(penalty)))
model.add(GlobalMaxPooling1D())
if batch_normalize:
model.add(BatchNormalization())
model.add(Dropout(dropout))
model.add(Dense(2, activation='softmax'))
optimizer = Adam(lr=initial_lr)
model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy'])
return model