问题描述
这是我迄今为止制作的 lstm 集成,其中每个 lstm 模型和集成模型都有一个模型输入,并且它工作得很好。
model_input = Input(shape=(50,2))
def firstmodel(model_input):
hiddenA1 = LSTM(6,return_sequences=True)(model_input)
hiddenA2 = LSTM(4,activation='relu')(hiddenA1)
outputA = Dense(24)(hiddenA2)
model = Model(inputs= model_input,outputs= outputA,name="firstmodel")
return model
def secondmodel(model_input):
hiddenB1 = LSTM(30,return_sequences=True)(model_input)
hiddenB2 = LSTM(20,activation='relu')(hiddenB1)
outputB = Dense(24)(hiddenB2)
model = Model(inputs= model_input,outputs= outputB,name="secondmodel")
return model
firstmodel = firstmodel(model_input)
secondmodel = secondmodel(model_input)
models = [firstmodel,secondmodel]
def ensemble(models,model_input):
outputs = [model.outputs[0] for model in models]
y = Average()(outputs)
model = Model(inputs = model_input,outputs = y,name="ensemble")
return model
ensemblemodel = (models,model_input)
def evaluate_rmse(model):
pred = model.predict(X_test)
rmse = np.sqrt(mean_squared_error(y_test,pred))
return rmse
ensemble_rmse = evaluate_rmse(ensemblemodel)
但是当第一个和第二个模型有两个不同的模型输入时会发生什么:
first_model_input = Input(shape=(50,2))
second_model_input = Input(shape=(60,2))
那么集成模型的 model_input 是什么? 此外,对于集成模型,X_test 的形状是什么? 因为当只有一个输入时,比如 first_model_input = Input(shape=(50,2)) 那么 X_test.shape 是 (2554,50,2).
但是现在有两个输入,所以有两个 X_test 形状,一个用于第一个模型输入,即 (2554,2) 一个用于第二个模型输入,即 (2544,60,2)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)