Answers.Body: <p>They are not the same thing.  </p>
  
  <p>asymmetric convolutions work by taking the x and y axes of the image separately. For example performing a convolution with an <span class="math-container">$(n \times 1)$</span> kernel before one with a <span class="math-container">$(1 \times n)$</span> kernel.  </p>
  
  <p>On the other-hand depth-wise separable convolutions separate the spatial and channel components of a 2D convolution. It will first perform the <span class="math-container">$(n \times n)$</span> convolution on each channel separately (full kernel shape will be <span class="math-container">$(n \times n \times 1)$</span> rather than <span class="math-container">$(n \times n \times k)$</span> where <span class="math-container">$k$</span> is the number of channels in the previous layer) before doing a <span class="math-container">$(1 \times 1)$</span> convolution to learn a relationship between the channels (full kernel size for that being <span class="math-container">$(1 \times 1 \times k)$</span>)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-08-04T10:31:57.070Z
Answers.Text: Thanks, I think it's already clearer now. Just two extra questions: 1. How does the number of channels (input & output) play a role in the asymmetric convolution? 2. For the depthwise separable convolution, is a  $(1 \times 1 \times k)$ convolution just a linear combination of the channels (after the previous $(n \times n \times 1)$ convolution)?
Answers.UserDisplayName: Pierre Gramme
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-08-04T13:52:30.623Z
Answers.Text: 1) so the kernels are $(1\times n \times k)$ for each of the first one, and the $(n \times 1 \times m)$ where $m$ is the number of $1\ times n$ filters you used. The number of the second filter is the number of output channels thatll exist. (Generally used where $k=m$). 2) Yes.
Answers.UserDisplayName: mshlis
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-08-02T16:56:55.070Z
Answers.LastActivityDate: 2019-08-02T16:56:55.070Z
Answers.UserDisplayName: mshlis
Body: <p>I have recently discovered <a href="https://arxiv.org/pdf/1512.00567.pdf" rel="noreferrer">asymmetric convolution layers</a> in deep learning architectures, a concept which seems very similar to <a href="https://arxiv.org/pdf/1610.02357.pdf" rel="noreferrer">depthwise separable convolutions</a>.</p>
  
  <p>Are they really the same concept with different names? If not, where is the difference? To make it concrete, what would each one look like if applied to a 128x128 image with 3 input channels (say R,G,B) and 8 output channels?</p>
  
  <p>NB: I cross-posted this from stackoverflow, since this kind of theoretical question is maybe better suited here. Hoping it is OK...</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-08-02T21:18:40.310Z
Comments.Text: Hi and welcome to this community! This is the type of question that is suited for this website and **not** for Stack Overflow, which is dedicated to programming issues. So, I would delete the question from SO, unless you received a good answer there. Btw, it might be useful to link to that SO question.
Comments.UserDisplayName: nbro
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-08-04T10:33:36.260Z
Comments.Text: You're right: I just deleted the SO question (which got no answer)
Comments.UserDisplayName: Pierre Gramme
Tags: <deep-learning><convolutional-neural-networks><comparison><convolution>
Title: What is the difference between asymmetric and depthwise separable convolution?
UserDisplayName: Pierre Gramme
ThreadText: # What is the difference between asymmetric and depthwise separable convolution?
  
  (Asked by: username_0 on 2019-08-02)
  
  I have recently discovered [asymmetric convolution layers](https://arxiv.org/pdf/1512.00567.pdf) in deep learning architectures, a concept which seems very similar to [depthwise separable convolutions](https://arxiv.org/pdf/1610.02357.pdf).
  
  Are they really the same concept with different names? If not, where is the difference? To make it concrete, what would each one look like if applied to a 128x128 image with 3 input channels (say R,G,B) and 8 output channels?
  
  NB: I cross-posted this from stackoverflow, since this kind of theoretical question is maybe better suited here. Hoping it is OK...
  
  **Tags:** deep-learning, convolutional-neural-networks, comparison, convolution
  
  > **Comments:**
  > **username_1**: Hi and welcome to this community! This is the type of question that is suited for this website and **not** for Stack Overflow, which is dedicated to programming issues. So, I would delete the question from SO, unless you received a good answer there. Btw, it might be useful to link to that SO question.  
  > **username_0**: You're right: I just deleted the SO question (which got no answer)  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2019-08-02. Score: 3 | Accepted answer
  
  They are not the same thing.
  
  asymmetric convolutions work by taking the x and y axes of the image separately. For example performing a convolution with an $(n \times 1)$ kernel before one with a $(1 \times n)$ kernel.
  
  On the other-hand depth-wise separable convolutions separate the spatial and channel components of a 2D convolution. It will first perform the $(n \times n)$ convolution on each channel separately (full kernel shape will be $(n \times n \times 1)$ rather than $(n \times n \times k)$ where $k$ is the number of channels in the previous layer) before doing a $(1 \times 1)$ convolution to learn a relationship between the channels (full kernel size for that being $(1 \times 1 \times k)$)
  
  > **Comments:**
  > **username_0**: Thanks, I think it's already clearer now. Just two extra questions: 1. How does the number of channels (input & output) play a role in the asymmetric convolution? 2. For the depthwise separable convolution, is a  $(1 \times 1 \times k)$ convolution just a linear combination of the channels (after the previous $(n \times n \times 1)$ convolution)?  
  > **username_2**: 1) so the kernels are $(1\times n \times k)$ for each of the first one, and the $(n \times 1 \times m)$ where $m$ is the number of $1\ times n$ filters you used. The number of the second filter is the number of output channels thatll exist. (Generally used where $k=m$). 2) Yes.  
  
  ---
  
  