培训结束后,在测试数据集上生成预测的准确性将达到70。
然后,我使用model.save(...)
方法保存模型。
当尝试在单独的会话中加载模型时,预测约为20秒。
我可以确认我正在使用与训练后预测相同的测试数据集和相同的预处理步骤。
为了克服对不同标记器的疑问,我将标记器保存到一个tokenizer.pickle
文件中,该文件将在对测试文本数据进行texts_to_sequences
和pad_sequences
之前加载(这没有任何区别)。
我已经尝试在加载后编译模型,然后再进行预测,但是效果也不好。
model.save('model.h5') #for saving the model
------------------------------------------------------------
#Predicting after saving on a different session
trained_model = load_model('model.h5') #for loading the model in a different session.
# load tokenizer
tokenizer = Tokenizer()
with open('trained_model/tokenizer.pickle', 'rb') as handle:
tokenizer = pickle.load(handle)
test_revs = pd.read_csv('test_dataset.csv')
test_revs.loc[:, 'rating'] = test_revs['rating'].apply(points_to_class) #converting decimal ratings to integer classes
actual_texts = test_revs['text']
actual_ratings = test_revs['rating']
final_Y_test = to_categorical(actual_ratings, 5)
actual_text_tokens = add_doc_to_vocab(actual_texts.tolist())
sequences_test = tokenizer.texts_to_sequences(actual_text_tokens)
X_test = pad_sequences(sequences_test, maxlen=1939, padding='post')
# Predictions
pred_test = trained_model.predict(X_test)
pred_test = [np.argmax(x) for x in pred_test]
# Actual
true_test = final_Y_test
true_test = [np.argmax(x) for x in true_test]
# Find accuracies
accuracy = accuracy_score(true_test, pred_test)
print("The total accuracy is : ", accuracy)
我是TensorFlow的新手,如果有人有任何建议,请加油,加油!