code: def testNonVariableGradients(self):
      b = 10
      scale = tf.convert_to_tensor(rng.rand(b) + 0.5)
      loc = tf.convert_to_tensor(rng.randn(b))
      sasnorm = sinh_arcsinh.SinhArcsinh(
          loc=loc, scale=scale, validate_args=True
      )
  
      x = rng.randn(5, b)
      with tf.GradientTape() as tape:
          tape.watch(loc)
          tape.watch(scale)
          y = sasnorm.log_prob(x)
      grads = tape.gradient(y, [loc, scale])
      self.assertLen(grads, 2)
      self.assertAllNotNone(grads)
  
file_path: probability/tensorflow_probability/python/distributions/sinh_arcsinh_test.py
imports: import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import laplace
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import sinh_arcsinh
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 10 for calling the SinhArcsinhTest obj's underlying member method code with example usage: obj.testNonVariableGradients() without return types