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。
相关
- 项目
- 项目
- 项目
- 项目
- 项目