티스토리 뷰

https://onnxruntime.ai/docs/api/c/struct_ort_1_1detail_1_1_session_impl.html#af3f7d273f5e468ef21ef0d56d48c32fd

 

ONNX Runtime: Ort::detail::SessionImpl< T > Struct Template Reference

#include std::vector< Value > Run (const RunOptions &run_options, const char *const *input_names, const Value *input_values, size_t input_count, const char *const *output_names, size_t output_count)  Run the model returning results in an Ort allocated ve

onnxruntime.ai

 

Run 함수가 오버로딩 돼서 3개가 존재한다.

 

예제 찾아보면 아래 두개가 좀 많이 보였던 거 같다.

 

 

찾아본 이유는 ONNXRuntime +  C++ + GPU(CUDA) 로 특정 모델을 추론할때 동일한 인풋을 넣음에도 불구하고 값이 크게 다르게 출력되는 문제가 발생해서인데... 설명 읽어보니 위 두 방법(directly return output vector vs return results in user provided ouputs) 어차피 같은 값을 리턴한다는 거 같다. 도대체 원인을 모르겠다. 일단 배포시 사용하는 버전 말고 비교적 최신 버전(onnxruntime 1.14 + cuda 11.6 + cudnn 8.4)으로 해봤을때는 문제가 발생하지 않는 거 같다... 버전업이 답인가... 전처리가 문제인가...

 

ONNXRuntime 이나 TensorRT나 이러한 Non-deterministic behaviour 문제가 발생할때 참 갑갑하다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함