跨平台的机器学习推理与训练加速器,用于运行 ONNX 格式的模型。
sonos/tract
纯 Rust 实现的神经网络推理引擎,可加载 ONNX、NNEF 模型,在 CPU、Metal、CUDA 和 WebAssembly 上运行。
- Star
- 3,112
- Fork
- 297
- 未关闭 Issue
- 136
- 最近提交
- 6小时前
这是什么?
tract 是 Sonos 开发的 Rust 神经网络推理引擎,可加载 ONNX 和 NNEF 模型并完成优化,运行范围从嵌入式 ARM CPU 到 NVIDIA、Apple GPU,也支持通过 WebAssembly 在浏览器中运行,以及在 Linux、macOS、Windows 上运行。项目同时提供基于同一内核的 Python 包,发布在 PyPI 上。
其核心思路是把模型一次性转换为基于 NNEF 的中间格式 tract-OPL,之后应用只需随附一个体积很小的运行时。项目还支持流式(pulsified)推理,把序列模型转换为沿时间轴按固定大小分块处理的形式,同时适用于批量推理和唤醒词、流式语音识别等低延迟实时场景。仓库示例涵盖图像分类、语音识别、Transformer 文本生成、文生图和人脸检测。
核心功能
- 01支持加载 ONNX、NNEF、TensorFlow Lite 以及旧版 TensorFlow 1 冻结图模型。
- 02在 CPU 上使用手写 SIMD 内核运行,并提供 Apple Metal 和 NVIDIA CUDA 后端。
- 03可编译为 WebAssembly,用于浏览器或 WASI 环境。
- 04可将模型转换为紧凑的 NNEF 格式,使运行时依赖保持精简。
- 05支持流式推理,适用于唤醒词和语音识别等场景。
- 06提供 Rust API,并发布了 PyPI 上的 Python 包。
适用场景
- 在嵌入式 ARM 设备上运行唤醒词或流式语音识别。
- 发布不依赖 protobuf 和训练框架加载器的小型推理运行时。
- 在 Rust 应用中于 CPU 或 GPU 上运行 ONNX 或 NNEF 模型。
- 通过 WebAssembly 在浏览器中执行图像、语音或语言模型。
快速上手
- 1
从 PyPI 安装 Python 包
pip install tract - 2
按照 README 快速入门示例,使用 Rust API 加载 ONNX 模型并运行
使用前须知
- 不直接支持 TensorFlow 2,需要先转换为 ONNX。
- 从源码构建需要 rustc 1.91.0 或更新版本。
- Metal 和 CUDA 运行时分别需要 Apple 或 NVIDIA GPU。
标签
常见问题
- tract 是什么?
- 纯 Rust 实现的神经网络推理引擎,可加载 ONNX、NNEF 模型,在 CPU、Metal、CUDA 和 WebAssembly 上运行。 tract 是 Sonos 开发的 Rust 神经网络推理引擎,可加载 ONNX 和 NNEF 模型并完成优化,运行范围从嵌入式 ARM CPU 到 NVIDIA、Apple GPU,也支持通过 WebAssembly 在浏览器中运行,以及在 Linux、macOS、Windows 上运行。项目同时提供基于同一内核的 Python 包,发布在 PyPI 上。
- tract 可以免费使用吗?用的什么许可证?
- tract 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- tract 还在维护吗?
- 活跃维护中。tract 最近一次提交是在 2026年11月7日。
- tract 适合用来做什么?
- 在嵌入式 ARM 设备上运行唤醒词或流式语音识别。 发布不依赖 protobuf 和训练框架加载器的小型推理运行时。 在 Rust 应用中于 CPU 或 GPU 上运行 ONNX 或 NNEF 模型。 通过 WebAssembly 在浏览器中执行图像、语音或语言模型。
- tract 怎么安装和运行?
- 从 PyPI 安装 Python 包: pip install tract 按照 README 快速入门示例,使用 Rust API 加载 ONNX 模型并运行
- 在哪里获取 tract?
- 源代码和安装说明在 GitHub 上:https://github.com/sonos/tract
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个 Python 库,可将训练好的传统机器学习模型编译为张量计算,以便在 PyTorch、ONNX 等后端上加速推理。
微软出品的 12 周 24 课初学者 AI 课程,涵盖符号 AI、神经网络、计算机视觉、NLP 和 AI 伦理,配有 PyTorch 与 TensorFlow 代码。
基于 MLIR 的机器学习编译器与运行时,将模型统一降级到中间表示,覆盖数据中心到移动与边缘设备。
一个 Python 工具包,可将 Keras、PyTorch 和 ONNX 神经网络转换为 HLS 代码,用于在 FPGA 上运行机器学习推理。
面向 Java 开发者的深度学习框架,与底层引擎无关,可直接用 Java 构建、训练和部署模型。