import tensorflow as tf from tensorflow.keras import layers, models def build_autoencoder(input_shape): input_img = layers.Input(shape=input_shape) # Encoder x = layers.Conv2D(32, (3, 3), activation='relu', padding='same')(input_img) x = layers.MaxPooling2D((2, 2), padding='same')(x) x = layers.Conv2D(16, (3, 3), activation='relu', padding='same')(x) encoded = layers.MaxPooling2D((2, 2), padding='same')(x) # Decoder x = layers.Conv2D(16, (3, 3), activation='relu', padding='same')(encoded) x = layers.UpSampling2D((2, 2))(x) x = layers.Conv2D(32, (3, 3), activation='relu', padding='same')(x) x = layers.UpSampling2D((2, 2))(x) decoded = layers.Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x) autoencoder = models.Model(input_img, decoded) autoencoder.compile(optimizer='adam', loss='mse') return autoencoder