code: def test_add_noise(self):
      leading_dims = (5, 2, 3)
      L = 51
      waveform = torch.rand(
          *leading_dims, L, dtype=self.dtype, device=self.device
      )
      noise = torch.rand(
          *leading_dims, L, dtype=self.dtype, device=self.device
      )
      lengths = torch.rand(
          *leading_dims, dtype=self.dtype, device=self.device
      )
      snr = (
          torch.rand(
              *leading_dims, dtype=self.dtype, device=self.device
          )
          * 10
      )
      self.assert_grad(F.add_noise, (waveform, noise, snr, lengths))
  
imports: from functools import partial
  from typing import Callable, Tuple
  import torch
  import torchaudio.functional
  from parameterized import parameterized
  from torch import Tensor
  from torch.autograd import gradcheck, gradgradcheck
  from torchaudio_unittest.common_utils import get_spectrogram, get_whitenoise, nested_params, rnnt_utils, TestBaseMixin, use_deterministic_algorithms
label_desc: Use image node_id 36 for calling the Autograd obj's underlying member method code with example usage: obj.test_add_noise() without return types