2
$\begingroup$

Stride is used in at least two operations: convolution and pooling. Both operations can be viewed as applying a kernel function on input using a kernel (filter).

Stride determines the amount of "jump" the kernel needs to perform on the input. Obviously, in the extreme case, if the kernel size and stride are one, the input size is the same as the output size. In all other cases, the output size is less than the input size.

So, I am guessing that down-sampling is the only purpose of using stride in any case. Am I true? Else, are there any cases in which stride is used in order to serve another purpose?

$\endgroup$

1 Answer 1

3
$\begingroup$

The general purpose of stride (along with padding) is to determine the spatial dimensions of the output. So, with appropriate stride (and padding), you can also make the spatial dimensions of the output volume bigger than the ones of the input volume. In fact, transpose convolution, which is used e.g. in the context of convolutional auto-encoders, is based on this idea. Pooling is used for downsampling.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .