初学者
对于人工智能新手来说,深度神经网络训练可能会让人望而生畏。为了帮助解决这个问题,TAO 提供了一个易于使用的命令行界面——TAO CLI 启动器——用于与 TAO 工作流程进行交互和运行。
TAO 启动器是一个轻量级的、基于 Python 的命令行界面,它充当构建在 PyTorch、TensorFlow 和 TensorRT 之上的 TAO 容器的前端。CLI 抽象了关于哪些网络操作在哪个容器中实现的信息。当您使用 CLI 时,相应的容器会根据您计划使用的模型自动启动。
在使用 软件包内容 的说明下载入门资源后,您可以按如下步骤开始使用启动器
TAO 启动器严格来说是一个 Python3 软件包,能够在 Python 版本 >= 3.10 上运行。
按照官方说明安装
docker-ce
。注意安装 docker-ce 后,按照安装后步骤操作,以确保 Docker 可以在没有
sudo
的情况下运行。启动器要求docker
CLI 可在没有超级用户 (sudo) 权限的情况下运行。按照安装指南安装
nvidia-container-toolkit
。获取 NGC 帐户和 API 密钥
转到 NGC 并单击目录选项卡中的 TAO 容器。将显示以下消息:“登录以访问此存储库的 PULL 功能”。
输入您的电子邮件地址,然后单击下一步,或单击创建帐户。
当提示组织/团队时,选择您的组织。
单击登录。
使用以下命令登录到 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
环境。
按照此链接中的说明使用 Miniconda 设置 Conda 环境。
安装
miniconda
后,创建一个新环境并将 Python 版本设置为 3.10。conda create -n launcher python=3.10
激活您刚刚创建的
conda
环境。conda activate launcher
验证命令提示符是否显示您的 Conda 环境的名称。
(launcher) py-3.10 desktop:
将笔记本设置为与虚拟环境相同的 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 和资源注册表进行交互所必需的。
使用从软件包内容下载的
getting_started
NGC 软件包随附的快速入门脚本安装 CLI 启动器和 NGC CLI。bash setup/quickstart_launcher.sh --install
通过运行以下命令将启动器更新到最新版本的 TAO
bash setup/quickstart_launcher.sh --upgrade
使用
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 教程笔记本的列表。
专用预训练模型
以下是专用预训练模型及其对应示例的列表。
开放模型架构
TAO Docker 使您可以访问预训练模型存储库,这些模型可以用作训练深度神经网络的起点。这些模型托管在 NGC 上。按照以下步骤下载模型
如果您通过 quickstart_launcher.sh
脚本安装了 TAO 启动器,则 NGC CLI 与 TAO 启动器一起安装。您可以跳过下面的步骤 1。
下载 NGC CLI 并安装它。有关 NGC Catalog CLI 的更多信息,请访问此处。
按照以下说明配置 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。