class_docstr: Applies a linear transformation to the incoming data: :math:`y = xA^T + b`.
  The weights are pre-transposed and stored as A^T instead of transposing during each
  forward. Memory savings proportional to the parameter size.
  
  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","`",".","The","weights","are","pre-transposed","and","stored","as","A^T","instead","of","transposing","during","each","forward",".","Memory","savings","proportional","to","the","parameter","size",".","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 forward(self, input: Tensor) -> Tensor:
      return LinearFunctionForZeroStage3.apply(
          input, self.weight, self.bias
      )
  
file_path: H2O/h2o_flexgen/benchmark/third_party/DeepSpeed/deepspeed/runtime/zero/linear.py
imports: import math
  import torch
  from torch import Tensor
  from torch.nn.parameter import Parameter
  from torch.nn import init
  from torch.nn.modules.module import Module
  from deepspeed.runtime.utils import noop_decorator
  from deepspeed import comm
label_desc: Use image node_id 3 for calling the LinearModuleForZeroStage3 obj's underlying member method code with example usage: obj.forward(input) and returns: LinearFunctionForZeroStage3