difficulty 3/5
Depthwise separable convolution
Split a convolution into filtering each channel and then mixing channels. Roughly nine times cheaper for a 3×3 kernel, and what is left is mostly matrix multiplication.
Intuition
An ordinary convolution does two jobs at once, and you pay for the product of them. It looks at a neighbourhood — that is filtering — and it mixes the input channels into new output channels — that is combining. Howard et al. put it exactly that way: "A standard convolution both filters and combines inputs into a new set of outputs in one step. The depthwise separable convolution splits this into two layers, a separate layer for filtering and a separate layer for combining" [1, §3.1].
Split them and the cost stops being a product and becomes a sum. For a 3×3 kernel that is about nine times less arithmetic [1, §3.1], which is the difference between a model that runs on a phone and one that does not.
The part worth staying for is what the split leaves behind. Once the spatial work is separated out, it turns out to be almost free — and nearly all the remaining arithmetic is in 1×1 convolutions, which are matrix multiplies wearing a convolution's name.
Formal definition
How it works
Where it's used
Why & when
Worked example
Pitfalls
Check yourself
3 questions
The questions on this page come with access. They are graded on the server, so the answers stay there until you have given yours.
Sources
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (2017)paperhttps://ar5iv.labs.arxiv.org/html/1704.04861
- Dive into Deep Learning — Multiple Input and Multiple Output Channelsbook · retrieved 2026-09-17https://d2l.ai/chapter_convolutional-neural-networks/channels.html