transposed convolution 외 다양한 convolution 을 정리한 글 https://chang-aistory.tistory.com/48?category=933534
그림으로 잘 설명 되어있는 사이트 https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md
CLASStorch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros', device=None, dtype=None)
2d transposed convolution레이어를 생성해주는 nn.convtranspose2d 클래스에 대해 살펴보겠습니다
•
TensorFloat32 지원 모듈
이 모듈은 input에 대한 Conv2d의 gradient라고 보여질 수 있습니다
또한 fractionally-strided convolution 이나 deconvolution이라고도 알려졌지만 deconvolution과는 다릅니다
parameters
<필수파라미터>
•
in_channels, out_channels, kernel_size
<optional 파라미터>
•
stride
•
padding : zero padding이 각 dimension의 both side(W, H)에 추가됨 (Default 0)
•
output_padding : output shape에서 각 차원에 한 부분에 추가되는 사이즈
•
dilation : kernel point들 간의 space를 조정하는 파라미터입니다. ( dilated convolution 에 대한 설명은 맨 위의 글 참조 ) (default : 1)
•
groups : input channel에서 output channel로의 blocked connections의 개수 (default :1 )
1.
groups=1 : 모든 input이 모든 output으로 연산에 참여된다
2.
groups=2 : conv연산이 나란히 두 개의 컨볼루션 레이어를 갖는 것과 같아지고, 각각은 입력 채널의 절반을 보고, 출력 채널의 절반을 생산하며, 두 개의 레이어는 나중에 concatenated 된다.
3.
groups=in_channels : 각 input channel은 각각 자신의 filter set을 갖는다, 그리고 그 filter는 의 사이즈를 갖는다
•
bias : 설정시 학습 가능한 bias 를 따로 갖는다