TorchServe 기본 추론 핸들러
TorchServe 기본 추론 핸들러
TorchServe는 상자에서 꺼내 바로 쓸 수 있는 기본 추론 핸들러를 몇 가지 제공해요. 이 핸들러들은 각 모델이 배칭 추론을 지원한다고 전제해요. 사용 사례가 기본 핸들러로 커버되지 않는다면 직접 핸들러를 만들어 기여할 수도 있어요.
image_classifier
ImageNet 데이터로 학습한 이미지 분류 모델을 다뤄요.
- 입력: RGB 이미지
- 출력: 이미지의 top-5 예측과 각 확률 배치
자세한 예제는 examples를 참고해요.
image_segmenter
ImageNet 데이터로 학습한 이미지 세그멘테이션 모델을 다뤄요.
- 입력: RGB 이미지
- 출력:
[N, CL, H, W]형태 — N은 배치 크기, CL은 클래스 수, H는 높이, W는 너비예요.
object_detector
객체 탐지 모델을 다뤄요.
- 입력: RGB 이미지
- 출력: 탐지된 클래스와 바운딩 박스 목록 배치
torchvision>0.6를 실행할 것을 권장해요. 그렇지 않으면 object_detector 기본 핸들러는 기본 GPU 디바이스에서만 동작해요.
text_classifier
AG_NEWS 데이터로 학습한 텍스트 분류 모델을 다뤄요.
- 입력: 텍스트 파일
- 출력: 입력 텍스트의 클래스 (배칭 미지원)
index_to_name.json으로 클래스 이름 매핑하기
image_classifier, text_classifier, object_detector는 숫자 클래스(0, 1, 2…)를 친근한 문자열로 자동 매핑할 수 있어요. 모델 아카이브에 index_to_name.json 파일을 포함하면 되는데, 클래스 번호(문자열)에서 이름(문자열)으로의 매핑을 담고 있어요.
{
"0": "tench, Tinca tinca",
"1": "goldfish, Carassius auratus"
}
직접 핸들러 기여하기
사용 사례가 기본 핸들러로 커버되지 않는다면 직접 핸들러를 만들어 기여할 수 있어요.
BaseHandler에서 파생한 새 클래스를 작성하고ts/torch_handler/의 별도 파일로 추가해요.model-archiver/model_packaging.py에 클래스 이름을 등록해요.unit_tests의 단위 테스트를 실행·업데이트하고, 제출 전에torchserve_sanity.py를 실행해요.