티스토리 뷰
https://github.com/developer0hye/PyTorch-Deformable-Convolution-v2
Detection 모델 보다보면 Deformable Convolution 을 많이 쓰는 걸 볼수있다.
가장 널리 알려진 YOLO 시리즈들은 안쓰긴하는데, 대체로 모델의 일부 Convolutional 레이어를 Deformable Convolution으로 대체했을때 성능이 향상되었다는 결과들은 쉽게 찾을 수 있다. 그래서 다른 사람들이 쉽게 쓸 수 있게 구현해보았었다. 왜냐하면, 해당 코드를 막 공개했을 당시에 파이토치에 deformable convolution이 잘 구현돼있음에도 불구하고, 따로 CUDA 코드 받아서 빌드하고 쓰는 사람들이 많았다. 그래서 보다 쓰기 쉽게 만들었고, 생각보다 많은 사람들이 해당 프로젝트를 찾고있어 기쁘다.
근데 Deformable Convolution은 ONNX나 TensorRT에서 공식적으로 지원안되는 Operation이다. 적어도 지금(20221021)은 그렇다. 그래서 onnxruntime 이나 TensorRT로 돌리려면 해당 레이어를 위한 별도의 CUDA 코드를 구현해줘야한다. 사내에 이런 인퍼런스엔진과 CUDA를 전문적으로 다루는 사람이 있으면 그냥 맡기고 하면 되지만 내 경우 파이토치 모델링 부터 onnxruntime, TensorRT 인퍼런스까지 다 해야하기때문에 onnxruntime, TensorRT에서 지원하는 오피셜한 operation이 아니면 아무리 좋은 성능을 낸다고해도 곧바로 적용을 하기에는 어렵다.
확실히 내가 실험을 했을때 Detection Task에서 Deformable Convolution의 유무차이는 1 이상의 AP(Average Precision)이 차이날정도로 굉장히 큰 차이가 있었다. 근데 막상 모델 배포를 할때는 onnxruntime, TensorRT에서 이를 지원하지 않다보니 이를 쓰지 않고도 onnxruntime, TensorRT에서 지원하는 연산들을 잘 조합하여 근사한 성능을 낼 수 있는 방법을 나름대로 연구/개발해보고 있다.
'기타' 카테고리의 다른 글
VSCODE 줄 이동 (0) | 2022.10.23 |
---|---|
타팀/타사와 자료 공유를 할때 (0) | 2022.10.21 |
최소한의 것은 받을 수 있도록 내가 노력하자 (0) | 2022.10.14 |
블로그 누적 조회수 3만 돌파! (0) | 2022.10.08 |
[OpenCV] GET으로 수신한 Binary Jpeg file 읽기 (0) | 2022.10.07 |
- Total
- Today
- Yesterday
- FairMOT
- ㅂ
- 인공지능을 위한 선형대수
- 순열
- 백준
- C++ Deploy
- 파이참
- LCA
- 자료구조
- PyCharm
- 백준 11437
- 조합
- cosine
- 백준 1766
- 가장 긴 증가하는 부분 수열
- 백준 11053
- 단축키
- 위상 정렬 알고리즘
- 백트래킹
- 문제집
- Lowest Common Ancestor
- 이분탐색
- MOT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |