conv_arithmetic README

The project's README from github.com/vdumoulin/conv_arithmetic. As one markdown file: README.md.

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:

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

conv_arithmetic (vdumoulin/conv_arithmetic)

Searching Database…

14.7K ·GitHub
archived
What is this?This is a technical report (paper) explaining convolution arithmetic in deep learning, paired with a set of animated GIFs that visualize how different convolution operations behave.
Is this a library or a paper?It is a LaTeX document plus pre-rendered animations, not a code library you import into a project; it is meant to be read and referenced.
How do I generate the animations or compile the document myself?You generate a Makefile and then the animations from the repository root, which outputs GIFs to the gif directory, PDF/PNG steps to pdf/png directories, and you can compile the full document separately.
Do I need LaTeX or other tools to build this?Yes, since this is a TeX-based technical report, you need a LaTeX toolchain (and whatever Makefile targets use) to generate the Makefile, animations, and compile the document.
Is this project still maintained?No, the repository is archived, so it is a finished, static reference rather than an actively developed project.
Who is this useful for?It's aimed at students and practitioners of deep learning who want an intuitive, visual understanding of how convolution, transposed convolution, and dilated convolution operations transform input/output dimensions.
What kinds of convolution animations are included?The repo covers standard convolution with various padding/stride combinations, transposed convolution equivalents, and dilated convolution, all shown with blue input maps and cyan output maps.
How should I cite this work?Cite the accompanying paper 'A guide to convolution arithmetic for deep learning' by Vincent Dumoulin and Francesco Visin, as noted in the README with a BibTeX reference.
Why are the animations useful instead of just reading equations?They visually demonstrate how padding, stride, and dilation choices change the spatial relationship between input and output feature maps, which is harder to grasp from formulas alone.
Creator
vdumoulin
Size
5.5 MB
Stars
14.7K
Age
10y
Commits · 90 Days