꾸준히 써보는 공부 기록

Zero Divide 문제 본문

삽질 정리 노트

Zero Divide 문제

jisu1013 2022. 1. 6. 19:25

연구 진행 중에서 특정 dataset에 대해서만 Nan 값이 계속 발생하는 문제가 있었다.
이유를 찾기 위해서 디버깅을 하던 중 feature matrix의 1118번 element에서 문제가 있음을 발견했다. 
0으로만 구성되어서 zero divide 문제가 발생한 것이었다.
기존 코드만 믿고 실행한 결과였다...예외처리의 중요함을 뼈저리게 느꼈다...
만약 이유 없이 Nan값이 뜬다면 input값이 layer를 통과하면서 값이 어떻게 바뀌는지 유심히 볼 것을 추천합니다...
+ 또는 learning rate를 조절해봅시다...

zmax = z.max(dim=1, keepdim=True)[0]
zmin = z.min(dim=1, keepdim=True)[0]
z_std = (z - zmin) / (zmax - zmin) #원래 코드
z_std = (z - zmin) / (zmax - zmin + 1e-9) #수정 코드 
z_scaled = z_std
z_scaled = F.normalize(z_scaled)
Comments