모델을 Evaluation시 필수적으로 넣어줘야 할 것
딥러닝 꿀팁

모델을 Evaluation시 필수적으로 넣어줘야 할 것

by handzoo 2023. 5. 16.
model.eval()

Dropout, batchnorm과 같이 training phase에서만 동작해야하는 layer을 off해준다.

 

with torch.no_grad()

gradient를 tracking하지 않아서 모델 파라미터의 변화를 추적하지 않고 gradient 계산을 비활성화 하여 update나 back propagation을 수행하지 않는다.

이를 통해 gradient를 저장할 필요가 없어 메모리 사용량이 감소하고 연산 속도가 빨라진다고 한다.

실제로 이를 빼고 그냥 평가 모델을 돌리게 되면 메모리가 터졌던 경험을 하였다.

 


TOP

Designed by 티스토리