class_docstr: This class implements a learnable Gaussian lowpass pooling from
  
  Neil Zeghidour, Olivier Teboul, F{'e}lix de Chaumont Quitry & Marco Tagliasacchi, "LEAF: A LEARNABLE FRONTEND
  FOR AUDIO CLASSIFICATION", in Proc. of ICLR 2021 (https://arxiv.org/abs/2101.08596)
  
  Arguments
  ---------
  in_channels : int
      The number of input channels.
  kernel_size: int
      Kernel size of the gaussian lowpass filters.
  stride : int
      Stride factor of the convolutional filters. When the stride factor > 1,
      a decimation in time is performed.
  padding : str
      (same, valid). If "valid", no padding is performed.
      If "same" and stride is 1, output shape is the same as the input shape.
  padding_mode : str
      This flag specifies the type of padding. See torch.nn documentation
      for more information.
  bias : bool
      If True, the additive bias b is adopted.
  skip_transpose : bool
      If False, uses batch x time x channel convention of speechbrain.
      If True, uses batch x channel x time convention.
  
  Example
  -------
  >>> inp_tensor = torch.rand([10, 8000, 40])
  >>> low_pass_pooling = GaussianLowpassPooling(
  ...     40, kernel_size=401, stride=160,
  ... )
  >>> # parameters corresponding to a window of 25 ms and stride 10 ms at 16000 kHz
  >>> out_tensor = low_pass_pooling(inp_tensor)
  >>> out_tensor.shape
  torch.Size([10, 50, 40])
code: def __init__(
      self,
      in_channels,
      kernel_size,
      stride=1,
      initialization_constant=0.4,
      padding="same",
      padding_mode="constant",
      bias=True,
      skip_transpose=False,
  ):
      super(GaussianLowpassPooling, self).__init__()
      self.kernel_size = kernel_size
      self.stride = stride
      self.padding = padding
      self.padding_mode = padding_mode
      self.in_channels = in_channels
      self.skip_transpose = skip_transpose
      self.weights = nn.Parameter(
          torch.ones((1, 1, in_channels, 1)) * initialization_constant
      )
  
      if bias:
          self._bias = torch.nn.Parameter(
              torch.ones(
                  in_channels,
              )
          )
      else:
          self._bias = None
  
imports: import torch
  import logging
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new GaussianLowpassPooling object from inherited base classes: nn with example: obj = GaussianLowpassPooling(in_channels, kernel_size, stride, initialization_constant, padding, padding_mode, bias, skip_transpose)