code: def compute_output_spec(self, images):
      images_shape = ops.shape(images)
      if self.target_height is None:
          height_axis = 0 if len(images_shape) == 3 else 1
          self.target_height = (
              self.top_padding
              + images_shape[height_axis]
              + self.bottom_padding
          )
      if self.target_width is None:
          width_axis = 0 if len(images_shape) == 3 else 2
          self.target_width = (
              self.left_padding
              + images_shape[width_axis]
              + self.right_padding
          )
      out_shape = (
          images_shape[0],
          self.target_height,
          self.target_width,
          images_shape[-1],
      )
      if len(images_shape) == 3:
          out_shape = out_shape[1:]
      return KerasTensor(
          shape=out_shape,
          dtype=images.dtype,
      )
  
imports: from keras import backend
  from keras import ops
  from keras.api_export import keras_export
  from keras.backend import KerasTensor
  from keras.backend import any_symbolic_tensors
  from keras.ops.operation import Operation
  from keras.ops.operation_utils import compute_conv_output_shape
label_desc: Use image node_id 3 for calling the PadImages obj's underlying member method code with example usage: obj.compute_output_spec(images) and returns: KerasTensor