class_docstr: Downsamples the audio signal in time dimension.
class_docstr_tok: ["Downsamples","the","audio","signal","in","time","dimension","."]
code: def __init__(
      self, reduction: str, d_model: int, reduction_factor: int = 2
  ):
      super().__init__()
  
      assert reduction in ["pooling", "striding"]
  
      self.reduction = reduction
      self.d_model = d_model
      self._sampling_num = int(math.log(reduction_factor, 2))
  
      if reduction == "pooling":
          self.reduction_enc = nn.MaxPool1d(
              kernel_size=reduction_factor
          )
          self.padding = 0
          self.kernel_size = self.reduction_enc.kernel_size
          self.stride = self.reduction_enc.stride
      elif reduction == "striding":
          self.reduction_enc = ConvSubsampling(
              subsampling="striding",
              subsampling_factor=reduction_factor,
              feat_in=d_model,
              feat_out=d_model,
              conv_channels=d_model,
              activation=nn.ReLU(),
              is_causal=False,
          )
  
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 1 to create a new SubsamplingReductionModule object from inherited base classes: nn with example: obj = SubsamplingReductionModule(reduction, d_model, reduction_factor)