class_docstr: Downsamples the audio signal in time dimension.
class_docstr_tok: ["Downsamples","the","audio","signal","in","time","dimension","."]
docstr: Shapes:
  - x: [B, T, C]
  - lengths: [B]
docstr_tok: ["Shapes",":","-","x",":","[","B",",","T",",","C","]","-","lengths",":","[","B","]"]
code: def forward(self, x, lengths):
      """Shapes:
      - x: [B, T, C]
      - lengths: [B]
      """
  
      if self.reduction == "striding":
          x, lengths = self.reduction_enc(x=x, lengths=lengths)
      else:
          x = torch.transpose(x, 1, 2)  # [B, C, T]
          lengths = calc_length(
              lengths=lengths,
              all_paddings=self.padding,
              kernel_size=self.kernel_size,
              stride=self.stride,
              ceil_mode=False,
              repeat_num=self._sampling_num,
          )
          x = self.reduction_enc(x)
          x = torch.transpose(x, 1, 2)  # [B, T, C]
  
      return x, lengths
  
imports: import math
  import torch
  import torch.nn
  from torch.nn import LayerNorm
  from nemo.collections.asr.parts.submodules.causal_convs import CausalConv1D, CausalConv2D
  from nemo.utils import logging
label_desc: Use image node_id 2 for calling the SubsamplingReductionModule obj's underlying member method code with example usage: obj.forward(x, lengths) and returns: x,  lengths