class_docstr: Stacking subsampling which simply stacks consecutive frames to reduce the sampling rate
  Args:
      subsampling_factor (int): The subsampling factor
      feat_in (int): size of the input features
      feat_out (int): size of the output features
      norm (bool): whether to use an MLP layer after the stacking along with normalization. default is False.
class_docstr_tok: ["Stacking","subsampling","which","simply","stacks","consecutive","frames","to","reduce","the","sampling","rate","Args",":","subsampling_factor","(","int",")",":","The","subsampling","factor","feat_in","(","int",")",":","size","of","the","input","features","feat_out","(","int",")",":","size","of","the","output","features","norm","(","bool",")",":","whether","to","use","an","MLP","layer","after","the","stacking","along","with","normalization",".","default","is","False","."]
code: def forward(self, x, lengths):
      b, t, h = x.size()
      pad_size = (
          self.subsampling_factor - (t % self.subsampling_factor)
      ) % self.subsampling_factor
      x = torch.nn.functional.pad(x, (0, 0, 0, pad_size))
      if self.pre_norm is not None:
          x = self.pre_norm(x)
      _, t, _ = x.size()
      x = torch.reshape(
          x,
          (
              b,
              t // self.subsampling_factor,
              h * self.subsampling_factor,
          ),
      )
      x = self.proj_out(x)
      lengths = torch.div(
          lengths + pad_size,
          self.subsampling_factor,
          rounding_mode="floor",
      )
      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 4 for calling the StackingSubsampling obj's underlying member method code with example usage: obj.forward(x, lengths) and returns: x,  lengths