Separable convolution

If we consider an image X ∈ ℜw × h (single channel) and a kernel k ∈ ℜn × m, the number of operations is nmwh. When the kernel is not very small and the image is large, the cost of this computation can be quite high, even with GPU support. An improvement can be achieved by taking into account the associated property of convolutions. In particular, if the original kernel can be split into the dot product of two vectorial kernels, k(1) with dimensions (n × 1) and k(2) with dimensions (1 × m), the convolution is said to be separable. This means that we can perform a (× m) convolution with two subsequent operations:

The ...

Get Mastering Machine Learning Algorithms now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.