PyTorch

GoogLeNet - Inception Module

수터디 2022. 7. 28. 00:47

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