1d depthwise convolution layer depthwise convolution is a type of convolution in which each input channel is convolved with a different kernel called a depthwise kernel you can understand depthwise convolution as the first step in a depthwise separable convolution it is implemented via the following steps split the input into individual channels convolve each channel with an individual depthwise kernel with depthmultiplier output channels concatenate the convolved outputs along the channels axis unlike a regular 1d convolution depthwise convolution does not mix information across different input channels the depthmultiplier argument determines how many filters are applied to one input channel as such it controls the amount of output channels that are generated per input channel in the depthwise step args kernelsize int or tuplelist of 1 integer specifying the size of the depthwise convolution window strides int or tuplelist of 1 integer specifying the stride length of the convolution strides 1 is incompatible with dilationrate 1 padding string either valid or same caseinsensitive valid means no padding same results in padding evenly to the leftright or updown of the input when paddingsame and strides1 the output has the same size as the input depthmultiplier the number of depthwise convolution output channels for each input channel the total number of depthwise convolution output channels will be equal to inputchannel depthmultiplier dataformat string either channelslast or channelsfirst the ordering of the dimensions in the inputs channelslast corresponds to inputs with shape batch steps features while channelsfirst corresponds to inputs with shape batch features steps it defaults to the imagedataformat value found in your keras config file at keraskeras json if you never set it then it will be channelslast dilationrate int or tuplelist of 1 integers specifying the dilation rate to use for dilated convolution activation activation function if none no activation is applied usebias bool if true bias will be added to the output depthwiseinitializer initializer for the convolution kernel if none the default initializer glorotuniform will be used biasinitializer initializer for the bias vector if none the default initializer zeros will be used depthwiseregularizer optional regularizer for the convolution kernel biasregularizer optional regularizer for the bias vector activityregularizer optional regularizer function for the output depthwiseconstraint optional projection function to be applied to the kernel after being updated by an optimizer e g used to implement norm constraints or value constraints for layer weights the function must take as input the unprojected variable and must return the projected variable which must have the same shape constraints are not safe to use when doing asynchronous distributed training biasconstraint optional projection function to be applied to the bias after being updated by an optimizer input shape if dataformatchannelslast a 3d tensor with shape batchshape steps channels if dataformatchannelsfirst a 3d tensor with shape batchshape channels steps output shape if dataformatchannelslast a 3d tensor with shape batchshape newsteps channels depthmultiplier if dataformatchannelsfirst a 3d tensor with shape batchshape channels depthmultiplier newsteps returns a 3d tensor representing activationdepthwiseconv1dinputs kernel bias raises valueerror when both strides 1 and dilationrate 1 examples x np random rand4 10 12 y keras layers depthwiseconv1d3 3 2 activation relu x printy shape 4 4 36 1d depthwise convolution layer depthwise convolution is a type of convolution in which each input channel is convolved with a different kernel called a depthwise kernel you can understand depthwise convolution as the first step in a depthwise separable convolution it is implemented via the following steps split the input into individual channels convolve each channel with an individual depthwise kernel with depth_multiplier output channels concatenate the convolved outputs along the channels axis unlike a regular 1d convolution depthwise convolution does not mix information across different input channels the depth_multiplier argument determines how many filters are applied to one input channel as such it controls the amount of output channels that are generated per input channel in the depthwise step args kernel_size int or tuple list of 1 integer specifying the size of the depthwise convolution window strides int or tuple list of 1 integer specifying the stride length of the convolution strides 1 is incompatible with dilation_rate 1 padding string either valid or same case insensitive valid means no padding same results in padding evenly to the left right or up down of the input when padding same and strides 1 the output has the same size as the input depth_multiplier the number of depthwise convolution output channels for each input channel the total number of depthwise convolution output channels will be equal to input_channel depth_multiplier data_format string either channels_last or channels_first the ordering of the dimensions in the inputs channels_last corresponds to inputs with shape batch steps features while channels_first corresponds to inputs with shape batch features steps it defaults to the image_data_format value found in your keras config file at keras keras json if you never set it then it will be channels_last dilation_rate int or tuple list of 1 integers specifying the dilation rate to use for dilated convolution activation activation function if none no activation is applied use_bias bool if true bias will be added to the output depthwise_initializer initializer for the convolution kernel if none the default initializer glorot_uniform will be used bias_initializer initializer for the bias vector if none the default initializer zeros will be used depthwise_regularizer optional regularizer for the convolution kernel bias_regularizer optional regularizer for the bias vector activity_regularizer optional regularizer function for the output depthwise_constraint optional projection function to be applied to the kernel after being updated by an optimizer e g used to implement norm constraints or value constraints for layer weights the function must take as input the unprojected variable and must return the projected variable which must have the same shape constraints are not safe to use when doing asynchronous distributed training bias_constraint optional projection function to be applied to the bias after being updated by an optimizer input shape if data_format channels_last a 3d tensor with shape batch_shape steps channels if data_format channels_first a 3d tensor with shape batch_shape channels steps output shape if data_format channels_last a 3d tensor with shape batch_shape new_steps channels depth_multiplier if data_format channels_first a 3d tensor with shape batch_shape channels depth_multiplier new_steps returns a 3d tensor representing activation depthwise_conv1d inputs kernel bias raises valueerror when both strides 1 and dilation_rate 1 examples x np random rand 4 10 12 y keras layers depthwiseconv1d 3 3 2 activation relu x print y shape 4 4 36
from keras.api_export import keras_export
from keras.layers.convolutional.base_depthwise_conv import BaseDepthwiseConv


@keras_export("keras.layers.DepthwiseConv1D")
class DepthwiseConv1D(BaseDepthwiseConv):
    

    def __init__(
        self,
        kernel_size,
        strides=1,
        padding="valid",
        depth_multiplier=1,
        data_format=None,
        dilation_rate=1,
        activation=None,
        use_bias=True,
        depthwise_initializer="glorot_uniform",
        bias_initializer="zeros",
        depthwise_regularizer=None,
        bias_regularizer=None,
        activity_regularizer=None,
        depthwise_constraint=None,
        bias_constraint=None,
        **kwargs
    ):
        super().__init__(
            rank=1,
            depth_multiplier=depth_multiplier,
            kernel_size=kernel_size,
            strides=strides,
            padding=padding,
            data_format=data_format,
            dilation_rate=dilation_rate,
            activation=activation,
            use_bias=use_bias,
            depthwise_initializer=depthwise_initializer,
            bias_initializer=bias_initializer,
            depthwise_regularizer=depthwise_regularizer,
            bias_regularizer=bias_regularizer,
            activity_regularizer=activity_regularizer,
            depthwise_constraint=depthwise_constraint,
            bias_constraint=bias_constraint,
            **kwargs
        )