zeropadding layer for 1d input e g temporal sequence examples inputshape 2 2 3 x np arangenp prodinputshape reshapeinputshape x 0 1 2 3 4 5 6 7 8 9 10 11 y keras layers zeropadding1dpadding2x y 0 0 0 0 0 0 0 1 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 0 6 7 8 9 10 11 0 0 0 0 0 0 args padding int or tuple of int length 2 or dictionary if int how many zeros to add at the beginning and end of the padding dimension axis 1 if tuple of 2 ints how many zeros to add at the beginning and the end of the padding dimension leftpad rightpad input shape 3d tensor with shape batchsize axistopad features output shape 3d tensor with shape batchsize paddedaxis features zero padding layer for 1d input e g temporal sequence examples input_shape 2 2 3 x np arange np prod input_shape reshape input_shape x 0 1 2 3 4 5 6 7 8 9 10 11 y keras layers zeropadding1d padding 2 x y 0 0 0 0 0 0 0 1 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 0 6 7 8 9 10 11 0 0 0 0 0 0 args padding int or tuple of int length 2 or dictionary if int how many zeros to add at the beginning and end of the padding dimension axis 1 if tuple of 2 ints how many zeros to add at the beginning and the end of the padding dimension left_pad right_pad input shape 3d tensor with shape batch_size axis_to_pad features output shape 3d tensor with shape batch_size padded_axis features
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


@keras_export("keras.layers.ZeroPadding1D")
class ZeroPadding1D(Layer):
    

    def __init__(self, padding=1, **kwargs):
        super().__init__(**kwargs)
        self.padding = argument_validation.standardize_tuple(
            padding, 2, "padding", allow_zero=True
        )
        self.input_spec = InputSpec(ndim=3)

    def compute_output_shape(self, input_shape):
        output_shape = list(input_shape)
        if output_shape[1] is not None:
            output_shape[1] += self.padding[0] + self.padding[1]
        return tuple(output_shape)

    def call(self, inputs):
        all_dims_padding = ((0, 0), self.padding, (0, 0))
        return ops.pad(inputs, all_dims_padding)

    def get_config(self):
        config = {"padding": self.padding}
        base_config = super().get_config()
        return {**base_config, **config}