9951 explained code solutions for 126 technologies


python-kerasHow can I use Python and Keras to create an autoencoder?


An autoencoder is a type of neural network that is used for learning efficient data encodings in an unsupervised manner. To create an autoencoder using Python and Keras, you need to define the architecture of the autoencoder, compile it, and then fit it to the data.

Example code

from keras.layers import Input, Dense
from keras.models import Model

# This returns a tensor
inputs = Input(shape=(784,))

# a layer instance is callable on a tensor, and returns a tensor
x = Dense(64, activation='relu')(inputs)
x = Dense(32, activation='relu')(x)

# This is the encoded representation of the input
encoded = Dense(16, activation='relu')(x)

# This is the decoding layer
x = Dense(32, activation='relu')(encoded)
x = Dense(64, activation='relu')(x)

# This is the reconstructed representation of the input
decoded = Dense(784, activation='sigmoid')(x)

# This is the model
autoencoder = Model(inputs, decoded)

# Compile the model
autoencoder.compile(optimizer='adam', loss='binary_crossentropy')

# Fit the model
autoencoder.fit(x_train, x_train,
                epochs=50,
                batch_size=256,
                shuffle=True,
                validation_data=(x_test, x_test))

Code explanation

  • Input: defines the input layer of the autoencoder, which has the same shape as the input data (e.g. 784 for MNIST)
  • Dense: defines a fully-connected layer in the network. Each Dense layer takes an input tensor and returns an output tensor.
  • Model: creates a Keras model from the layers defined above.
  • compile: compiles the model with an optimizer and a loss function.
  • fit: fits the model to the data.

Helpful links

Edit this code on GitHub