Keras中的连接层

Keras中的连接层,keras,deep-learning,keras-layer,Keras,Deep Learning,Keras Layer,我正试图实现这段代码,作为深度学习的初学者,我无法完全理解他们通过连接层生成“广度和深度神经网络”(WDNN)所做的工作。以下是他们用来生成WDNN的函数: def WDNN(data): input = Input(shape=(data.shape[1],)) x = Dense(256, activation='relu', kernel_regularizer=regularizers.l2(1e-8))(input) x = BatchNormalizatio

我正试图实现这段代码,作为深度学习的初学者,我无法完全理解他们通过连接层生成“广度和深度神经网络”(WDNN)所做的工作。以下是他们用来生成WDNN的函数:

 def WDNN(data):
    input = Input(shape=(data.shape[1],))
    x = Dense(256, activation='relu', kernel_regularizer=regularizers.l2(1e-8))(input)
    x = BatchNormalization()(x)
    x = Dropout(0.5)(x)
    x = Dense(256, activation='relu', kernel_regularizer=regularizers.l2(1e-8))(x)
    x = BatchNormalization()(x)
    x = Dropout(0.5)(x)
    x = Dense(256, activation='relu', kernel_regularizer=regularizers.l2(1e-8))(x)
    x = BatchNormalization()(x)
    x = Dropout(0.5)(x)
    wide_deep = concatenate([input, x])
    preds = Dense(1, activation='sigmoid', kernel_regularizer=regularizers.l2(1e-8))(wide_deep)
    model = Model(input=input, output=preds)
    opt = Adam(lr=np.exp(-1.0 * 9))
    model.compile(optimizer=opt,
                  loss='binary_crossentropy',
                  metrics=['accuracy'])
    return model
按照Keras开发者编写的《Keras深度学习》一书中的指导原则,我提出了以下功能。但我无法理解原始函数实际上是如何使用concatenate的,以及如何在自己的代码中实现它以执行相同的操作?如有任何提示,我们将不胜感激

def WDNN(data):
    model = models.Sequential()
    model.add(layers.Dense(256,  activation='relu', kernel_regularizer=regularizers.l2(1e-8), input_shape=(data.shape[1],)))
    model.add(layers.BatchNormalization())
    model.add(layers.Dropout(0.5))
    model.add(layers.Dense(256,  activation='relu', kernel_regularizer=regularizers.l2(1e-8)))
    model.add(layers.BatchNormalization())
    model.add(layers.Dropout(0.5))
    model.add(layers.Dense(256,  activation='relu', kernel_regularizer=regularizers.l2(1e-8)))
    model.add(layers.BatchNormalization())
    model.add(layers.Dropout(0.5))
    model.add(layers.Dense(1,  activation='sigmoid', kernel_regularizer=regularizers.l2(1e-8)))
    # Compile model
    opt = Adam(lr=np.exp(-1.0 * 9))
    model.compile(optimizer=opt,
          loss='binary_crossentropy',
          metrics=['accuracy'])
    return (model)

顺序模型无法实现您的目标。如果要实现
WDNN
,则需要函数模型。请参考。顺序模型无法实现您的目标。如果要实现
WDNN
,则需要函数模型。请参阅。