Receptive Field Lab

Click any cell in the conv1, conv2 or pool output. Its receptive field gets traced back through every earlier layer all the way to the input — both visually (red boxes) and numerically (table below). Tune the kernel size k, stride s and padding p of each layer to see how the receptive field grows.

Input

Conv 1

Conv 2

Max Pool

.

Input

image / activation

Conv 1 output

Conv 2 output

Pool output

Trace

Click any cell in conv1, conv2 or pool to see its receptive-field trace.

Useful summary

click a cell to populate
How the math works

For a single conv/pool layer with kernel k, stride s and padding p, output cell i reads input positions [i·s − p, i·s − p + k − 1]. Output size:

out = ⌊(in + 2p − k) / s⌋ + 1

Going backward through L layers, you propagate the range [low, high] using the same formula at every step. The effective stride after L layers (often called the "jump") is the product of all the strides; the theoretical receptive field grows as:

RF_L = RF_{L−1} + (k_L − 1) · jump_{L−1}

which is the "sum of dilated kernels". The visual trace below shows the actual coordinate range — it can stick out beyond the input when there's padding (shaded box outside the grid).

Things to try: