code: def __init__(self, in_channels, out_channels, mode="large", **kwargs):
      super(LKPAN, self).__init__()
      self.out_channels = out_channels
      weight_attr = paddle.nn.initializer.KaimingUniform()
  
      self.ins_conv = nn.LayerList()
      self.inp_conv = nn.LayerList()
      # pan head
      self.pan_head_conv = nn.LayerList()
      self.pan_lat_conv = nn.LayerList()
  
      if mode.lower() == "lite":
          p_layer = DSConv
      elif mode.lower() == "large":
          p_layer = nn.Conv2D
      else:
          raise ValueError(
              "mode can only be one of ['lite', 'large'], but received {}".format(
                  mode
              )
          )
  
      for i in range(len(in_channels)):
          self.ins_conv.append(
              nn.Conv2D(
                  in_channels=in_channels[i],
                  out_channels=self.out_channels,
                  kernel_size=1,
                  weight_attr=ParamAttr(initializer=weight_attr),
                  bias_attr=False,
              )
          )
  
          self.inp_conv.append(
              p_layer(
                  in_channels=self.out_channels,
                  out_channels=self.out_channels // 4,
                  kernel_size=9,
                  padding=4,
                  weight_attr=ParamAttr(initializer=weight_attr),
                  bias_attr=False,
              )
          )
  
          if i > 0:
              self.pan_head_conv.append(
                  nn.Conv2D(
                      in_channels=self.out_channels // 4,
                      out_channels=self.out_channels // 4,
                      kernel_size=3,
                      padding=1,
                      stride=2,
                      weight_attr=ParamAttr(initializer=weight_attr),
                      bias_attr=False,
                  )
              )
          self.pan_lat_conv.append(
              p_layer(
                  in_channels=self.out_channels // 4,
                  out_channels=self.out_channels // 4,
                  kernel_size=9,
                  padding=4,
                  weight_attr=ParamAttr(initializer=weight_attr),
                  bias_attr=False,
              )
          )
  
      self.intracl = False
      if "intracl" in kwargs.keys() and kwargs["intracl"] is True:
          self.intracl = kwargs["intracl"]
          self.incl1 = IntraCLBlock(
              self.out_channels // 4, reduce_factor=2
          )
          self.incl2 = IntraCLBlock(
              self.out_channels // 4, reduce_factor=2
          )
          self.incl3 = IntraCLBlock(
              self.out_channels // 4, reduce_factor=2
          )
          self.incl4 = IntraCLBlock(
              self.out_channels // 4, reduce_factor=2
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  from paddle import nn
  import paddle.nn.functional
  from paddle import ParamAttr
  import os
  import sys
  from ppocr.modeling.necks.intracl import IntraCLBlock
  from ppocr.modeling.backbones.det_mobilenet_v3 import SEModule
label_desc: Use image node_id 1 to create a new LKPAN object from inherited base classes: nn with example: obj = LKPAN(in_channels, out_channels, mode)