class_docstr: Zero-padding layer for 3D data (spatial or spatio-temporal).
  
  Examples:
  
  >>> input_shape = (1, 1, 2, 2, 3)
  >>> x = np.arange(np.prod(input_shape)).reshape(input_shape)
  >>> y = keras.layers.ZeroPadding3D(padding=2)(x)
  >>> y.shape
  (1, 5, 6, 6, 3)
  
  Args:
      padding: Int, or tuple of 3 ints, or tuple of 3 tuples of 2 ints.
          - If int: the same symmetric padding is applied to depth, height,
            and width.
          - If tuple of 3 ints: interpreted as three different symmetric
            padding values for depth, height, and width:
            `(symmetric_dim1_pad, symmetric_dim2_pad, symmetric_dim3_pad)`.
          - If tuple of 3 tuples of 2 ints: interpreted as
            `((left_dim1_pad, right_dim1_pad), (left_dim2_pad,
            right_dim2_pad), (left_dim3_pad, right_dim3_pad))`.
      data_format: A string, one of `"channels_last"` (default) or
          `"channels_first"`. The ordering of the dimensions in the inputs.
          `"channels_last"` corresponds to inputs with shape
          `(batch_size, spatial_dim1, spatial_dim2, spatial_dim3, channels)`
          while `"channels_first"` corresponds to inputs with shape
          `(batch_size, channels, spatial_dim1, spatial_dim2, spatial_dim3)`.
          When unspecified, uses `image_data_format` value found in your Keras
          config file at `~/.keras/keras.json` (if exists). Defaults to
          `"channels_last"`.
  
  Input shape:
      5D tensor with shape:
      - If `data_format` is `"channels_last"`:
        `(batch_size, first_axis_to_pad, second_axis_to_pad,
        third_axis_to_pad, depth)`
      - If `data_format` is `"channels_first"`:
        `(batch_size, depth, first_axis_to_pad, second_axis_to_pad,
        third_axis_to_pad)`
  
  Output shape:
      5D tensor with shape:
      - If `data_format` is `"channels_last"`:
        `(batch_size, first_padded_axis, second_padded_axis,
        third_axis_to_pad, depth)`
      - If `data_format` is `"channels_first"`:
        `(batch_size, depth, first_padded_axis, second_padded_axis,
        third_axis_to_pad)`
class_docstr_tok: ["Zero-padding","layer","for","3D","data","(","spatial","or","spatio-temporal",")",".","Examples",":",">",">",">","input_shape","=","(","1",",","1",",","2",",","2",",","3",")",">",">",">","x","=","np.arange","(","np.prod","(","input_shape",")",")",".reshape","(","input_shape",")",">",">",">","y","=","keras.layers.ZeroPadding3D","(","padding=2",")","(","x",")",">",">",">","y.shape","(","1",",","5",",","6",",","6",",","3",")","Args",":","padding",":","Int",",","or","tuple","of","3","ints",",","or","tuple","of","3","tuples","of","2","ints",".","-","If","int",":","the","same","symmetric","padding","is","applied","to","depth",",","height",",","and","width",".","-","If","tuple","of","3","ints",":","interpreted","as","three","different","symmetric","padding","values","for","depth",",","height",",","and","width",":","`","(","symmetric_dim1_pad",",","symmetric_dim2_pad",",","symmetric_dim3_pad",")","`",".","-","If","tuple","of","3","tuples","of","2","ints",":","interpreted","as","`","(","(","left_dim1_pad",",","right_dim1_pad",")",",","(","left_dim2_pad",",","right_dim2_pad",")",",","(","left_dim3_pad",",","right_dim3_pad",")",")","`",".","data_format",":","A","string",",","one","of","`","``","channels_last","''","`","(","default",")","or","`","``","channels_first","''","`",".","The","ordering","of","the","dimensions","in","the","inputs",".","`","``","channels_last","''","`","corresponds","to","inputs","with","shape","`","(","batch_size",",","spatial_dim1",",","spatial_dim2",",","spatial_dim3",",","channels",")","`","while","`","``","channels_first","''","`","corresponds","to","inputs","with","shape","`","(","batch_size",",","channels",",","spatial_dim1",",","spatial_dim2",",","spatial_dim3",")","`",".","When","unspecified",",","uses","`","image_data_format","`","value","found","in","your","Keras","config","file","at","`","~\/.keras\/keras.json","`","(","if","exists",")",".","Defaults","to","`","``","channels_last","''","`",".","Input","shape",":","5D","tensor","with","shape",":","-","If","`","data_format","`","is","`","``","channels_last","''","`",":","`","(","batch_size",",","first_axis_to_pad",",","second_axis_to_pad",",","third_axis_to_pad",",","depth",")","`","-","If","`","data_format","`","is","`","``","channels_first","''","`",":","`","(","batch_size",",","depth",",","first_axis_to_pad",",","second_axis_to_pad",",","third_axis_to_pad",")","`","Output","shape",":","5D","tensor","with","shape",":","-","If","`","data_format","`","is","`","``","channels_last","''","`",":","`","(","batch_size",",","first_padded_axis",",","second_padded_axis",",","third_axis_to_pad",",","depth",")","`","-","If","`","data_format","`","is","`","``","channels_first","''","`",":","`","(","batch_size",",","depth",",","first_padded_axis",",","second_padded_axis",",","third_axis_to_pad",")","`"]
code: def compute_output_shape(self, input_shape):
      output_shape = list(input_shape)
      spatial_dims_offset = (
          2 if self.data_format == "channels_first" else 1
      )
      for index in range(0, 3):
          if output_shape[index + spatial_dims_offset] is not None:
              output_shape[index + spatial_dims_offset] += (
                  self.padding[index][0] + self.padding[index][1]
              )
      return tuple(output_shape)
  
file_path: keras/keras/layers/reshaping/zero_padding3d.py
imports: from keras import backend
  from keras import ops
  from keras.api_export import keras_export
  from keras.layers.input_spec import InputSpec
  from keras.layers.layer import Layer
  from keras.utils import argument_validation
label_desc: Use image node_id 2 for calling the ZeroPadding3D obj's underlying member method code with example usage: obj.compute_output_shape(input_shape) and returns: tuple