Как только обучение закончено, генерация прогнозов на тестовом наборе данных дает точность> 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, если у кого-то есть предложения, пожалуйста, поднимите, ура!