TAO 部署安装
当通过 TAO 启动器调用 tao deploy
命令时,tao deploy
容器将从 NGC 中拉取并实例化。TAO Deploy 容器仅包含少量轻量级 Python 包,例如 OpenCV、Numpy、Pillow 和 ONNX,并且基于 NGC TensorRT 容器。tao deploy
除了 NGC 容器外,还在 PyPI 上作为公共 wheel 发布。tao deploy
生成的 TensorRT 引擎特定于生成它的 GPU。因此,根据模型要部署到的平台,您需要下载特定版本的 tao deploy
wheel,并在安装平台对应的 TensorRT 版本后在那里生成引擎。
要从 tao-deploy 容器将 TAO 模型部署到 TensorRT,您应首先通过运行 tao info --verbose
来识别与 tao 启动器关联的最新 Docker 标签。
以下是来自 TAO 5.0.0 的示例输出
Configuration of the TAO Instance
task_group:
deploy:
dockers:
nvidia/tao/tao-toolkit-deploy:
5.0.0-deploy:
docker_registry: nvcr.io
tasks:
1. centerpose
2. classification_pyt
3. classification_tf1
4. classification_tf2
5. deformable_detr
6. detectnet_v2
7. dino
8. dssd
9. efficientdet_tf1
10. efficientdet_tf2
11. faster_rcnn
12. lprnet
13. mask_rcnn
14. ml_recog
15. multitask_classification
16. ocdnet
17. ocrnet
18. optical_inspection
19. retinanet
20. segformer
21. ssd
22. unet
23. visual_changenet
24. yolo_v3
25. yolo_v4
26. yolo_v4_tiny
format_version: 3.0
toolkit_version: 5.0.0
与任务关联的容器名称可以检索为 $DOCKER_REGISTRY/$DOCKER_NAME:$DOCKER_TAG
。例如,从上面的日志中,可以按如下方式推导出运行 detectnet_v2
的 Docker 名称
export DOCKER_REGISTRY="nvcr.io"
export DOCKER_NAME="nvidia/tao/tao-toolkit"
export DOCKER_TAG="5.0.0-deploy"
export DOCKER_CONTAINER=$DOCKER_REGISTRY/$DOCKER_NAME:$DOCKER_TAG
获得 Docker 名称后,调用容器,方法是运行网络定义的命令,而无需 tao deploy
前缀。例如,以下命令将运行 detectnet_v2 TensorRT 引擎生成,用于 FP16。
docker run -it --rm --gpus all \
-v /path/in/host:/path/in/docker \
$DOCKER_CONTAINER \
detectnet_v2 gen_trt_engine -e /path/to/experiment/spec.txt \
-m /path/to/etlt/file \
-k $KEY \
--data_type fp16
--engine_file /path/to/engine/file
TAO Deploy 也作为公共 wheel 文件在 PyPI 上分发。该 wheel 不包含 TensorRT 或 TensorRT OSS 作为其依赖项的一部分。因此,您必须通过官方 TensorRT 网站安装这些依赖项,或者调用 NGC 上提供的 TensorRT 容器。
运行以下命令以在您的 Python 环境中安装 nvidia-tao-deploy
wheel。
pip install nvidia-tao-deploy
然后,您可以使用 tao deploy
前缀运行 TAO Deploy 任务。例如,以下命令将运行 detectnet_v2 TensorRT 引擎生成,用于 FP16。
detectnet_v2 gen_trt_engine -e /path/to/experiment/spec.txt \
-m /path/to/etlt/file \
-k $KEY \
--data_type fp16 \
--engine_file /path/to/engine/file
在 Google Colab 上安装 TAO Deploy
您可以使用与 x86 平台安装相同的命令将 nvidia-tao-deploy wheel 下载到 Google Colab。
Colab 的一般限制在此处概述:此处。
请按照以下步骤在 Google-Colab 上运行 TAO Deploy
获取 TensorRT TAR 存档
访问 TensorRT 网页 <https://developer.nvidia.com/tensorrt>
在 TensorRT 网页上单击立即下载。这将引导您进入登录网页 <https://developer.nvidia.com/nvidia-tensorrt-download>。在此登录页面上,您必须选择登录或立即加入以加入 NVIDIA 开发者计划会员。
登录后,从可用版本中选择 TensorRT 8。
同意条款和条件。
在下一个登录页面上,单击 TensorRT 8.5 GA 以展开可用选项。
单击TensorRT 8.5 GA for Linux x86_64 and CUDA 11.0, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7 and 11.8 TAR Package以下载 TAR 文件。
将 TAR 文件上传到您的 Google Drive。
上传 TAR 文件后,您可以运行/查看 此示例 Notebook <https://colab.research.google.com/github/NVIDIA-AI-IOT/nvidia-tao/blob/main/ptm/tao_deploy.ipynb>,它为 TAO PTM 生成 TRT 引擎并使用 TAO Deploy 运行推理。
在 Jetson 平台上安装 TAO Deploy
您可以使用与 x86 平台安装相同的命令将 nvidia-tao-deploy wheel 下载到 Jetson 平台。我们建议使用NVIDIA L4T TensorRT Docker 容器,该容器已包含 aarch64 的 TensorRT 安装。成功安装 TensorRT 后,运行以下命令以在您的 Python 环境中安装 nvidia-tao-deploy
wheel。
pip install nvidia-tao-deploy
由于内存问题,您应首先在 x86 平台上运行 gen_trt_engine
子任务以生成引擎;然后,您可以使用生成的引擎在 Jetson 平台上以及使用目标数据集运行推理或评估。