code: def __init__(
      self,
      in_features,
      hidden_features=None,
      out_features=None,
      act_layer="nn.GELU",
      drop=0.0,
      lr_factor=1.0,
  ):
      super().__init__()
      out_features = out_features or in_features
      hidden_features = hidden_features or in_features
      self.fc1 = nn.Linear(
          in_features,
          hidden_features,
          weight_attr=ParamAttr(learning_rate=lr_factor),
          bias_attr=ParamAttr(learning_rate=lr_factor),
      )
      self.act = eval(act_layer)()
      self.fc2 = nn.Linear(
          hidden_features,
          out_features,
          weight_attr=ParamAttr(learning_rate=lr_factor),
          bias_attr=ParamAttr(learning_rate=lr_factor),
      )
      self.drop = nn.Dropout(drop)
  
      self._init_weights()
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  import numpy
  import math
  from paddle import ParamAttr
  from paddle.regularizer import L2Decay
  from paddle.nn.initializer import Constant, TruncatedNormal
  from ppdet.modeling.shape_spec import ShapeSpec
  from ppdet.core.workspace import register, serializable
  from .transformer_utils import zeros_, DropPath, Identity, window_partition, window_unpartition
  from ..initializer import linear_init_
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, drop, lr_factor)