code: def __init__(
      self,
      num_channels: int,
      num_filters: int,
      reduction_ratio: float,
      name: str = None,
  ):
      super(SELayer, self).__init__()
  
      self.pool2d_gap = nn.AdaptiveAvgPool2D(1)
  
      self._num_channels = num_channels
  
      med_ch = int(num_channels / reduction_ratio)
      stdv = 1.0 / math.sqrt(num_channels * 1.0)
      self.squeeze = nn.Linear(
          num_channels,
          med_ch,
          weight_attr=paddle.ParamAttr(
              initializer=nn.initializer.Uniform(-stdv, stdv)
          ),
      )
  
      stdv = 1.0 / math.sqrt(med_ch * 1.0)
      self.excitation = nn.Linear(
          med_ch,
          num_filters,
          weight_attr=paddle.ParamAttr(
              initializer=nn.initializer.Uniform(-stdv, stdv)
          ),
      )
  
imports: import math
  from typing import List
  import paddle
  import paddle.nn
  import paddle.nn.functional
  import fcn_hrnetw48_cityscapes.layers
label_desc: Use image node_id 1 to create a new SELayer object from inherited base classes: nn with example: obj = SELayer(num_channels, num_filters, reduction_ratio, name)