ResNext는 ResNet의 발전된 형태입니다.

어떤 형태로 발전됬는지 한번 보겠습니다.

 

 

Left: ResNet, Right: ResNext

왼쪽은 ResNet, 오른쪽은 ResNext 입니다.

여기서 달라진 점은 group = 32 가 생겼습니다.

이제 group에 대해 알아보겠습니다.

 

 

 


Group Convolution

 

일단 ResNext 논문에서는 이를 Cardinality라고 부릅니다.

ResNext - Bottleneck

① 에서 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를 사용하여 학습을 진행했습니다.

VGG

그랬더니 서로 다른 색을 가진 특징값에 집중되어 학습이 되었습니다. - 흑백, 컬러

이를 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

+ Recent posts