RECEPTIVE FIELD

Tools ▸ Calculator

Receptive field calculator.

List your network's convolution and pooling layers. For every layer you get the output size and how much of the input one unit can see.

Start from

The 13 convolutions and 5 poolings, without the dense layers at the end.

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
RESULT18 LAYERS · 224×224 INPUT

RECEPTIVE FIELD

212×212 PX

OUTPUT 7×7 · JUMP 32 PX

#LayerOutFieldJumpStart
0INPUT224110
1CONV 3×3 P1224310
2CONV 3×3 P1224510
3POOL 2×2 /2112620.5
4CONV 3×3 P11121020.5
5CONV 3×3 P11121420.5
6POOL 2×2 /2561641.5
7CONV 3×3 P1562441.5
8CONV 3×3 P1563241.5
9CONV 3×3 P1564041.5
10POOL 2×2 /2284483.5
11CONV 3×3 P1286083.5
12CONV 3×3 P1287683.5
13CONV 3×3 P1289283.5
14POOL 2×2 /214100167.5
15CONV 3×3 P114132167.5
16CONV 3×3 P114164167.5
17CONV 3×3 P114196167.5
18POOL 2×2 /272123215.5

What the columns mean

The formulas

Each layer has a kernel size k, stride s, padding p and dilation d. Starting from field 1, jump 1 and start 0 at the input:

span   = d × (k − 1) + 1
out    = ⌊(n + 2p − span) / s⌋ + 1
field  = field_prev + (span − 1) × jump_prev
jump   = jump_prev × s
start  = start_prev + ((span − 1) / 2 − p) × jump_prev

The field grows by the kernel's span, measured in the previous layer's jumps. That's why a 3×3 convolution late in a network widens the field far more than one at the start: by then every step it takes covers many input pixels.

What it doesn't tell you

Learn where this comes from

Chapter 6 of the book builds the receptive field up one layer at a time, with a stack of maps you can turn and trace: one layer, stacking layers and stride and pooling. For stride, padding and dilation themselves, start with chapter 3.