TAO v5.5.0

初学者

对于人工智能新手来说,深度神经网络训练可能会让人望而生畏。为了帮助解决这个问题,TAO 提供了一个易于使用的命令行界面——TAO CLI 启动器——用于与 TAO 工作流程进行交互和运行。

TAO 启动器是一个轻量级的、基于 Python 的命令行界面,它充当构建在 PyTorch、TensorFlow 和 TensorRT 之上的 TAO 容器的前端。CLI 抽象了关于哪些网络操作在哪个容器中实现的信息。当您使用 CLI 时,相应的容器会根据您计划使用的模型自动启动。

在使用 软件包内容 的说明下载入门资源后,您可以按如下步骤开始使用启动器

  1. 安装运行 CLI 所需的先决条件软件

  2. 设置您的 Python 环境

  3. 安装 TAO 启动器

  4. 运行示例启动器 TAO 教程笔记本

TAO 启动器严格来说是一个 Python3 软件包,能够在 Python 版本 >= 3.10 上运行。

  1. 按照官方说明安装 docker-ce

    注意

    安装 docker-ce 后,按照安装后步骤操作,以确保 Docker 可以在没有 sudo 的情况下运行。启动器要求 docker CLI 可在没有超级用户 (sudo) 权限的情况下运行。

  2. 按照安装指南安装 nvidia-container-toolkit

  3. 获取 NGC 帐户和 API 密钥

    1. 转到 NGC 并单击目录选项卡中的 TAO 容器。将显示以下消息:“登录以访问此存储库的 PULL 功能”。

    2. 输入您的电子邮件地址,然后单击下一步,或单击创建帐户

    3. 当提示组织/团队时,选择您的组织。

    4. 单击登录

  4. 使用以下命令登录到 NGC Docker 注册表 (nvcr.io)

    复制
    已复制!
                

    docker login nvcr.io

    然后,输入以下凭据

    复制
    已复制!
                

    a. Username: "$oauthtoken" b. Password: "YOUR_NGC_API_KEY"


    其中 YOUR_NGC_API_KEY 对应于您从步骤 3 生成的密钥。

注意

建议使用 DeepStream 7.0 - 用于流式推理的 NVIDIA SDK 来部署 TAO 训练和微调的模型。

我们建议使用 miniconda 设置 Python 环境。以下说明展示了如何设置 Python conda 环境。

  1. 按照此链接中的说明使用 Miniconda 设置 Conda 环境。

  2. 安装 miniconda 后,创建一个新环境并将 Python 版本设置为 3.10。

    复制
    已复制!
                

    conda create -n launcher python=3.10


  3. 激活您刚刚创建的 conda 环境。

    复制
    已复制!
                

    conda activate launcher


  4. 验证命令提示符是否显示您的 Conda 环境的名称。

    复制
    已复制!
                

    (launcher) py-3.10 desktop:


  5. 将笔记本设置为与虚拟环境相同的 Python 内核

    复制
    已复制!
                

    python -m pip install ipykernel python -m ipykernel install --user --name launcher --display-name "launcher"


完成会话后,可以使用 deactivate 命令停用您的 conda 环境

复制
已复制!
            

conda deactivate

您可以使用以下命令重新实例化此 conda 环境

复制
已复制!
            

conda activate launcher


作为入门软件包的一部分,包含一个快速入门脚本,用于安装 TAO 启动器 CLI 软件包及其 Python 依赖项,以及 NGC CLI,NGC CLI 是拉取模型并与 NVIDIA GPU 云上的模型、Docker 和资源注册表进行交互所必需的。

  1. 使用从软件包内容下载的 getting_started NGC 软件包随附的快速入门脚本安装 CLI 启动器和 NGC CLI。

    复制
    已复制!
                

    bash setup/quickstart_launcher.sh --install

  2. 通过运行以下命令将启动器更新到最新版本的 TAO

    复制
    已复制!
                

    bash setup/quickstart_launcher.sh --upgrade

  3. 使用 tao 命令调用入口点

    复制
    已复制!
                

    tao --help


    以下是上述命令的示例输出

    复制
    已复制!
                

    usage: tao [-h] {list,stop,info,dataset,deploy,model} ... Launcher for TAO optional arguments: -h, --help show this help message and exit task_groups: {list,stop,info,dataset,deploy,model}

    task_groups 下,您可以看到所有启动器可调用的任务。以下是使用 TAO 启动器处理启动命令的任务

    • list

    • stop

    • info

注意

当将 TAO 启动器安装到主机机器的本机 Python3 内核时,而不是推荐的使用虚拟环境的路径时,您可能会收到一个错误,指出找不到 tao 二进制文件;pip 安装的 tao 二进制文件的路径尚未添加到本地机器上的 PATH 环境变量中。要解决此问题,请运行以下命令

复制
已复制!
            

export PATH=$PATH:~/.local/bin

现在您已经从 GitHub 安装了 TAO 启动器和教程笔记本,您可以开始运行示例教程笔记本。

以下命令允许您调用示例笔记本

复制
已复制!
            

jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root

在 localhost 上打开互联网浏览器,并导航到以下 URL

复制
已复制!
            

http://0.0.0.0:8888

注意

如果您想从远程服务器运行笔记本,请按照这些步骤操作。

执行笔记本中的单元格以使用 TAO 训练模型。

您可以选择以下任何一个示例笔记本以开始使用 TAO。作为起点,NVIDIA 建议运行 GroundingDINO 开放词汇检测笔记本

下表提供了 TAO 教程笔记本的列表。

专用预训练模型

以下是专用预训练模型及其对应示例的列表。

模型名称

Jupyter 笔记本

描述

ActionRecognitionNet notebooks/tao_launcher_starter_kit/actionrecognitionnet/actionrecognitionnet.ipynb 在 HMDB51 数据集上训练和优化动作识别模型的示例笔记本
PoseClassificationNet notebooks/tao_launcher_starter_kit/pose_classification_net/poseclassificationnet.ipynb 在 Market-1501 数据集上训练和优化姿势分类网络的示例笔记本
PointPillars notebooks/tao_launcher_starter_kit/pointpillars/pointpillars.ipynb 在 KITTI 点云数据集上训练、剪枝和优化 3D 对象检测模型的示例笔记本
ReIdentificationNet notebooks/tao_launcher_starter_kit/re_identification_net/reidentificationnet_resnet.ipynb 在 Market-1501 数据集上训练和优化 Re-Identification 网络的示例笔记本
ReIdentificationNet Transformer notebooks/tao_launcher_starter_kit/re_identification_net/reidentificationnet_swin.ipynb 在 Market-1501 数据集上训练和优化 Re-Identification Transformer 网络的示例笔记本
OCDNet notebooks/tao_launcher_starter_kit/ocdnet/ocdnet.ipynb 在 ICDAR2015 数据集上训练、剪枝和优化光学字符检测模型的示例笔记本
OCRNet notebooks/tao_launcher_starter_kit/ocrnet/ocrnet.ipynb 在 ICDAR2015 数据集上训练、剪枝和优化光学字符识别模型的示例笔记本
光学检测 notebooks/tao_launcher_starter_kit/optical_inspection/OpticalInspection.ipynb 在自定义数据集上训练和优化用于 PCB 组件光学检测的 Siamese 模型的示例笔记本
零售对象识别 notebooks/tao_launcher_starter_kit/metric_learning_recogntition/metric_learning_recogntition.ipynb 在零售产品结账数据集上训练和优化度量学习识别模型的示例笔记本
VisualChangeNet-Classification notebooks/tao_launcher_starter_kit/visual_changenet/visual_changenet_classification.ipynb 在自定义数据集上训练和优化用于 PCB 组件光学检测的 Visual ChangeNet 模型的示例笔记本
CenterPose notebooks/tao_launcher_starter_kit/centerpose/centerpose.ipynb 在 Google Objectron 数据集上训练和优化用于估计对象姿势的 CenterPose 模型的示例笔记本

开放模型架构

网络架构

Jupyter 笔记本

描述

分类 (TF2) notebooks/tao_launcher_starter_kit/classification_tf2/classification.ipynb 在 Cats/Dogs 数据集上训练、剪枝和优化 EfficientNet-b0 图像分类模型的示例笔记本
EfficientDet (TF2) notebooks/tao_launcher_starter_kit/efficientdet_tf2/efficientdet.ipynb 在 COCO 数据集上训练、剪枝和优化 EfficientDet-D0 对象检测模型的示例笔记本
PointPillars notebooks/tao_launcher_starter_kit/pointpillars/pointpillars.ipynb 在 KITTI 点云数据集上训练、剪枝和优化 3D 对象检测模型的示例笔记本
Deformable DETR notebooks/tao_launcher_starter_kit/deformable_detr/deformable_detr.ipynb 在 COCO 数据集上训练和优化 ResNet-50 Deformable-DETR 模型的示例笔记本
DINO notebooks/tao_launcher_starter_kit/dino/dino.ipynb 在 COCO 数据集上训练和优化 ResNet-50 DINO 模型的示例笔记本
SegFormer notebooks/tao_launcher_starter_kit/segformer/segformer.ipynb 在 ISBI 数据集上训练和优化 MIT-B5 SegFormer 语义分割模型的示例笔记本
分类 (PyT) notebooks/tao_launcher_starter_kit/classification_pyt/classification.ipynb 在 Cats/Dogs 数据集上训练和优化基于 FAN 的图像分类模型的示例笔记本
VisualChangeNet-Segmentation notebooks/tao_launcher_starter_kit/visual_changenet/visual_changenet_segmentation.ipynb 在 LEVIR-CD 数据集上训练和优化用于分割变化检测的 Visual ChangeNet 模型的示例笔记本
CenterPose notebooks/tao_launcher_starter_kit/centerpose/centerpose.ipynb 在 Google Objectron 数据集上训练和优化用于对象姿势估计的 CenterPose 模型的示例笔记本

TAO Docker 使您可以访问预训练模型存储库,这些模型可以用作训练深度神经网络的起点。这些模型托管在 NGC 上。按照以下步骤下载模型

注意

如果您通过 quickstart_launcher.sh 脚本安装了 TAO 启动器,则 NGC CLI 与 TAO 启动器一起安装。您可以跳过下面的步骤 1。

  1. 下载 NGC CLI 并安装它。有关 NGC Catalog CLI 的更多信息,请访问此处

  2. 按照以下说明配置 NGC CLI 并下载模型。

列出所有可用模型

使用此命令获取 NGC 模型注册表中托管的模型列表

复制
已复制!
            

ngc registry model list <model_glob_string>

以下是使用此命令获取计算机视觉模型的示例

复制
已复制!
            

ngc registry model list nvidia/tao/pretrained_*

此命令返回可用于不同任务的预训练骨干网络的列表

复制
已复制!
            

+----------------------------------------+----------------------------------------+----------------------------------------+-----------------------+---------------------------+-----------+---------------+------------+-------------+---------------------+ | Name | Repository | Latest Version | Application | Framework | Precision | Last Modified | Permission | Access Type | Associated Products | +========================================+========================================+========================================+=======================+===========================+===========+===============+============+=============+=====================+ | TAO Pretrained EfficientDet | nvidia/tao/pretrained_efficientdet | efficientnet_b2 | Object Detection | Transfer Learning Toolkit | FP32 | Apr 04, 2023 | unlocked | | | | Pre-trained DINO ImageNet weights | nvidia/tao/pretrained_dino_imagenet | gcvit_large_imagenet22k_384 | Object Detection | TAO Toolkit | FP32 | Oct 16, 2023 | unlocked | | | | TAO Pretrained DetectNet V2 | nvidia/tao/pretrained_detectnet_v2 | resnet34 | Object Detection | Transfer Learning Toolkit | FP32 | Apr 04, 2023 | unlocked | | | | Pre-trained DINO NvImageNet weights | nvidia/tao/pretrained_dino_nvimagenet | resnet50 | Object Detection | TAO Toolkit | FP32 | Oct 16, 2023 | unlocked | | | | DINO | nvidia/tao/pretrained_dino_coco | dino_fan_large_trainable_v1.0 | Object Detection | TAO Toolkit | FP32 | Feb 03, 2024 | unlocked | | | | TAO Pretrained Classification | nvidia/tao/pretrained_classification | cspdarknet_tiny | Classification | Transfer Learning Toolkit | FP32 | Apr 04, 2023 | unlocked | | | | TAO Pretrained Object Detection | nvidia/tao/pretrained_object_detection | cspdarknet_tiny | Other | Other | FP32 | May 03, 2024 | unlocked | | | | TAO Pretrained EfficientDet-TF2 | nvidia/tao/pretrained_efficientdet_tf2 | efficientnet_b0 | OBJECT_DETECTION | TransferLearningToolkit | FP32 | Dec 13, 2022 | unlocked | | | | Pretrained Mask Auto Label | nvidia/tao/pretrained_mask_auto_label | vit-base | Semantic Segmentation | Transfer Learning Toolkit | FP32 | Jul 27, 2023 | unlocked | | | +----------------------------------------+----------------------------------------+----------------------------------------+-----------------------+---------------------------+-----------+---------------+------------+-------------+---------------------+

注意

所有 TAO 分类模型都具有基于此模板的名称:nvidia/tao/pretrained_classification:<template>

要查看完整模型列表,请使用以下命令

复制
已复制!
            

ngc registry model list nvidia/tao/*

下载模型

使用此命令从 NGC 模型注册表下载您选择的模型

复制
已复制!
            

ngc registry model download-version <org/team/model_name:version> -dest <path_to_download_dir>

例如,使用此命令将 resnet 18 分类模型下载到 $USER_EXPERIMENT_DIR 目录

复制
已复制!
            

ngc registry model download-version nvidia/tao/pretrained_classification:resnet18 --dest $USER_EXPERIMENT_DIR/pretrained_resnet18

复制
已复制!
            

Downloaded 82.41 MB in 9s, Download speed: 9.14 MB/s ---------------------------------------------------- Transfer id: pretrained_classification_vresnet18 Download status: Completed. Downloaded local path: /workspace/tao-experiments/pretrained_resnet18/ Total files downloaded: 2 Total downloaded size: 82.41 MB Started at: 2019-07-16 01:29:53.028400 Completed at: 2019-07-16 01:30:02.053016 Duration taken: 9s seconds

训练完成后,按照这些说明将计算机视觉模型部署到 DeepStream。

上一步 入门
下一步 中级用户
© 版权所有 2024, NVIDIA。 上次更新于 2024 年 10 月 15 日。