class_docstr: Pretty standard MLP.
  :param in_dim: integer input dimensionality
  :param mlp_dim: integer mlp dimensionality. Defaults to in_dim.
  :param out_dim: integer output dimensionality. Defaults to in_dim.
  :param act_layer: activation function. Defaults to nn.GELU
  :param drop: dropout probability. Defaults to 0
class_docstr_tok: ["Pretty","standard","MLP",".",":","param","in_dim",":","integer","input","dimensionality",":","param","mlp_dim",":","integer","mlp","dimensionality",".","Defaults","to","in_dim",".",":","param","out_dim",":","integer","output","dimensionality",".","Defaults","to","in_dim",".",":","param","act_layer",":","activation","function",".","Defaults","to","nn.GELU",":","param","drop",":","dropout","probability",".","Defaults","to","0"]
code: def __init__(
      self,
      in_dim,
      mlp_dim=None,
      out_dim=None,
      act_layer=nn.GELU,
      dropout_rate=0.0,
  ):
      super().__init__()
      out_dim = out_dim or in_dim
      mlp_dim = mlp_dim or in_dim
      self.linear_1 = nn.Linear(in_dim, mlp_dim)
      self.act = act_layer()
      self.dropout_1 = nn.Dropout(dropout_rate)
      self.linear_2 = nn.Linear(mlp_dim, out_dim)
      self.dropout_2 = nn.Dropout(dropout_rate)
      self.apply(self._init_weights)
  
imports: import copy
  import logging
  import math
  import torch
  import torch.nn
  from vissl.models.model_helpers import DropPath, to_2tuple, trunc_normal_
  from vissl.models.trunks import register_model_trunk
  from vissl.utils.hydra_config import AttrDict
label_desc: Use image node_id 1 to create a new Mlp object from inherited base classes: nn with example: obj = Mlp(in_dim, mlp_dim, out_dim, act_layer, dropout_rate)