Why strided convolutions?

Strided convolutions theoretically shrinks the output. Then what is the role of strided convolutions and how it will be helpful in actual or real time scenarios?

You can consider all convolutions to be “strided”, but the default stride is 1. If you use a stride greater than 1, then it means that there is less “overlap” of the input values that affect each output value. In the extreme case that stride == filter size, then there is zero overlap and there are no shared inputs feeding into any one of the output values. Of course you could implement an even more extreme case in which s > f, which would mean that you are literally ignoring some of the inputs altogether.

It turns out that stride > 1 is commonly used. Stay tuned and you will see many examples as we go through this course.


Thanks a lot for the reply.

It’s also worth saying that even stride = 1 convolutions reduce the size of the output at least in terms of height and width, unless you specifically use padding to counteract that. But it is true that stride > 1 will reduce the output size more than stride = 1 will, in the absence of padding. It is very typical that the height and width decrease significantly as you go through the layers of a ConvNet, but the number of channels typically increases.