class_docstr: Note: is ACTUALLY a cross-correlation i.e. weights are not 'flipped'
class_docstr_tok: ["Note",":","is","ACTUALLY","a","cross-correlation","i.e",".","weights","are","not","'flipped","'"]
code: def _compute_shape(self, input_shape):
      if self.data_format == DataFormat.channels_first:
          input_shape = [
              input_shape[0],
              input_shape[2],
              input_shape[3],
              input_shape[1],
          ]
  
      # assuming channels_last dimension ordering here
      shape_to_return = [None]
      if input_shape is None:
          shape_to_return += [None, None]
      else:
          if self.padding == PaddingMode.valid:
              for dim_inp_len, dim_kern_width, dim_stride in zip(
                  input_shape[1:3], self.kernel.shape[:2], self.strides
              ):
                  # overhangs are excluded
                  shape_to_return.append(
                      1
                      + int((dim_inp_len - dim_kern_width) / dim_stride)
                  )
          elif self.padding == PaddingMode.same:
              for dim_inp_len, dim_kern_width, dim_stride in zip(
                  input_shape[1:3], self.kernel.shape[:2], self.strides
              ):
                  shape_to_return.append(
                      int((dim_inp_len + dim_stride - 1) / dim_stride)
                  )
          else:
              raise RuntimeError(
                  "Please implement shape inference for"
                  " border mode: " + str(self.padding)
              )
      shape_to_return.append(
          self.kernel.shape[-1]
      )  # num output channels
  
      if self.data_format == DataFormat.channels_first:
          shape_to_return = [
              shape_to_return[0],
              shape_to_return[3],
              shape_to_return[1],
              shape_to_return[2],
          ]
  
      return shape_to_return
  
imports: from __future__ import division
  from __future__ import print_function
  from __future__ import absolute_import
  from .core import *
  from .helper_functions import conv1d_transpose_via_conv2d
  from .None import helper_functions
  import tensorflow
label_desc: Use image node_id 2 for calling the Conv2D obj's underlying member method code with example usage: obj._compute_shape(input_shape) and returns: shape_to_return