class_docstr: Test determinsitic functionality and exceptions for FusedBatchNorm.
  
  Test that tf.errors.UnimplementedError is thrown, as
  appropriate, by the GPU code-path through FusedBatchNormFreezeGrad when
  deterministic ops are enabled. This test assumes that
  nn_fused_batchnorm_test.py runs equivalent test cases when deterministic ops
  are not enabled and will therefore detect erroneous exception throwing in
  those cases.
  
  Also test that the other code-paths, running on both CPU and GPU, operate
  deterministically.
class_docstr_tok: ["Test","determinsitic","functionality","and","exceptions","for","FusedBatchNorm",".","Test","that","tf.errors.UnimplementedError","is","thrown",",","as","appropriate",",","by","the","GPU","code-path","through","FusedBatchNormFreezeGrad","when","deterministic","ops","are","enabled",".","This","test","assumes","that","nn_fused_batchnorm_test.py","runs","equivalent","test","cases","when","deterministic","ops","are","not","enabled","and","will","therefore","detect","erroneous","exception","throwing","in","those","cases",".","Also","test","that","the","other","code-paths",",","running","on","both","CPU","and","GPU",",","operate","deterministically","."]
code: def _genParams(self, data_format, x_dtype, large_batch):
      if large_batch:
          batch_size = 5000
          height = width = 4
      else:
          batch_size = 10
          height = 5
          width = 5000
      channel_count = 3
      if data_format == "NHWC":
          x_shape = (batch_size, height, width, channel_count)
      else:  # 'NCHW'
          x_shape = (batch_size, channel_count, height, width)
      # Using random_ops.random_normal would produce different values on each run
      x = constant_op.constant(
          np.random.normal(size=x_shape), dtype=x_dtype
      )
      scale_shape = (channel_count,)
      scale = constant_op.constant(
          np.random.normal(size=scale_shape), dtype=dtypes.float32
      )
      offset = constant_op.constant(
          np.random.normal(size=scale_shape), dtype=dtypes.float32
      )
      mean = np.random.normal(size=scale_shape)
      variance = np.random.normal(size=scale_shape)
      y_shape = x_shape
      y_dtype = x_dtype
      upstream_gradients = constant_op.constant(
          np.random.normal(size=y_shape), dtype=y_dtype
      )
      return x, scale, offset, mean, variance, upstream_gradients
  
file_path: tensorflow/tensorflow/python/ops/nn_fused_batchnorm_d9m_test.py
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.framework import config
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import nn_impl
  from tensorflow.python.ops.nn_grad import _FusedBatchNormV3Grad
  from tensorflow.python.platform import test
label_desc: Use image node_id 1 for calling the FusedBatchNormalizationDeterministicTest obj's underlying member method code with example usage: obj._genParams(data_format, x_dtype, large_batch) and returns: x,  scale,  offset,  mean,  variance,  upstream_gradients