code: def _genInputParams(
      self,
      num_classes=10,
      batch_size=32,
      max_label_sequence_length=50,
      num_frames=100,
      logits_time_major=True,
      sparse_labels=True,
  ):
      assert num_frames >= max_label_sequence_length
  
      labels_shape = (batch_size, max_label_sequence_length)
      # Zero-pad the labels. Zero is the default blank index in the TF2 API.
      # num_classes includes the blank class
      unmasked_labels = np.random.randint(
          1, num_classes, size=labels_shape, dtype=np.int32
      )
      labels_lengths = np.random.randint(
          1,
          high=max_label_sequence_length,
          size=batch_size,
          dtype=np.int32,
      )
      labels_masks = (
          np.arange(max_label_sequence_length)
          < labels_lengths.reshape(batch_size, 1)
      ).astype(np.int32)
      labels = unmasked_labels * labels_masks
      if sparse_labels:
          labels = ctc_ops.dense_labels_to_sparse(
              labels, labels_lengths
          )
  
      if logits_time_major:
          logits_shape = (num_frames, batch_size, num_classes)
      else:
          logits_shape = (batch_size, num_frames, num_classes)
      logits = self._randomFloats(logits_shape)
  
      labels_lengths = constant_op.constant(labels_lengths)
  
      logits_lengths = [num_frames] * batch_size
      logits_lengths = constant_op.constant(logits_lengths)
  
      return labels, logits, labels_lengths, logits_lengths
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager import context
  from tensorflow.python.eager import def_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import random_seed
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import ctc_ops
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops import sparse_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the CTCLossDeterministicTest obj's underlying member method code with example usage: obj._genInputParams(num_classes, batch_size, max_label_sequence_length, num_frames, logits_time_major, sparse_labels) and returns: labels,  logits,  labels_lengths,  logits_lengths