code: def test_case_small_random_fastemit_reg(
      self, device, dtype, fastemit_lambda
  ):
      if device == "cuda":
          numba_utils.skip_numba_cuda_test_if_unsupported(
              __NUMBA_MINIMUM_VERSION__
          )
  
      rng = np.random.RandomState(0)
      acts = rng.randn(1, 4, 3, 3)
      labels = [[1, 2]]
  
      fn_pt = RNNTLossNumba(
          blank=0, reduction="sum", fastemit_lambda=fastemit_lambda
      )
      pt_cost, pt_grads = wrap_and_call(fn_pt, acts, labels, device)
  
      fn_np = RNNTLoss_Numpy(fastemit_lambda=fastemit_lambda)
      np_cost, np_grads = wrap_and_call(fn_np, acts, labels, device)
  
      assert np.allclose(
          pt_cost, np_cost, rtol=1e-6
      ), "small_random_test costs mismatch."
      assert np.allclose(
          pt_grads, np_grads, rtol=1e-5
      ), "small_random_test gradient mismatch."
  
imports: import random
  import numpy
  import pytest
  import torch
  from nemo.collections.asr.losses.rnnt import MultiblankRNNTLossPytorch, RNNTLossPytorch, TDTLossPytorch
  from nemo.collections.asr.parts.numba.rnnt_loss.rnnt_numpy import RNNTLoss
  from nemo.collections.asr.parts.numba.rnnt_loss.rnnt_pytorch import MultiblankRNNTLossNumba, RNNTLossNumba, TDTLossNumba
  from nemo.core.utils import numba_utils
  from nemo.core.utils.numba_utils import __NUMBA_MINIMUM_VERSION__
label_desc: Use image node_id 3 for calling the TestRNNTLossPytorch obj's underlying member method code with example usage: obj.test_case_small_random_fastemit_reg(device, dtype, fastemit_lambda) without return types