code: def __init__(
      self, in_channel, ratio=16, freeze_norm=False, norm_decay=0.0
  ):
      super(SpatialWeightingModule, self).__init__()
      self.global_avgpooling = nn.AdaptiveAvgPool2D(1)
      self.conv1 = ConvNormLayer(
          ch_in=in_channel,
          ch_out=in_channel // ratio,
          filter_size=1,
          stride=1,
          act="relu",
          freeze_norm=freeze_norm,
          norm_decay=norm_decay,
      )
      self.conv2 = ConvNormLayer(
          ch_in=in_channel // ratio,
          ch_out=in_channel,
          filter_size=1,
          stride=1,
          act="sigmoid",
          freeze_norm=freeze_norm,
          norm_decay=norm_decay,
      )
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from numbers import Integral
  from paddle import ParamAttr
  from paddle.regularizer import L2Decay
  from paddle.nn.initializer import Normal, Constant
  from ppdet.core.workspace import register
  from ppdet.modeling.shape_spec import ShapeSpec
  from ppdet.modeling.ops import channel_shuffle
  from ..None import layers
label_desc: Use image node_id 1 to create a new SpatialWeightingModule object from inherited base classes: nn with example: obj = SpatialWeightingModule(in_channel, ratio, freeze_norm, norm_decay)