General N-D separable convolution.
tf.keras.ops.separable_conv(
inputs,
depthwise_kernel,
pointwise_kernel,
strides=1,
padding='valid',
data_format=None,
dilation_rate=1
)
This ops supports 1D and 2D separable convolution. separable_conv is
a depthwise conv followed by a pointwise conv.
inputs
|
Tensor of rank N+2. inputs has shape
(batch_size,) + inputs_spatial_shape + (num_channels,) if
data_format="channels_last", or
(batch_size, num_channels) + inputs_spatial_shape if
data_format="channels_first".
|
depthwise_kernel
|
Tensor of rank N+2. depthwise_kernel has shape
[kernel_spatial_shape, num_input_channels, num_channels_multiplier],
num_input_channels should match the number of channels in
inputs.
|
pointwise_kernel
|
Tensor of rank N+2. pointwise_kernel has shape
(*ones_like(kernel_spatial_shape),
num_input_channels * num_channels_multiplier, num_output_channels).
|
strides
|
int or int tuple/list of len(inputs_spatial_shape),
specifying the strides of the convolution along each spatial
dimension. If strides is int, then every spatial dimension shares
the same strides.
|
padding
|
string, either "valid" or "same". "valid" means no
padding is applied, and "same" results in padding evenly to the
left/right or up/down of the input such that output has the
same height/width dimension as the input when strides=1.
|
data_format
|
A string, either "channels_last" or "channels_first".
data_format determines the ordering of the dimensions in the
inputs. If data_format="channels_last", inputs is of shape
(batch_size, ..., channels) while if
data_format="channels_first", inputs is of shape
(batch_size, channels, ...).
|
dilation_rate
|
int or int tuple/list of len(inputs_spatial_shape),
specifying the dilation rate to use for dilated convolution. If
dilation_rate is int, then every spatial dimension shares
the same dilation_rate.
|
Returns |
|
A tensor of rank N+2, the result of the depthwise conv operation.
|