code: def test_sharded_sample_samples_differently_across_shards(self):
      @tf.function(autograph=False)
      def run(key):
          return sharded.Sharded(
              sample_dist_lib.Sample(normal.Normal(0.0, 1.0), 1),
              shard_axis_name=self.axis_name,
          ).sample(seed=key)
  
      sample = self.evaluate(
          self.per_replica_to_tensor(
              self.strategy_run(run, (self.key,), in_axes=None)
          )
      )
      for i in range(4):
          for j in range(4):
              if i == j:
                  continue
              self.assertNotEqual(sample[i], sample[j])
  
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import invert
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import joint_distribution_coroutine
  from tensorflow_probability.python.distributions import log_prob_ratio
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import sample
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.experimental.distribute import joint_distribution
  from tensorflow_probability.python.experimental.distribute import sharded
  from tensorflow_probability.python.experimental.distributions import increment_log_prob
  from tensorflow_probability.python.internal import distribute_test_lib
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 1 for calling the ShardTest obj's underlying member method code with example usage: obj.test_sharded_sample_samples_differently_across_shards() and returns: sharded