class_docstr: A MLP block that contains two linear layers with a normalization layer. The MLP
  block is used in a transformer model after the attention block.
  
  ::
  
                       Linear (in_features, hidden_features)
                                         ↓
                               Normalization (act_layer)
                                         ↓
                              Dropout (p=dropout_rate)
                                         ↓
                       Linear (hidden_features, out_features)
                                         ↓
                              Dropout (p=dropout_rate)
docstr: Args:
      in_features (int): Input feature dimension.
      hidden_features (Optional[int]): Hidden feature dimension. By default,
          hidden feature is set to input feature dimension.
      out_features (Optional[int]): Output feature dimension. By default, output
          features dimension is set to input feature dimension.
      act_layer (Callable): Activation layer used after the first linear layer.
      dropout_rate (float): Dropout rate after each linear layer. Dropout is not used
          by default.
docstr_tok: ["Args",":","in_features","(","int",")",":","Input","feature","dimension",".","hidden_features","(","Optional","[","int","]",")",":","Hidden","feature","dimension",".","By","default",",","hidden","feature","is","set","to","input","feature","dimension",".","out_features","(","Optional","[","int","]",")",":","Output","feature","dimension",".","By","default",",","output","features","dimension","is","set","to","input","feature","dimension",".","act_layer","(","Callable",")",":","Activation","layer","used","after","the","first","linear","layer",".","dropout_rate","(","float",")",":","Dropout","rate","after","each","linear","layer",".","Dropout","is","not","used","by","default","."]
code: def __init__(
      self,
      in_features: int,
      hidden_features: Optional[int] = None,
      out_features: Optional[int] = None,
      act_layer=nn.GELU,
      dropout_rate: float = 0.0,
      bias_on: bool = True,
  ) -> None:
      """
      Args:
          in_features (int): Input feature dimension.
          hidden_features (Optional[int]): Hidden feature dimension. By default,
              hidden feature is set to input feature dimension.
          out_features (Optional[int]): Output feature dimension. By default, output
              features dimension is set to input feature dimension.
          act_layer (Callable): Activation layer used after the first linear layer.
          dropout_rate (float): Dropout rate after each linear layer. Dropout is not used
              by default.
      """
      super().__init__()
      self.dropout_rate = dropout_rate
      out_features = out_features or in_features
      hidden_features = hidden_features or in_features
      self.fc1 = nn.Linear(in_features, hidden_features, bias=bias_on)
  
      self.act = act_layer()
      self.fc2 = nn.Linear(hidden_features, out_features, bias=bias_on)
  
imports: from typing import List, Optional, Tuple
  import numpy
  import torch
  import torch.fx
  import torch.nn
  from torch.nn.common_types import _size_3_t
  from .drop_path import DropPath
label_desc: Use image node_id 1 to create a new Mlp object from inherited base classes: nn with example: obj = Mlp(in_features, hidden_features, out_features, act_layer, dropout_rate, bias_on)