code: def __init__(
      self,
      nclass,
      norm_layer=nn.BatchNorm,
      norm_kwargs=None,
      feature_map_height=60,
      feature_map_width=60,
      **kwargs,
  ):
      super(_PSPHead, self).__init__()
      self.psp = _PyramidPooling(
          2048,
          height=feature_map_height,
          width=feature_map_width,
          norm_layer=norm_layer,
          norm_kwargs=norm_kwargs,
      )
      with self.name_scope():
          self.block = nn.HybridSequential(prefix="")
          self.block.add(
              nn.Conv2D(
                  in_channels=4096,
                  channels=512,
                  kernel_size=3,
                  padding=1,
                  use_bias=False,
              )
          )
          self.block.add(
              norm_layer(
                  in_channels=512,
                  **({} if norm_kwargs is None else norm_kwargs),
              )
          )
          self.block.add(nn.Activation("relu"))
          self.block.add(nn.Dropout(0.1))
          self.block.add(
              nn.Conv2D(in_channels=512, channels=nclass, kernel_size=1)
          )
  
imports: from mxnet.gluon import nn
  from mxnet.context import cpu
  from mxnet.gluon.nn import HybridBlock
  from .segbase import SegBaseModel
  from .fcn import _FCNHead
label_desc: Use image node_id 1 to create a new _PSPHead object from inherited base classes: HybridBlock with example: obj = _PSPHead(nclass, norm_layer, norm_kwargs, feature_map_height, feature_map_width)