class_docstr: crf loss for sequence labeling
code: def call(
      self,
      logits=None,
      input_length=None,
      labels=None,
      label_length=None,
      **kwargs,
  ):
      assert "model" in kwargs
      model = kwargs["model"]
      tags_scores = tf.reshape(
          logits,
          [-1, model.max_len, model.seq_num_classes],
          name="scores",
      )
      loss, _ = crf_log_likelihood(
          tags_scores, labels, input_length, model.transitions
      )
  
      return loss
  
imports: import delta.compat
  from delta.utils.loss.base_loss import Loss
  from delta.utils.loss.loss_utils import cross_entropy
  from delta.utils.loss.loss_utils import mask_sequence_loss
  from delta.utils.loss.loss_utils import ctc_lambda_loss
  from delta.utils.loss.loss_utils import crf_log_likelihood
  from delta.utils.loss.loss_utils import focal_loss
  from delta.utils.register import registers
label_desc: Use image node_id 2 for calling the CrfLoss obj's underlying member method code with example usage: obj.call(logits, input_length, labels, label_length) and returns: loss