GoogLeNet - Inception Module
I. 특징
다양한 사이즈의 필터를 동시 적용
1x1 conv의 특성과 장점
Auxiliary Classification의 역할
- 혁신적으로 Depth 확장. ResNet 구조로 인해 현재는 잘 사용되지 않음
ㅇ 쉬운 코드 : https://github.com/GunhoChoi/PyTorch-FastCampus/blob/master/04_CNN_Advanced/2_GoogleNet.ipynb
ㅇ 논문 구현 코드: https://github.com/Seonghoon-Yu/AI_Paper_Review/blob/master/Classification/GoogLeNet(2014).ipynb
GitHub - Seonghoon-Yu/AI_Paper_Review: 까먹으면 다시 보려고 정리합니다.
까먹으면 다시 보려고 정리합니다. Contribute to Seonghoon-Yu/AI_Paper_Review development by creating an account on GitHub.
github.com
II. 코드 구현
1. Settings: Library Import, Hyperparameter
2. Data Loader: 이미지 사이즈 동일하게 Crop, Tensor로 변경
3. Model
1) Base Module: 1x1 conv, 1x3 conv, 1x5 conv, 3x3 max pooling - 함수로 구현
2) Inception Module: image를 base 모듈에 모두 통과시키고, concat하기 - Class로 구현
3) GoogLeNet
① init
- layer1: Convolution 및 MaxPooling
- layer2: Inception 및 MaxPooling
- layer3: Inception 및 MaxPooling
- layer4: Sequential (Inception - Inception - AvgPool)
- layer5: Dropout
- FC Layer: Linear
② forward
- layer1~5 통과
- view 함수 실행
- fc layer 통과
4) Optimizer & Loss: CE, Adam
5) Train
① Image와 Label을 Cuda로
② zero_grad, backward, step