概述
NVIDIA TAO 是一个基于 TensorFlow 和 PyTorch 构建的低代码 AI 工具包,它通过抽象化 AI 模型和深度学习框架的复杂性,简化并加速了模型训练过程。借助 TAO,用户可以从 NGC 中选择 100 多个预训练的视觉 AI 模型,并在他们自己的数据集上进行微调和自定义,而无需编写一行代码。TAO 的输出是以 ONNX 格式训练的模型,可以部署在任何支持 ONNX 的平台上。

TAO 概述图像
TAO 支持大多数流行的 CV 任务,例如
图像分类
用于计算机视觉的多模型传感器融合
目标检测
实例分割
语义分割
光学字符检测与识别 (OCD/OCR)
人体姿态估计
关键点估计
动作识别
Siamese 网络
变化检测
CenterPose
上下文分割
对于图像分类、目标检测和分割,用户可以选择多种特征提取器之一,并将其与多个用于分类、检测和分割任务的头部之一一起使用,从而开启 100 多种模型组合的可能性。TAO 支持一些领先的视觉 Transformer (ViT),如 FAN、GC-ViT、SWIN、DINO、D-DETR 和 SegFormer。
主干网络 |
图像分类 |
---|---|
NvDINOv2 | X |
GcViT | X |
ViT | X |
FAN | X |
FasterViT | X |
ResNet | X |
Swin | X |
EfficientNet | X |
ST-GCN (图卷积网络) | |
MIT-b |
主干网络 |
DINO |
D-DETR |
Grounding DINO |
EfficientDet |
---|---|---|---|---|
NvDINOv2 | X | |||
GcViT | X | X | ||
ViT | X | X | ||
FAN | X | |||
FasterViT | ||||
ResNet | X | X | ||
Swin | X | |||
EfficientNet | X | |||
ST-GCN (图卷积网络) | ||||
MIT-b |
主干网络 |
Mask2Former |
---|---|
NvDINOv2 | |
GcViT | |
ViT | |
FAN | |
FasterViT | |
ResNet | |
Swin | X |
EfficientNet | |
ST-GCN (图卷积网络) | |
MIT-b |
主干网络 |
OCD |
OCR |
---|---|---|
NvDINOv2 | ||
GcViT | ||
ViT | ||
FAN | X | X |
FasterViT | ||
ResNet | X | X |
Swin | ||
EfficientNet | ||
ST-GCN (图卷积网络) | ||
MIT-b |
主干网络 |
MAL |
Mask GroundingDINO |
Mask2Former |
---|---|---|---|
NvDINOv2 | |||
GcViT | |||
ViT | X | ||
FAN | |||
FasterViT | |||
ResNet | |||
Swin | X | X | |
EfficientNet | |||
ST-GCN (图卷积网络) | |||
MIT-b |
主干网络 |
SegFormer |
Mask2Former |
---|---|---|
NvDINOv2 | ||
GcViT | ||
ViT | ||
FAN | X | |
FasterViT | ||
ResNet | ||
Swin | X | |
EfficientNet | ||
ST-GCN (图卷积网络) | ||
MIT-b | X |
主干网络 |
重识别 |
度量学习识别 |
---|---|---|
NvDINOv2 | X | |
GcViT | ||
ViT | X | |
FAN | ||
FasterViT | ||
ResNet | X | X |
Swin | X | |
EfficientNet | ||
ST-GCN (图卷积网络) | ||
MIT-b |
主干网络 |
分类 |
分割 |
---|---|---|
NvDINOv2 | X | X |
GcViT | ||
ViT | X | X |
FAN | X | X |
FasterViT | ||
ResNet | ||
Swin | ||
EfficientNet | ||
ST-GCN (图卷积网络) | ||
MIT-b |
主干网络 |
姿态分类 |
---|---|
NvDINOv2 | |
GcViT | |
ViT | |
FAN | |
FasterViT | |
ResNet | |
Swin | |
EfficientNet | |
ST-GCN (图卷积网络) | X |
MIT-b |
TAO 提供了增强用户数据集的方法。这些类别的功能和任务包含在 数据服务 模式下。
TAO 5.5.0 引入了对开放词汇接地目标检测和实例分割的微调和推理支持,通过 GroundingDINO 和 Mask GroundingDINO。GitHub 仓库。
NVIDIA 还包括两个新的推理应用程序作为 TAO 的一部分。
一个 gradio 应用程序,用于在 TAO PyTorch GitHub 仓库中使用 SEGIC 模型尝试零样本上下文分割。
一个用于 FoundationPose 模型的 Triton 推理应用程序,位于 TAO Triton Apps 中。
一个 NVIDIA 推理微服务 (NIM) 目录,用于尝试不同的 TAO 模型。
一个 GitHub 仓库,其中包含名为 metropolis_nim_workflows 的参考工作流,使用已发布的 NIM
截至 5.5.0 版本,TAO 容器仅在具有独立 GPU 的 x86 平台上运行。有关支持的 GPU 的更多信息,请参阅 快速入门指南。
TAO 拥有广泛的预训练模型选择,这些模型要么在公共数据集(如 ImageNet、COCO、OpenImages)上训练,要么在特定于任务的用例(如行人检测、车辆检测和动作识别等)的专有数据集上训练。特定于任务的模型可以直接用于推理,但也可以在自定义数据集上进行微调,以获得更高的准确率。
转到 模型动物园 部分,了解有关所有预训练模型的更多信息。
TAO 打包了几个主要功能,以帮助开发者加速他们的 AI 训练和优化。以下是一些主要特点
计算机视觉工作流
数据服务
TAO 还为服务提供商和 NVIDIA 合作伙伴提供了几个功能,他们希望将 TAO 与其工作流程集成,以提供附加服务。
AutoML - 自动超参数扫描和优化,以在给定数据集上生成最佳准确率。
REST API - 使用云 API 端点调用云中托管的 TAO 服务。
Kubernetes 部署 - 在本地或云托管的 Kubernetes 服务之一的 K8s 集群中部署 TAO 服务。
源代码可用性 - 访问 TAO 的源代码以添加您自己的自定义
详细的入门指南在 TAO 入门指南 中提供。
入门包包含安装脚本、Jupyter 笔记本和用于训练和模型配置的文件。所有模型都有 Jupyter 笔记本,可以用作运行训练的模板。所有笔记本都附带一个调用来下载示例数据集以运行训练作业。这些可以替换为您自己的数据集。
TAO 是一个托管在 NVIDIA Python 包索引上的 Python 包。它与 NVIDIA GPU 加速容器注册中心 (NGC) 提供的较低级别 TAO Docker 镜像交互;TAO 容器预装了训练所需的所有依赖项。CLI 从每个 Docker 容器内打包的 Jupyter 笔记本运行,由几个简单的命令组成,例如 train、evaluate、infer、prune、export 和 augment(即数据增强)。TAO 工作流的输出是一个训练好的模型,可以使用 DeepStream 和 TensorRT 部署在 NVIDIA 设备上进行推理
TAO 应用程序层构建在 CUDA-X 之上,CUDA-X 包含所有较低级别的 NVIDIA 库,包括用于 GPU 加速的 NVIDIA 容器运行时、用于深度学习 (DL) 操作的 CUDA 和 cuDNN,以及用于优化模型的 TensorRT(NVIDIA 推理优化和运行时引擎)。使用 TAO 生成的模型与 TensorRT 完全兼容并为其加速,这确保了最大推理性能,而无需任何额外的努力。

