libonnx
1.0.0
轻巧,便携式纯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 );只需在root目录中键入make ,您就会看到一个静态库以及一些示例和使用的二进制库。
cd libonnx
make要编译mnist示例,您必须安装SDL2和SDL2 GFX。在Ubuntu Run之类的系统上
apt-get install libsdl2-dev libsdl2-gfx-dev要安装所需的简单直接层库以运行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]请注意,在其他文件夹上运行测试可能不会成功。一些运营商尚未实施,请查看bat notes部分以获取更多信息。
opset 23支持的ONX版本v1.17.0。文档目录中的受支持的操作员表。tools文件夹以提供ONNX模型文件的帮助。xxd -i <filename.onnx> (在linux上)将ONNX模型转换为unsigned char array ,然后使用onnx_context_alloc函数来使用它。这就是示例中加载模型的方式 - hello and mnist 。 该库是免费软件;您可以根据MIT许可证的条款进行重新分配或对其进行修改。有关详细信息,请参见MIT许可证。