def cnn1d(input_shape, n_classes ):
"""
Input size should be [batch, 1d, 2d, ch] = (None, 3000, 1)
"""
model = Sequential(name='1D CNN')
model.add(Conv1D (kernel_size = (50), filters = 150, strides=5, input_shape=input_shape, activation='elu'))
model.add(BatchNormalization())
model.add(Dropout(0.2))
print(model.output_shape)
model.add(Conv1D (kernel_size = (8), filters = 200, strides=2, input_shape=input_shape, activation='elu'))
model.add(BatchNormalization())
model.add(Dropout(0.2))
print(model.output_shape)
model.add(MaxPooling1D(pool_size = (10), strides=(2)))
print(model.output_shape)
model.add(Conv1D (kernel_size = (8), filters = 400, strides=2, input_shape=input_shape, activation='elu'))
model.add(BatchNormalization())
model.add(Dropout(0.2))
print(model.output_shape)
model.add(Flatten())
model.add(Dense (700, activation='elu'))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(Dense (700, activation='elu'))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(Dense(n_classes, activation = 'softmax'))
model.compile(loss='categorical_crossentropy', optimizer=Adadelta(), metrics=[keras.metrics.categorical_accuracy])
return model
评论列表
文章目录