class_docstr: Bidirectional Feature Pyramid Network, see https://arxiv.org/abs/1911.09070
  
  Args:
      in_channels (list[int]): input channels of each level which can be
          derived from the output shape of backbone by from_config.
      out_channel (int): output channel of each level.
      num_extra_levels (int): the number of extra stages added to the last level.
          default: 2
      fpn_strides (List): The stride of each level.
      num_stacks (int): the number of stacks for BiFPN, default: 1.
      use_weighted_fusion (bool): use weighted feature fusion in BiFPN, default: True.
      norm_type (string|None): the normalization type in BiFPN module. If
          norm_type is None, norm will not be used after conv and if
          norm_type is string, bn, gn, sync_bn are available. default: bn.
      norm_groups (int): if you use gn, set this param.
      act (string|None): the activation function of BiFPN.
code: def forward(self, feats):
      assert len(feats) == len(self.in_channels)
      fpn_feats = []
      for conv_layer, feature in zip(self.lateral_convs, feats):
          fpn_feats.append(conv_layer(feature))
      if self.num_extra_levels > 0:
          feat = feats[-1]
          for conv_layer in self.extra_convs:
              feat = conv_layer(feat)
              fpn_feats.append(feat)
  
      for bifpn_cell in self.bifpn_cells:
          fpn_feats = bifpn_cell(fpn_feats)
      return fpn_feats
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from paddle.nn.initializer import Constant
  from ppdet.core.workspace import register, serializable
  from ppdet.modeling.layers import ConvNormLayer
  from ..shape_spec import ShapeSpec
label_desc: Use image node_id 4 for calling the BiFPN obj's underlying member method code with example usage: obj.forward(feats) and returns: fpn_feats