TAO Toolkit 5.0.0入门实践文档
必要条件:
- NGC CLI KEY
- docker
- nvidia-container-toolkit
- nvidia-container-runtime
- jupyter
TAO是以三个容器来完成工作的,通过TAO的命令自动实例化容器完成指定任务。
部署TAO环境
建议使用anconda环境安装
安装CLI
安装docker
安装nvidia-container-toolkit
上面三部有专门的文档介绍,在这里不赘述
Docker登录NGC
docker login -u '$oauthtoken' --password-stdin nvcr.io <<< 你的NGC CLI key
安装anconda
下面以Anaconda3-2023.09-0-Linux-x86_64.sh为例
首先去Index of / (anaconda.com)找到自己所需要的版本,右击复制下载链接
wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
然后给下载的anconda安装脚本加上可执行权限
chmod +x Anaconda3-2023.09-0-Linux-x86_64.sh
执行anconda的安装脚本
bash Anaconda3-2023.09-0-Linux-x86_64.sh
出现下面情况提示都输入yes,以免出现需要自己配置环境变量的情况
[no] >>>
按照提示完成安装。
source ~/.bashrc
命令行提示之前出现如图代表安装成功
安装TAO-Toolkit
创建一个python3.7、名字叫tao的conda环境
- python >3.6.9 < 3.8.x
上面是TAO 5.0.0的必要条件,不然可能安装不上TAO 5.0.0而是TAO 4.0.1
conda create -n tao python=3.7
切换到tao环境
conda activate tao
用pip3安装tao-toolkit,这里下载速度可能会很慢建议使用清华镜像源
pip3 install nvidia-tao -i https://pypi.tuna.tsinghua.edu.cn/simple/
检查tao环境是否安装成功
pip list
tao -h
输出以下信息表示tao环境安装完成
安装jupyter和下载相关资源
pip安装jupyter
pip3 install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple/
下载并解压tao快速入门资源
wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/tao/tao-getting-started/versions/5.0.0/zip -O tao-getting-started_5.0.0.zip
unzip tao-getting-started_5.0.0.zip
还可以去NGC官网下载快速入门资源
启动jupyter
jupyter notebook --ip 0.0.0.0 --allow-root --port 8888
将localhost改成本机的ip地址,复制红框的地址,粘贴到浏览器
TAO使用介绍
配置文件介绍
在浏览器进入notebooks/tao_launcher_starter_kit目录,有各种任务的配置文件,以及其ipynb文件
下面将以detectnet_v2为例,详细介绍
specs是配置文件目录。
所有项目里的 xxx_train_xxx.txt 文件,都是该项目进行第一次训练时所需要配置文件,不过每个项目的配置中都不尽相同。
以detectnet_v2_train_resnet18_kitti.txt为例,介绍一下配置文件每个配置的作用。
dataset_config:数据集配置
dataset_config {
data_sources {
tfrecords_path: "/workspace/tao-experiments/data/tfrecords/kitti_trainval/*"
image_directory_path: "/workspace/tao-experiments/data/training"
}
image_extension: "png"
target_class_mapping {
key: "car"
value: "car"
}
target_class_mapping {
key: "cyclist"
value: "cyclist"
}
target_class_mapping {
key: "pedestrian"
value: "pedestrian"
}
target_class_mapping {
key: "person_sitting"
value: "pedestrian"
}
target_class_mapping {
key: "van"
value: "car"
}
validation_fold: 0
}
augmentation_config:数据增强的配置
augmentation_config {
preprocessing {
output_image_width: 1248
output_image_height: 384
min_bbox_width: 1.0
min_bbox_height: 1.0
output_image_channel: 3
}
spatial_augmentation