NVIDIA
NVIDIA
TAO Toolkit Getting Started
Resource
NVIDIA
NVIDIA
TAO Toolkit Getting Started

Resource to help get started with TAO Toolkit.

TAO Toolkit Quick Start [Deprecated]

This resource has been deprecated. All new TAO tutorials can be found in our GitHub repo.

The NVIDIA TAO Toolkit, built on TensorFlow and PyTorch, simplifies and accelerates the model training process by abstracting away the complexity of AI models and the deep learning framework. You can use the power of transfer learning to fine-tune NVIDIA pretrained models with your own data and optimize the model for inference throughput — all without the need for AI expertise or large training datasets.

TAO quick start video.

TAO Toolkit 5.3

TAO Toolkit 5.3 version packages containers, models, Jupyter notebooks, start-up script and Helm chart for K8s deployment. Here are list of assets as part of TAO 5.3

Containers

The containers for the TAO Toolkit 5.3 are hosted on NGC under this instance.

Container NameDescriptionTAGGitHub Repo
TAO TensorFlow 1TensorFlow 1.15.x container for training DNNsnvcr.io/nvidia/tao/tao-toolkit:5.0.0-tf1.15.5https://github.com/NVIDIA/tao_tensorflow1_backend
TAO TensorFlow 2TensorFlow 2.11.x container for training DNNsnvcr.io/nvidia/tao/tao-toolkit:5.0.0-tf2.11.0https://github.com/NVIDIA/tao_tensorflow2_backend
TAO PyTorchPyTorch container for training DNNsnvcr.io/nvidia/tao/tao-toolkit:5.3.0-pythttps://github.com/NVIDIA/tao_pytorch_backend
TAO DeployTensorRT container for optimizationnvcr.io/nvidia/tao/tao-toolkit:5.3.0-deployhttps://github.com/NVIDIA/tao_deploy
TAO Data ServiceContainer for AI-assisted annotation and few other data servicesnvcr.io/nvidia/tao/tao-toolkit:5.3.0-data-serviceshttps://github.com/NVIDIA/tao_dataset_suite
TAO ServicesContainer for TAO servicesnvcr.io/nvidia/tao/tao-toolkit:5.3.0-apihttps://github.com/NVIDIA/tao_front_end_services

Resources

Container NameDescriptionLocation
TAO Toolkit Getting StartedResource to help get started with TAO Toolkit.nvidia/tao/tao-getting-started

Helm Chart

The TAO Toolkit Services Helm chart is hosted on NGC at nvidia/tao/tao-toolkit-api

Models

The following models are released as part of the TAO Toolkit.

Model nameDescription**NGC Instance
EmotionNetNetwork to classify emotions from face.nvidia/tao/emotionnet
TrafficCamNet4 class object detection network to detect cars in an image.nvidia/tao/trafficcamnet
Optical Character DetectionNetwork to detect characters in an image.nvidia/tao/ocdnet
CitySemSegformerModel to segment objects in an image.nvidia/tao/citysemsegformer
DashCamNet4 class object detection network to detect cars in an image.nvidia/tao/dashcamnet
PeopleSemSegnetSemantic segmentation of persons in an image.nvidia/tao/peoplesemsegnet
PeopleNet3 class object detection network to detect people in an image.nvidia/tao/peoplenet
CenterPose - Isaac ROSSingle-stage, keypoint-based method for category-level object pose estimation.nvidia/tao/centerpose_ros
Re-IdentificationRe-Identification network to generate embeddings for identifying persons in different scenes.nvidia/tao/reidentificationnet--discoverable
Deformable DETRModel trained on COCO2017 to detect and classify objects.nvidia/tao/pretrained_deformable_detr_coco
VehicleTypeNetResnet18 model to classify a car crop into 1 out 6 car types.nvidia/tao/vehicletypenet
Action Recognition Net5 class action recognition network to recognize what people do in an image.nvidia/tao/actionrecognitionnet
LPDNetObject Detection network to detect license plates in an image of a car.nvidia/tao/lpdnet
GestureNetClassify gestures from hand crop images.nvidia/tao/gesturenet
BodyPoseNetDetect body pose from an image.nvidia/tao/bodyposenet
License Plate RecognitionModel to recognize characters from the image crop of a License Plate.nvidia/tao/lprnet
FaceDetectIR1 class object detection network to detect faces in an image.nvidia/tao/facedetectir
Re-IdentificationRe-Identification network to generate embeddings for identifying persons in different scenes.nvidia/tao/reidentificationnet
Visual ChangeNet Segmentation - (Research-only)Visual ChangeNet-Segmentation (Research-only)nvidia/tao/visual_changenet_segmentation_levircd
Visual ChangeNet Segmentation - (Commercial)Visual ChangeNet-Segmentation (Commercial)nvidia/tao/visual_changenet_segmentation_landsatscd
DINOModel trained on COCO2017 to detect and classify objects.nvidia/tao/pretrained_dino_coco
PointPillarNetModel to detect one or more objects from a LIDAR point cloud file and return 3D bounding boxes.nvidia/tao/pointpillarnet
PeopleSemSegformerModel to segment persons in an image.nvidia/tao/peoplesemsegformer
Optical Character RecognitionModel to recognise characters from a preceding OCDNet model.nvidia/tao/ocrnet
HeartRateNetEstimate heart-rate non-invasively from RGB facial videos.nvidia/tao/heartratenet
Retail Object DetectionEfficientDet based object detection network to detect retail objects on a checkout counter.nvidia/tao/retail_object_detection
FaceDetectDetect faces from an image.nvidia/tao/facenet
Optical InspectionModel to detect defects in soldered components on a Printed Circuit Board.nvidia/tao/optical_inspection
PeopleNet - AMR3 class object detection network to detect people in an image.nvidia/tao/peoplenet_amr
Mask Auto LabelPretrained model to generate semantic segmentation labels.nvidia/tao/mask_auto_label
Retail Object RecognitionEmbedding generator model to recognize objects on a checkout counter.nvidia/tao/retail_object_recognition
PeopleNet Transformer3 class object detection network to detect people in an image.nvidia/tao/peoplenet_transformer
Visual ChangeNet ClassificationVisual ChangeNet - Classification Modelsnvidia/tao/visual_changenet_classification
PeopleSegNet1 class instance segmentation network to detect and segment instances of people in an image.nvidia/tao/peoplesegnet
VehicleMakeNetResnet18 model to classify a car crop into 1 out 20 car brands.nvidia/tao/vehiclemakenet
Facial Landmarks EstimationDetect fiducial keypoints from an image of a face.nvidia/tao/fpenet
Pose ClassificationPose classification network to classify poses of people from their skeletons.nvidia/tao/poseclassificationnet
BodyPose3DNet3D human pose estimation network to predict 34 keypoints in 3D of a person in an image.nvidia/tao/bodypose3dnet
PeopleSemSegNet AMRSemantic segmentation of persons in an image.nvidia/tao/peoplesemsegnet_amr
PCB Defect ClassificationModel to classify defects in soldered components on a Printed Circuit Board.nvidia/tao/pcb_classification
Gaze EstimationDetect a persons eye gaze point of regard and gaze vector.nvidia/tao/gazenet
Model nameDescription**NGC Instance
TAO Pretrained EfficientDet-TF2Pretrained efficientnet backbones for TAO Toolkit's efficientdet-tf2nvidia/tao/pretrained_efficientdet_tf2
Pre-trained Deformable DETR ImageNet weightsPre-trained deformable_detr weights trained on ImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_deformable_detr_imagenet
Pre-trained SegFormer ImageNet weightsPre-trained SegFormer weights trained on ImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_segformer_imagenet
Pre-trained SegFormer NvImageNet weightsPre-trained SegFormer weights trained on NvImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_segformer_nvimagenet
Pre-trained DINO ImageNet weightsPre-trained DINO weights trained on ImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_dino_imagenet
Pre-trained FAN based NVImageNet Classification weightsPre-trained FAN weights trained on NVImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_fan_classification_nvimagenet
Pre-trained ImageNet Back bones weightsPre-trained weights trained on ImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_imagenet_backbones
Pre-trained DINO NvImageNet weightsPre-trained DINO weights trained on NvImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_dino_nvimagenet
TAO Pretrained Classification-TF2Pretrained backbones for TAO Toolkit TF2 image classificationnvidia/tao/pretrained_classification_tf2
Pre-trained Segformer - CityScapesPre-trained segformer models trained on CityScapes.nvidia/tao/pretrained_segformer_cityscapes
Pre-trained GCViT NVImageNet Classification weightsPre-trained GcViT weights trained on NVImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_gcvit_classification_nvimagenet
TAO Pretrained EfficientDetPretrained weights to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_efficientdet
TAO Pretrained Semantic SegmentationPretrained weights to facilitate transfer learning using Transfer Learning Toolkit.nvidia/tao/pretrained_semantic_segmentation
Pre-trained FAN based ImageNet Classification weightsPre-trained FAN weights trained on ImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_fan_classification_imagenet
Pre-trained Deformable DETR NvImageNet weightsPre-trained deformable_detr weights trained on NvImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_deformable_detr_nvimagenet
Pre-trained GCViT ImageNet Classification weightsPre-trained GCViT weights trained on ImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_gcvit_classification_imagenet
Pre-trained NVImageNet Back bones weightsPre-trained weights trained on NVImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_nvimagenet_backbones
Pre-trained EfficientDet Model trained on COCOPre-trained EfficientDet models trained on COCO to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_efficientdet_tf2_coco
Pretrained Mask Auto LabelPretrained model to facilitate transfer learning for MAL on TAO Toolkitnvidia/tao/pretrained_mask_auto_label
TAO Pretrained Object DetectionPretrained weights to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_object_detection
TAO Pretrained DetectNet V2Pretrained weights to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_detectnet_v2
Pre-trained EfficientDet NvImageNet backbonesPre-trained EfficientNet bacbone weights trained on NvImageNet to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_efficientdet_tf2_nvimagenet
TAO Pretrained Instance SegmentationPretrained weights to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_instance_segmentation
TAO Pretrained ClassificationPretrained weights to facilitate transfer learning using TAO Toolkit.nvidia/tao/pretrained_classification

Requirements

Recommended Hardware requirements

The following system configuration is recommended to achieve reasonable training performance with TAO Toolkit and supported models provided:

  • 16 GB system RAM
  • 16 GB of GPU RAM
  • 8 core CPU
  • 1 NVIDIA GPU
  • 100 GB of SSD space

TAO Toolkit is supported on discrete GPUs, such as H100, 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 requirements

SoftwareVersionComment
Ubuntu LTS20.04
python>=3.6.9<3.7Not needed if you are using TAO API (See #3 below)
docker-ce>19.03.5Not needed if you are using TAO API (See #3 below)
docker-API1.40Not needed if you are using TAO API (See #3 below)
nvidia-container-toolkit>1.3.0-1Not needed if you are using TAO API (See #3 below)
nvidia-container-runtime3.4.0-1Not needed if you are using TAO API (See #3 below)
nvidia-docker22.5.0-1Not needed if you are using TAO API (See #3 below)
nvidia-driver>525.85Not needed if you are using TAO API (See #3 below)
python-pip>21.06Not needed if you are using TAO API (See #3 below)

Package Content

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.3.0 --dest ./ cd ./getting_started_v5.3.0

File Hierarchy

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 |--> classification_pyt |--> ocdnet |--> ... |--> tao_data_services |--> data |--> ...

How to run TAO?

TAO is available as a docker container or as a collection of Python wheels.

There are 4 ways to run TAO depending on user preference and their setup. See the full list below.

1. Launcher CLI

The TAO Launcher is a lightweight Python based CLI application to run TAO. The launcher basically acts as a front-end for the multiple TAO Toolkit containers built on both PyTorch and Tensorflow. The multiple containers essentially get launched automatically based on the type of model you plan to use for your computer vision or conversational AI use-cases.


TAO Launcher

To get started, use the setup/quickstart_launcher.sh to validate your setup and install TAO launcher. Jupyter notebooks to train using the Launcher is provided under notebooks/launcher_starter_kit.

Detail instructions on installing pre-requisite and setup is provided in TAO documentation - Launcher

2. Directly from Container

Users have option to also run TAO directly using the docker container. To use container directly, user needs to know which container to pull. There are multiple containers under TAO, and depending on the model that you want to train you will need to pull the appropriate container. This is not required when using the Launcher CLI.

export DOCKER_REGISTRY="nvcr.io" export DOCKER_NAME="nvidia/tao/tao-toolkit" export DOCKER_TAG="***" ## for TensorFlow docker export DOCKER_TAG="***" ## for PyTorch docker export DOCKER_CONTAINER=$DOCKER_REGISTRY/$DOCKER_NAME:$DOCKER_TAG docker run -it --rm --gpus all -v /path/in/host:/path/in/docker $DOCKER_CONTAINER \ detectnet_v2 train -e /path/to/experiment/spec.txt -r /path/to/results/dir -k $KEY --gpus 4

More information about running directly from docker is provided in TAO documentation - Container

3. TAO APIs

TAO Toolkit API is a Kubernetes service that enables building end-to-end AI models using REST APIs. The API service can be installed on a Kubernetes cluster (local / AWS EKS) using a Helm chart along with minimal dependencies. TAO toolkit jobs can be run using GPUs available on the cluster and can scale to a multi-node setting. Users can use a TAO client CLI to interact with TAO services remotely or can integrate it in their own apps and services directly using REST APIs.


TAO API

To get started, use the provided one-click deploy script to deploy either on bare-metal setup or on managed Kubernetes service like Amazon EKS. Jupyter notebooks to train using the APIs directly or using the client app is provided under notebooks/api_starter_kit

setup/quickstart_api_bare_metal

setup/quickstart_api_aws_eks

More information about setting up the API services and the API is provided in TAO documentation - API

4. Python Wheel

Users can also run TAO directly on bare-metal without docker or K8s. Users can deploy TAO notebooks directly on Google Colab without having to configure infrastructure. The full instructions are provided in the Colab notebook below.

CV TaskModel ArchOne-click Deploy
ClassificationResNet18Train on Colab
Multi-task ClassificationResNet18Train on Colab
Object DetectionDSSDTrain on Colab
Object DetectionEfficientDetTrain on Colab
Object DetectionRetinaNetTrain on Colab
Object DetectionSSDTrain on Colab
Object DetectionYOLOv3Train on Colab
Object DetectionYOLOv4Train on Colab
Object DetectionYoloV4 TinyTrain on Colab
Action RecognitionActionRecognitionTrain on Colab
OCRLPRNetTrain on Colab
Pose Action ClassificationPoseClassificationNetTrain on Colab
Emotion RecognitionEmotionNetTrain on Colab
Gesture RecognitionGestureNetTrain on Colab
Heart Rate EstimationHeartRateNetTrain on Colab

After starting TAO service locally or remotely, start Jupyter notebook

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

Open an internet browser on localhost and navigate to the following URL: http://0.0.0.0:8888

Open the notebook that you are interested in training and start training.

Note: All the instructions to train, prune, optimize and download pretrained models are provided in the notebook.

Jupyter notebooks

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 ModelLauncher CLI notebook
PCB Classificationnotebooks/tao_launcher_starter_kit/classification_pyt/classification.ipynb
Retail Object Recognitionnotebooks/tao_launcher_starter_kit/metric_learning_recognition/metric_learning_recognition.ipynb
Optical Inspectionnotebook/tao_launcher_starter_kit/optical_inspection/OpticalInspection.ipynb
Mask Auto Labelnotebooks/tao_launcher_starter_kit/mal/mal.ipynb
OCRNetnotebooks/tao_launcher_starter_kit/ocrnet/ocrnet.ipynb
OCDNetnotebooks/tao_launcher_starter_kit/ocdnet/ocdnet.ipynb
PeopleSemSegFormernotebooks/tao_launcher_starter_kit/segformer/segformer.ipynb
PeopleNetnotebooks/tao_launcher_starter_kit/detectnet_v2/detectnet_v2.ipynb
TrafficCamNetnotebooks/tao_launcher_starter_kit/detectnet_v2/detectnet_v2.ipynb
DashCamNetnotebooks/tao_launcher_starter_kit/detectnet_v2/detectnet_v2.ipynb
FaceDetectIRnotebooks/tao_launcher_starter_kit/detectnet_v2/detectnet_v2.ipynb
VehicleMakeNetnotebooks/tao_launcher_starter_kit/classification/classification.ipynb
VehicleTypeNetnotebooks/tao_launcher_starter_kit/classification/classification.ipynb
PeopleSegNetnotebooks/tao_launcher_starter_kit/mask_rcnn/mask_rcnn.ipynb
PeopleSemSegNetnotebooks/tao_launcher_starter_kit/unet/unet_isbi.ipynb
Bodypose Estimationnotebooks/tao_launcher_starter_kit/bpnet/bpnet.ipynb
License Plate Detectionnotebooks/tao_launcher_starter_kit/detectnet_v2/detectnet_v2.ipynb
License Plate Recognitionnotebooks/tao_launcher_starter_kit/lprnet/lprnet.ipynb
Facial Landmarknotebooks/tao_launcher_starter_kit/fpenet/fpenet.ipynb
FaceDetectnotebooks/tao_launcher_starter_kit/facenet/facenet.ipynb
ActionRecognitionNetnotebooks/tao_launcher_starter_kit/action_recognition_net/actionrecognitionnet.ipynb
PoseClassificationNetnotebooks/tao_launcher_starter_kit/pose_classification_net/pose_classificationnet.ipynb
ReIdentificationNetnotebooks/tao_launcher_starter_kit/re_identification_net/reidentificationnet.ipynb
Visual ChangeNet Classificationnotebooks/tao_launcher_starter_kit/visual_changenet/visual_changenet_classification.ipynb
Visual ChangeNet Segmentation - Research Only (LevirCD)notebooks/tao_launcher_starter_kit/visual_changenet/visual_changenet_segmentation.ipynb
Visual ChangeNet Segmentation - Commercial (LandSATSCD)notebooks/tao_launcher_starter_kit/visual_changenet/visual_changenet_segmentation.ipynb

Open model architectureJupyter notebook
Deformable DETRnotebooks/tao_launcher_starter_kit/deformable_detr/deformable_detr.ipynb
DINOnotebooks/tao_launcher_starter_kit/dino/dino.ipynb
Image Classificationnotebooks/tao_launcher_starter_kit/classification_pyt/classification_pyt.ipynb
Image Classificationnotebooks/tao_launcher_starter_kit/classification_tf2/classification.ipynb
Image Classificationnotebooks/tao_launcher_starter_kit/classification_tf1/classification.ipynb
Optical Inspectionnotebooks/tao_launcher_starter_kit/optical_inspection/optical_inspection.ipynb
Metric Learning Recognitionnotebooks/tao_launcher_starter_kit/metric_learning_recognition/metric_learning_recognition.ipynb
Segformernotebooks/tao_launcher_starter_kit/segformer/segformer.ipynb
DetectNet_v2notebooks/tao_launcher_starter_kit/detectnet_v2/detectnet_v2.ipynb
FasterRCNNnotebooks/tao_launcher_starter_kit/faster_rcnn/faster_rcnn.ipynb
YOLOV3notebooks/tao_launcher_starter_kit/yolo_v3/yolo_v3.ipynb
YOLOV4notebooks/tao_launcher_starter_kit/yolo_v4/yolo_v4.ipynb
YOLOv4-Tinynotebooks/tao_launcher_starter_kit/yolo_v4_tiny/yolo_v4_tiny.ipynb
SSDnotebooks/tao_launcher_starter_kit/ssd/ssd.ipynb
DSSDnotebooks/tao_launcher_starter_kit/dssd/dssd.ipynb
RetinaNetnotebooks/tao_launcher_starter_kit/retinanet/retinanet.ipynb
MaskRCNNnotebooks/tao_launcher_starter_kit/mask_rcnn/mask_rcnn.ipynb
UNETnotebooks/tao_launcher_starter_kit/unet/unet_isbi.ipynb
EfficientDetnotebooks/tao_launcher_starter_kit/efficientdet/efficientdet.ipynb
Mask Auto Labelnotebooks/tao_launcher_starter_kit/mal/mal.ipynb
Visual ChangeNet Classificationnotebooks/tao_launcher_starter_kit/visual_changenet/visual_changenet_classification.ipynb
Visual ChangeNet Segmentationnotebooks/tao_launcher_starter_kit/visual_changenet/visual_changenet_segmentation.ipynb

Important Links

Blogs

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

License

TAO Toolkit getting Started
License for TAO containers is included in the banner of the container. License for the pre-trained models are available with the model cards on NGC. By pulling and using the Train Adapt Optimize (TAO) Toolkit container to download models, you accept the terms and conditions of these licenses.

Publisher
NVIDIA
NVIDIA
Latest Version5.3.0
UpdatedAugust 26, 2024 UTC
Compressed Size18.54 MB