我正在嘗試使用以下代碼保存并重新加載 KerasClassifier 模型:
def baseline_model():
model = Sequential()
model.add(Dense(8, input_dim=80, activation='relu'))
model.add(Dense(4, activation='softmax')) # output layer, with number of classes
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(lr=0.01), metrics=['accuracy'])
return model
model.model.save('model')
#re-load model
model2 = KerasClassifier(build_fn=baseline_model, epochs=100)
model2.model = load_model('model')
preds = model2.predict(testX)
該模型似乎保存正常,但是當我重新加載它并嘗試生成預測時,出現以下錯誤:“KerasClassifier”物件沒有屬性“classes_”
我正在按照檔案中的步驟操作,所以我不確定為什么這不起作用。在保存模型之前,我確實擬合了模型并成功地將其用于預測。
** 更新:我也試過省略這一行:
model2 = KerasClassifier(build_fn=baseline_model, epochs=100)
并且只是運行
model2.model = load_model('model')
但后來我得到
name 'model2' is not defined
uj5u.com熱心網友回復:
如果您只需要重新加載模型并從中生成預測,那么您不需要它,KerasClassifier因為它只是將您的 Keras 模型轉換為scikit-learn模型。所以你可以洗掉這些行:
model2 = KerasClassifier(build_fn=baseline_model, epochs=100)
model2.model = load_model('model')
而只是寫這個:
model2 = load_model('model')
然后你就可以model2.predict(testX)正常運行了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/318297.html
