Я пытаюсь реализовать [yoon kim] 'CNN в классификации предложений'
https://arxiv.org/pdf/1408.5882.pdf
но точность моей модели cnn_static намного ниже, чем у нее
(около 76% и нет существенной разницы с моделью cnn_rand)
Понятия не имею, как его улучшить
следующий мой код и сюжет о модели
def get_cnn_static(input_data, data_label, vocabulary, embedding_matrix) :
num_sentence = input_data.shape[0] # #10662 for MR data set
sequence_length = input_data.shape[1] #n 56 for MR data set
num_classes = data_label.shape[1] #positve, negative 2 classes for MR data set
vocab_size = len(vocabulary) +1 # 18769 for MR data set
# model structure
inputs = Input(batch_shape=(None,sequence_length), name ='Input_Layer')
emb_layer = Embedding(vocab_size, emb_size, weights = [embedding_matrix], input_length=sequence_length, trainable=False, name='Embedding_Layer')(inputs)
pooled_outputs = []
for i in filter_size :
convLayer = Conv1D(feature_map, i, strides=1, activation='relu', use_bias=True, kernel_initializer = 'TruncatedNormal')(emb_layer)
convLayer = MaxPooling1D(pool_size = sequence_length-i +1)(convLayer)
pooled_outputs.append(convLayer)
merged = Concatenate()(pooled_outputs)
flatten_layer = Flatten()(merged)
dropout_layer = Dropout(p)(flatten_layer)
predictions = Dense(num_classes, activation='softmax')(dropout_layer)
model = Model(inputs=inputs, outputs=predictions)
return model
plot_model
Я уже проверил embedding_matrix. Но сделано правильно
Есть идея улучшить мою модель?