code: def __init__(
      self,
      ch_in,
      ch_out,
      stride,
      kernel_size,
      conv_num=1,
      norm_type="bn",
      norm_decay=0.0,
      norm_groups=32,
      bias_on=False,
      lr_scale=1.0,
      freeze_norm=False,
      initializer=Normal(mean=0.0, std=0.01),
      skip_quant=False,
      act="relu",
  ):
      super(MobileOneBlock, self).__init__()
  
      self.ch_in = ch_in
      self.ch_out = ch_out
      self.kernel_size = kernel_size
      self.stride = stride
      self.padding = (kernel_size - 1) // 2
      self.k = conv_num
  
      self.depth_conv = nn.LayerList()
      self.point_conv = nn.LayerList()
      for _ in range(self.k):
          self.depth_conv.append(
              ConvNormLayer(
                  ch_in,
                  ch_in,
                  kernel_size,
                  stride=stride,
                  groups=ch_in,
                  norm_type=norm_type,
                  norm_decay=norm_decay,
                  norm_groups=norm_groups,
                  bias_on=bias_on,
                  lr_scale=lr_scale,
                  freeze_norm=freeze_norm,
                  initializer=initializer,
                  skip_quant=skip_quant,
              )
          )
          self.point_conv.append(
              ConvNormLayer(
                  ch_in,
                  ch_out,
                  1,
                  stride=1,
                  groups=1,
                  norm_type=norm_type,
                  norm_decay=norm_decay,
                  norm_groups=norm_groups,
                  bias_on=bias_on,
                  lr_scale=lr_scale,
                  freeze_norm=freeze_norm,
                  initializer=initializer,
                  skip_quant=skip_quant,
              )
          )
      self.rbr_1x1 = ConvNormLayer(
          ch_in,
          ch_in,
          1,
          stride=self.stride,
          groups=ch_in,
          norm_type=norm_type,
          norm_decay=norm_decay,
          norm_groups=norm_groups,
          bias_on=bias_on,
          lr_scale=lr_scale,
          freeze_norm=freeze_norm,
          initializer=initializer,
          skip_quant=skip_quant,
      )
      self.rbr_identity_st1 = (
          nn.BatchNorm2D(
              num_features=ch_in,
              weight_attr=ParamAttr(regularizer=L2Decay(0.0)),
              bias_attr=ParamAttr(regularizer=L2Decay(0.0)),
          )
          if ch_in == ch_out and self.stride == 1
          else None
      )
      self.rbr_identity_st2 = (
          nn.BatchNorm2D(
              num_features=ch_out,
              weight_attr=ParamAttr(regularizer=L2Decay(0.0)),
              bias_attr=ParamAttr(regularizer=L2Decay(0.0)),
          )
          if ch_in == ch_out and self.stride == 1
          else None
      )
      self.act = (
          get_act_fn(act)
          if act is None or isinstance(act, (str, dict))
          else act
      )
  
file_path: PaddleDetection/ppdet/modeling/backbones/mobileone.py
imports: import paddle
  import paddle.nn
  from paddle import ParamAttr
  from paddle.regularizer import L2Decay
  from paddle.nn.initializer import Normal, Constant
  from ppdet.modeling.ops import get_act_fn
  from ppdet.modeling.layers import ConvNormLayer
label_desc: Use image node_id 1 to create a new MobileOneBlock object from inherited base classes: nn with example: obj = MobileOneBlock(ch_in, ch_out, stride, kernel_size, conv_num, norm_type, norm_decay, norm_groups, bias_on, lr_scale, freeze_norm, initializer, skip_quant, act)