从Keras模型获得不同的结果。评估和模型预测

问题描述 投票:1回答:1

我已经训练了一个模型,使用word2vec预测主题类别,并使用keras预测了lstm模型,并且在训练过程中获得了约98%的准确性,我保存了模型,然后将其加载到另一个文件中以尝试测试集,我使用了model.evaluatemodel.predict,结果非常不同。

我正在使用带有tensorflow的keras作为后端,模型摘要为:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_1 (LSTM)                (None, 22)                19624     
_________________________________________________________________
dropout_1 (Dropout)          (None, 22)                0         
_________________________________________________________________
dense_1 (Dense)              (None, 40)                920       
_________________________________________________________________
activation_1 (Activation)    (None, 40)                0         
=================================================================
Total params: 20,544
Trainable params: 20,544
Non-trainable params: 0
_________________________________________________________________
None

代码:

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.load_weights(os.path.join('model', 'lstm_model_weights.hdf5'))
score, acc = model.evaluate(x_test, y_test, batch_size=batch_size)

print()
print('Score: %1.4f' % score)
print('Evaluation Accuracy: %1.2f%%' % (acc*100))

predicted = model.predict(x_test, batch_size=batch_size)
acc2 = np.count_nonzero(predicted.argmax(1) == y_test.argmax(1))/y_test.shape[0]
print('Prediction Accuracy: %1.2f%%' % (acc2*100))

此代码的输出为

39680/40171 [============================>.] - ETA: 0s  
Score: 0.1192
Evaluation Accuracy: 97.50%
Prediction Accuracy: 9.03%

谁能告诉我我想念什么?

python machine-learning keras deep-learning predict
1个回答
0
投票

您应该在测试时删除辍学层。

© www.soinside.com 2019 - 2024. All rights reserved.