4. CNN
2023. 11. 21. 11:02ㆍNAVER AI Tech/Deep Learning
Convolution 연산
- filter와 image의 element-wise multiply 계산
- filter에 따라 blur, emboss, outline 등 효과를 줄 수 있다.
- stride, padding의 개념도 이해해야 함.
- 1x1 convolution : dimension reduction(=reduce the number of parameters while increasing the depth)
CNN consists of convolution layer, pooling layer and fully connected layer
- convolution layer and pooling layer : feature extraction
- fully connected layer : decision making
CNN을 학습시킬 때 전체 파라미터 숫자가 몇개인지 파악하는게 중요하다.(학습 소요시간을 예측해야하니)
# convolution block
prev_cdim = self.xdim[0]
for cdim in self.cdims:
self.layers.append([nn.Conv2d(in_channels=prev_cdim, out_channels=cdim
kernel_size=self.ksize, stride=(1,1), padding=self.ksize//2)]
if self.USE_BATCHNORM:
self.layers.append([nn.BatchNorm2d(cdim)]
self.layers.append(nn.ReLU(True))
self.layers.append(nn.MaxPool2d(kernel_size=(2,2), stride=(2,2)))
self.layers.append(nn.Dropout2d(p=0.5))
prev_cdim = cdim
# Dense block
self.layers.append(nn.Flatten())
prev_hdim = prev_cdim * (self.xdim[1] // (2**len(self.cdims))) * (self.xdim[2] // (2**len(self.cdims)))
for hdim in self.hdims:
self.layers.append(nn.Linear(prev_hdim, hdim, bias=True))
self.layers.append(nn.ReLU(True))
prev_hdim = hdim
self.layers.append(nn.Linear(prev_hdim, self.ydim, bias=True))
Why use 3x3 filter size?

why use 1x1 filter size?

Summary:
1. VGG : why use 3x3 filter size
2. GoogLeNet : why use 1x1 filter size
3. ResNet : skip connection
4. DenseNet : concatenation and 1x1 convolution
'NAVER AI Tech > Deep Learning' 카테고리의 다른 글
5. RNN, LSTM, GRU (1) | 2023.11.21 |
---|---|
5. CNN problems (0) | 2023.11.21 |
3. Deep Learning 용어 정리 (1) | 2023.11.20 |
2. Neural Network 개념 및 코드 (1) | 2023.11.20 |
1. Deep Learning introduction (1) | 2023.11.20 |