code: def backward(ctx, loss_grad):
      if ctx.masked:
          mask, f_len, g_len, batch_offset = ctx.saved_tensors
          inp = [loss_grad, mask]
      else:
          f_len, g_len, batch_offset = ctx.saved_tensors
          inp = [loss_grad]
  
      f_grad, g_grad = transducer_joint_cuda.backward(
          inp,
          f_len,
          g_len,
          batch_offset,
          ctx.max_f_len,
          ctx.max_g_len,
          ctx.pack_output,
          ctx.scale,
      )
  
      return (
          f_grad,
          g_grad,
          None,
          None,
          None,
          None,
          None,
          None,
          None,
          None,
          None,
          None,
          None,
          None,
          None,
          None,
      )
  
file_path: apex/apex/contrib/transducer/transducer.py
imports: import torch
  import transducer_loss_cuda
  import transducer_joint_cuda
label_desc: Use image node_id 2 for calling the TransducerJointFunc obj's underlying member method code with example usage: obj.backward(ctx, loss_grad) and returns: f_grad,  g_grad,  None,  None,  None,  None,  None,  None,  None,  None,  None,  None,  None,  None,  None,  None