code: def testComputeAverageLossSampleWeightsEmptyBatch(self, distribution):
      empty_rank0 = constant_op.constant([], dtypes.float32)
  
      with distribution.scope():
          # Scalar sample weight
          per_replica_losses = distribution.run(
              nn_impl_distribute.compute_average_loss,
              args=(empty_rank0,),
              kwargs={"sample_weight": 2},
          )
          loss = distribution.reduce(
              "SUM", per_replica_losses, axis=None
          )
          self.assertAllClose(self.evaluate(loss), 0.0)
  
          # Per example sample weight
          per_replica_losses = distribution.run(
              nn_impl_distribute.compute_average_loss,
              args=(empty_rank0,),
              kwargs={"sample_weight": empty_rank0},
          )
          loss = distribution.reduce(
              "SUM", per_replica_losses, axis=None
          )
          self.assertAllClose(self.evaluate(loss), 0.0)
  
imports: from absl.testing import parameterized
  from tensorflow.python.distribute import combinations
  from tensorflow.python.distribute import strategy_combinations
  from tensorflow.python.eager import context
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import nn_impl_distribute
  from tensorflow.python.platform import test
label_desc: Use image node_id 9 for calling the LossUtilitiesTest obj's underlying member method code with example usage: obj.testComputeAverageLossSampleWeightsEmptyBatch(distribution) without return types