code: def call(
      self, inputs, training=None, mask=None, return_crf_internal=False
  ):
      base_model_outputs = self.base_model(inputs, training, mask)
  
      # change next line, if your model has more outputs
      crf_input = base_model_outputs
  
      (
          decode_sequence,
          potentials,
          sequence_length,
          kernel,
      ) = self.crf_layer(crf_input)
  
      # change next line, if your base model has more outputs
      # Aways keep `(potentials, sequence_length, kernel), decode_sequence, `
      # as first two outputs of model.
      # current `self.train_step()` expected such settings
      outputs = (potentials, sequence_length, kernel), decode_sequence
  
      if return_crf_internal:
          return outputs
      else:
          # outputs[0] is the crf internal, skip it
          output_without_crf_internal = outputs[1:]
  
          # it is nicer to return a tensor instead of an one tensor list
          if len(output_without_crf_internal) == 1:
              return output_without_crf_internal[0]
          else:
              return output_without_crf_internal
  
file_path: addons/tensorflow_addons/text/crf_wrapper.py
imports: import tensorflow
  from tensorflow_addons.text import crf_log_likelihood
  from tensorflow_addons.utils import types
label_desc: Use image node_id 3 for calling the CRFModelWrapper obj's underlying member method code with example usage: obj.call(inputs, training, mask, return_crf_internal) and returns: outputs, output_without_crf_internal, output_without_crf_internal