def create_network(**kwargs):
defaults = {
'timesteps': 128,
'data_dim': 14,
'nb_filter': 64,
'filter_length': 3,
'pool_length': 2
}
params = defaults
params.update(**kwargs)
network = Sequential()
network.add(Convolution1D(nb_filter=params['nb_filter'],
filter_length=params['filter_length'],
border_mode='valid',
activation='relu',
subsample_length=1,
input_shape=(params['timesteps'], params[
'data_dim'])))
network.add(MaxPooling1D(pool_length=params['pool_length']))
network.add(Dropout(0.5))
# network.add(Convolution1D(nb_filter=params['nb_filter'],
# filter_length=params['filter_length'],
# border_mode='valid',
# activation='relu',
# subsample_length=1))
# network.add(MaxPooling1D(pool_length=params['pool_length']))
# network.add(Dropout(0.5))
# network.add(Flatten())
# # Note: Keras does automatic shape inference.
# network.add(Dense(params['nb_filter'] * 4))
# network.add(Activation('relu'))
# network.add(Dropout(0.25))
network.add(LSTM(64))
network.add(Dropout(0.15))
network.add(Dense(1))
network.add(Activation('sigmoid'))
network.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
return network
评论列表
文章目录