구조 DenseNet 이전 Conv 구조는 input이 Layer를 통과하면 이후에는 사용되지 않지만, DenseNet에서는 이전에 입력된 input과 output을 concatenate하여 이후 모든 Layer에 concatenate 되는 방식으로 학습시키는 것이 핵심이다. input이 위의 그림처럼 모든 이후 Layer에 계속해서 적용되는 것을 확인할 수 있다. Layer는 크게 Pooling, Dense Block, Transition Layer, Classification Layer로 구성되어있다. 1. Convolution and Pooling Layer 첫 Conv Layer에서는 output channel 수를 16으로 설정하였고, 7x7 filter, stride 2를 사용하였으며 Pool..
Pytorch로 AlexNet을 간단하게 구현해보자 논문에서 제시한 AlexNet 구조보다 좀 더 간단하게 1 Flow로 11x11 Conv - 5x5 Conv - Pooling - 3x3 Conv - 3x3 Conv - 3x3 Conv - Pooling - fc 4096 - fc 4096 - classifier 구조로 구현해봤다. 1. Intro 1. 11x11 Conv stride = 4, padding = 0, out_channels = 96 논문은 48 + 48 두개로 split했으나 간단하게 1 flow로 구현 input size = 227(논문에서는 224지만 실제로 227로 구현해야 동작하여 transform Resize 활용해 적용) output size = 55 2. 5x5 Conv st..
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)를 학..