class_docstr: Applies a linear transformation to the incoming data: :math:`y = xA^T + b`
  Args:
      in_features: size of each input sample
      out_features: size of each output sample
      bias: If set to ``False``, the layer will not learn an additive bias.
          Default: ``True``
  Shape:
      - Input: :math:`(N, *, H_{in})` where :math:`*` means any number of
        additional dimensions and :math:`H_{in} = \text{in\_features}`
      - Output: :math:`(N, *, H_{out})` where all but the last dimension
        are the same shape as the input and :math:`H_{out} = \text{out\_features}`.
  Attributes:
      weight: the learnable weights of the module of shape
          :math:`(\text{out\_features}, \text{in\_features})`. The values are
          initialized from :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})`, where
          :math:`k = \frac{1}{\text{in\_features}}`
      bias:   the learnable bias of the module of shape :math:`(\text{out\_features})`.
              If :attr:`bias` is ``True``, the values are initialized from
              :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})` where
              :math:`k = \frac{1}{\text{in\_features}}`
  Examples::
      >>> m = nn.Linear(20, 30)
      >>> input = torch.randn(128, 20)
      >>> output = m(input)
      >>> print(output.size())
      torch.Size([128, 30])
class_docstr_tok: ["Applies","a","linear","transformation","to","the","incoming","data",":",":","math",":","`","y","=","xA^T","+","b","`","Args",":","in_features",":","size","of","each","input","sample","out_features",":","size","of","each","output","sample","bias",":","If","set","to","``","False","``",",","the","layer","will","not","learn","an","additive","bias",".","Default",":","``","True","``","Shape",":","-","Input",":",":","math",":","`","(","N",",","*",",","H_","{","in","}",")","`","where",":","math",":","`","*","`","means","any","number","of","additional","dimensions","and",":","math",":","`","H_","{","in","}","=","\\text","{","in\\_features","}","`","-","Output",":",":","math",":","`","(","N",",","*",",","H_","{","out","}",")","`","where","all","but","the","last","dimension","are","the","same","shape","as","the","input","and",":","math",":","`","H_","{","out","}","=","\\text","{","out\\_features","}","`",".","Attributes",":","weight",":","the","learnable","weights","of","the","module","of","shape",":","math",":","`","(","\\text","{","out\\_features","}",",","\\text","{","in\\_features","}",")","`",".","The","values","are","initialized","from",":","math",":","`","\\mathcal","{","U","}","(","-\\sqrt","{","k","}",",","\\sqrt","{","k","}",")","`",",","where",":","math",":","`","k","=","\\frac","{","1","}","{","\\text","{","in\\_features","}","}","`","bias",":","the","learnable","bias","of","the","module","of","shape",":","math",":","`","(","\\text","{","out\\_features","}",")","`",".","If",":","attr",":","`","bias","`","is","``","True","``",",","the","values","are","initialized","from",":","math",":","`","\\mathcal","{","U","}","(","-\\sqrt","{","k","}",",","\\sqrt","{","k","}",")","`","where",":","math",":","`","k","=","\\frac","{","1","}","{","\\text","{","in\\_features","}","}","`","Examples",":",":",">",">",">","m","=","nn.Linear","(","20",",","30",")",">",">",">","input","=","torch.randn","(","128",",","20",")",">",">",">","output","=","m","(","input",")",">",">",">","print","(","output.size","(",")",")","torch.Size","(","[","128",",","30","]",")"]
code: def __init__(
      self, in_features: int, out_features: int, bias: bool = True
  ) -> None:
      super().__init__()
  
      self.in_features = in_features
      self.out_features = out_features
      self.weight = Parameter(torch.Tensor(out_features, in_features))
      if bias:
          self.bias = Parameter(torch.Tensor(out_features))
      else:
          self.register_parameter("bias", None)
      self.reset_parameters()
  
imports: import math
  from typing import Optional, Tuple
  import torch
  import torch.nn.functional
  from torch.nn import Module, init
  from torch.nn.functional import dropout, linear, softmax
  from torch.nn.init import constant_, xavier_normal_, xavier_uniform_
  from torch.nn.modules.dropout import Dropout
  from torch.nn.modules.normalization import LayerNorm
  from torch.nn.parameter import Parameter
label_desc: Use image node_id 1 to create a new Linear object from inherited base classes: Module with example: obj = Linear(in_features, out_features, bias)