Answers.Body: <p>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, <a href="https://arxiv.org/pdf/1603.07285.pdf" rel="nofollow noreferrer">transpose convolution</a>, which is used e.g. in the context of <a href="https://www.tensorflow.org/tutorials/generative/cvae" rel="nofollow noreferrer">convolutional auto-encoders</a>, is based on this idea. Pooling is used for downsampling.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-01-16T11:36:35.697Z
Answers.LastActivityDate: 2022-01-16T11:36:35.697Z
Answers.UserDisplayName: nbro
Body: <p>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).</p>
  <p>Stride determines the amount of &quot;jump&quot; 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.</p>
  <p>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?</p>
  
Tags: <convolutional-neural-networks><convolution><pooling><stride>
Title: Is down-sampling the only purpose of using stride?
UserDisplayName: hanugm
ThreadText: # Is down-sampling the only purpose of using stride?
  
  (Asked by: username_0 on 2022-01-16)
  
  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?
  
  **Tags:** convolutional-neural-networks, convolution, pooling, stride
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2022-01-16. Score: 3 | Accepted answer
  
  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](https://arxiv.org/pdf/1603.07285.pdf), which is used e.g. in the context of [convolutional auto-encoders](https://www.tensorflow.org/tutorials/generative/cvae), is based on this idea. Pooling is used for downsampling.
  
  
  ---
  
  