语法Keras层定义

问题描述

coe的第一和第二片段会产生相同的网络吗?

第一

conv_layer = layers.Conv2D(
    filter_dim,(3,3),activation='relu',kernel_initializer='he_normal',padding='same'
)(prevIoUs_layer)

第二:

conv_layer = layers.Conv2D(filter_dim,padding='same')(prevIoUs_layer)
conv_layer = layers.Activation('relu')(conv_layer)

解决方法

是的。 Keras API允许两者。

看这个例子:

#inline
encoder_input = keras.Input(shape=(28,28,1),name="img")
x = layers.Conv2D(16,3,activation="relu")(encoder_input)
encoder_output = layers.GlobalMaxPooling2D()(x)
encoder = keras.Model(encoder_input,encoder_output,name="encoder")
encoder.summary()


# in 2 sentences
encoder_input = keras.Input(shape=(28,3)(encoder_input)
x = layers.Activation("relu")(x)
encoder_output = layers.GlobalMaxPooling2D()(x)
encoder = keras.Model(encoder_input,name="encoder")
encoder.summary()

你得到

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
img (InputLayer)             (None,1)         0         
_________________________________________________________________
conv2d_25 (Conv2D)           (None,26,16)        160       
_________________________________________________________________
global_max_pooling2d_6 (Glob (None,16)                0         
=================================================================
Total params: 160
Trainable params: 160
Non-trainable params: 0
_________________________________________________________________
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
img (InputLayer)             (None,1)         0         
_________________________________________________________________
conv2d_26 (Conv2D)           (None,16)        160       
_________________________________________________________________
global_max_pooling2d_7 (Glob (None,16)                0         
=================================================================
Total params: 160
Trainable params: 160
Non-trainable params: 0
_________________________________________________________________