- model.train() v.s. model.eval()
model.train() | model.eval() | |
Batch Normalization | Batch statistics 이용 | 학습 때 사용된 statistics를 통해 결정된 running statistics 이용 |
Dropout Layer | 주어진 확률에 따라 활성화 | 비활성화 |
- torch.no_grad()
- Pytorch의 Autograd Engine 비활성화
# 데코레이터로 사용할 경우
@torch.no_grad()
def func without_grad_tracking():
pass
# validation 과정에서 사용할 경우
with torch.no_grad() :
# Code related to inference
- torch.Tensor.require_grads
- 모델의 특정 부분에 대한 Freeze
for param in model.parameters():
param.requires_grad = False
- fc 레이어의 weights에 대해 requires grad 설정을 하는 예
def set_parameter_requires_grad(model):
for (name,param) in model.named_parameters():
# print(name)
if name.split('.')[0] == 'fc' :
param.requires_grad = True
print(f'{name} requires grad')
else :
param.requires_grad = False
https://tigris-data-science.tistory.com/entry/PyTorch-modeltrain-vs-modeleval-vs-torchnograd
'DL' 카테고리의 다른 글
Data Augmentation of Computer Vision (0) | 2023.12.06 |
---|---|
Pytorch에서 GPU를 사용 (0) | 2023.12.04 |
[VIT] Vision Transformer (2021) (0) | 2023.07.27 |
U-Net 실습4 - 모델 테스트 (0) | 2023.07.07 |
U-Net 실습3 - 모델 학습 및 Tensorboard (0) | 2023.07.06 |