inference engine C99 onnx للأجهزة المدمجة مع دعم تسريع الأجهزة.
يمكن إسقاط ملفات المكتبة .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 ); أخيرًا ، يجب عليك تحرير struct onnx_context_t * باستخدام وظيفة onnx_context_free .
onnx_context_free ( ctx ); فقط اكتب make في دليل الجذر ، سترى مكتبة ثابتة وبعض الأمثلة واختبارات الاستخدام.
cd libonnx
make لتجميع مثال mnist ، سيتعين عليك تثبيت SDL2 و SDL2 GFX. على أنظمة مثل Ubuntu Run
apt-get install libsdl2-dev libsdl2-gfx-devلتثبيت مكتبات طبقة DirectMedia البسيطة المطلوبة لتشغيل واجهة المستخدم الرسومية.
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 . جدول المشغل المدعوم في دليل المستندات.tools للحصول على مساعدة مع ملفات طراز ONNX.xxd -i <filename.onnx> (على Linux) لتحويل نموذج ONNX الخاص بك إلى unsigned char array ثم استخدام الدالة onnx_context_alloc لاستخدامه. هذه هي الطريقة التي يتم بها تحميل النماذج في الأمثلة - hello و mnist . هذه المكتبة هي برنامج مجاني. يمكنك إعادة توزيعه أو تعديله بموجب شروط ترخيص معهد ماساتشوستس للتكنولوجيا. انظر رخصة معهد ماساتشوستس للتكنولوجيا للحصول على التفاصيل.