gpt4 book ai didi

python - 将不同的 Keras 模型合并为一个

转载 作者:行者123 更新时间:2023-12-01 07:58:08 24 4
gpt4 key购买 nike

我正在尝试使用 LSTM 预测时间序列。为了减少方差,我尝试使用 3 个模型进行预测,并取 3 个模型的平均值,这给了我更好的结果。经过训练和验证后,我现在想保存我的模型以供将来预测。但是,由于我有 3 个不同的模型,我想知道是否可以将它们合并为一个模型,然后保存/加载它,或者我是否应该一一保存所有模型并稍后加载它们以供将来的预测?

# fit 3 models
model1 = fit_lstm(train_scaled, batch_size,nb_epochs, nb_neurons)
model2 = fit_lstm(train_scaled, batch_size,nb_epochs, nb_neurons)
model3 = fit_lstm(train_scaled, batch_size,nb_epochs, nb_neurons)

# predict on test set using 3 models
forecast1 = model1.predict(test_reshaped, batch_size=batch_size)
forecast2 = model2.predict(test_reshaped, batch_size=batch_size)
forecast3 = model3.predict(test_reshaped, batch_size=batch_size)

最佳答案

您正在寻找一个整体模型。

类似于以下内容:

from keras.models import load_model
models=[]
for i in range(numOfModels):

modelTemp=load_model(path2modelx) # load model
modelTemp.name="aUniqueModelName" # change name to be unique
models.append(modelTemp)


def ensembleModels(models, model_input):
# collect outputs of models in a list
yModels=[model(model_input) for model in models]
# averaging outputs
yAvg=layers.average(yModels)
# build model from same input and avg output
modelEns = Model(inputs=model_input, outputs=yAvg, name='ensemble')

return modelEns



model_input = Input(shape=models[0].input_shape[1:]) # c*h*w
modelEns = ensembleModels(models, model_input)
model.summary()

保存整体模型:

modelEns.save(<path_to_model>)

加载和预测:

modelEns=load_model(<path_to_model>)
modelEns.summary()
y=modelEns.predict(x)

Source

检查this article也是如此。

关于python - 将不同的 Keras 模型合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55848989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com