class_docstr: PicoFeat of PicoDet
  
  Args:
      feat_in (int): The channel number of input Tensor.
      feat_out (int): The channel number of output Tensor.
      num_convs (int): The convolution number of the LiteGFLFeat.
      norm_type (str): Normalization type, 'bn'/'sync_bn'/'gn'.
      share_cls_reg (bool): Whether to share the cls and reg output.
      act (str): The act of per layers.
      use_se (bool): Whether to use se module.
class_docstr_tok: ["PicoFeat","of","PicoDet","Args",":","feat_in","(","int",")",":","The","channel","number","of","input","Tensor",".","feat_out","(","int",")",":","The","channel","number","of","output","Tensor",".","num_convs","(","int",")",":","The","convolution","number","of","the","LiteGFLFeat",".","norm_type","(","str",")",":","Normalization","type",",","'bn'\/'sync_bn'\/'gn","'",".","share_cls_reg","(","bool",")",":","Whether","to","share","the","cls","and","reg","output",".","act","(","str",")",":","The","act","of","per","layers",".","use_se","(","bool",")",":","Whether","to","use","se","module","."]
code: def __init__(
      self,
      feat_in=256,
      feat_out=96,
      num_fpn_stride=3,
      num_convs=2,
      norm_type="bn",
      share_cls_reg=False,
      act="hard_swish",
      use_se=False,
  ):
      super(PicoFeat, self).__init__()
      self.num_convs = num_convs
      self.norm_type = norm_type
      self.share_cls_reg = share_cls_reg
      self.act = act
      self.use_se = use_se
      self.cls_convs = []
      self.reg_convs = []
      if use_se:
          assert (
              share_cls_reg == True
          ), "In the case of using se, share_cls_reg must be set to True"
          self.se = nn.LayerList()
      for stage_idx in range(num_fpn_stride):
          cls_subnet_convs = []
          reg_subnet_convs = []
          for i in range(self.num_convs):
              in_c = feat_in if i == 0 else feat_out
              cls_conv_dw = self.add_sublayer(
                  "cls_conv_dw{}.{}".format(stage_idx, i),
                  ConvNormLayer(
                      ch_in=in_c,
                      ch_out=feat_out,
                      filter_size=5,
                      stride=1,
                      groups=feat_out,
                      norm_type=norm_type,
                      bias_on=False,
                      lr_scale=2.0,
                  ),
              )
              cls_subnet_convs.append(cls_conv_dw)
              cls_conv_pw = self.add_sublayer(
                  "cls_conv_pw{}.{}".format(stage_idx, i),
                  ConvNormLayer(
                      ch_in=in_c,
                      ch_out=feat_out,
                      filter_size=1,
                      stride=1,
                      norm_type=norm_type,
                      bias_on=False,
                      lr_scale=2.0,
                  ),
              )
              cls_subnet_convs.append(cls_conv_pw)
  
              if not self.share_cls_reg:
                  reg_conv_dw = self.add_sublayer(
                      "reg_conv_dw{}.{}".format(stage_idx, i),
                      ConvNormLayer(
                          ch_in=in_c,
                          ch_out=feat_out,
                          filter_size=5,
                          stride=1,
                          groups=feat_out,
                          norm_type=norm_type,
                          bias_on=False,
                          lr_scale=2.0,
                      ),
                  )
                  reg_subnet_convs.append(reg_conv_dw)
                  reg_conv_pw = self.add_sublayer(
                      "reg_conv_pw{}.{}".format(stage_idx, i),
                      ConvNormLayer(
                          ch_in=in_c,
                          ch_out=feat_out,
                          filter_size=1,
                          stride=1,
                          norm_type=norm_type,
                          bias_on=False,
                          lr_scale=2.0,
                      ),
                  )
                  reg_subnet_convs.append(reg_conv_pw)
          self.cls_convs.append(cls_subnet_convs)
          self.reg_convs.append(reg_subnet_convs)
          if use_se:
              self.se.append(PicoSE(feat_out))
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from paddle.nn.initializer import Normal, Constant
  from ppdet.modeling.ops import get_static_shape
  from ..initializer import normal_
  from ..assigners.utils import generate_anchors_for_grid_cell
  from ..bbox_utils import bbox_center, batch_distance2bbox, bbox2distance
  from ppdet.core.workspace import register
  from ppdet.modeling.layers import ConvNormLayer
  from .simota_head import OTAVFLHead
  from .gfl_head import Integral, GFLHead
  from ppdet.modeling.necks.csp_pan import DPModule
label_desc: Use image node_id 1 to create a new PicoFeat object from inherited base classes: nn with example: obj = PicoFeat(feat_in, feat_out, num_fpn_stride, num_convs, norm_type, share_cls_reg, act, use_se)