code: def __init__(
      self, nclass, input_size, norm_layer=nn.BatchNorm2d, **kwargs
  ):
      super(_PSAHead, self).__init__()
      psa_out_channels = (input_size // 8) ** 2
      # self.psa = _PointwiseSpatialAttention(2048, 3600, norm_layer) # <-- original definition. Does not work. Why 3600?
      self.psa = _PointwiseSpatialAttention(
          2048, psa_out_channels, norm_layer
      )
  
      self.conv_post = _ConvBNReLU(1024, 2048, 1, norm_layer=norm_layer)
      self.project = nn.Sequential(
          _ConvBNReLU(4096, 512, 3, padding=1, norm_layer=norm_layer),
          nn.Dropout2d(0.1, False),
          nn.Conv2d(512, nclass, 1),
      )
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from pywick.models.segmentation.da_basenets.basic import _ConvBNReLU
  from pywick.models.segmentation.da_basenets.segbase import SegBaseModel
  from pywick.models.segmentation.da_basenets.fcn import _FCNHead
label_desc: Use image node_id 1 to create a new _PSAHead object from inherited base classes: nn with example: obj = _PSAHead(nclass, input_size, norm_layer)