Pre-trained GCViT NVImageNet Classification weights

Pre-trained GCViT NVImageNet Classification weights

Logo for Pre-trained GCViT NVImageNet Classification weights
Description
Pre-trained GcViT weights trained on NVImageNet to facilitate transfer learning using TAO Toolkit.
Publisher
-
Latest Version
gcvit_base_nvimagenet
Modified
October 16, 2023
Size
319.6 MB

TAO Commercial Pretrained GCViT Classification Model

What is Train Adapt Optimize (TAO) Toolkit?

Train Adapt Optimize (TAO) Toolkit is a Python-based AI toolkit for customizing purpose-built pre-trained AI models with your own data. TAO Toolkit adapts popular network architectures and backbones for your data, allowing you to train, fine tune, prune, and export highly optimized and accurate AI models for edge deployment.

The pre-trained models accelerate the AI training process and reduce costs associated with large scale data collection, labeling, and training from scratch. Transfer learning with pre-trained models can be used for AI applications in smart cities, retail, healthcare, industrial inspection, and more.

Build end-to-end services and solutions for transforming pixels and sensor data to actionable insights using the TAO DeepStream SDK and TensorRT. These models are suitable for object detection, classification, and segmentation.

Model Overview

Image Classification is a popular computer vision technique in which an image is classified into one of the designated classes based on the image features. This model card contains pretrained weights of most of the popular classification models. These weights may be used as a starting point with the classification app in Train Adapt Optimize (TAO) Toolkit to facilitate transfer learning.

Model Architecture

GCViT (Global Context Vision Transformer) is a transformer-based family of backbone from NVIDIA research that achieves SOTA in ImageNet-1K classification. This family of backbone leverages global context self-attention, joint with standard local self-attention to effectively and efficiently model both long and short-range spatial interactions. GCViT can be used for image classification tasks as well as downstream tasks such as object detection. Use GCViT when you wan to achieve SOTA accuracy on your target dataset while using fewer FLOPs compared to other Vision Transformers such as Swin and ConvNext. These classification networks have been pre-trained on the NVImageNet dataset.

The NVImageNet dataset has category names aligned with the original ImageNet-1k category names. The original ImageNet-1K is limited to non-commercial use only, but many recent pretraining techniques show the benefits of pretraining on the ImageNet dataset first and then fine-tuning on downstream tasks. Thus, a model that is pretrained on the original ImageNet dataset may not be allowed to train models for NVIDIA products. On the other hand, the NVImageNet dataset is permitted for commercial uses. The NVImageNet dataset is collected from 84 websites that allow images to be used commercially, as well as Bing image search, which is constrained to only return results that are free to share and use commercially.

Training

This model was trained using the classification_pyt entrypoint in TAO. The training algorithm optimizes the network to minimize cross-entropy loss.

Training Data

The GCViT models were trained on the NVImageNet dataset.

Performance

Evaluation Data

The GCViT models have been evaluated on the ImageNet1K validation dataset.

Methodology and KPI

The key performance indicator is the accuracy, following the standard evaluation protocol for image classification. The KPI for the evaluation data are reported below.

model top-1 Accuracy
gcvit_xxtiny 0.615
gcvit_xtiny 0.646
gcvit_tiny 0.678
gcvit_small 0.684
gcvit_base 0.694

Real-time Inference Performance

Inference is run on the provided unpruned model at FP16 precision. The inference performance is run using trtexec on Jetson AGX Xavier, Xavier NX, Orin, Orin NX, NVIDIA T4, and Ampere GPUs. The Jetson devices are run at Max-N configuration for maximum GPU frequency. The performance shown here is for inference only. End-to-end performance with streaming video data might vary slightly depending on other bottlenecks in the hardware and software.

GC-ViT-L

Platform BS FPS
Jetson Orin Nano 4 19.8
Orin NX 16GB 4 28.8
AGX Orin 64GB 8 80.7
A2 16 67
T4 16 122
A30 16 388
L4 8 268
L40 4 628
A100 64 917
H100 64 1618

How to Use This Model

These models must be used with NVIDIA Hardware and Software. For Hardware, the models can run on any NVIDIA GPU, including NVIDIA Jetson devices. These models can only be used with TAO Toolkit, the DeepStream SDK, or TensorRT.

The primary use case for these models is classifying objects in a color (RGB) image. They can be used to classify objects from photos and videos by using appropriate video or image decoding and pre-processing.

These models are intended for training and fine-tune using TAO Toolkit and user datasets for image classification. High-fidelity models can be trained for the new use cases. A Jupyter notebook is available as a part of the TAO container and can be used to re-train.

The models are also intended for easy edge deployment using DeepStream SDK or TensorRT. DeepStream provides the facilities to create efficient video analytic pipelines to capture, decode, and pre-process the data before running inference.

Input

  • B X 3 X 224 X 224 (B C H W)

Output

Category labels (1000 classes) for the input image.

Instructions to Use Pretrained Models with TAO

To use these models as pretrained weights for transfer learning, use the snippet below as a template for the model and train component of the experiment spec file for training a GCViT Classification model. For more information on the experiment spec file, refer to the TAO Toolkit User Guide.

model:
  init_cfg:
    checkpoint: /path/to/the/gc_vit_xxtiny.pth
  backbone:
    type: gc_vit_xxtiny
    custom_args:
      use_rel_pos_bias: True
  head:
    type: LinearClsHead

Instructions to Deploy These Models with DeepStream

Documentation to deploy with DeepStream is provided in "Deploying to DeepStream" chapter of TAO User Guide.

Limitations

GCViT was trained on the NVImageNet dataset with 1000 object categories. Hence, the model may not perform well on different data distributions, so we recommend conducting further fine tuning on the target domain to get higher accuracy.

Model Versions

  • gcvit_xxtiny_nvimagenet - NVImageNet pre-trained GCViT-xxTiny model for finetune.
  • gcvit_xtiny_nvimagenet - NVImageNet pre-trained GCViT-xTiny model for finetune.
  • gcvit_tiny_nvimagenet - NVImageNet pre-trained GCViT-Tiny model for finetune.
  • gcvit_small_nvimagenet - NVImageNet pre-trained GCViT-Small model for finetune.
  • gcvit_base_nvimagenet - NVImageNet pre-trained GCViT-Base model for finetune.

Reference

Citations

  • Hatamizadeh, A., Yin, H., Heinrich, G., Kautz, J., Molchanov, P.: Global Context Vision Transformers

Using TAO Pre-trained Models

License

The licenses to use this model is covered by the Model EULA. By downloading the unpruned or pruned version of the model, you accept the terms and conditions of these licenses

Technical blogs

Suggested reading

Ethical Considerations

NVIDIA platforms and application frameworks enable developers to build a wide array of AI applications. Consider potential algorithmic bias when choosing or creating the models being deployed. Work with the model’s developers to ensure that it meets the requirements for the relevant industry and use case, that the necessary instructions and documentation are provided to understand error rates, confidence intervals, and results, and that the model is being used under the conditions and in the manner intended.