如何解决如何制作不同形状的 lstm 集成
这是我迄今为止制作的 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 举报,一经查实,本站将立刻删除。