code: def rnnt_loss(
      acts,
      labels,
      act_lens,
      label_lens,
      blank=0,
      reduction="mean",
      fastemit_lambda: float = 0.0,
      clamp: float = 0.0,
  ):
      """RNN Transducer Loss (functional form)
      Args:
          acts: Tensor of (batch x seqLength x labelLength x outputDim)
              containing output from network
          labels: 2 dimensional Tensor containing all the targets of
              the batch with zero padded
          act_lens: Tensor of size (batch) containing size of each
              output sequence from the network
          label_lens: Tensor of (batch) containing label length of each example
          blank (int, optional): blank label. Default: 0.
          reduction (string, optional): Specifies the reduction to apply to the output:
              'none' | 'mean' | 'sum'. 'none': no reduction will be applied,
              'mean': the output losses will be divided by the target lengths and
              then the mean over the batch is taken. Default: 'mean'
      """
  
      if not acts.is_cuda:
          # Since CPU requires log_softmax to be computed explicitly,
          # we need to perform grad clipping
          # *after* we have obtained the gradients of loss(logsoftmax()).
          # This is highly wasteful since it requires a copy of the entire joint
          # tensor which is expensive. CUDA version is much more efficient since
          # it performs an inplace logsoftmax, and therefore
          # can inplace clamp the gradient.
          if clamp > 0.0:
              acts = cpu_rnnt.LogSoftmaxGradModification.apply(
                  acts, clamp
              )
  
          # NOTE manually done log_softmax for CPU version,
          # log_softmax is computed within GPU version.
          acts = torch.nn.functional.log_softmax(acts, -1)
  
      return _RNNTNumba.apply(
          acts,
          labels,
          act_lens,
          label_lens,
          blank,
          reduction,
          fastemit_lambda,
          clamp,
      )
  
imports: import torch
  from torch.autograd import Function
  from torch.nn import Module
  from espnet2.asr.transducer.rnnt_multi_blank import rnnt
  from espnet2.asr.transducer.rnnt_multi_blank.utils.cpu_utils import cpu_rnnt
label_desc: Use image node_id 1 for calling a global function with example usage: rnnt_loss(acts, labels, act_lens, label_lens, blank, reduction, fastemit_lambda, clamp) and returns: _RNNTNumba