How to implement a convolutional autoencoder? I would like to implement a convolutional autoencoder in Tensorflow, but it is not clear how the decoder part should work.

Each layer of the encoding, is a convolutional layer with activation function and then a pooling layer.

But how will the decoding work? I know that I have to add padding in each layer, but what will be the reverse of the convolution? How will it reproduce the original data from much less variables and the padding?
Transposed Convolutions is what you are looking for, for more details take a look here:
https://medium.com/towards-data-science/types-of-convolutions-in-deep-learning-717013397f4d