CastleJo의 개발일지

Object Detection - Detectron trainer에 대해 느낀점...

|

최대한 추상화해보면서 Baseline을 구축하고있는데… 솔직히말하면 설계가 너무 high-level로 포장되어있다고 생각했다.

결국 torch로 몇백줄의 코드를 trainer.train() 한 줄로 시행되기때문에, 설정을 하려면 trainer 부분을 개발자가 열심히 뜯어 고쳐야되는데 여간 피곤한일이 아니었다. 물론, mmdetection보단 좋다.. 저건 진짜 커스텀하기 힘들다. 물론 지원되는게 많긴 하지만.

model_zoo에 있는 yaml파일들로 여러 세팅들을 cfg 안에 넣고, 만약 cfg 내에 요구되는 파라미터가 없으면 원하는 결과를 뽑아내지 못한다. 개발자가 보고 커스텀하기 직관적이지 못하다고 생각했다.

그래서 결국 trainer에는 기초적인 wandbtqdm같이 로그부분만 따로 넣어주고, 그걸 상속해서 cfg파일을 arg형식이 아닌, cfg.~~~ 값들을 각 model_zoo에 맞는 하드코딩으로 직접 넣어주는게 매우 직관적이고 편했다. 다음에 다시 detectron2을 건드려야 된다면 이렇게 만들어야겠다고 뼈저리게 느꼈다. 모든 인자에 통일성이 없어서… 너무 힘들었다.