class_docstr: MLP layer for Encoder block.
  
  Args:
      in_features(int): Input dimension for the first fully
          connected layer.
      hidden_features(int): Output dimension for the first fully
          connected layer.
      out_features(int): Output dementsion for the second fully
          connected layer.
      act_cfg(dict): Config dict for activation layer.
          Default: dict(type='GELU').
      drop(float): Drop rate for the dropout layer. Dropout rate has
          to be between 0 and 1. Default: 0.
class_docstr_tok: ["MLP","layer","for","Encoder","block",".","Args",":","in_features","(","int",")",":","Input","dimension","for","the","first","fully","connected","layer",".","hidden_features","(","int",")",":","Output","dimension","for","the","first","fully","connected","layer",".","out_features","(","int",")",":","Output","dementsion","for","the","second","fully","connected","layer",".","act_cfg","(","dict",")",":","Config","dict","for","activation","layer",".","Default",":","dict","(","type='GELU","'",")",".","drop","(","float",")",":","Drop","rate","for","the","dropout","layer",".","Dropout","rate","has","to","be","between","0","and","1",".","Default",":","0","."]
code: def forward(self, x):
      x = self.fc1(x)
      x = self.act(x)
      x = self.drop(x)
      x = self.fc2(x)
      x = self.drop(x)
      return x
  
imports: import math
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.utils.checkpoint
  from annotator.uniformer.mmcv.cnn import Conv2d, Linear, build_activation_layer, build_norm_layer, constant_init, kaiming_init, normal_init
  from annotator.uniformer.mmcv.runner import _load_checkpoint
  from annotator.uniformer.mmcv.utils.parrots_wrapper import _BatchNorm
  from annotator.uniformer.mmseg.utils import get_root_logger
  from ..builder import BACKBONES
  from ..utils import DropPath, trunc_normal_
label_desc: Use image node_id 2 for calling the Mlp obj's underlying member method code with example usage: obj.forward(x) and returns: x