face_recognition 성능 테스트 결과 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

face-recognition

진행 상태: 완료 상위 작업: 2. 성능 테스트 (2%20%E1%84%89%E1%85%A5%E1%86%BC%E1%84%82%E1%85%B3%E1%86%BC%20%E1%84%90%E1%85%A6%E1%84%89%E1%85%B3%E1%84%90%E1%85%B3%201d954217ba3f806d96e2fead70196816.md)

a. 사진 100장에 대해서 cpu 사용률 테스트 결과

Elapsed Time: 62.13 seconds
CPU Usage - Average: 100.18% | Peak: 718.70%
Memory Usage - Average: 346.44 MB | Peak: 448.39 MB
테스크 avg cpu(%) peak cpu(%) avg mem(MB) peak mem(MB) 소요 시간
인물 분류 100.18% 718.70% 346.44 MB 448.39 MB 62.13s

b. 배치 반복 구조의 효과가 없는 이유

가. PyTorch의 경우

  • batch로 묶으면 PyTorch가 내부적으로 torch.matmul, conv2d, layernorm 등을 벡터화된 방식으로 실행

나. face_recognition의 경우

  • 라이브러리 형태로 사진을 1장씩만 처리
  • batch로 묶어도 사진이 1장씩 처리되는 것은 변함없기 때문에 성능 개선 없음
  • 라이브러이 없이 dlib을 직접 조합하면 배치 처리가 가능한가?
    • dlib 임베딩 모델은 batch inference를 지원하지 않음
    • 배치 처리가 가능하기 위해선 pytorch로 dlib의 임베딩 모델을 구현해서 학습을 시켜야 함