# tf.keras.backend.separable_conv2d

<br />

|---|---|
| [![](https://www.tensorflow.org/images/tf_logo_32px.png) TensorFlow 1 version](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/keras/backend/separable_conv2d) | [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.0.0/tensorflow/python/keras/backend.py#L5008-L5062) |

2D convolution with separable filters.

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.keras.backend.separable_conv2d`](https://www.tensorflow.org/api_docs/python/tf/keras/backend/separable_conv2d)

<br />

    tf.keras.backend.separable_conv2d(
        x, depthwise_kernel, pointwise_kernel, strides=(1, 1), padding='valid',
        data_format=None, dilation_rate=(1, 1)
    )

<br />

<br />

<br />

| ## Arguments ||
|---|---|
| `x` | input tensor |
| `depthwise_kernel` | convolution kernel for the depthwise convolution. |
| `pointwise_kernel` | kernel for the 1x1 convolution. |
| `strides` | strides tuple (length 2). |
| `padding` | string, `"same"` or `"valid"`. |
| `data_format` | string, `"channels_last"` or `"channels_first"`. |
| `dilation_rate` | tuple of integers, dilation rates for the separable convolution. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| Output tensor. ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ValueError` | if `data_format` is neither `channels_last` or `channels_first`. |
| `ValueError` | if `strides` is not a tuple of 2 integers. |

<br />