Ultralytics YOLO27:
Get Started

将 YOLO26 模型格式导出为 TF.js 模型格式#

已弃用 — 现由 LiteRT 取代

自 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.js 由 TensorFlow 团队开发,是更广泛 TensorFlow 生态系统的一部分。通过将敏感数据保留在设备上,它有助于增强用户隐私和安全性。下图展示了 TensorFlow.js 架构,以及机器学习模型如何转换并部署到 Web 浏览器和 Node.js 上。

TensorFlow.js browser ML inference architecture

在本地运行模型还能降低延迟,提供更灵敏的用户体验。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 提供了多种机器学习模型部署方式:

  • 浏览器内的 ML 应用:你可以构建直接在浏览器中运行机器学习模型的 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

# 加载 YOLO26 模型
model = YOLO("yolo26n.pt")

# 将模型导出为 LiteRT 格式(取代 TF.js)
model.export(format="litert", imgsz=640)  # 分类任务使用 imgsz=224
预测和验证

导出的 LiteRT .tflite 模型可直接通过 yolo predict 和 yolo val 加载,并可通过 LiteRT.js 在浏览器中运行。请参阅 LiteRT 导出指南。

导出参数#

参数类型默认值说明
formatstr'litert'导出模型的目标格式;已弃用的 'tfjs' 值会导出 LiteRT。
imgszint 或 tuple640模型输入所需的图像尺寸。正方形图像可使用整数;若要指定具体尺寸,则可使用元组 (height, width)。
quantizeint 或 strNone量化精度:8(静态 INT8,int8 权重 + int8 激活;需要校准 data/fraction)、'w8a16'(静态,int8 权重 + int16 激活;需要校准 data/fraction)、'w8a32'(动态 INT8,int8 权重 + FP32 激活;无需校准),或 32/未设置(FP32)。FP16 不会单独导出 — FP32 模型会在 GPU 委托程序上自动以 FP16 运行。此选项取代了已弃用的 half/int8 标志。
batchint1指定导出模型的批量推理大小,或导出模型在 predict 模式下可同时处理的最大图像数。
datastrNone数据集 YAML 文件的路径,是量化所必需的;分类任务则使用数据集目录或内置数据集名称。如果在使用 quantize=8 或 'w8a16' 时未指定,Ultralytics 会根据模型任务选择默认校准数据集。
fractionfloat、int 或 list1.0校准子集,可按比例、图像数量或 [train, val, test] 比例/数量指定。包含两个项目的列表会让 test 保持完整,而 0 会跳过它。
devicestrNone指定导出设备:CPU (device=cpu),Apple 芯片上的 MPS (device=mps)。

有关导出流程的更多详情,请访问 Ultralytics 导出文档页面。

部署导出的 YOLO26 TensorFlow.js 模型#

现在你已经导出了 YOLO26 模型,下一步就是部署模型。导出会生成一个 LiteRT .tflite 模型,可在设备端运行,也可通过 LiteRT.js 在浏览器中运行 — 当前的部署方式请参阅 LiteRT 导出指南。

以下是供参考的旧版 TensorFlow.js 运行时资源:

总结#

在本指南中,我们学习了如何将 Ultralytics YOLO26 模型导出为 TensorFlow.js 格式。导出为 TF.js 后,你可以灵活地在各种平台上优化、部署和扩展 YOLO26 模型。

如需了解更多用法详情,请访问 TensorFlow.js 官方文档。

如需了解将 Ultralytics YOLO26 与其他平台和框架集成的更多信息,别忘了查看我们的集成指南页面。其中包含丰富的资源,帮助你在项目中充分发挥 YOLO26 的作用。

常见问题#

  • 将 Ultralytics YOLO26 模型导出为 TensorFlow.js (TF.js) 格式非常简单。你可以按照以下步骤操作:

    用法
    from ultralytics import YOLO
    
    # 加载 YOLO26 模型
    model = YOLO("yolo26n.pt")
    
    # 将模型导出为 LiteRT 格式(取代 TF.js)
    model.export(format="litert", imgsz=640)  # 分类任务使用 imgsz=224
    
    # 导出的 '.tflite' 模型可通过 LiteRT.js 在浏览器中运行,也可以使用 yolo predict/val 在本地运行。

    如需了解更多受支持的导出选项,请访问 Ultralytics 关于部署选项的文档页面。

  • 将 YOLO26 模型导出为 TensorFlow.js 有多项优势,包括:

    1. 本地执行:模型可直接在浏览器或 Node.js 中运行,从而降低延迟并提升用户体验。
    2. 跨平台支持:TF.js 支持多种环境,为部署提供灵活性。
    3. 离线运行:应用无需互联网连接即可运行,从而确保可靠性和隐私。
    4. 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指南。

评论