inference engine onnx murni C99 yang ringan dan portabel untuk perangkat tertanam dengan dukungan akselerasi perangkat keras.
File .c dan .h perpustakaan dapat dijatuhkan ke dalam proyek dan disusun bersamanya. Sebelum digunakan, harus dialokasikan struct onnx_context_t * dan Anda dapat melewati array struct resolver_t * untuk akselerasi perangkat keras.
Nama file adalah jalur ke format model onnx .
struct onnx_context_t * ctx = onnx_context_alloc_from_file ( filename , NULL , 0 ); Kemudian, Anda bisa mendapatkan input dan output tensor menggunakan fungsi 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" ); Ketika tensor input telah ditetapkan, Anda dapat menjalankan mesin inferensi menggunakan fungsi onnx_run dan hasilnya akan dimasukkan ke dalam tensor output.
onnx_run ( ctx ); Akhirnya, Anda harus membebaskan struct onnx_context_t * menggunakan fungsi onnx_context_free .
onnx_context_free ( ctx ); Cukup ketik make di direktori root, Anda akan melihat perpustakaan statis dan beberapa biner contoh dan tes untuk penggunaan.
cd libonnx
make Untuk mengkompilasi contoh mnist , Anda harus menginstal SDL2 dan SDL2 GFX. Pada sistem seperti Ubuntu Run
apt-get install libsdl2-dev libsdl2-gfx-devUntuk menginstal perpustakaan lapisan DirectMedia sederhana yang diperlukan untuk menjalankan GUI.
arm64 ) Jalankan make CROSS_COMPILE=path/to/toolchains/aarch64-linux-gnu- Pada direktori root untuk mengkompilasi semua perpustakaan, tes, dan contoh untuk platform.
Ubah CROSS_COMPILE untuk mengarahkan toolchains yang Anda rencanakan untuk digunakan.
Setelah menyusun semua file, Anda dapat menjalankan contoh dengan menggunakan:
cd libonnx/examples/hello/output
./hello
Untuk menjalankan tes, misalnya pada yang ada di folder tests/model penggunaan:
cd libonnx/tests/output
./tests ../modelIni outputnya:
[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]Perhatikan bahwa menjalankan tes pada folder lain mungkin tidak berhasil. Beberapa operator belum diimplementasikan, lihat bagian Catatan untuk info lebih lanjut.
opset 23 terbaru. Tabel Operator yang Didukung di Direktori Dokumen.tools untuk bantuan dengan file model ONNX.xxd -i <filename.onnx> (di Linux) untuk mengonversi model ONNX Anda menjadi unsigned char array dan kemudian menggunakan fungsi onnx_context_alloc untuk menggunakannya. Beginilah model dimuat dalam contoh - hello dan mnist . Perpustakaan ini adalah perangkat lunak gratis; Anda dapat mendistribusikannya kembali dan atau memodifikasinya berdasarkan ketentuan lisensi MIT. Lihat Lisensi MIT untuk detailnya.