반응형
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
[ 참고 자료 ]
반응형
'Artificial Intelligence > Neural Networks' 카테고리의 다른 글
[ CNN ] 6. Dilated convolution - PyTorch Code (0) | 2021.08.12 |
---|---|
[ CNN ] 5. Depth-wise Separable convolution - PyTorch Code (0) | 2021.08.12 |
[ CNN ] 3. Point-wise convolution - PyTorch Code (0) | 2021.08.12 |
[ CNN ] 2. Grouped convolution - PyTorch Code (0) | 2021.08.11 |
[ CNN ] 1. 바닐라 합성곱(vanilla convolution) - PyTorch Code (0) | 2021.08.11 |