Facing problem in implementing L2 pooling for FaceNet model

l2

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: