ResNext는 ResNet의 발전된 형태입니다.
어떤 형태로 발전됬는지 한번 보겠습니다.
왼쪽은 ResNet, 오른쪽은 ResNext 입니다.
여기서 달라진 점은 group = 32 가 생겼습니다.
이제 group에 대해 알아보겠습니다.
Group Convolution
일단 ResNext 논문에서는 이를 Cardinality라고 부릅니다.
① 에서 1 by 1 Conv를 이용하여 in : 256 → out : 128 channel로 변경하여 줍니다.
② 에서 넘어온 128개의 channel을 32로 나눠 줍니다. 128 / 32 = 4
그후, 4묶음으로 나뉜 채널을 각각 3x3 filter로 Conv 연산을 진행해줍니다.
연산이 완료된 그룹을 concatenation을 해주어 out : 128 channel로 만들어 줍니다.
③ 에서는 ①와 같이 1 by 1 Conv 연산을 진행해줍니다.
Group Convolution 사용 이유
초창기 논문인 VGG 에서는 GPU의 성능으로 인해서 2개의 GPU를 사용하여 학습을 진행했습니다.
그랬더니 서로 다른 색을 가진 특징값에 집중되어 학습이 되었습니다. - 흑백, 컬러
이를 ResNet에 적용하여 아래와 같이 성능이 증가하게 되었습니다.
d 앞에는 width (channel)
그 앞의 숫자는 group의 수입니다.
다음은 DenseNet을 다뤄보겠습니다.
Code
https://github.com/ajw1587/Pytorch_Study/blob/main/31_ResNext.ipynb
'Deep Learning > Pytorch' 카테고리의 다른 글
33_Xception (0) | 2022.04.20 |
---|---|
32_DenseNet (0) | 2022.04.11 |
25_Pytorch_GoogLeNet 1x1 Convolution (0) | 2022.03.15 |
30_AlexNet (0) | 2022.03.01 |
27_Pytorch_Custom_Dataset (0) | 2021.12.02 |