TAO Toolkit is a Python package hosted on the NVIDIA Python Package Index. It interacts with lower-level TAO dockers available from the NVIDIA GPU Accelerated Container Registry (NGC). The TAO containers come pre-installed with all dependencies required for training. The output of the TAO workflow is a trained model that can be deployed for inference on NVIDIA devices using DeepStream, TensorRT and Triton.
This repository contains the tutorial notebooks for installing and running TAO Toolkit. The notebooks would allow you to leverage the simplicity and convenience of TAO to train, prune, retrian, quantize, export and run inference.
The following system configuration is recommended to achieve reasonable training performance with TAO Toolkit and supported models provided:
- 8 GB system RAM
- 4 GB of GPU RAM
- 8 core CPU
- 1 NVIDIA GPU
- 100 GB of SSD space
- 32 GB system RAM
- 32 GB of GPU RAM
- 8 core CPU
- 1 NVIDIA GPU
- 100 GB of SSD space
TAO Toolkit is supported on discrete GPUs, such as A100, A40, A30, A2, A16, A100x, A30x, V100, T4, Titan-RTX and Quadro-RTX.
Note: TAO Toolkit is not supported on GPU's before the Pascal generation
Software | Version | Comment |
---|---|---|
Ubuntu LTS | 20.04 | |
python | >=3.6.9<3.7 | Not needed if you are using TAO API (See #3 below) |
docker-ce | >19.03.5 | Not needed if you are using TAO API (See #3 below) |
docker-API | 1.40 | Not needed if you are using TAO API (See #3 below) |
nvidia-container-toolkit |
>1.3.0-1 | Not needed if you are using TAO API (See #3 below) |
nvidia-container-runtime | 3.4.0-1 | Not needed if you are using TAO API (See #3 below) |
nvidia-docker2 | 2.5.0-1 | Not needed if you are using TAO API (See #3 below) |
nvidia-driver | >525.85 | Not needed if you are using TAO API (See #3 below) |
python-pip | >21.06 | Not needed if you are using TAO API (See #3 below) |
Download the TAO package which contains startup scripts, Jupyter notebooks and config files.
TAO is supported on Google Colab; if you want to try on Colab, you can skip this step and directly scroll down to #4 in the How to run TAO section.
ngc registry resource download-version "nvidia/tao/tao-getting-started:5.2.0"
cd ./tao-getting-started_v5.2.0
setup
|--> quickstart_launcher.sh
|--> quickstart_api_bare_metal
|--> quickstart_api_aws_eks
|--> quickstart_api_azure_aks
|--> quickstart_api_gcp_gke
notebooks
|--> tao_api_starter_kit
|--> api
|--> automl
|--> end2end
|--> dataset_prepare
|--> client
|--> automl
|--> end2end
|--> dataset_prepare
|--> tao_launcher_starter_kit
|--> dino
|--> deformable_detr
|--> ocdnet
|--> ...
All Notebooks and required spec files are provided in this package. The table below maps which notebook to use for fine-tuning either a purpose-build models like PeopleNet or an open model architecture like YOLO.
Purpose-built Model | Launcher CLI notebook |
---|---|
ActionRecognitionNet | notebooks/tao_launcher_starter_kit/action_recognition_net/action_recognition_net.ipynb |
Mask Auto Label | notebooks/tao_launcher_starter_kit/mal/mal.ipynb |
OCRNet | notebooks/tao_launcher_starter_kit/ocrnet/ocrnet.ipynb |
OCDNet | notebooks/tao_launcher_starter_kit/ocdnet/ocdnet.ipynb |
Pointpillars | notebooks/tao_launcher_starter_kit/pointpillars/pointpillars.ipynb |
PoseClassificationNet | notebooks/tao_launcher_starter_kit/pose_classification_net/poseclassificationnet.ipynb |
ReIdentificationNet | notebooks/tao_launcher_starter_kit/re_identification_net/reidentificationnet.ipynb |
CitySemSegFormer | notebooks/tao_launcher_starter_kit/segformer/segformer.ipynb |
Open model architecture | Jupyter notebook |
---|---|
Deformable DETR | notebooks/tao_launcher_starter_kit/deformable_detr/deformable_detr.ipynb |
DINO | notebooks/tao_launcher_starter_kit/dino/dino.ipynb |
Image Classification | notebooks/tao_launcher_starter_kit/classification_pyt/classification_pyt.ipynb |
Optical Inspection | notebooks/tao_launcher_starter_kit/optical_inspection/optical_inspection.ipynb |
Segformer | notebooks/tao_launcher_starter_kit/segformer/segformer.ipynb |
Train like a 'pro' with AutoML in TAO
Deploy TAO on Azure ML
Synthetic Data and TAO
Action Recognition Blog
Real-time License Plate Detection
2 Pose Estimation: Part 1
Part 2
Building ConvAI with TAO Toolkit
This project is licensed under the Apache-2.0 License.