[Day13] CNN
CNN - Convolution은 무엇인가?
CNN - 1x1 Convolution의 중요성
Computer Vision Applications
중요
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 |