본문으로 건너뛰기

모델 및 추론

모델 실행, 전처리 및 후처리 구성, 텐서 교환, 추론 측정을 다룹니다. 이 튜토리얼을 순서대로 진행하세요.

컴파일된 ResNet-50 모델 아카이브를 로드하고, 이미지를 입력한 후, 가장 가능성이 높은 클래스를 확인합니다. 이는 "모델 아카이브가 있습니다"에서 "예측 결과를 얻었습니다"에 이르는 가장 빠른 경로입니다.

modelinferencefoundations

생산자 스레드에서 모델에 데이터를 입력하는 동시에 다른 스레드에서 예측 결과를 받아와 입력과 출력을 분리하여 실제 처리량을 높입니다. 001장의 ResNet과 동일한 경로를 사용하며, 이제는 비동기 방식으로 작동합니다.

asyncpush-pullthroughputruntime

컴파일된 모델을 실행하여 결정론적 합성 텐서를 사용하고, `Model::benchmark()`에서 반환된 지연 시간, 처리량, 전력 소비량, 에너지 소비량 등의 주요 지표를 출력합니다.

benchmarksyntheticlatencythroughputpower

`ModelOptions`는 입력 데이터, 모델의 파이프라인 단계, 그리고 출력 디코딩 간의 관계를 정의하는 구조체입니다. 기본 동작에서 벗어나 새로운 동작을 구현할 때 가장 먼저 참조해야 하는 곳입니다.

model-optionsconfigurationcontracts

전처리 단계를 구성합니다. 즉, 형식, 차원, 채널별 정규화를 설정하여 원본 이미지 입력이 모델이 학습된 텐서와 정확히 일치하도록 합니다. 정확한 전처리는 작동하는 모델과 제대로 작동하지 않는 모델을 구분하는 중요한 요소입니다.

preprocessingnormalizationimage

`SimaBoxDecode`를 사용하여 원시 모델 출력을 사용 가능한 경계 상자로 디코딩합니다. 여기에는 임계값 처리, NMS(Non-Maximum Suppression), 좌표 매핑이 포함되며, 이 모든 것이 하나의 후처리...

postprocessingboxdecodedetection

Neat 텐서와 이미 가지고 있는 구조(NumPy 배열, PyTorch 텐서 또는 `cv::Mat`) 간에 데이터를 이동하여 레이아웃, 데이터 유형 및 복사 의미 체계를 제어합니다. 이렇게 하면 기존 추론 스택에 Neat을...

numpypytorchtensorio

여러 개의 명명된 텐서를 하나의 `Sample`로 묶어 단일 추론 이벤트로 전달합니다. 이는 스테레오 프레임, 이미지 + 메타데이터 또는 센서 융합과 같이 둘 이상의 입력을 받는 모델에 적용되는 방식입니다.

multi-inputsamplessync

`run.pull()` 또는 `model.run()`에서 안전하게 데이터를 읽어옵니다. 각 실행 결과는 `Sample`을 반환합니다. 이는 텐서, 명명된 필드들의 묶음, 또는 둘 다일 수 있는 작은 합 유형입니다. 따라서 페...

outputpatternssink