nn.Conv2d(3, 32, 3, padding=1)
첫번째 parameter 인 3은 input_channel_size가 되겠습니다. 여기서 input_channel_size는 Input Image의 RGB depth 인 3이 되겠습니다. (즉, 32*32 Image 3장이 들어간다고 보면 되겠습니다.)
두번째 parameter 인 32는 output_volume_size입니다. 즉, conv1 layer를 거쳐 몇장의 필터를 만들어 내고 싶은가? 입니다. 32장의 필터를 만들어 내고 싶으므로, 32가 되겠습니다.
세번째 parameter는 kernel_size입니다. Filter_size라고도 불리기도 하는데, 말 그대로 filter의 사이즈를 정의하는 것입니다. 3*3 filter를 사용하고 싶기 때문에 3을 기입했습니다.
네번째 parameter 인 padding=1은 padding을 줄지 말지 여부와 padding 사이즈를 지정해 줍니다. 저는 padding 을 임의로 1 주었습니다.
마지막으로, stride는 따로 주지는 않았지만, 따로 주지 않으면 default로 stride=1 속성이 지정됩니다.
예제 1)
- 227 - 11 + (2 * 0) = 226
- 226 / 4 = 54
- 54 + 1 = 55
예제 2) 소수점이 있는 경우, 소수점을 버림
- 64 - 7 + (2 * 0 ) / 2 = 28.5
- 28 + 1 = 29
예제 3)
- 32 - 5 + (2 * 2) / 1 = (27 + 4 ) / 1 = 31
- 31 + 1 = 32
예제 4) Input size가 다른 경우
- (32, 64) - 5 + (2 * 0) / 1 = ((32-5, 64-5 / 1 )
- ((27, 59) / 1 ) + 1 = 28 * 60
- out.shape >> torch.Size([1, 1, 28, 60])
예제 5)
- 64 * 32
- out.shape >> torch.Size([1, 1, 64, 32])
출처:
1. https://wegonnamakeit.tistory.com/48
2. https://teddylee777.github.io/pytorch/conv2d-output-size-%EA%B3%84%EC%82%B0%EB%B2%95
'Deep Learning > deep learning' 카테고리의 다른 글
03_Batch Nomalization 배치 정규화 (0) | 2022.04.06 |
---|---|
02_Weight Initialization 가중치 초기값 설정 (0) | 2022.04.06 |
01_Optimizer 설명 및 여러 기법들 (0) | 2022.03.31 |
Conda 가상환경 파일로 옮기기 (0) | 2022.01.11 |
Normalization, Standardization, Regularization 비교 (0) | 2021.06.11 |