code: def setup_probs(
      self,
      T: int,
      U: int,
      labels: torch.Tensor,
      blank: int,
      log_probs: torch.Tensor,
      idx: CpuRNNT_index,
  ):
      # initialize the log probs memory for blank and label token.
      for t in range(T):
          for u in range(U):
              offset = (
                  t * U + u
              ) * 2  # mult with 2 is for selecting either blank or label token. Odd idx is blank.
              self.log_probs2[offset] = log_probs[idx(t, u, blank)]
              # // labels do not have first blank
              if u < U - 1:
                  self.log_probs2[offset + 1] = log_probs[
                      idx(t, u, labels[u])
                  ]
  
imports: import math
  import multiprocessing
  from typing import Optional
  import numba
  import torch
  from torch.autograd import Function
  from nemo.collections.asr.parts.numba.rnnt_loss.utils import global_constants
label_desc: Use image node_id 2 for calling the CpuRNNT_metadata obj's underlying member method code with example usage: obj.setup_probs(T, U, labels, blank, log_probs, idx) without return types