class_docstr: abstract of Loss 
docstr: param: logits, (B, T, D)
  param: labels, (B, T)
  param: label_length, (B), converts labels form dense to sparse
  param: input_length, (B), input length of encoder
  returns: loss, scalar
docstr_tok: ["param",":","logits",",","(","B",",","T",",","D",")","param",":","labels",",","(","B",",","T",")","param",":","label_length",",","(","B",")",",","converts","labels","form","dense","to","sparse","param",":","input_length",",","(","B",")",",","input","length","of","encoder","returns",":","loss",",","scalar"]
code: def call(
      self,
      logits=None,
      input_length=None,
      labels=None,
      label_length=None,
      **kwargs,
  ):
      """
      param: logits, (B, T, D)
      param: labels, (B, T)
      param: label_length, (B), converts labels form dense to sparse
      param: input_length, (B), input length of encoder
      returns: loss, scalar
      """
      raise NotImplementedError()
  
file_path: delta/delta/utils/loss/base_loss.py
imports: import abc
  import delta.compat
  from delta.utils import summary
label_desc: Use image node_id 1 for calling the ABCLoss obj's underlying member method code with example usage: obj.call(logits, input_length, labels, label_length) without return types