问题描述
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
_________________________________________________________________