안녕하세요, cognex deep learning lab의 이호성입니다.

PyTorch를 사용하여 실험 코드를 작성하고 돌려서 결과를 얻는데, 매번 같은 코드를 돌려도 다른 실험 결과가 나오는 것을 다들 경험해보셨을 텐데요,

아무리 random seed를 고정해도 학습 결과가 달라져서, 이 부분을 한번 파봤습니다. PyTorch의 공식 문서(https://pytorch.org/docs/stable/notes/randomness.html)와 PyTorch의 Issue를 기반으로 한번 CIFAR-10 ResNet에 대해 실험을 해보고, 이를 글로 작성하여 정리하였습니다.

블로그 글: https://hoya012.github.io/blog/reproducible_pytorch/
실험 코드(colab): https://colab.research.google.com/drive/1zoEgSwQ40uXBys83X7ajW2oInve91S4w?usp=sharing

저는 torch.manual_seed 와 numpy.random.seed 정도만 사용했었는데 고려해야할 것들이 더 많은 점에 놀랐습니다. ㅎㅎ 공부하시는데 도움이 되었으면 좋겠습니다. 감사합니다!

Posted by uniqueone
,