code: def __init__(
      self,
      in_features: Union[int, Tuple[int]],
      hidden_size: int,
      out_features: Union[int, Tuple[int]] = None,
      dropout: float = 0.0,
  ):
      super().__init__()
  
      out_features = out_features or in_features
  
      self._input_shape = in_features
      self._output_shape = out_features
  
      self.linear1 = nn.Linear(
          in_features=in_features, out_features=hidden_size
      )
      self.linear2 = nn.Linear(
          in_features=hidden_size, out_features=out_features
      )
      self.dropout1 = nn.Dropout(dropout)
      self.dropout2 = nn.Dropout(dropout)
  
imports: from typing import Tuple, Union
  import torch
  import torch.nn
  from ludwig.utils.torch_utils import LudwigModule
label_desc: Use image node_id 1 to create a new MLP object from inherited base classes: LudwigModule with example: obj = MLP(in_features, hidden_size, out_features, dropout)