[컨볼루션] ShuffleNet
·
프로그래밍/머신러닝
*본 내용은 공부 정리용으로 작성되었으며, 내용에 오류가 있을 수도 있습니다. ShuffleNet ShuffleNet은 기존 MobileNet과 같은 이유로 만들어졌다. 주요 목적은 변수와 연산량을 줄이는 것으로, MobileNet에선 Depth-wise separable convolution을 썼지만 이번엔 Group convolution과 Channel Shuffle을 사용한다. MobileNet과 Depth-wise separable convolution, Group convolution에 대해선 이전에 포스팅 한 것이 있다. Group convolution Group Convolution은 전에 AlexNet에서 사용되었는데, 그 때에는 GPU의 성능 한계 때문에 병렬처리를 위해 channel을 ..
[컨볼루션] Depthwise separable convolution
·
프로그래밍/머신러닝
* 본 내용은 공부 정리용으로 작성된 것이며 오류가 있을 수 있습니다. Nomal Convolution 기존 convolution에서 연산량은 아래와 같다. (K = 필터크기, N = 출력채널크기, Iw, Ih = 입력크기, M = 입력채널크기) $$ K^{2}MNI_{w}I_{h} $$ 따라서 위의 예제의 연산량은 $ 3^2*N*3*8*8 = 1,728N $ (N=1)이다. 이렇게 출력 채널이 작아지는 경우도 있지만, 특성지도를 더 늘리기 위해 채널의 수를 늘리는 경우도 있다. (N>1인 경우) N을 다른 방식으로 처리해서 기존 방식보다 곱셈연산을 줄인 방식이 아래에 나와있다. Dept-wise convolution Depth-wise convolution은 채널을 분리해서 컨볼루션 연산을 적용한 뒤,..
2jun0
'Convolution' 태그의 글 목록