def cnn3adam_filter_l2(input_shape, n_classes):
"""
Input size should be [batch, 1d, 2d, ch] = (None, 3000, 3)
"""
print('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
print('use more L2 model instead!')
print('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
model = Sequential(name='cnn3adam_filter_l2')
model.add(Conv1D (kernel_size = (50), filters = 128, strides=5, input_shape=input_shape,
kernel_initializer='he_normal', activation='relu',kernel_regularizer=keras.regularizers.l2(0.005)))
model.add(BatchNormalization())
model.add(Dropout(0.2))
model.add(Conv1D (kernel_size = (5), filters = 256, strides=1, kernel_initializer='he_normal', activation='relu',kernel_regularizer=keras.regularizers.l2(0.005)))
model.add(BatchNormalization())
model.add(Dropout(0.2))
model.add(MaxPooling1D())
model.add(Conv1D (kernel_size = (5), filters = 300, strides=2, kernel_initializer='he_normal', activation='relu',kernel_regularizer=keras.regularizers.l2(0.005)))
model.add(BatchNormalization())
model.add(Dropout(0.2))
model.add(MaxPooling1D())
model.add(Flatten(name='conv3'))
model.add(Dense (1500, activation='relu', kernel_initializer='he_normal',name='fc1'))
model.add(BatchNormalization(name='bn1'))
model.add(Dropout(0.5, name='do1'))
model.add(Dense (1500, activation='relu', kernel_initializer='he_normal',name='fc2'))
model.add(BatchNormalization(name='bn2'))
model.add(Dropout(0.5, name='do2'))
model.add(Dense(n_classes, activation = 'softmax',name='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=Adam(lr=0.0001))
# print('reset learning rate')
return model
评论列表
文章目录