![]() |
Class SeparableConv2D
Depthwise separable 2D convolution.
Aliases:
- Class
tf.compat.v1.keras.layers.SeparableConv2D
- Class
tf.compat.v1.keras.layers.SeparableConvolution2D
- Class
tf.compat.v2.keras.layers.SeparableConv2D
- Class
tf.compat.v2.keras.layers.SeparableConvolution2D
- Class
tf.keras.layers.SeparableConvolution2D
Separable convolutions consist in first performing
a depthwise spatial convolution
(which acts on each input channel separately)
followed by a pointwise convolution which mixes together the resulting
output channels. The depth_multiplier
argument controls how many
output channels are generated per input channel in the depthwise step.
Intuitively, separable convolutions can be understood as a way to factorize a convolution kernel into two smaller kernels, or as an extreme version of an Inception block.
Arguments:
filters
: Integer, the dimensionality of the output space (i.e. the number of output filters in the convolution).kernel_size
: An integer or tuple/list of 2 integers, specifying the height and width of the 2D convolution window. Can be a single integer to specify the same value for all spatial dimensions.strides
: An integer or tuple/list of 2 integers, specifying the strides of the convolution along the height and width. Can be a single integer to specify the same value for all spatial dimensions. Specifying any stride value != 1 is incompatible with specifying anydilation_rate
value != 1.padding
: one of"valid"
or"same"
(case-insensitive).data_format
: A string, one ofchannels_last
(default) orchannels_first
. The ordering of the dimensions in the inputs.channels_last
corresponds to inputs with shape(batch, height, width, channels)
whilechannels_first
corresponds to inputs with shape(batch, channels, height, width)
. It defaults to theimage_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
: An integer or tuple/list of 2 integers, specifying the dilation rate to use for dilated convolution. Currently, specifying anydilation_rate
value != 1 is incompatible with specifying anystrides
value != 1.depth_multiplier
: The number of depthwise convolution output channels for each input channel. The total number of depthwise convolution output channels will be equal tofilters_in * depth_multiplier
.activation
: Activation function to use. If you don't specify anything, no activation is applied (ie. "linear" activation:a(x) = x
).use_bias
: Boolean, whether the layer uses a bias vector.depthwise_initializer
: Initializer for the depthwise kernel matrix.pointwise_initializer
: Initializer for the pointwise kernel matrix.bias_initializer
: Initializer for the bias vector.depthwise_regularizer
: Regularizer function applied to the depthwise kernel matrix.pointwise_regularizer
: Regularizer function applied to the pointwise kernel matrix.bias_regularizer
: Regularizer function applied to the bias vector.activity_regularizer
: Regularizer function applied to the output of the layer (its "activation")..depthwise_constraint
: Constraint function applied to the depthwise kernel matrix.pointwise_constraint
: Constraint function applied to the pointwise kernel matrix.bias_constraint
: Constraint function applied to the bias vector.
Input shape:
4D tensor with shape:
(batch, channels, rows, cols)
if data_format='channels_first'
or 4D tensor with shape:
(batch, rows, cols, channels)
if data_format='channels_last'.
Output shape:
4D tensor with shape:
(batch, filters, new_rows, new_cols)
if data_format='channels_first'
or 4D tensor with shape:
(batch, new_rows, new_cols, filters)
if data_format='channels_last'.
rows
and cols
values might have changed due to padding.
__init__
__init__(
filters,
kernel_size,
strides=(1, 1),
padding='valid',
data_format=None,
dilation_rate=(1, 1),
depth_multiplier=1,
activation=None,
use_bias=True,
depthwise_initializer='glorot_uniform',
pointwise_initializer='glorot_uniform',
bias_initializer='zeros',
depthwise_regularizer=None,
pointwise_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
depthwise_constraint=None,
pointwise_constraint=None,
bias_constraint=None,
**kwargs
)