code: def __init__(
      self, channel, lr_mult, conv_decay, reduction=4, name=""
  ):
      super(SEModule, self).__init__()
      self.avg_pool = nn.AdaptiveAvgPool2D(1)
      mid_channels = int(channel // reduction)
      self.conv1 = nn.Conv2D(
          in_channels=channel,
          out_channels=mid_channels,
          kernel_size=1,
          stride=1,
          padding=0,
          weight_attr=ParamAttr(
              learning_rate=lr_mult, regularizer=L2Decay(conv_decay)
          ),
          bias_attr=ParamAttr(
              learning_rate=lr_mult, regularizer=L2Decay(conv_decay)
          ),
      )
      self.conv2 = nn.Conv2D(
          in_channels=mid_channels,
          out_channels=channel,
          kernel_size=1,
          stride=1,
          padding=0,
          weight_attr=ParamAttr(
              learning_rate=lr_mult, regularizer=L2Decay(conv_decay)
          ),
          bias_attr=ParamAttr(
              learning_rate=lr_mult, regularizer=L2Decay(conv_decay)
          ),
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from paddle.regularizer import L2Decay
  from ppdet.core.workspace import register, serializable
  from numbers import Integral
  from ..shape_spec import ShapeSpec
label_desc: Use image node_id 1 to create a new SEModule object from inherited base classes: nn with example: obj = SEModule(channel, lr_mult, conv_decay, reduction, name)