code: def forward_pass(self, sentences: Union[List[Sentence], Sentence]):
      if isinstance(sentences, Sentence):
          sentences = [sentences]
  
      # encode inputs
      initial_hidden_states, all_encoder_outputs = self.encode(
          sentences
      )
  
      # get labels (we assume each token has a lemma label)
      labels = [
          token.get_label(self._label_type).value
          for sentence in sentences
          for token in sentence
      ]
  
      # get char indices for labels of sentence
      # (batch_size, max_sequence_length) batch_size = #words in sentence,
      # max_sequence_length = length of longest label of sentence + 1
      decoder_input_indices = self.words_to_char_indices(
          labels,
          start_symbol=True,
          end_symbol=False,
          padding_in_front=False,
      )
  
      # get char embeddings
      # (batch_size,max_sequence_length,input_size), i.e. replaces char indices with vectors of length input_size
      output_vectors, _ = self.decode(
          decoder_input_indices,
          initial_hidden_states,
          all_encoder_outputs,
      )
  
      return output_vectors, labels
  
imports: import logging
  from math import inf
  from typing import List, Optional, Tuple, Union
  import torch
  from torch import nn
  import flair.embeddings
  import flair.nn
  from flair.data import Dictionary, Sentence, Token
  from flair.datasets import DataLoader, FlairDatapointDataset
  from flair.training_utils import Result, store_embeddings
label_desc: Use image node_id 4 for calling the Lemmatizer obj's underlying member method code with example usage: obj.forward_pass(sentences) and returns: output_vectors,  labels