code: def testTheoreticalFldj(self):
      nbatch = 5
      channels = 10
      x = np.random.uniform(size=[nbatch, channels]).astype(np.float32)
  
      bijector = batch_normalization.BatchNormalization(training=False)
      bijector.batchnorm.build(x.shape)
      self.evaluate([v.initializer for v in bijector.variables])
  
      y = self.evaluate(bijector.forward(x))
      bijector_test_util.assert_bijective_and_finite(
          bijector,
          x,
          y,
          eval_func=self.evaluate,
          event_ndims=1,
          inverse_event_ndims=1,
          rtol=1e-5,
      )
      fldj = bijector.forward_log_det_jacobian(x, event_ndims=1)
      # The jacobian is not yet broadcast, since it is constant.
      fldj = fldj + tf.zeros(tf.shape(x)[:-1], dtype=x.dtype)
      fldj_theoretical = bijector_test_util.get_fldj_theoretical(
          bijector, x, event_ndims=1
      )
      self.assertAllClose(
          self.evaluate(fldj_theoretical),
          self.evaluate(fldj),
          atol=1e-5,
          rtol=1e-5,
      )
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import batch_normalization
  from tensorflow_probability.python.bijectors import bijector_test_util
  from tensorflow_probability.python.bijectors import invert
  from tensorflow_probability.python.bijectors import reshape
  from tensorflow_probability.python.distributions import mvn_diag
  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.internal import test_util
  from tensorflow_probability.python.internal import tf_keras
label_desc: Use image node_id 7 for calling the BatchNormTest obj's underlying member method code with example usage: obj.testTheoreticalFldj() without return types