Input shape: 28x28x256
Output shape: 28x28x320
L2 Pooling:
def L2_Pool(X):
X = X**2
X = tf.keras.layers.AveragePooling2D()(X)
X = tf.sqrt(X)
return X
Inception Module:
filter_1x1,
filter_3x3_1x1_reduce,
filter_3x3,
filter_5x5_1x1_reduce,
filter_5x5,
proj_pool):
conv_1x1 = tf.keras.layers.Conv2D(filters=filter_1x1, kernel_size=(1,1),strides=1,padding='same')(inputs)
conv_3x3_reduce = tf.keras.layers.Conv2D(filters=filter_3x3_1x1_reduce, kernel_size=(1,1),strides=1,padding='same')(inputs)
conv_3x3_reduce = tf.keras.layers.Conv2D(filters=filter_3x3, kernel_size=(3,3),strides=1,padding='same')(conv_3x3_reduce)
conv_5x5_reduce = tf.keras.layers.Conv2D(filters=filter_5x5_1x1_reduce, kernel_size=(1,1),strides=1,padding='same')(inputs)
conv_5x5_reduce = tf.keras.layers.Conv2D(filters=filter_5x5, kernel_size=(5,5),strides=1,padding='same')(conv_5x5_reduce)
# proj_layer = tf.keras.layers.MaxPool2D(pool_size=(3,3),strides=1,padding='same')(inputs)
proj_layer = L2_Pool(conv_5x5_reduce)
proj_layer = tf.keras.layers.Conv2D(filters=proj_pool, kernel_size=(1,1),strides=1,padding='same')(proj_layer)
print(f"Shape: {conv_1x1.shape}")
print(f"Shape: {conv_3x3_reduce.shape}")
print(f"Shape: {conv_5x5_reduce.shape}")
print(f"Shape: {proj_layer.shape}")
return tf.keras.layers.concatenate([conv_1x1, conv_3x3_reduce, conv_5x5_reduce,proj_layer], axis=3)
Researcher used L2 Pooling but don’t understand how to resolve this shape issue or do i have to up sample after pooling ?
Error Message: