# NVIDIA TAO

## 概述

NVIDIA TAO（训练、适配和优化）是一个强大的 AI 工具包，旨在简化和加速计算机视觉、语音和自然语言处理深度学习模型的开发。TAO 基于 NVIDIA 先进的 AI
框架构建，使开发者能够以最少的编码量微调预训练模型，减少对大规模数据集和广泛机器学习专业知识的需求。通过利用迁移学习和模型剪枝，TAO 精简了 AI 开发流程，使企业能够高效部署高性能 AI
应用。你可以在其[官方文档](https://developer.nvidia.com/tao-toolkit)中了解更多关于该工具包的信息。

除了工具包，他们还提供了 NCG 目录，其中包含集合、容器、Helm 图表等内容，并提供了适用于多种用例的庞大模型仓库（Model
Zoo）。你可以在此[处](https://catalog.ngc.nvidia.com/models?filters=&orderBy=weightPopularDESC&query=&page=&pageSize=)浏览所有模型。

## 使用方法

> 有关完整的逐步指导，请查看我们的
> [NVIDIA TAO 模型转换教程](https://github.com/luxonis/depthai-ml-training/blob/main/conversion/nvidia_tao_conversion.ipynb)
> 。

TAO
工具包允许你训练自定义模型。有关详细指导，请参阅[官方文档](https://developer.nvidia.com/tao-toolkit-get-started)并探索各种实践[教程](https://github.com/NVIDIA/tao_tutorials/tree/main/notebooks/tao_launcher_starter_kit)。训练完成后，你将获得一个
.tlt 模型文件，需要将其转换为 ONNX 格式。以下是一个导出 重识别模型 的示例：

```bash
tao model re_identification export \
 -e $USER_EXPERIMENT_DIR/media/experiment_market1501_resnet.yaml \
    results_dir=$USER_EXPERIMENT_DIR \
 encryption_key=$KEY \
    export.checkpoint=$USER_EXPERIMENT_DIR/resnet50_market1501_aicity156.tlt \
 export.onnx_file=$USER_EXPERIMENT_DIR/resnet50_market1501_aicity156.onnx
```

> 你实际使用的标志可能有所不同。

导出后，你应该会得到一个 ONNX 文件。接下来，按照 [RVC 转换部分](https://docs.luxonis.com/software-v3/ai-inference/conversion/rvc-conversion.md)
中概述的步骤进行操作。或者，你也可以参考我们的 [ONNX 转换教程](https://github.com/luxonis/ai-tutorials/blob/main/conversion/onnx_conversion.ipynb) 获取详细指导。

如果你不想训练自己的模型，可以使用 TAO 模型仓库中的预训练模型。其中许多模型已经以 ONNX 格式提供，因此你可以跳过转换步骤，直接准备模型以在 RVC 设备上部署。
