Regularization: deliberately handicapping training
A model with enough capacity will happily memorize its training set. Regularization layers fight that by injecting controlled difficulty so the network is forced to learn patterns that generalize instead of lookup tables that don't.
Dropout(0.3)— randomly zeros 30% of units during training only; at evaluation it's automatically a no-op. A starting rate of 0.2–0.5 is typical, tuned against your validation curve.SpatialDropout1D/SpatialDropout2D— drop entire feature maps rather than scattered elements. Better for conv layers, where neighboring pixels are so correlated that ordinary dropout barely removes information.
Reshaping: moving axes without moving data
Reshaping layers change how a tensor is viewed, not what it contains:
Flatten()— collapses everything after the batch axis to 1D, the classic bridge from conv stack toDense.Reshape(target_shape)— an arbitrary reshape; the element count must stay constant.Permute(dims)— reorders axes, e.g. swapping a channels-first layout to channels-last.
Merging: where multi-branch models join
Functional-API models with parallel branches need a layer to recombine them. Concatenate stacks features along an axis (the branches keep their identity); Add sums them element-wise (the basis of residual connections); Multiply and Average do the obvious. The merge layers are the seams of every non-linear architecture you'll build.