def createmodel(self):
"""
create cnn model structure
:return: model structure
"""
max_features = max(self.words.values()) + 1 # input dims
model = Sequential()
if self.W is None:
model.add(Embedding(max_features, self.embedding_length, input_length=self.maxlen, dropout=0.2))
else:
model.add(Embedding(max_features, self.layer1_size, weights=[self.W], input_length=self.maxlen, dropout=0.2))
model.add(Convolution1D(nb_filter=self.nb_filter,
filter_length=self.filter_length,
border_mode='valid',
activation='relu',
subsample_length=1))
model.add(MaxPooling1D(pool_length=model.output_shape[1]))
model.add(Flatten())
model.add(Dense(self.hidden_dims))
model.add(Dropout(0.2))
model.add(Activation('relu'))
model.add(Dense(self.nb_classes))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=["accuracy"])
return model
评论列表
文章目录