我使用的是科学工具包学习的流水线,最后是一个KerasClassfier。分类器将加载训练好的模型进行预测。但是在将分类器添加到管道中(总共3个组件)后,我收到一个错误模型:“KerasClassifier”对象在调用pipeline.predict_proba后没有属性“AttributeError”。我认为它希望我适合它,但我正在导入一个经过训练的模型。我在网上找不到相关的东西。非常感谢您的帮助。以下是我的代码的相关部分:
def buildEngModelByLoading():
# load json and create model
json_file = open('saved_model/cnnModel.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# load weights into new model
loaded_model.load_weights("saved_model/cnnModel.h5")
print("Loaded classifier model")
return loaded_model
engSklearnCnn = KerasClassifier(build_fn=buildEngModelByLoading, epochs=20, batch_size=batchSize, verbose=1)
#Append classfier to one pipeline
pipeline.steps.insert(2,['classifier',engSklearnCnn])`发布于 2018-04-02 16:24:21
这是因为在使用predict函数之前,您忘记了先使用compile方法。
buildEngModelByLoading().compile(optimizer = 'classifier_optimizer', loss = 'loss_function', metrics = 'metrics')然后只需用您使用的参数替换classifier_optimizer、loss_function、metrics即可。
https://stackoverflow.com/questions/49607704
复制相似问题