code: def __init__(self, in_channels, bin_sizes=None):
      if bin_sizes is None:
          bin_sizes = [1, 2, 4, 6]
      super(PSPModule, self).__init__()
      out_channels = in_channels // len(bin_sizes)
      self.stages = nn.ModuleList(
          [
              self._make_stages(in_channels, out_channels, b_s)
              for b_s in bin_sizes
          ]
      )
      self.bottleneck = nn.Sequential(
          nn.Conv2d(
              in_channels + (out_channels * len(bin_sizes)),
              in_channels,
              kernel_size=3,
              padding=1,
              bias=False,
          ),
          nn.BatchNorm2d(in_channels),
          nn.ReLU(inplace=True),
          nn.Dropout2d(0.1),
      )
  
imports: import torch
  import logging
  import torch.nn
  import torch.nn.functional
  from torchvision import models
  from itertools import chain
  import numpy
  from collections import OrderedDict
label_desc: Use image node_id 1 to create a new PSPModule object from inherited base classes: nn with example: obj = PSPModule(in_channels, bin_sizes)