Keras 如何在IMDB数据上获得90%以上的测试精度?

Keras 如何在IMDB数据上获得90%以上的测试精度?,keras,deep-learning,Keras,Deep Learning,我试图用IMDB数据训练一个模型。我期望列车的准确度达到96%以上,但我对测试的准确度不满意。现在我的期望是在测试数据上达到90%以上的测试准确度。我尝试使用几种分类器,但每次都能获得84%到89%的测试数据准确率。这里我将包括一些我已经尝试过的分类器。大多数情况下,我都尝试通过增加epoch或更改优化器来调整参数。现在我关心的是如何将测试精度提高到90%+ 到目前为止我尝试过的分类器: 第一: model = Sequential() model.add(Embedding(vocab_siz

我试图用IMDB数据训练一个模型。我期望列车的准确度达到96%以上,但我对测试的准确度不满意。现在我的期望是在测试数据上达到90%以上的测试准确度。我尝试使用几种分类器,但每次都能获得84%到89%的测试数据准确率。这里我将包括一些我已经尝试过的分类器。大多数情况下,我都尝试通过增加epoch或更改优化器来调整参数。现在我关心的是如何将测试精度提高到90%+

到目前为止我尝试过的分类器:

第一:

model = Sequential()
model.add(Embedding(vocab_size, 32, input_length = max_words))
model.add(Bidirectional(LSTM(32, return_sequences = True)))
model.add(GlobalMaxPool1D())
model.add(Dense(20, activation="relu"))
model.add(Dropout(0.05))
model.add(Dense(1, activation="sigmoid"))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train,y_train,validation_data=(x_test, y_test),epochs=10,batch_size=100)
第二:

    model = Sequential([
            Embedding(vocab_size, 32, input_length=max_words),
            Dropout(0.2),
            ZeroPadding1D(padding=1),
            Convolution1D(64, 5, activation='relu'),
            Dropout(0.2),
            MaxPooling1D(),
            Flatten(),
            Dense(100, activation='relu'),
            Dropout(0.2),
            Dense(1, activation='sigmoid')
        ])
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    model.fit(x_train,y_train,validation_data=(x_test, y_test),epochs=10,batch_size=100)

通过检查,我不认为像您正在使用的那些简单模型可以达到^90%。但是,您可以尝试使用预训练嵌入,而不是训练自己的嵌入。此外,我发现在keras中有BERT实现,提供IMBD分类的演示,它能够获得99%的acc。

您的目标是什么?是什么让你相信你应该能够获得90%的准确率?你能分享训练与验证损失图吗,这样我们就可以检查它是否欠拟合/过拟合?