ハードウェアアクセラレーションサポートを備えた組み込みデバイス用の軽量でポータブル純粋な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とmnist 。 このライブラリはフリーソフトウェアです。 MITライセンスの条件に基づいて、それを再配布したり、変更したりできます。詳細については、MITライセンスを参照してください。