模型剪枝是 TAO 的主要差异化因素之一。剪枝涉及从神经网络中移除对模型整体准确率贡献较小的节点,从而减小模型的整体大小,显著减少内存占用,并提高推理吞吐量——所有这些因素对于边缘部署都非常重要。
目前,剪枝支持部分计算机视觉模型。下图提供了从未剪枝的 CV 模型到剪枝后的 CV 模型所实现的性能提升示例(推理在 NVIDIA T4 上运行;TrafficCamNet、DashCamNet 和 PeopleNet 是 NGC 上提供的三个自定义预训练模型)。

剪枝与未剪枝性能对比
教学视频
NVIDIA TAO 入门
创建自定义多模态融合模型
使用视觉提示与 NVIDIA TAO 进行上下文分割
使用 NVIDIA TAO FoundationPose 模型估计和跟踪物体姿态
使用 NVIDIA Grounding-DINO 进行开放词汇目标检测
使用文本提示与 NVIDIA TAO 进行自动标注
使用 TensorBoard 可视化模型训练
开发者博客
要了解更多关于使用 TAO 的信息,请阅读技术博客,其中提供了使用 TAO 进行训练的逐步指南
了解关于 TAO 5.0 的最新功能
学习如何 创建实时车牌检测和识别应用
学习如何使用 TAO Toolkit 为分类和目标检测准备最先进的模型
学习如何使用 TAO 训练和优化 2D 身体姿态估计模型:2D 姿态估计第 1 部分 | 2D 姿态估计第 2 部分。
阅读关于此 白皮书 的不同用例
网络研讨会
如果您在使用 TAO 训练模型并部署到 Riva 或 DeepStream 时有任何疑问,请在此处发布