티스토리 뷰
bounding box의 위치와 너비, 높이를 regression 하기 위한 수식이 각각 다르다. PyTorch 로 구현하고자 한다면 수식을 잘 보고 구현해야함
bx와 by는 YOLOv4 페이퍼에서 언급됐듯이 grid sensitivity 를 고려하여 수정된 것인데... bw와 bh가 왜 저렇게 바뀐지 이유는 못찾았다. YOLOv5 도 Scaled-YOLOv4 의 수식을 따라가는듯하다. 알고보니 Scaled-YOLOv4 가 YOLOv5를 따른 것...
생각해봤을때 exponential 연산은 입력에 따라 overflow가 나기 굉장히 쉬운 연산이다. 특히 mixed precision 으로 트레이닝 시킬때 exp 연산 들어가있으면 학습 도중 overflow가 날 가능성이 굉장히 크다. 반면 시그모이드 함수를 사용하면 출력값만 생각했을때 0~1로 범위가 제한된다. 그리고 YOLOv3와 YOLOv4의 bw, bh 는 범위가 (0, 무한대) 인 반면 Scaled-YOLOv4의 bw는 (0, 4pw), bh 는 (0, 4ph) 로 나름대로 합리적인 범위안으로 바운딩 박스의 크기가 계산되도록 출력 값의 범위에 대한 제한을 줄 수 있다. 참고로 여기서 pw랑 ph 는 anchor box의 너비와 높이이다.
jocher님 한테 여쭤봐야겠다.
https://github.com/ultralytics/yolov5/issues/4373
'Deep Learning > PyTorch' 카테고리의 다른 글
[PyTorch Lightning] TensorBoard hp metric 제거 (0) | 2021.09.05 |
---|---|
[PyTorch Lightning] 관련 링크 모음 (0) | 2021.08.31 |
[ONNX, PyTorch, TensorRT] GatherElements 지원 이슈 (0) | 2021.06.30 |
[PyTorch] AMP Loss dtype Issue (0) | 2021.06.23 |
[PyTorch] DistributedDataParallel 예시 코드 및 참고 자료 모음 (4) | 2021.06.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 인공지능을 위한 선형대수
- 위상 정렬 알고리즘
- 백준 1766
- 백준 11053
- PyCharm
- C++ Deploy
- 백트래킹
- Lowest Common Ancestor
- 조합
- 백준
- MOT
- 백준 11437
- 단축키
- 이분탐색
- 가장 긴 증가하는 부분 수열
- ㅂ
- FairMOT
- LCA
- cosine
- 문제집
- 순열
- 자료구조
- 파이참
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함