DARTH 코드 분석하기 (1) Train/test.py, config 분석
생각해보니 내가 train.py 를 깊게 이해할 필요는 없다. TTA를 하는 이상 어짜피 source model에서 pretrain된 모델을 쓸텐데,, 굳이 train.py로 내가 뭘 학습할 필요가 있나? (checkpoints도 다 공유되어 있는데? ㅎㅎ) test.py만 보면 될듯하다. QDTrack의 test.py는 진짜 test만 하는 파일이고,,, DARTH의 test.py는 TTA 까지하는 파일이다. 먼저 QDTrack의 test.py를 분석한 이후 github에 있는 checkpoint의 성능을 확인하고,,, DARTH의 TTA로 넘어가면 될 것 같다. 1 Train/test.py 코드 분석하기 DARTH 깃헙 페이지에 올라와있는 MOT 17 checkpoint 파일을 다운받고, 단순히 te..
[디버깅] DARTH : CostumOptimizerHook is not in the hook registry
다시 DARTH 코드를 좀 돌려보려 했더니,, 무슨 이름도 이상한 "CostomOptimizerHook"이 없다는 에러가 나왔다. 그나마 다행이라면,, DARTH가 QDTrack을 기반으로 해서,, 대부분은 QDTrack을 보면 해결이 된다는 것...? 흠.. 찜찜하지만,, QDTrack 을 참고해서 FP16으로 빠지도록 조취해아할 것 같다.. 이걸 FP32로 돌리면 너무 무거울 것 같고,, 정황상 DARTH도 FP16으로 돌린듯 하다.. (흠 근데,, QDTrack 코드은 또 FP32로 돌린것 같고,,, 나중에 해야지!) 그냥 FP16 관련 내용 전부 comment out 해버림.. 흠.. 나도 FP16 하고 싶은데.. 호오.. 마지막으로 hook 까지 수정하니까 어찌어찌 코드가 돌아가기는 하는데,,,..
MMCV에서 Registry를 어떻게 만드는가?
최근 Tracking 연구를 하게 되어 MMCV를 공부하고 있는데,, 여간 복잡한 것이 아니다.. 하나하나씩 개념을 정리하며 이해할 필요가 있을 것 같은데,, 오늘은 Registry를 다뤄보려한다. MMCV에서 registry는 라이브러리 내의 다양한 유형의 구성 요소를 관리하고 조직하는 중앙 시스템이다. 코드 조직, 유연성 및 유지 관리에 여러 가지 이점을 제공하는 강력한 메커니즘이라 한다. Registry 안에는 Dataset, Backbone, Neck, Head, Hook 등 별별 클래스 (모듈) 들이 들어갈 수 있는데, vision 모델 구축을 위해 필요한 (1) 모든 개념들을 각각의 Registry (DATASETS, MODELS, NECKS 등..) 에 집어넣고,, (2) 필요할때마다 bui..