class_docstr: Reduces the sequence dimension of an input tensor according to the specified reduce_mode.  Any additional
  kwargs are passed on to the reduce mode's constructor.  If using reduce_mode=="attention", the input_size kwarg
  must also be specified.
  
  A sequence is a tensor of 2 or more dimensions, where the shape is [batch size x sequence length x ...].
  
  :param reduce_mode: The reduction mode, one of {"last", "sum", "mean", "max", "concat", "attention", "none"}
  :param max_sequence_length The maximum sequence length.  Only used for computation of shapes - inputs passed
                             at runtime may have a smaller sequence length.
  :param encoding_size The size of each sequence element/embedding vector, or None if input is a sequence of scalars.
docstr: Returns size of the output tensor without the batch dimension.
docstr_tok: ["Returns","size","of","the","output","tensor","without","the","batch","dimension","."]
code: def output_shape(self) -> torch.Size:
      """Returns size of the output tensor without the batch dimension."""
      input_shape = self.input_shape
      if self._reduce_mode in {None, "none", "None"}:
          return input_shape
      elif self._reduce_mode == "concat":
          if len(input_shape) > 1:
              return input_shape[:-2] + (
                  input_shape[-1] * input_shape[-2],
              )
          return input_shape
      else:
          return input_shape[1:]
  
imports: import logging
  import torch
  from ludwig.modules.attention_modules import FeedForwardAttentionReducer
  from ludwig.utils.misc_utils import get_from_registry
  from ludwig.utils.torch_utils import LudwigModule, sequence_length_3D
label_desc: Use image node_id 4 for calling the SequenceReducer obj's underlying member method code with example usage: obj.output_shape() and returns: input_shape, input_shape, input_shape, unknown