Before you can read the parent architecture note, you need to own every symbol it throws at you. This page builds each one from nothing. Read top to bottom — each idea is a brick the next one stands on.
Look at the figure. The heightH counts rows, the widthW counts columns, and the channel countC counts how many grids are stacked. We write the whole thing as a shape:
H×W×C
H (height) ::: number of rows of pixels — the picture is H tall.
W (width) ::: number of columns of pixels — the picture is W wide.
C (channels) ::: how many grids are stacked; 1 for gray, 3 for colour, and many more inside the network (each learned filter makes a new grid).
In the figure, follow the coral filter box: with s=2 it lands on positions 0,2,4,… — every other spot — so half as many outputs come out along each direction.
Look at the pale border in the figure — those are the P zero-pixels. With them, a filter centred on a corner still has neighbours to multiply, instead of hanging off the edge.
The figure shows a 2×2 max-pool: each coloured 2×2 block of the input collapses to a single output cell holding its largest value.
s (stride) ::: the jump size of the sliding filter; larger s makes a smaller output but throws away detail.
P (padding) ::: extra pixels added on each side; keeps the grid from shrinking and lets corners be processed.
The parent counts weights as kl2⋅Cl−1⋅Cl. Adding the biases (one per output channel) gives the true total:
Paramsl=weightskl2⋅Cl−1⋅Cl+biasesCl
Read the weight term left to right: each of the Cl output channels needs one filter; each filter is kl×kl (=kl2 numbers) per input channel, and there are Cl−1 input channels — multiply them. Then add one bias for each of the Cl outputs.
Hout,Wout ::: the height and width of the output grid, from ⌊(H+2P−k)/s⌋+1 (and the same for W).
Cin,Cout ::: channels going into and coming out of a layer — same as Cl−1 and Cl.
To reach an early weight, backprop multiplies many small rates together (the parent's long chain of ∂ai−1∂ai). Multiply many numbers below 1 and the product shrinks toward zero — that is the vanishing gradient problem.
Activation (ReLU) ::: a function applied after each layer; ReLU keeps positives, zeros negatives — adds the "nonlinearity" that lets stacked layers learn curved shapes.
Batch normalization ::: rescales each channel to a stable mean/variance during training so gradients behave.
Softmax ::: turns the final list of scores into probabilities that sum to 1.
FC (fully-connected) layer ::: every input connects to every output — used at the very end to make the class decision.
Concatenate (depth) ::: stack feature-grids from parallel branches into one taller stack (Inception uses this).
I can state what H×W×C means for a picture ::: height rows, width columns, C stacked grids (channels).
I know why channels grow inside a network ::: each learned filter produces one new feature-grid, so C counts grids at that layer.
I can say what k is and how many numbers a filter holds ::: k is the filter's side; it holds k2 numbers per input channel.
I know why CNN "convolution" is really cross-correlation ::: it slides the kernel without flipping it; learned weights absorb any flip.
I know two ways to shrink the grid and one way to keep it the same ::: stride s>1 or pooling shrink; padding P (e.g. P=1 for 3×3) keeps the size.
I can compute an output size from H,k,P,s and name valid vs same padding ::: Hout=⌊(H+2P−k)/s⌋+1; valid =P=0, same =P=⌊k/2⌋.
I know when pixels get dropped ::: when (H+2P−k)mods=0 the floor discards leftover edge pixels.
I can define n and compute RF for n stacked stride-1 3×3 convs ::: n = number of stacked conv layers; RF=2n+1.
I can adjust RF for a stride or pool using the jump j ::: RFnew=RFold+(k−1)j, and j multiplies by each stride.
I can state the parameter count of a conv layer with bias, defining kl and Cl ::: kl2⋅Cl−1⋅Cl+Cl, where kl,Cl are kernel/channels at layer l.
I can derive the FLOPs formula (defining Hout,Wout) and why doubling channels balances pooling ::: cost per output number k2Cin, times HoutWout positions, times Cout channels, plus HoutWoutCout bias adds.
I know what C0 is ::: the channel count of the first stage (typically 64), doubled per stage as C0⋅2l.
I know what ∂L/∂w means and why "+1" stops it vanishing ::: rate of change of error w.r.t. a weight; the skip path guarantees a nonzero gradient route.