class_docstr: Creates a module that computes blurs and downsample a given feature map.
  See :cite:`zhang2019shiftinvar` for more details.
  Corresponds to the Downsample class, which does blurring and subsampling
  
  Args:
      channels = Number of input channels
      filt_size (int): binomial filter size for blurring. currently supports 3 (default) and 5.
      stride (int): downsampling filter stride
  
  Returns:
      torch.Tensor: the transformed tensor.
code: def __init__(self, channels, filt_size=3, stride=2) -> None:
      super(BlurPool2d, self).__init__()
      assert filt_size > 1
      self.channels = channels
      self.filt_size = filt_size
      self.stride = stride
      self.padding = [get_padding(filt_size, stride, dilation=1)] * 4
      coeffs = torch.tensor(
          (np.poly1d((0.5, 0.5)) ** (self.filt_size - 1)).coeffs.astype(
              np.float32
          )
      )
      blur_filter = (coeffs[:, None] * coeffs[None, :])[
          None, None, :, :
      ].repeat(self.channels, 1, 1, 1)
      self.register_buffer("filt", blur_filter, persistent=False)
  
file_path: pytorch-image-models/timm/layers/blur_pool.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  import numpy
  from .padding import get_padding
label_desc: Use image node_id 1 to create a new BlurPool2d object from inherited base classes: nn with example: obj = BlurPool2d(channels, filt_size, stride)