Pooling layers
In the previous section, we explained how to increase the receptive field of the units by using stride > 1. But we can also do this with the help of pooling layers. A pooling layer splits the input slice into a grid, where each grid cell represents a receptive field of several units (just as a convolutional layer does). Then, a pooling operation is applied over each cell of the grid. Pooling layers don’t change the volume depth because the pooling operation is performed independently on each slice. They are defined by two parameters: stride and receptive field size, just like convolutional layers (pooling layers usually don’t use padding).
In this section, we’ll discuss three types of pooling layers – max pooling, average pooling, and global average pooling (GAP). These three types of pooling are displayed in the following diagram:
Figure 4.9 – Max, average, and global average pooling
Max pooling...