Convolution arithmetic
A technical report on convolution arithmetic in the context of deep learning.
The code and the images of this tutorial are free to use as regulated by the licence and subject to proper attribution:
- [1] Vincent Dumoulin, Francesco Visin - A guide to convolution arithmetic for deep learning (BibTeX)
Convolution animations
N.B.: Blue maps are inputs, and cyan maps are outputs.




No padding, no strides
Arbitrary padding, no strides
Half padding, no strides
Full padding, no strides



No padding, strides
Padding, strides
Padding, strides (odd)
Transposed convolution animations
N.B.: Blue maps are inputs, and cyan maps are outputs.




No padding, no strides, transposed
Arbitrary padding, no strides, transposed
Half padding, no strides, transposed
Full padding, no strides, transposed



No padding, strides, transposed
Padding, strides, transposed
Padding, strides, transposed (odd)
Dilated convolution animations
N.B.: Blue maps are inputs, and cyan maps are outputs.

No padding, no stride, dilation
Generating the Makefile
From the repository's root directory:
$ ./bin/generate_makefile
Generating the animations
From the repository's root directory:
$ make all_animations
The animations will be output to the gif directory. Individual animation steps
will be output in PDF format to the pdf directory and in PNG format to the
png directory.
Compiling the document
From the repository's root directory:
$ make