code: def score_forward(
      self,
      log_probs: torch.Tensor,
      costs: torch.Tensor,
      flat_labels: torch.Tensor,
      label_lengths: torch.Tensor,
      input_lengths: torch.Tensor,
  ):
      # // per minibatch memory
      per_minibatch_bytes = 0
  
      # // alphas & betas
      per_minibatch_bytes += self.maxT_ * self.maxU_ * 2
  
      # // blank & label log probability cache
      per_minibatch_bytes += self.maxT_ * self.maxU_ * 2
  
      for mb in range(self.minibatch_):
          T = input_lengths[mb]  # // Length of utterance (time)
          U = (
              label_lengths[mb] + 1
          )  # // Number of labels in transcription
          batch_size = self.alphabet_size_
          if self.batch_first:
              batch_size = self.maxT_ * self.maxU_ * self.alphabet_size_
  
          idx = CpuRNNT_index(
              U,
              self.maxU_,
              self.minibatch_,
              self.alphabet_size_,
              self.batch_first,
          )
          rnntm = CpuRNNT_metadata(
              T,
              U,
              self.workspace,
              mb * per_minibatch_bytes,
              self.blank_,
              flat_labels[(mb * (self.maxU_ - 1)) :],
              log_probs[(mb * batch_size) :],
              idx,
          )
  
          costs[mb] = -self.compute_alphas(
              rnntm.log_probs2, T, U, rnntm.alphas
          )
  
      return global_constants.RNNTStatus.RNNT_STATUS_SUCCESS
  
imports: import math
  import multiprocessing
  from typing import Optional
  import numba
  import torch
  from torch.autograd import Function
  from espnet2.asr.transducer.rnnt_multi_blank.utils import global_constants
label_desc: Use image node_id 6 for calling the CPURNNT obj's underlying member method code with example usage: obj.score_forward(log_probs, costs, flat_labels, label_lengths, input_lengths) and returns: global_constants