docstr: PPYOLODetBlockCSP layer
  
  Args:
      cfg (list): layer configs for this block
      ch_in (int): input channel
      ch_out (int): output channel
      act (str): default mish
      name (str): block name
      data_format (str): data format, NCHW or NHWC
docstr_tok: ["PPYOLODetBlockCSP","layer","Args",":","cfg","(","list",")",":","layer","configs","for","this","block","ch_in","(","int",")",":","input","channel","ch_out","(","int",")",":","output","channel","act","(","str",")",":","default","mish","name","(","str",")",":","block","name","data_format","(","str",")",":","data","format",",","NCHW","or","NHWC"]
code: def __init__(
      self, cfg, ch_in, ch_out, act, norm_type, name, data_format="NCHW"
  ):
      """
      PPYOLODetBlockCSP layer
  
      Args:
          cfg (list): layer configs for this block
          ch_in (int): input channel
          ch_out (int): output channel
          act (str): default mish
          name (str): block name
          data_format (str): data format, NCHW or NHWC
      """
      super(PPYOLODetBlockCSP, self).__init__()
      self.data_format = data_format
      self.conv1 = ConvBNLayer(
          ch_in,
          ch_out,
          1,
          padding=0,
          act=act,
          norm_type=norm_type,
          name=name + ".left",
          data_format=data_format,
      )
      self.conv2 = ConvBNLayer(
          ch_in,
          ch_out,
          1,
          padding=0,
          act=act,
          norm_type=norm_type,
          name=name + ".right",
          data_format=data_format,
      )
      self.conv3 = ConvBNLayer(
          ch_out * 2,
          ch_out * 2,
          1,
          padding=0,
          act=act,
          norm_type=norm_type,
          name=name,
          data_format=data_format,
      )
      self.conv_module = nn.Sequential()
      for idx, (layer_name, layer, args, kwargs) in enumerate(cfg):
          kwargs.update(name=name + layer_name, data_format=data_format)
          self.conv_module.add_sublayer(
              layer_name, layer(*args, **kwargs)
          )
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from ppdet.core.workspace import register, serializable
  from ppdet.modeling.layers import DropBlock
  from ppdet.modeling.ops import get_act_fn
  from ..backbones.darknet import ConvBNLayer
  from ..shape_spec import ShapeSpec
  from ..backbones.csp_darknet import BaseConv, DWConv, CSPLayer
label_desc: Use image node_id 1 to create a new PPYOLODetBlockCSP object from inherited base classes: nn with example: obj = PPYOLODetBlockCSP(cfg, ch_in, ch_out, act, norm_type, name, data_format)