def build_network(input_image):
# Building the encoder of the Auto-encoder
x = Conv2D(16, (3, 3), activation ='relu', padding ='same')(input_image)
x = MaxPooling2D((2, 2), padding ='same')(x)
x = Conv2D(8, (3, 3), activation ='relu', padding ='same')(x)
x = MaxPooling2D((2, 2), padding ='same')(x)
x = Conv2D(8, (3, 3), activation ='relu', padding ='same')(x)
encoded_layer = MaxPooling2D((2, 2), padding ='same')(x)
# Building the decoder of the Auto-encoder
x = Conv2D(8, (3, 3), activation ='relu', padding ='same')(encoded_layer)
x = UpSampling2D((2, 2))(x)
x = Conv2D(8, (3, 3), activation ='relu', padding ='same')(x)
x = UpSampling2D((2, 2))(x)
x = Conv2D(16, (3, 3), activation ='relu')(x)
x = UpSampling2D((2, 2))(x)
decoded_layer = Conv2D(1, (3, 3), activation ='sigmoid', padding ='same')(x)
return decoded_layer