Depthwise Separable convolution is a combination of depthwise and pointwise convolution [1]}. In contrast to traditional CNNs, which apply convolution to all \(M\)  channels at once, depthwise operations only apply convolution to a single channel at a time. So here the filters/kernels will be of size \(D_k \times D_k \times 1\) . As there are \(M\)  channels at the input, \(M\)  numbers of such filters are needed. This will produce a output of size \(D_p \times D_p \times M\) . A single convolution operation require \(D_k \times D_k\)  multiplications. Since the filter are slided by \(D_p \times D_p\)  times across all the \(M\)  channels. The total number of computation for one depthwise convolution comes to be \(M \times D_p^2 \times D_k^2\) . In point-wise operation, a \(1\times 1\)  convolution is applied on the \(M\)  channels. The filter shape for this operation will be \(1 \times 1 \times M\) . If we use \(N\)  such filters, the output shape becomes \(D_p \times D_p \times N\) . One convolution operation in this needs \(1 \times M\)  multiplications. The total number of operations for one pointwise convolution is \(M \times D_p^2 \times N\) . Therefore, total computational cost of one depthwise separable convolution is \(M \times D_p^2 \times D_k^2 + M \times D_p^2 \times N \)  [2]}. Table REF  shows the equations required for calculating the number of parameters and number of computations for each of the traditional CNN and DS-CNN layers. Here \(D_k \times D_k\)  is the size of the filter, \(D_p \times D_p\)  is the size of the output, \(M\)  is number the of input channels and \(N\)  is the number of output channels.
