【问题标题】:Why I can't show score of loaded pickled deep learning model?为什么我不能显示加载的腌制深度学习模型的分数?
【发布时间】:2020-05-28 02:17:28
【问题描述】:

我正在尝试为我的情绪分析项目比较不同的算法。当我尝试加载我的腌制预训练模型时,我收到此错误:

AttributeError: 'Sequential' 对象没有属性 'score3_9' 错误

这是我加载模型的代码:

import pickle
import joblib

load_pickle_file = open('LSTM_MODEL3_9.pkl', 'rb')
loaded_model = pickle.load(load_pickle_file)

result = loaded_model.score3_9()

print(result) 

这是我的模型的代码:

classifier= Sequential()
classifier.add(Embedding(vocab_size, 100, weights=[embedding_matrix] ,mask_zero=True))
classifier.add(LSTM(64,dropout=0.4,recurrent_dropout=0.5,return_sequences=True))
classifier.add(LSTM(64,dropout=0.5,recurrent_dropout=0.4,return_sequences=True))
classifier.add(LSTM(64,dropout=0.2,recurrent_dropout=0.2))
classifier.add(Dense(1, activation='sigmoid'))
classifier.compile(loss = 'binary_crossentropy', optimizer='adam',metrics = ['accuracy'])
classifier.summary()

LSTM_FIT = classifier.fit(X_train, y_train, batch_size=64, epochs=6, verbose=1)

score3_9 = classifier.evaluate(X_test, y_test, verbose=1)

print("Test Accuracy:", score3_9[1])
print("Test Score:", score3_9[0])


joblib.dump(classifier, 'LSTM_MODEL3_9.pkl')


with open('tokenizer.pickle', 'wb') as handle:
    pickle.dump(tokenizer, handle, protocol=pickle.HIGHEST_PROTOCOL)

【问题讨论】:

  • 错误是不言自明的,模型不包含您在代码中定义的随机变量。

标签: python keras deep-learning pickle


【解决方案1】:

您保存的分类器实际上并没有结果。它们似乎存储在变量score3_9 中。要解决此问题,或将结果与模型一起保存,可以使用以下代码:

# model definition here...

LSTM_FIT = classifier.fit(X_train, y_train, batch_size=64, epochs=6, verbose=1)

score3_9 = classifier.evaluate(X_test, y_test, verbose=1)

print("Test Accuracy:", score3_9[1])
print("Test Score:", score3_9[0])

save_data = {'classifier':classifier, 'score':score3_9}


joblib.dump(save_data, 'LSTM_MODEL3_9.pkl')


with open('tokenizer.pickle', 'wb') as handle:
    pickle.dump(tokenizer, handle, protocol=pickle.HIGHEST_PROTOCOL)

然后您可以像这样访问:

import pickle
import joblib

load_pickle_file = open('LSTM_MODEL3_9.pkl', 'rb')
loaded_model = pickle.load(load_pickle_file)

result = loaded_model['score']

print(result)

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    相关资源
    最近更新 更多