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 at the Root Directory คุณจะเห็นห้องสมุดคงที่และตัวอย่างและการทดสอบแบบไบนารีสำหรับการใช้งาน
cd libonnx
make ในการรวบรวมตัวอย่าง mnist คุณจะต้องติดตั้ง SDL2 และ SDL2 GFX ในระบบเช่น Ubuntu Run
apt-get install libsdl2-dev libsdl2-gfx-devในการติดตั้งไลบรารีเลเยอร์ DirectMedia Simple Simple เพื่อเรียกใช้ 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 ล่าสุด ตารางผู้ประกอบการที่รองรับในไดเรกทอรีเอกสารtools เพื่อขอความช่วยเหลือเกี่ยวกับไฟล์รุ่น ONNXxxd -i <filename.onnx> (บน linux) เพื่อแปลงโมเดล ONNX ของคุณเป็น unsigned char array แล้วใช้ฟังก์ชัน onnx_context_alloc เพื่อใช้งาน นี่คือวิธีการโหลดโมเดลในตัวอย่าง - hello และ mnist ห้องสมุดนี้เป็นซอฟต์แวร์ฟรี คุณสามารถแจกจ่ายซ้ำและหรือแก้ไขภายใต้ข้อกำหนดของใบอนุญาต MIT ดูใบอนุญาต MIT สำหรับรายละเอียด