class_docstr: Applies a linear transformation together with :class:`~torch.nn.LeakyReLU` activation to the incoming tensor:
  :math:`y = \mathrm{LeakyReLU}(x A^T + b)`
  
  Args:
      n_in (~torch.Tensor):
          The size of each input feature.
      n_out (~torch.Tensor):
          The size of each output feature.
      dropout (float):
          If non-zero, introduce a :class:`SharedDropout` layer on the output with this dropout ratio. Default: 0.
class_docstr_tok: ["Applies","a","linear","transformation","together","with",":","class",":","`","~torch.nn.LeakyReLU","`","activation","to","the","incoming","tensor",":",":","math",":","`","y","=","\\mathrm","{","LeakyReLU","}","(","x","A^T","+","b",")","`","Args",":","n_in","(","~torch.Tensor",")",":","The","size","of","each","input","feature",".","n_out","(","~torch.Tensor",")",":","The","size","of","each","output","feature",".","dropout","(","float",")",":","If","non-zero",",","introduce","a",":","class",":","`","SharedDropout","`","layer","on","the","output","with","this","dropout","ratio",".","Default",":","0","."]
code: def __repr__(self):
      s = f"n_in={self.n_in}, n_out={self.n_out}"
      if self.dropout.p > 0:
          s += f", dropout={self.dropout.p}"
  
      return f"{self.__class__.__name__}({s})"
  
imports: import torch
  import torch.nn
  from torch.nn.utils.rnn import pack_padded_sequence, PackedSequence
  from torch.nn.modules.rnn import apply_permutation
label_desc: Use image node_id 2 for calling the MLP obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, s, str