code: def test_gradient_through_params(self):
      df = tf.Variable([19.43, 1.0], dtype=tf.float64)
      nc = tf.Variable([5.12, 0.0], dtype=tf.float64)
  
      d = noncentral_chi2.NoncentralChi2(
          df=df, noncentrality=nc, validate_args=True
      )
  
      with tf.GradientTape() as tape:
          loss = -d.log_prob([1.0, 2.0])
  
      grad = tape.gradient(loss, d.trainable_variables)
  
      self.assertLen(grad, 2)
      self.assertAllNotNone(grad)
  
imports: from absl.testing import parameterized
  import numpy
  from scipy import stats
  import tensorflow
  from tensorflow_probability.python.distributions import noncentral_chi2
  from tensorflow_probability.python.distributions.internal import statistical_testing
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 8 for calling the NoncentralChi2Test obj's underlying member method code with example usage: obj.test_gradient_through_params() without return types