본문 바로가기
Artificial Intelligence/Neural Networks

[ CNN ] 4. Depth-wise convolution - PyTorch Code

by SuperMemi 2021. 8. 12.
반응형

 

Depth-wise convoltuion 

 


 

 

단일 채널에 대해서만 수행되는 필터를 이용하여 convolution 하는 것을 말한다. 

채널 방향으로 합쳐지지 않고, spatial 방향으로만 convolution을 진행한다.

 

  •  각 channel 별로 convolution 
  •  결과적으로 입력 채널 수 만큼 그룹을 나눈 Grouped Convolution 과 동일하다
  •  장점 : 각 채널 고유의 feature를 뽑아낼 수 있음, parameter 수와 연산을 줄일 수 있음.

        - parameter 수 : C_in x Kernel_size^2 

 

import torch.nn as nn

class ConvBNReLU(nn.Module):
    def __init__(self, C_in, C_out, kernel_size, stride, padding, affine=True):
        super(ConvBNReLU, self).__init__()

        self.op = nn.Sequential(
            nn.Conv2d(C_in, C_in, kernel_size=kernel_size, stride=stride, padding=padding, groups=C_in,bias=False),
            nn.BatchNorm2d(C_in, affine=affine),
            nn.ReLU(inplace=False)   
        )

    def forward(self, x):
        return self.op(x)

2021.08.12 - [AI/ML & DL] - [ CNN ] 5. Depth-wise Separable Convolution - PyTorch Code

 

[ CNN ] 5. Depth-wise Separable Convolution - PyTorch Code

Depth-wise Separable Convolution - PyTorch Code - Idea in Xception : 기존의 Convolution 에서 Cross-chnnel Correlation을 분리하기 위해 제안  Depth-wise conv 를 한 후, Point-wise conv를 하는 것..

supermemi.tistory.com

 


[ 참고 자료 ]

https://eehoeskrap.tistory.com/431

반응형