https://stackoverflow.com/questions/60018578/what-does-model-eval-do-in-pytorch/60018731#60018731
nn.Module에는 train time과 evaluate time에 수행하는 다른 작업을 switching해줄 수 있도록하는 함수를 제공한다.
train time과 evaluate time에 서로 다르게 동작해야 하는 것들에는 대표적으로 아래와 같은 것들이 있다.
- Dropout layer
- BatchNorm layer
model.eval()을 수행하면 evaluation과정에서 사용하지 않을 layer들의 전원을 끈다.
# eval mode
model.eval()
with torch.no_grad():
...
out = model(val_data)
...
evaluation이 끝나면 다시 train mode로 변경을 해줘야한다.
# train mode
model.train()
'Machine Learning' 카테고리의 다른 글
[ML] 분류 모델 성능 평가 지표 - Confusion Matrix (accuracy, precision, recall, f1 score, ROC-AUC curve) (0) | 2022.06.07 |
---|---|
[Pytorch] 모델 구조 확인, parameter확인 (0) | 2021.11.16 |
[pytorch] tensor 초기화 및 속성 (0) | 2021.11.15 |
[cs231n] 내가보려고만든 cs231n 강의자료모음집 (0) | 2021.06.06 |
[Pytorch] torch.manual_seed() (0) | 2021.03.22 |