code: def test_gradients_through_params(self):
      loc = tf.Variable(tf.zeros([4, 5, 3]), shape=tf.TensorShape(None))
      scale = tf.Variable(tf.ones([]), shape=tf.TensorShape(None))
      # In real life, you'd really always want `sample_shape` to be
      # `trainable=False`.
      sample_shape = tf.Variable([1, 2], shape=tf.TensorShape(None))
      dist = sample.Sample(
          independent.Independent(
              logistic.Logistic(loc=loc, scale=scale),
              reinterpreted_batch_ndims=1,
          ),
          sample_shape=sample_shape,
          validate_args=True,
      )
      with tf.GradientTape() as tape:
          loss = -dist.log_prob(0.0)
      self.assertLen(dist.trainable_variables, 3)
      grad = tape.gradient(loss, [loc, scale, sample_shape])
      self.assertAllNotNone(grad[:-1])
      self.assertIs(grad[-1], None)
  
imports: import functools
  import os
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.bijectors import scale_matvec_tril
  from tensorflow_probability.python.distributions import cholesky_lkj
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import log_prob_ratio
  from tensorflow_probability.python.distributions import logistic
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import poisson
  from tensorflow_probability.python.distributions import sample
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 10 for calling the SampleDistributionTest obj's underlying member method code with example usage: obj.test_gradients_through_params() without return types