class_docstr: Applies a linear transformation to incoming data.
class_docstr_tok: ["Applies","a","linear","transformation","to","incoming","data","."]
docstr: :param input_dim:
      The dimensionality of inputs.
  :param output_dim:
      The dimensionality of projected outputs.
docstr_tok: [":","param","input_dim",":","The","dimensionality","of","inputs",".",":","param","output_dim",":","The","dimensionality","of","projected","outputs","."]
code: def __init__(self, input_dim: int, output_dim: int) -> None:
      """
      :param input_dim:
          The dimensionality of inputs.
      :param output_dim:
          The dimensionality of projected outputs.
      """
      super().__init__()
  
      self.input_dim, self.output_dim = input_dim, output_dim
  
imports: from __future__ import annotations
  import math
  from abc import ABC, abstractmethod
  from typing import Callable, Optional, final
  import torch
  import torch.nn
  from torch import Tensor
  from torch.nn import Module
  from torch.nn.functional import linear
  from torch.nn.parameter import Parameter
  from fairseq2.typing import DataType, Device, finaloverride
label_desc: Use image node_id 1 to create a new Projection object from inherited base classes: Module, ABC with example: obj = Projection(input_dim, output_dim)