class_docstr: Implements feed-forward networks (FFNs) with residual connection.
  
  Args:
      embed_dims (int): The feature dimension. Same as
          `MultiheadAttention`.
      feedforward_channels (int): The hidden dimension of FFNs.
      num_fcs (int): The number of fully-connected layers in FFNs.
      act_cfg (dict): The activation config for FFNs.
      dropout (float): Probability of an element to be zeroed. Default 0.0.
class_docstr_tok: ["Implements","feed-forward","networks","(","FFNs",")","with","residual","connection",".","Args",":","embed_dims","(","int",")",":","The","feature","dimension",".","Same","as","`","MultiheadAttention","`",".","feedforward_channels","(","int",")",":","The","hidden","dimension","of","FFNs",".","num_fcs","(","int",")",":","The","number","of","fully-connected","layers","in","FFNs",".","act_cfg","(","dict",")",":","The","activation","config","for","FFNs",".","dropout","(","float",")",":","Probability","of","an","element","to","be","zeroed",".","Default","0.0","."]
docstr: str: a string that describes the module
docstr_tok: ["str",":","a","string","that","describes","the","module"]
code: def __repr__(self):
      """str: a string that describes the module"""
      repr_str = self.__class__.__name__
      repr_str += f"(embed_dims={self.embed_dims}, "
      repr_str += f"feedforward_channels={self.feedforward_channels}, "
      repr_str += f"num_fcs={self.num_fcs}, "
      repr_str += f"act_cfg={self.act_cfg}, "
      repr_str += f"dropout={self.dropout}, "
      repr_str += f"add_residual={self.add_residual})"
      return repr_str
  
imports: import torch
  import torch.nn
  from mmcv.cnn import Linear, build_activation_layer, build_norm_layer, xavier_init
  from .builder import TRANSFORMER
label_desc: Use image node_id 3 for calling the FFN obj's underlying member method code with example usage: obj.__repr__() and returns: repr_str