Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 集成模型不';t采用与其子模型相同的输入_Python_Tensorflow_Keras_Lstm_Ensemble Learning - Fatal编程技术网

Python 集成模型不';t采用与其子模型相同的输入

Python 集成模型不';t采用与其子模型相同的输入,python,tensorflow,keras,lstm,ensemble-learning,Python,Tensorflow,Keras,Lstm,Ensemble Learning,为了减少方差,我在训练/测试期间使用了3个模型进行预测 test\u restorated=test\u restorated.restorated(len(test\u restorated),1,1) 预测1=模型1.预测(测试重塑,批量大小=批量大小) forecast2=模型2.预测(测试重塑,批量大小=批量大小) forecast3=模型3.预测(测试重塑,批量大小=批量大小) 模型1.save('lstm_模型1.h5') model2.save('lstm_model2.h5'))

为了减少方差,我在训练/测试期间使用了3个模型进行预测

test\u restorated=test\u restorated.restorated(len(test\u restorated),1,1)
预测1=模型1.预测(测试重塑,批量大小=批量大小)
forecast2=模型2.预测(测试重塑,批量大小=批量大小)
forecast3=模型3.预测(测试重塑,批量大小=批量大小)
模型1.save('lstm_模型1.h5')
model2.save('lstm_model2.h5'))
模型3.save('lstm_模型3.h5')
然后,为了将来使用,我创建了一个集合模型,使用下面的函数对3进行平均:

models=list()
nb_模型=3
对于范围内的i(nb_型号):
模型=负荷模型(“lstm模型”+str(i+1)+.h5”)
model_tmp.name=“model_”+str(i+1)
models.append(model_tmp)
def创建_集成(模型、模型输入):
#接收所有模型的所有输出
outModels=[模型中模型的模型(模型输入)]
#计算所有结果的平均值
outAvg=层平均值(outModels)
#合并为一个模型
modelMerge=Model(输入=Model\u输入,输出=outAvg,name='employee')
返回模型合并
模型输入=输入(形状=模型[0]。输入形状[1:]
modelEns=创建集合(模型、模型输入)
modelEns.summary()
modelEns.save('ensemble_model.h5'))
当我加载集合模型并在具有相同形状的相同数据上使用它时:

test\u restorated=test\u restorated.restorated(len(test\u restorated),1,1)
forecast1=模型。预测(测试重塑,批量大小=批量大小)
我得到一个错误: 您必须为占位符张量'lstm_2_input'输入一个值,该值带有数据类型float和shape[1,1,1] [{{node lstm_2_input}]]

函数生成3个子模型:

#模型
def拟合lstm(序列、批次大小、nb_历元、nb_神经元):
十、 y=列车[:,0:-1],列车[:,-1]
X=X.重塑(X.形状[0],1,X.形状[1])
模型=顺序()
添加(LSTM(nb_神经元,批次输入_形状=(批次大小,X.shape[1],X.shape[2]),stateful=True))
模型.添加(密度(1))
compile(loss='mean\u squared\u error',optimizer='adam')
对于范围内的i(nb_历元):
model.fit(X,y,epochs=1,batch\u size=batch\u size,verbose=0,shuffle=False)
model.reset_states()
回归模型
三种型号的概述:

层(类型)输出形状参数
=================================================================
lstm_1(lstm)(1,1)12
_________________________________________________________________
稠密的(1,1)2
=================================================================
集合模型概述:

_________________________________________________________________________________________________
层(类型)输出形状参数#连接到
==================================================================================================
输入_1(输入层)(无,1,1)0
__________________________________________________________________________________________________
模型_1(顺序)多个14输入_1[0][0]
__________________________________________________________________________________________________
模型_2(顺序)多个14输入_1[0][0]
__________________________________________________________________________________________________
模型_3(顺序)多个14输入_1[0][0]
__________________________________________________________________________________________________
平均值1(平均值)(无,1)0型号1[1][0]
型号2[1][0]
型号3[1][0]
==================================================================================================

您可以发布模型(模型1、模型2和模型3)定义吗?我在一个虚拟模型上尝试了相同的代码,效果很好。希望这能让sens:Layer(type)Output Shape Param#===========================================================================================================================================================================================================================================================================================================================================================================(1,1)12 uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu2============================================================================================================如果您编辑问题并添加生成模型的代码,可能会更好。我刚刚用所有详细信息更新了问题扫描您发布的模型(模型1、模型2和模型3)定义?我在一个虚拟模型上尝试了相同的代码,效果很好。希望这能让sens:Layer(type)Output Shape Param#===========================================================================================================================================================================================================================================================================================================================================================================(1,1)12 uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu2==========================================================================================================如果您编辑问题并添加代码以生成模型,可能会更好。我刚刚用所有详细信息更新了问题