[Day13] CNN

 

 

중요

CNN에서 필요한 부분을 정리

nn.Conv2d

import torch.nn as nn

nn.Conv2d(in_channels: int, out_channels: int,
          kernel_size: _size_2_t, stride: _size_2_t=1,
          padding: _size_2_t=0, dilation: _size_2_t=1,
          groups: int=1, bias: bool=True,padding_mode:str='zeros')

nn.Conv2d 2차원 convolution모델을 만들어 주는 함수이다. 이때 들어 가는 인자를 확인해 보면

in_channels는 input의 channel의 개수를 의미

out_channels는 output의 channel의 개수를 의미

kernel_size는 kernel size을 의미하는데 int값으로 줘도되고 크기가 다르면 tuple값으로 줘도 된다.

stride,padding은 filter의 stride와 padding값을 의미하고 int값을주거나 tuple값을 줄 수 있다.

padding_mode는 padding의 설정 방법이다. zeros, reflect, replicate , circular 등이 있다. 기본은 zeros이다.

 

 

nn.MaxPool2d

nn.MaxPool2d(kernel_size: _size_any_t, stride: Optional[_size_any_t]=None,
             padding: _size_any_t=0)

# 예시
nn.MaxPool2d(kernel_size=(2,2), stride=(2,2)

위 인자는 nn.MaxPool2d의 모든 인자를 나타낸건 아니다. 잘 사용하는 인자만 나타냈다.

인자 그대로 kernel_size,stride,padding값을 설정해준다. 이때 예시와 같은 인자를 사용하게 되면 input값이 32x32이라면 Maxpool을 거치고 나면 16x16이 되고 한번 더 거치면 8x8이 될것이다.

 

>>> # pool of square window of size=3, stride=2
>>> m = nn.MaxPool2d(3, stride=2)

>>> # pool of non-square window
>>> m = nn.MaxPool2d((3, 2), stride=(2, 1))

 

 

nn.Dropout2d

nn.Dropout2d(p=0.5)

p (float, optional): zero가 될 원소의 확률을 의미하는 값이다.

 

 

 

구글 드라이브에는 처음에는 content폴더에 위치해 있는데 마운트후 내 drive에 옮길려면 다음과 같이 한다.

cp -r dataset ./drive/MyDrive/workspace

cp 는 파일을 복사하라는 명령어인데, 여기서 -r argment을 하위 디렉토리 및 파일까지 모두 복사가 된다.

 

 

 

피어세션

  • 저번에 google colab을 ssh로 연결하는 방법을 이야기 함
  • Dive into Deep Learning책의 소스를 직접 typing하였다.

'AI > 부스트 캠프 AI tech' 카테고리의 다른 글

[Day17] LSTM and GRU  (0) 2021.02.16
[Day16] NLP 기초  (0) 2021.02.15
[Day15] Generative model  (0) 2021.02.05
[Day14] RNN  (0) 2021.02.04
[Day12] 최적화  (0) 2021.02.02
[Day11] 딥러닝 기초  (0) 2021.02.01
[Day10] 시각화/통계학  (0) 2021.01.29
[Day9] Pandas II,확률론  (0) 2021.01.28

+ Recent posts