Repolode
sonos

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. 1

    从 PyPI 安装 Python 包

    pip install tract
  2. 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 数据每日更新。

相关项目