티스토리 뷰

Deep Learning/PyTorch

YOLOv5 Contribution! Weight Decay

developer0hye 2022. 7. 17. 22:28

Weight Decay 관련 실험 해보다가 기록용으로 적음

 

yolov5 프로젝트 보면 weight decay를 Batch Normalization Layer 파라미터와 Bias 값들을 제외하고 적용하는 거를 확인할 수 있다.

 

재구현을 해볼때 이런 거 하나 하나가 되게 사소해보이는데 이런 거 하나 빼먹으면 성능 재현이 안되는 경우가 있다. (예를 들면 "weight decay 몇 레이어에 적용해주고 안해주고 차이가 그리 크겠어?"란 생각을 갖고 그냥 모든 파라미터 다 먹이면 되지~라는 식의 접근... 굉장히 위험하다. 나중에 성능 재현이 안돼서 이걸로 수일 수주 수개월의 시간을 쓸수도 있다...)

 

근데 yolov5 에서 adamw 를 optimizer로 사용하도록 세팅을 해줄 수가 있는데 뭔가 이상한 점을 발견했다.

 

adamw 는 weight decay에 대한 람다값으로 default로 1e-2로 세팅돼있다. 근데 yolov5는 이를 고려하고 있지 않다. 그래서 이를 고려하도록 코드를 수정해서 기여했다.

 

https://github.com/ultralytics/yolov5/pull/8592

 

Explicitly set `weight_decay` value by developer0hye · Pull Request #8592 · ultralytics/yolov5

The default weight_decay value of AdamW is 1e-2, so we should set it to zero.

github.com

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함