하드웨어 가속 지원이있는 임베디드 장치 용 경량의 휴대용 순수한 C99 onnx inference engine .
라이브러리의 .C 및 .H 파일은 프로젝트에 삭제하여 이와 함께 컴파일 할 수 있습니다. 사용하기 전에 struct onnx_context_t * 할당해야하며 하드웨어 가속을 위해 struct resolver_t * 전달할 수 있습니다.
파일 이름은 onnx 모델의 형식으로의 경로입니다.
struct onnx_context_t * ctx = onnx_context_alloc_from_file ( filename , NULL , 0 ); 그런 다음 onnx_tensor_search 함수를 사용하여 입력 및 출력 텐서를 얻을 수 있습니다.
struct onnx_tensor_t * input = onnx_tensor_search ( ctx , "input-tensor-name" );
struct onnx_tensor_t * output = onnx_tensor_search ( ctx , "output-tensor-name" ); 입력 텐서가 설정된 경우 onnx_run 기능을 사용하여 추론 엔진을 실행할 수 있으며 결과는 출력 텐서에 들어갑니다.
onnx_run ( ctx ); 마지막으로, onnx_context_free 함수를 사용하여 struct onnx_context_t * 자유롭게해야합니다.
onnx_context_free ( ctx ); 루트 디렉토리에 make 입력하면 정적 라이브러리와 사용에 대한 예제 및 테스트 바이너리가 표시됩니다.
cd libonnx
make mnist 예제를 컴파일하려면 SDL2 및 SDL2 GFX를 설치해야합니다. Ubuntu Run과 같은 시스템에서
apt-get install libsdl2-dev libsdl2-gfx-dev필요한 간단한 DirectMedia 레이어 라이브러리를 설치하려면 GUI를 실행합니다.
arm64 용) 루트 디렉토리에서 make CROSS_COMPILE=path/to/toolchains/aarch64-linux-gnu- 실행하여 플랫폼의 모든 라이브러리, 테스트 및 예제를 컴파일합니다.
CROSS_COMPILE 변경하여 사용하려는 툴체인을 가리 키십시오.
모든 파일을 컴파일 한 후 다음을 사용하여 예제를 실행할 수 있습니다.
cd libonnx/examples/hello/output
./hello
예를 들어 tests/model 폴더 사용에 대한 테스트를 실행하려면 :
cd libonnx/tests/output
./tests ../model출력은 다음과 같습니다.
[mnist_8](test_data_set_0) [OKAY]
[mnist_8](test_data_set_1) [OKAY]
[mnist_8](test_data_set_2) [OKAY]
[mobilenet_v2_7](test_data_set_0) [OKAY]
[mobilenet_v2_7](test_data_set_1) [OKAY]
[mobilenet_v2_7](test_data_set_2) [OKAY]
[shufflenet_v1_9](test_data_set_0) [OKAY]
[shufflenet_v1_9](test_data_set_1) [OKAY]
[shufflenet_v1_9](test_data_set_2) [OKAY]
[squeezenet_v11_7](test_data_set_0) [OKAY]
[squeezenet_v11_7](test_data_set_1) [OKAY]
[squeezenet_v11_7](test_data_set_2) [OKAY]
[super_resolution_10](test_data_set_0) [OKAY]
[tinyyolo_v2_8](test_data_set_0) [OKAY]
[tinyyolo_v2_8](test_data_set_1) [OKAY]
[tinyyolo_v2_8](test_data_set_2) [OKAY]다른 폴더에서 테스트를 실행하면 성공하지 못할 수 있습니다. 일부 운영자는 구현되지 않았으며 자세한 정보를 위해 메모 섹션을 검토하십시오.
opset 23 지원 기능이있는 ONNX 버전 v1.17.0을 기반으로합니다. 문서 디렉토리의 지원되는 연산자 테이블.tools 폴더를 확인하십시오.xxd -i <filename.onnx> (Linux)를 사용하여 ONNX 모델을 unsigned char array 로 변환 한 다음 onnx_context_alloc 기능을 사용하여 사용할 수 있습니다. 이것이 예제에서 모델이로드되는 방식입니다 - hello and mnist . 이 라이브러리는 무료 소프트웨어입니다. 당신은 그것을 재분배하거나 MIT 라이센스의 조건에 따라 수정할 수 있습니다. 자세한 내용은 MIT 라이센스를 참조하십시오.