Manduss life
[DeepLearning] Dropout/커널 크기/train, inference시 auto gradient 설정 본문
전산/Deep Learning
[DeepLearning] Dropout/커널 크기/train, inference시 auto gradient 설정
만두쓰 2023. 1. 31. 18:23Dropout
- self.dp1 = nn.Dropout2d(0.5)
--> 이전 뉴런을 0.5 확률로 제거
커널 크기
- 커널 크기를 크게 잡으면 정밀해지지 못함.
- 이미지의 가장 중요한 시각적 특징은 특정 범위에서 발견되므로, 시각적 패턴을 찾으려면 한번에 인접한 픽셀 몇 개만을 보는 작은 저널을 쓰는 것이 낫다. 3x3 커널 크기를 가장 많이 쓴다.
optim.zero_grad()
- 매 학습마다 gradient값을 0으로 설정해주어야한다.
- Pytorch에서는 gradients값들을 추후 backward를 해줄때 계속 더해주기 때문이다.
- 출처 : https://algopoolja.tistory.com/55
with torch.no_grad():
- inference 시에 해주는 자동으로 gradient를 계산하는 것을 끄는 기능이다.
- 저 함수를 사용하지 않을 시, backward()를 사용하지 않는다면, 계산만 하고, 최적화 과정은 수행되지 않는다.
- 그러므로, weight값의 변형을 막기 위함보다는, 메모리 사용량을 줄이고, 연산을 줄이기 위함이다.
- inference 시에 또 작성하는 함수가 있는데, model.eval()이다.
- 이는, dropout, batch normalizatoin 등의 train에서만 사용되고, test 시에는 사용되지 않는 기능들을 위해 inference mode라고 설정하는 목적이다.
- 출처 : https://coffeedjimmy.github.io/pytorch/2019/11/05/pytorch_nograd_vs_train_eval/
'전산 > Deep Learning' 카테고리의 다른 글
[Deep Learning] LeNet / AlexNet / Fine Tuning (0) | 2023.02.05 |
---|---|
[Deep Learning] CNN 특징 / 발전 요인 (0) | 2023.02.02 |
[Deep Learning] Softmax / layer 층을 여러 개 쌓는 이유 (0) | 2023.01.15 |
[Deep Learning] Generalization/Overfitting/Cross-validation (0) | 2023.01.11 |
[DeepLearning] 선형 회귀 (0) | 2023.01.06 |
Comments