yalue/onnxruntime_go
A Go (golang) library wrapping microsoft/onnxruntime.
解決的問題
本函式庫為載入與執行 ONNX 格式的神經網路提供了一個簡單的 Go (Golang) 介面。它特別解決了跨平台相容性的挑戰,使得在 Windows、Linux 和 macOS 上的 Go 中使用 ONNX Runtime 的 C/C++ API,克服了 Windows 上 CGo 與 MSVC 之間常見的編譯器衝突。
工作原理
本函式庫不依賴於 onnxruntime 源碼,而是在執行時手動載入 onnxruntime 共用函式庫(DLL 或.so)。這消除了對特定編譯器的依賴,並允許函式庫使用 Go 泛型來支援各種 Tensor 資料類型。它支援多種硬體加速執行提供者,包括 CUDA、TensorRT 和 CoreML。
適用對象
想要將預訓練的 ONNX 神經網路整合到應用程式中,而無需編寫 C++ 程式碼或處理複雜的跨平台建置配置的 Go 開發人員。
亮點
- 跨平台支援:可在 Windows、Linux 和 macOS 上運行。
- 硬體加速:確認支援 CUDA、TensorRT 和 CoreML 執行提供者。
- 泛型 Tensor:使用 Go 泛型高效處理多種 Tensor 資料類型。
- 靈活的會話管理:提供用於精確控制輸入/輸出 Tensor 的
AdvancedSession以及用於在執行期間靈活指定 Tensor 的DynamicAdvancedSession。
相關
- 專案
- 專案
- 專案
- 專案
- 專案