code: def __init__(self, in_size, in_channels, out_channels, setting):
      super(PyramidPoolingModule, self).__init__()
  
      self.features = []
  
      for s in setting:
          pool_size = int(math.ceil(float(in_size[0]) / s)), int(
              math.ceil(float(in_size[1]) / s)
          )
          self.features.append(
              nn.Sequential(
                  nn.AvgPool2d(
                      kernel_size=pool_size,
                      stride=pool_size,
                      ceil_mode=True,
                  ),
                  nn.Conv2d(
                      in_channels,
                      out_channels,
                      kernel_size=1,
                      bias=False,
                  ),
                  nn.BatchNorm2d(out_channels),
                  nn.ReLU(inplace=True),
                  nn.UpsamplingBilinear2d(size=in_size),
              )
          )
  
      self.features = nn.ModuleList(modules=self.features)
  
file_path: pywick/pywick/models/segmentation/testnets/psp_saeed.py
imports: import torch
  import torch.nn.init
  import torch.nn
  from torchvision import models
  import torch.nn.functional
  import numpy
  import math
label_desc: Use image node_id 1 to create a new PyramidPoolingModule object from inherited base classes: nn with example: obj = PyramidPoolingModule(in_size, in_channels, out_channels, setting)