What are separable convolutions?

What are separable convolutions?

The spatial separable convolution is so named because it deals primarily with the spatial dimensions of an image and kernel: the width and the height. (The other dimension, the “depth” dimension, is the number of channels of each image). A spatial separable convolution simply divides a kernel into two, smaller kernels.

Why do we use multiple kernels channels in a convolutional layer?

Many kernels In much deeper networks these kernels could be filtering to animal features such as eyes or bird wings. Having a higher number of convolutional kernels creates a higher number of channels/feature maps and a growing amount of data and this uses more memory.

Why is the depthwise separable convolution called that?

The depthwise separable convolution is so named because it deals not just with the spatial dimensions, but with the depth dimension — the number of channels — as well. An input image may have 3 channels: RGB. After a few convolutions, an image may have multiple channels.

How to apply convolutions to multiple input channels?

We start with convolutions applied to multiple input channels and then we look at convolutions that return multiple output channels. Simple, in MXNet Gluon! So far in this convolution series we’ve been applying: 2D Convolutions to 2 dimensional data (height and width)

How big is an image in a separable convolution?

Each 5x5x1 kernel iterates 1 channel of the image (note: 1 channel, not all channels), getting the scalar products of every 25 pixel group, giving out a 8x8x1 image. Stacking these images together creates a 8x8x3 image. Remember, the original convolution transformed a 12x12x3 image to a 8x8x256 image.

How many channels does a 1D convolution have?

Given we have 4 input channels this time, our kernel will be initialised with 4 channels too. So even though we are using a 1D Convolution, we have a 2D kernel!