我正在使用广泛而深入的模型,并试图用keras实现一些基本的东西。我能够使用功能性角膜生成一个简单的模型和一个深层的nn。但是,我在将两者结合在一起时遇到了一些问题。
###############################################################################
###############################################################################
inputs = Input(shape = (X_train.shape[1],))
output = Dense(1, activation='linear')(inputs)
wide = Model(inputs, output)
wide.compile(
optimizer = 'adam',
loss = 'mean_squared_error',
metrics = ['accuracy']
)
wide.fit(x = X_train, y = Y_train, epochs = 10, verbose = 1)
###############################################################################
###############################################################################
inputs = Input(shape = (X_train.shape[1],))
x = Dense(200, kernel_initializer = 'uniform',
activation = 'relu')(inputs)
x = Dense(100, activation = 'relu')(x)
x = Dense(50, activation = 'relu')(x)
output = Dense(1, activation='sigmoid')(x)
deep = Model(inputs, output)
deep.compile(
optimizer = 'adam',
loss = 'mean_squared_error',
metrics = ['accuracy']
)
deep.fit(x = X_train, y = Y_train, epochs = 10, verbose = 1)
###############################################################################
###############################################################################
merge = Concatenate([wide, deep])
hidden1 = Dense(10, activation='relu')(merge)
output = Dense(1, activation='sigmoid')(hidden1)
model = Model(inputs=visible, outputs=output)
如何将两个模型串联起来?
我收到此错误:
ValueError: Layer dense_36 was called with an input that isn't a symbolic tensor. Received type: <class 'keras.layers.merge.Concatenate'>. Full input: [<keras.layers.merge.Concatenate object at 0x1a1adda588>]. All inputs to the layer should be tensors.
一个Concatenate
层工程完全按照别人。
所以:
merge = Concatenate()([wide.outputs,deep.outputs])
合并的模型必须从头两个输入开始:
model = Model(inputs=[wide.inputs,deep.inputs], outputs=output)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句