class_docstr: Torso model of OpenAlphaTensor.
  
  It maps an input tensor of shape (N, T, S, S, S) to (N, 3S*S, c), where:
  
      N is the batch size;
      T is the context size (size of the history + 1);
      S is the number of elements in each matrix to be multiplied;
      c is the output dimensionality.
code: def __init__(
      self,
      scalars_size: int,
      input_size: int,
      tensor_length: int,
      out_size: int,
  ):
      # scalar_size = s
      # input_size = S
      # tensor_length = T
      # out_size = c
      super(TorsoModel, self).__init__()
      self.linears_1 = torch.nn.ModuleList(
          [
              torch.nn.Linear(scalars_size, input_size * input_size)
              for _ in range(3)
          ]
      )
      self.linears_2 = torch.nn.ModuleList(
          [
              torch.nn.Linear(input_size * tensor_length + 1, out_size)
              for _ in range(3)
          ]
      )
      self.attentive_modes = torch.nn.ModuleList(
          [TorsoAttentiveModes(out_size) for _ in range(8)]
      )
  
file_path: nebuly/optimization/open_alpha_tensor/open_alpha_tensor/core/modules/torso.py
imports: import torch
  from open_alpha_tensor.core.modules.attention import AlphaMultiHeadAttention
label_desc: Use image node_id 1 to create a new TorsoModel object from inherited base classes: torch.nn with example: obj = TorsoModel(scalars_size, input_size, tensor_length, out_size)