code: def __init__(
      self,
      embed_dims=256,
      feedforward_channels=2048,
      num_fcs=2,
      ffn_drop=0.0,
      add_identity=True,
  ):
      super(FFN, self).__init__()
  
      layers = []
      in_channels = embed_dims
      for _ in range(num_fcs - 1):
          layers.append(
              nn.Sequential(
                  nn.Linear(in_channels, feedforward_channels),
                  nn.ReLU(),
                  nn.Dropout(ffn_drop),
              )
          )
          in_channels = feedforward_channels
      layers.append(nn.Linear(feedforward_channels, embed_dims))
      layers.append(nn.Dropout(ffn_drop))
      self.layers = nn.Sequential(*layers)
  
      self.add_identity = add_identity
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import paddle
  from paddle import nn
  from ppdet.core.workspace import register
  from ppdet.modeling import initializer
  from .roi_extractor import RoIAlign
  from ..bbox_utils import delta2bbox_v2
  from ..cls_utils import _get_class_default_kwargs
  from ..layers import MultiHeadAttention
label_desc: Use image node_id 1 to create a new FFN object from inherited base classes: nn with example: obj = FFN(embed_dims, feedforward_channels, num_fcs, ffn_drop, add_identity)