class_docstr: Tests for deterministic cuDNN functionality.
code: def _random_out_op(
      self, in_shape, filter_shape, strides, padding, dilations
  ):
      # Choosing not to use array_op.zeros() to prevent possible removal by
      # optimization
      in_op = self._random_data_op(in_shape)
      filter_op = self._random_data_op(filter_shape)
      # Use the forward op's shape-inference
      conv_op = nn_ops.conv2d(
          in_op,
          filter_op,
          strides=strides,
          padding=padding,
          dilations=dilations,
      )
      out_shape = conv_op.get_shape()
      out_op = self._random_data_op(out_shape)
      return out_op
  
imports: import collections
  import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the ConvolutionTest obj's underlying member method code with example usage: obj._random_out_op(in_shape, filter_shape, strides, padding, dilations) and returns: out_op