본문 바로가기
인공지능 (기본 딥러닝)/딥러닝 및 파이토치 기타 정리

[Convolution 의 Group 파라미터] torch.nn.Conv3d(group=1)

by 애플파ol 2024. 2. 3.

궁금증: mPLUG-2 논문을 보니 concat이라는 부분이 있었는데  깃허브 코드를 확인해보았을때는 concat의 부분이 보이지 않음.

찾아보니 Conv3d에서 인자값으로 group이 존재.

 

 

1. group 기능 : Grouped Convolution 은 입력 값 채널출력 채널을 여러 개의 그룹(Group인자값) 으로 나누어 독립적으로 Convolution 연산을 수행하는 방식.

ex) 입력 채널 수 : 4 ,출력 채널 수 : 8 ,groups : 2

conv = nn.Conv2d(in_channels=4, out_channels=8, kernel_size=3, groups=2)

-> 입력 채널을 2개의 그룹으로 나누고
-> 출력 채널도 2개의 그룹으로 나눠서,

-> 각 그룹끼리만 연결되도록 Conv연산을 수행함.

🧠 실제 동작 방식

  • 입력 채널: [0, 1] (Group 1), [2, 3] (Group 2)
  • 출력 채널: [0~3] (Group 1), [4~7] (Group 2)
  • Group 1:
    • 입력 채널 0, 1 → 출력 채널 0~3
    • 필터 4개가 2채널 입력만 보고 학습
  • Group 2:
    • 입력 채널 2, 3 → 출력 채널 4~7
    • 역시 필터 4개가 2채널 입력만 보고 학습
  • 최종적으로 각 그룹에서 나온 출력 채널을 concat함 ( 쪼개진 입력차원에 대한 정보(차원크기)를 복원 하기 위해)

 

 

출처: https://eehoeskrap.tistory.com/431
출처: https://eehoeskrap.tistory.com/431
출처 : https://www.researchgate.net/profile/Jose-Cano-6/publication/342242494/figure/fig1/AS:903428242948107@1592405486871/Standard-vs-grouped-convolutions-a-In-a-standard-convolution-S-each-filter-is.ppm

 

 

기타 (딥러닝에 사용되는 다양한 Convolution 기법) : https://eehoeskrap.tistory.com/431#8.-grouped-convolution