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 build(self, input_shape):
      if not isinstance(input_shape, list):
          raise ValueError(
              "Input must be a list of two Tensors to process"
          )
      super().build(input_shape)
  
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 2 for calling the CorrelationCost obj's underlying member method code with example usage: obj.build(input_shape) without return types