다음을 통해 공유


Windows ML에 포함된 ONNX 런타임을 사용하여 ONNX 모델 실행

Windows ML과 함께 제공되는 ONNX 런타임을 사용하면 앱이 ONNX 모델에서 로컬로 유추를 실행할 수 있습니다.

유추 세션 만들기

API는 ONNX 런타임을 직접 사용하는 경우와 동일합니다. 예를 들어 유추 세션을 만들려면 다음을 수행합니다.

// Create inference session using compiled model
using InferenceSession session = new(compiledModelPath, sessionOptions);

Windows ML 내에서 ONNX 런타임 API를 사용하는 방법에 대한 자세한 내용은 ONNX 런타임 문서를 참조하는 것이 좋습니다. 모델 유추 코드는 모든 모델에 대해 다릅니다.

모델 컴파일

유추 세션에서 ONNX 모델을 사용하기 전에 디바이스의 기본 하드웨어에서 효율적으로 실행할 수 있는 최적화된 표현으로 컴파일해야 하는 경우가 많습니다.

ONNX 런타임 1.22를 기준으로 컴파일 단계를 더 잘 캡슐화하는 새로운 API가 있습니다. 자세한 내용은 ONNX 런타임 컴파일 설명서에서 확인할 수 있습니다( OrtCompileApi 구조체 참조).

// Prepare compilation options
OrtModelCompilationOptions compileOptions = new(sessionOptions);
compileOptions.SetInputModelPath(modelPath);
compileOptions.SetOutputModelPath(compiledModelPath);

// Compile the model
compileOptions.CompileModel();

Note

컴파일을 완료하는 데 몇 분 정도 걸릴 수 있습니다. 모든 UI가 응답성을 유지하려면 애플리케이션에서 백그라운드 작업으로 이 작업을 수행하는 것이 좋습니다.

팁 (조언)

최적의 성능을 위해 모델을 한 번 컴파일하고 컴파일된 버전을 다시 사용하세요. 후속 실행을 위해 컴파일된 모델을 앱의 로컬 데이터 폴더에 저장합니다. EP 또는 런타임에 대한 업데이트에는 다시 컴파일이 필요할 수 있습니다.

참고하십시오