如何在深度学习LSTM算法中提高模型的准确性?

时间:2019-05-03 07:36:24

标签: machine-learning deep-learning artificial-intelligence lstm data-science

我正在尝试通过“ LSTM多对一”模型预测“新闻”数据。我用过喀拉拉邦。我应该改变我的模型以提高准确性吗?

当前准确度是:55%

标签数量是:68

数据维度:

  train_seq_x (16254, 499)
  encoded_train_y (16254, 68)
  test_seq_x (1807, 499)
  test_y (1807,)

模型定义:

def train_model(classifier, feature_vector_train, label, feature_vector_valid, is_neural_net):

     classifier.fit(feature_vector_train, label,epochs=10,batch_size=32,validation_split=0.05,shuffle=False)

     #predict the labels on validation dataset
     predictions = classifier.predict(feature_vector_valid)

     if is_neural_net:
        predictions = predictions.argmax(axis=-1)

     return metrics.accuracy_score(predictions, test_y)

def create_rnn_lstm():
    input_layer = layers.Input((train_seq_x.shape[1], ))

    embedding_layer = layers.Embedding(len(word_index) + 1, 300, weights=[embedding_matrix], trainable=False)(input_layer)

    lstm_layer1 = layers.LSTM(128)(embedding_layer)

    output_layer2 = layers.Dense(68, activation="softmax")(lstm_layer1)

    model = models.Model(inputs=input_layer, outputs=output_layer2)
    model.compile(optimizer=optimizers.Adam(), loss='categorical_crossentropy',metrics=['accuracy'])

    return model

classifier = create_rnn_lstm()
classifier.summary()
accuracy = train_model(classifier, train_seq_x, encoded_train_y, test_seq_x, is_neural_net=True)
print "LSTM, Word Embeddings",  accuracy

0 个答案:

没有答案
相关问题