将 YOLO26 模型格式导出为 TF.js 模型格式#
自 Ultralytics 8.4.83 起,tfjs(TensorFlow.js)导出格式已移除,并由统一的 Google LiteRT 格式替代。LiteRT 可通过 LiteRT.js 在浏览器中运行(支持 WebGPU 加速),覆盖 TF.js 所支持的浏览器内和 Node.js 使用场景,以及移动端、嵌入式和边缘设备场景,全部使用单一的 .tflite 模型。
format="tfjs" 仍可使用,但会发出弃用警告,并改为导出 LiteRT 模型。今后请使用 format="litert";有关当前的导出说明和浏览器部署路径,请参阅 LiteRT 导出指南。
将机器学习模型直接部署在浏览器或 Node.js 上可能比较棘手。你需要确保模型格式经过优化以提升运行速度,使模型能够在用户设备本地运行交互式应用。TensorFlow.js(即 TF.js)模型格式旨在以极低的功耗提供快速性能。
“导出为 TF.js 模型格式”功能可优化你的 Ultralytics YOLO26 模型,以实现高速、本地运行的目标检测推理。在本指南中,我们将带你了解如何将模型转换为 TF.js 格式,使模型更容易在各种本地浏览器和 Node.js 应用中获得良好性能。
为什么要导出为 TF.js?#
将机器学习模型导出为 TensorFlow.js(由 TensorFlow 团队作为更广泛 TensorFlow 生态系统的一部分开发)可为部署机器学习应用带来诸多优势。它通过将敏感数据保留在设备上,帮助增强用户隐私和安全性。下图展示了 TensorFlow.js 的架构,以及机器学习模型如何在 Web 浏览器和 Node.js 上进行转换和部署。
在本地运行模型还可以降低延迟,并提供响应更迅速的用户体验。TensorFlow.js 还支持离线运行,即使没有互联网连接,用户也能使用你的应用。TF.js 专为在资源有限的设备上高效执行复杂模型而设计,并且针对可扩展性进行了优化,同时支持 GPU 加速。
TF.js 的主要功能#
以下是使 TF.js 成为开发者强大工具的主要功能:
-
跨平台支持: TensorFlow.js 可在浏览器和 Node.js 环境中使用,为跨不同平台部署提供灵活性。它让开发者能够更轻松地构建和部署应用。
-
支持多种后端: TensorFlow.js 支持多种计算后端,包括 CPU、用于 GPU 加速的 WebGL、提供近原生执行速度的 WebAssembly(WASM),以及用于实现高级浏览器端机器学习能力的 WebGPU。
-
离线能力: 借助 TensorFlow.js,模型无需互联网连接即可在浏览器中运行,从而可以开发能够离线运行的应用。
使用 TensorFlow.js 的部署选项#
在深入了解将 YOLO26 模型导出为 TF.js 格式的过程之前,我们先来看看这种格式的一些典型部署场景。
TF.js 提供了一系列机器学习模型部署选项:
-
浏览器内机器学习应用: 你可以构建直接在浏览器中运行机器学习模型的 Web 应用。这样无需服务器端计算,并可降低服务器负载。
-
Node.js 应用: TensorFlow.js 还支持在 Node.js 环境中部署,从而能够开发服务器端机器学习应用。对于需要服务器处理能力或访问服务器端数据的应用,这尤其有用。
-
Chrome 扩展: 使用 TensorFlow.js 创建 Chrome 扩展也是一种有趣的部署场景。例如,你可以开发一个扩展,让用户右键点击任意网页中的图像,并使用预训练 ML 模型对其进行分类。TensorFlow.js 可以集成到日常网页浏览体验中,根据机器学习提供即时洞察或增强功能。
将 YOLO26 模型导出为 TensorFlow.js#
将 YOLO26 模型转换为 TF.js,可以扩展模型兼容性并提高部署灵活性。
安装#
要安装所需的软件包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关安装流程的详细说明和最佳实践,请参阅我们的 Ultralytics 安装指南。在为 YOLO26 安装所需软件包时,如果遇到任何困难,请参阅我们的常见问题指南以获取解决方案和建议。
使用方法#
所有 Ultralytics YOLO26 模型 都支持开箱即用的导出,因此可以轻松将其集成到你首选的部署工作流中。你可以查看支持的导出格式和配置选项完整列表,为你的应用选择最佳配置。
tfjs 参数现在会导出 LiteRT .tflite 模型,该模型支持在本地使用 Export、Predict 和 Validate 模式,并可通过 LiteRT.js 在浏览器中运行。有关当前的浏览器和设备端部署路径,请参阅 LiteRT 导出指南。
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF.js format
model.export(format="litert", imgsz=640) # use imgsz=224 for classification导出的 LiteRT .tflite 模型可直接使用 yolo predict 和 yolo val 加载,并可通过 LiteRT.js 在浏览器中运行。请参阅 LiteRT 导出指南。
导出参数#
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'tfjs' | 导出模型的目标格式,用于定义其与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入所需的图像尺寸。可以使用表示正方形图像的整数,也可以使用元组 (height, width) 指定具体尺寸。 |
quantize | int 或 str | None | 量化精度:8(静态 INT8,int8 权重 + int8 激活值;需要校准 data/fraction)、'w8a16'(静态,int8 权重 + int16 激活值;需要校准 data/fraction)、'w8a32'(动态 INT8,int8 权重 + FP32 激活值;无需校准)或 32/未设置(FP32)。FP16 不会单独导出——FP32 模型在 GPU 委托上会自动以 FP16 运行。替代已弃用的 half/int8 标志。 |
batch | int | 1 | 指定导出模型的批量推理大小,或指定导出模型在 predict 模式下并发处理的最大图像数量。 |
data | str | None | 数据集 YAML 的路径,是量化所必需的;分类任务则需要数据集目录或内置数据集名称。如果在使用 quantize=8 或 'w8a16' 时省略该参数,Ultralytics 会为相应模型任务选择默认校准数据集。 |
fraction | float、int 或 list | 1.0 | 校准子集可以按比例、图像数量或 [train, val, test] 的比例/数量指定。包含两个项目的列表会保留 test 的完整内容,同时跳过 0。 |
device | str | None | 指定导出所使用的设备:CPU(device=cpu)、Apple silicon 上的 MPS(device=mps)。 |
如需详细了解导出流程,请访问 Ultralytics 导出文档页面。
部署导出的 YOLO26 TensorFlow.js 模型#
现在你已经导出了 YOLO26 模型,下一步就是部署它。导出结果是一个可在设备上运行并通过 LiteRT.js 在浏览器中运行的 LiteRT .tflite 模型——有关当前路径,请参阅 LiteRT 导出指南。
作为参考,以下是旧版 TensorFlow.js 运行时资源:
-
Chrome 扩展: 以下是关于如何将 TF.js 模型部署到 Chrome 扩展中的开发者文档。
-
在 Node.js 中运行 TensorFlow.js: 一篇介绍如何直接在 Node.js 中运行 TensorFlow.js 的 TensorFlow 博客文章。
-
在云平台上部署 TensorFlow.js - Node 项目: 一篇介绍如何在云平台上部署 TensorFlow.js 模型的 TensorFlow 博客文章。
总结#
在本指南中,我们学习了如何将 Ultralytics YOLO26 模型导出为 TensorFlow.js 格式。通过导出为 TF.js,你可以灵活地在各种平台上优化、部署和扩展 YOLO26 模型。
如需进一步了解使用方法,请访问 TensorFlow.js 官方文档。
如需了解将 Ultralytics YOLO26 集成到其他平台和框架中的更多信息,别忘了查看我们的集成指南页面。其中包含丰富的资源,帮助你在项目中充分发挥 YOLO26 的作用。
常见问题#
将 Ultralytics YOLO26 模型导出为 TensorFlow.js(TF.js)格式非常简单。你可以按照以下步骤操作:
使用方法from ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to TF.js format model.export(format="litert", imgsz=640) # use imgsz=224 for classification # The exported '.tflite' model runs in the browser via LiteRT.js or locally with yolo predict/val.如需详细了解支持的导出选项,请访问 Ultralytics 关于部署选项的文档页面。
将 YOLO26 模型导出为 TensorFlow.js 具有多项优势,包括:
- 本地执行: 模型可直接在浏览器或 Node.js 中运行,从而降低延迟并改善用户体验。
- 跨平台支持: TF.js 支持多种环境,为部署提供灵活性。
- 离线能力: 支持应用在没有互联网连接的情况下运行,确保可靠性和隐私性。
- GPU 加速: 利用 WebGL 进行 GPU 加速,优化资源有限设备上的性能。
TensorFlow.js 专为在浏览器和 Node.js 环境中高效执行 ML 模型而设计。它可以通过以下方式帮助基于浏览器的应用:
- 降低延迟: 在本地运行机器学习模型,无需依赖服务器端计算即可立即获得结果。
- 改善隐私: 将敏感数据保留在用户设备上,最大限度地降低安全风险。
- 支持离线使用: 模型无需互联网连接即可运行,确保功能始终一致。
- 支持多种后端: 提供 CPU、WebGL、WebAssembly(WASM)和 WebGPU 等后端,以满足不同的计算需求。
想进一步了解 TF.js?请查看 TensorFlow.js 官方指南。
TensorFlow.js 的主要功能包括:
- 跨平台支持: TF.js 可在 Web 浏览器和 Node.js 中使用,提供广泛的部署灵活性。
- 多种后端: 支持 CPU、用于 GPU 加速的 WebGL、WebAssembly(WASM)和用于高级操作的 WebGPU。
- 离线能力: 模型无需互联网连接即可直接在浏览器中运行,非常适合开发响应迅速的 Web 应用。
有关部署场景和更深入的信息,请参阅我们的 使用 TensorFlow.js 的部署选项部分。
可以,TensorFlow.js 支持在 Node.js 环境中部署 YOLO26 模型。这使你能够开发服务器端机器学习应用,并利用服务器的处理能力和服务器端数据访问能力。典型用例包括后端服务器上的实时数据处理和机器学习流水线。
如需开始 Node.js 部署,请参阅 TensorFlow 提供的在 Node.js 中运行 TensorFlow.js指南。