class_docstr: Test that CropAndResizeBackprop{Image|Boxes} operates reproducibly.
  
  Inheriting from test_base.CropAndResizeOpTestBase ensures that regular op
  functionality is correct when the deterministic code-path is selected.
code: def _testReproducibleBackprop(self, test_image_not_boxes):
      with test_util.force_cpu():
          for dtype in [dtypes.float16, dtypes.float32, dtypes.float64]:
              params = self._genParams(dtype)
              (
                  image,
                  boxes,
                  box_indices,
                  crop_size,
                  injected_gradients,
              ) = params
  
              with backprop.GradientTape(persistent=True) as tape:
                  tape.watch([image, boxes])
                  output = image_ops.crop_and_resize_v2(
                      image,
                      boxes,
                      box_indices,
                      crop_size,
                      method="bilinear",
                  )
                  upstream = output * injected_gradients
  
              image_gradients_a, boxes_gradients_a = tape.gradient(
                  upstream, [image, boxes]
              )
              for _ in range(5):
                  image_gradients_b, boxes_gradients_b = tape.gradient(
                      upstream, [image, boxes]
                  )
                  if test_image_not_boxes:
                      self.assertAllEqual(
                          image_gradients_a, image_gradients_b
                      )
                  else:
                      self.assertAllEqual(
                          boxes_gradients_a, boxes_gradients_b
                      )
  
imports: import numpy
  from absl.testing import parameterized
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager import context
  from tensorflow.python.framework import config
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import random_seed
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import image_grad_test_base
  from tensorflow.python.ops import image_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 4 for calling the CropAndResizeOpDeterministicTest obj's underlying member method code with example usage: obj._testReproducibleBackprop(test_image_not_boxes) without return types