【发布时间】:2018-02-06 10:08:32
【问题描述】:
我正在尝试在 keras 中创建我的第一个集成模型。我的数据集中有 3 个输入值和一个输出值。
from keras.optimizers import SGD,Adam
from keras.layers import Dense,Merge
from keras.models import Sequential
model1 = Sequential()
model1.add(Dense(3, input_dim=3, activation='relu'))
model1.add(Dense(2, activation='relu'))
model1.add(Dense(2, activation='tanh'))
model1.compile(loss='mse', optimizer='Adam', metrics=['accuracy'])
model2 = Sequential()
model2.add(Dense(3, input_dim=3, activation='linear'))
model2.add(Dense(4, activation='tanh'))
model2.add(Dense(3, activation='tanh'))
model2.compile(loss='mse', optimizer='SGD', metrics=['accuracy'])
model3 = Sequential()
model3.add(Merge([model1, model2], mode = 'concat'))
model3.add(Dense(1, activation='sigmoid'))
model3.compile(loss='binary_crossentropy', optimizer='Adam', metrics=['accuracy'])
model3.input_shape
集成模型 (model3) 编译时没有任何错误,但在拟合模型时,我必须将相同的输入传递两次 model3.fit([X,X],y)。我认为这是一个不必要的步骤,而不是两次传递输入,我想为我的集成模型提供一个公共输入节点。我该怎么做?
【问题讨论】:
标签: python keras keras-layer ensemble-learning