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

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案