Migrating from Legacy TLT to TAO Toolkit

NVIDIA Transfer Learning Toolkit has been renamed to NVIDIA TAO Toolkit. TAO toolkit provides several new features compared to TLT 3.0 and TLT 2.0:

  • Unified command line tool to launch commands

  • Multiple Docker setup

  • Conversational AI applications

    • Support for training n-gram Language Models

  • CV features

    • New training applications

    • New feature extractor backbones

    • New purpose-built models

  • Integration with DeepStream and Riva inference platforms

Warning

When migrating from TLT 3.0 to TAO Toolkit, if you have a previously installed nvidia-tlt package in your virtualenv, you need to uninstall this package before installing the nvidia-tao CLI package. You can do this by running the following commands:

Copy
Copied!
            

pip3 uninstall nvidia-tlt pip3 install nvidia-tao

Note

With TAO Toolkit, running the following commands from TLT v2.0 and TLT v3.0 have been deprecated and are now mapped as shown:

Version Comparison

TAO Toolkit 4.0

TAO Toolkit 3.x (21.08, 21.11, 22.02, 22.05)

TLT v3.0

TLT v2.0

Command mapping
  • tao <network> train
  • tao <network> prune
  • tao <network> evaluate
  • tao <network> export
  • tao <network> augment
  • tao <network> infer
  • tao <network> dataset_convert
  • tao-deploy <network> gen_trt_engine
  • tao-deploy <network> inference
  • tao-deploy <network> evaluate
  • tao <network> train
  • tao <network> prune
  • tao <network> evaluate
  • tao <network> export
  • tao <network> augment
  • tao <network> infer
  • tao <network> dataset_convert
  • tlt <network> train
  • tlt <network> prune
  • tlt <network> evaluate
  • tlt <network> export
  • tlt <network> augment
  • tlt <network> infer
  • tlt <network> dataset_convert
  • tlt-train
  • tlt-prune
  • tlt-evaluate
  • tlt-export
  • tlt-augment
  • tlt-infer
  • tlt-dataset-convert

The following table shows some of the key differences between TAO Toolkit 4.0, TAO Toolkit 3.x (21.08, 21.11, 22.02, 22.05), TLT v3.0, and TLT v2.0.

Version Comparison TAO Toolkit 4.0, 3.x TLT 3.0 TLT 2.0
Interface Difference You can run commands via the TAO launcher Python package. You can run commands via the TLT launcher Python package. You interact with the commands inside Docker.
Steps to run TAO
  1. Install the launcher via pip3.
  2. Download the NGC CLI separately.
  3. Configure the NGC CLI.
  4. Use tao --help to list tasks supported by the launcher.
  5. Launch tasks using the following command schema:
  • tao <task> <subtask> <args> , where subtask is defined per task.
  • The task may span across multiple Dockers.

For example: to launch detectnet_v2 training, use the following command:

Copy
Copied!
            

tao detectnet_v2 train <args>


  1. List all instances of TAO tasks using tao info.
  2. Interrupt a job if needed using tao stop.
  1. Install the launcher via pip3.
  2. Download NGC CLI separatel.y
  3. Configure the NGC CLI.
  4. Use tlt --help to list tasks supported by the launcher.
  5. Launch tasks using the following command schema:
  • tlt <task> <subtask> <args> where subtask is defined per task.
  • The task may span across multiple Dockers.
  1. List all instances of TLT tasks using tlt list.
  2. Interrupt a job if needed using tlt stop.
  1. Pull the TLT Docker.
  2. Instantiate the Docker with the required file systems mounted.
  3. Configure the NGC CLI.
  4. Run generic TLT commands:
    • tlt-train <task>
    • tlt-prune
    • tlt-evaluate <task>
    • tlt-infer <task>
    • tlt-export <task>
  5. Exit Docker after execution.

Data preparation for TLT 2.0 and TLT 3.0 are slightly different for SSD/DSSD/YOLOv3/RetinaNet. In TLT 2.0, you have to generate TFRecords (and possibly resize your images). This is no longer required in TLT v3.0 because these networks directly take original images and KITTI labels as input. If image resizing is needed, the data loader automatically handles it.

If you have already prepared data for TLT 2.0 training, you don’t need to further process it for the TAO Toolkit training. Instead, you only need to provide the label directory path in the spec file, and training should run smoothly for TLT 3.0 and greater.

© Copyright 2023, NVIDIA.. Last updated on Dec 8, 2023.