히비스서커스의 블로그

[Pytorch] torchvision을 통한 object detection 시 Loss is nan, stopping training 에러 발생 본문

Programming/Python

[Pytorch] torchvision을 통한 object detection 시 Loss is nan, stopping training 에러 발생

HibisCircus 2023. 6. 19. 18:57
728x90

 

상황

 

torchvision의 object detection으로 model을 training 하는 도중 다음과 같은 에러를 마주하였다.

 

에러

 

Loss is nan, stopping training
{'loss_classifier': tensor(nan, device='cuda:0', grad_fn=<NllLossBackward0>), 'loss_box_reg': tensor(nan, device='cuda:0', grad_fn=<DivBackward0>), 'loss_objectness': tensor(nan, device='cuda:0', grad_fn=<BinaryCrossEntropyWithLogitsBackward0>), 'loss_rpn_box_reg': tensor(nan, device='cuda:0', grad_fn=<DivBackward0>)}

 

원인

 

추측하건데 bounding box가 없는 데이터 부분에서 loss가 크게 발생하는데 이때 learning rate를 크게 주면 loss function을 지나면서 값이 매우 커져 nan 값으로 빠지는 것으로 예상한다.

 

해결방법

 

learning rate를 줄여주면 된다. 필자의 경우 1e-4에서 1e-5로 낮추어 해결하였다.

 

 

728x90