ResNet101을 기준으로 구현했다. bottleneck 을 class로 따로 떼었으며, first 변수로 사이즈를 줄이는 layer 여부를 구분했다. bottleneck은 conv 1x1 - batchnorm - relu - conv 3x3 - batchnorm - relu - conv 1x1 - skip connection - batchnorm - relu로 구성했다. 1. Setup import torch import torch.nn as nn import numpy as np import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.optim as..

1. Intro ResNet 발표 전 존재했던 기존 CNN(AlexNet, VGGNet 등) 모델에서는 깊은 Layer를 쌓을수록 Gradient 소실 및 폭발 문제가 발생했다. ResNet은 이를 해결하기 위해 나온 네트워크로 Skip/Shortcut Connection을 사용하는 것이 주요 특징이다. 참고로 ResNet은 Residual Network의 약자로 Skip Connection을 사용하여 Input과 Output의 잔차를 학습하는 것이 특징이다. 2. Skip Connection in Residual Network (ResNet) 기존에는 출력값 자체를 학습한다고 하면 ResNet은 Layer 통과 전 Input을 Output에 더해줘 Input과 Output의 차이(Residual)를 학..