class_docstr: Correlation Cost Layer.
  
  This layer implements the correlation operation from [FlowNet Learning
  Optical Flow with Convolutional Networks](https://arxiv.org/abs/1504.06852)(Fischer et al.).
  
  Args:
      kernel_size: An integer specifying the height and width of the
          patch used to compute the per-patch costs.
      max_displacement: An integer specifying the maximum search radius
          for each position.
      stride_1: An integer specifying the stride length in the input.
      stride_2: An integer specifying the stride length in the patch.
      pad: An integer specifying the paddings in height and width.
      data_format: Specifies the data format.
          Possible values are:
              "channels_last" float [batch, height, width, channels]
              "channels_first" float [batch, channels, height, width]
              Defaults to `"channels_last"`.
code: def call(self, inputs):
      if not isinstance(inputs, list):
          raise ValueError(
              "Input must be a list of two Tensors to process"
          )
  
      input_a = tf.convert_to_tensor(inputs[0])
      input_b = tf.convert_to_tensor(inputs[1])
  
      return _correlation_cost(
          input_a,
          input_b,
          kernel_size=self.kernel_size,
          max_displacement=self.max_displacement,
          stride_1=self.stride_1,
          stride_2=self.stride_2,
          pad=self.pad,
          data_format=self.data_format,
      )
  
file_path: addons/tensorflow_addons/layers/optical_flow.py
imports: import tensorflow
  from typeguard import typechecked
  from tensorflow_addons.utils.resource_loader import LazySO
label_desc: Use image node_id 3 for calling the CorrelationCost obj's underlying member method code with example usage: obj.call(inputs) and returns: _correlation_cost