File size: 12,924 Bytes
57b3660
 
d6ade40
57b3660
 
 
183dd4d
57b3660
 
 
 
 
0eb525b
57b3660
 
 
0eb525b
1ea3a33
0eb525b
 
 
 
 
 
 
 
 
 
 
 
1ea3a33
 
 
 
 
 
0eb525b
 
 
 
 
 
1ea3a33
0eb525b
 
 
 
 
 
1ea3a33
0eb525b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1ea3a33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57b3660
 
27924db
 
57b3660
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
---
library_name: pytorch
license: other
tags:
- backbone
- android
pipeline_tag: video-classification

---

![](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/resnet_2plus1d/web-assets/model_demo.png)

# ResNet-2Plus1D: Optimized for Qualcomm Devices

ResNet (2+1)D Convolutions is a network which explicitly factorizes 3D convolution into two separate and successive operations, a 2D spatial convolution and a 1D temporal convolution. It used for video understanding applications.

This is based on the implementation of ResNet-2Plus1D found [here](https://github.com/pytorch/vision/blob/main/torchvision/models/video/resnet.py).
This repository contains pre-exported model files optimized for Qualcomm® devices. You can use the [Qualcomm® AI Hub Models](https://github.com/qualcomm/ai-hub-models/blob/v0.59.0/src/qai_hub_models/models/resnet_2plus1d) library to export with custom configurations. More details on model performance across various devices, can be found [here](#performance-summary).

Qualcomm AI Hub Models uses [Qualcomm AI Hub Workbench](https://workbench.aihub.qualcomm.com) to compile, profile, and evaluate this model. [Sign up](https://myaccount.qualcomm.com/signup) to run these models on a hosted Qualcomm® device.

## Getting Started
There are two ways to deploy this model on your device:

### Option 1: Download Pre-Exported Models

Below are pre-exported model assets ready for deployment.

| Runtime | Precision | Chipset | SDK Versions | Download |
|---|---|---|---|---|
| ONNX | float | Universal | QAIRT 2.45, ONNX Runtime 1.27.1 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/resnet_2plus1d/releases/v0.59.0/resnet_2plus1d-onnx-float.zip)
| ONNX | w8a8 | Universal | QAIRT 2.45, ONNX Runtime 1.27.1 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/resnet_2plus1d/releases/v0.59.0/resnet_2plus1d-onnx-w8a8.zip)
| QNN_DLC | float | Universal | QAIRT 2.45 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/resnet_2plus1d/releases/v0.59.0/resnet_2plus1d-qnn_dlc-float.zip)
| QNN_DLC | w8a8 | Universal | QAIRT 2.45 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/resnet_2plus1d/releases/v0.59.0/resnet_2plus1d-qnn_dlc-w8a8.zip)
| TFLITE | float | Universal | QAIRT 2.45 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/resnet_2plus1d/releases/v0.59.0/resnet_2plus1d-tflite-float.zip)
| TFLITE | w8a8 | Universal | QAIRT 2.45 | [Download](https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-models/models/resnet_2plus1d/releases/v0.59.0/resnet_2plus1d-tflite-w8a8.zip)

For more device-specific assets and performance metrics, visit **[ResNet-2Plus1D on Qualcomm® AI Hub](https://aihub.qualcomm.com/models/resnet_2plus1d)**.


### Option 2: Export with Custom Configurations

Use the [Qualcomm® AI Hub Models](https://github.com/qualcomm/ai-hub-models/blob/v0.59.0/src/qai_hub_models/models/resnet_2plus1d) Python library to compile and export the model with your own:
- Custom weights (e.g., fine-tuned checkpoints)
- Custom input shapes
- Target device and runtime configurations

This option is ideal if you need to customize the model beyond the default configuration provided here.

See our repository for [ResNet-2Plus1D on GitHub](https://github.com/qualcomm/ai-hub-models/blob/v0.59.0/src/qai_hub_models/models/resnet_2plus1d) for usage instructions.

## Model Details

**Model Type:** Model_use_case.video_classification

**Model Stats:**
- Model checkpoint: Kinetics-400
- Input resolution: 112x112
- Number of parameters: 31.5M
- Model size (float): 120 MB
- Model size (w8a8): 30.8 MB

## Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit
|---|---|---|---|---|---|---
| ResNet-2Plus1D | ONNX | float | Snapdragon® X2 Elite | 33.888 ms | 12 - 12 MB | NPU
| ResNet-2Plus1D | ONNX | float | Snapdragon® X Elite | 66.932 ms | 57 - 57 MB | NPU
| ResNet-2Plus1D | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 52.628 ms | 4 - 766 MB | NPU
| ResNet-2Plus1D | ONNX | float | Snapdragon® 8 Gen 1 Mobile | 141.817 ms | 1 - 586 MB | NPU
| ResNet-2Plus1D | ONNX | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 69.204 ms | 0 - 71 MB | NPU
| ResNet-2Plus1D | ONNX | float | Qualcomm® QCS8450 | 141.817 ms | 1 - 586 MB | NPU
| ResNet-2Plus1D | ONNX | float | Qualcomm® Dragonwing™ IQ-9075 | 111.28 ms | 11 - 26 MB | NPU
| ResNet-2Plus1D | ONNX | float | Qualcomm® Dragonwing™ IQ-X7181 | 66.932 ms | 57 - 57 MB | NPU
| ResNet-2Plus1D | ONNX | float | Qualcomm® Dragonwing™ Q-8750 | 42.336 ms | 0 - 549 MB | NPU
| ResNet-2Plus1D | ONNX | float | Snapdragon® 8 Elite Mobile | 42.336 ms | 0 - 549 MB | NPU
| ResNet-2Plus1D | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 32.148 ms | 3 - 570 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Snapdragon® X2 Elite | 11.93 ms | 3 - 3 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Snapdragon® X Elite | 25.02 ms | 32 - 32 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 19.526 ms | 0 - 468 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Snapdragon® 8 Gen 1 Mobile | 44.772 ms | 0 - 460 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 26.111 ms | 0 - 471 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Qualcomm® QCS8450 | 44.772 ms | 0 - 460 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 23.847 ms | 0 - 6 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Qualcomm® Dragonwing™ IQ-X7181 | 25.02 ms | 32 - 32 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 15.767 ms | 0 - 373 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Snapdragon® 8 Elite Mobile | 15.767 ms | 0 - 373 MB | NPU
| ResNet-2Plus1D | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 12.029 ms | 0 - 386 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Snapdragon® X2 Elite | 34.377 ms | 12 - 12 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Snapdragon® X Elite | 66.745 ms | 12 - 12 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 51.95 ms | 11 - 717 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Snapdragon® 8 Gen 1 Mobile | 144.962 ms | 3 - 595 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® Dragonwing™ QCS8275 | 424.692 ms | 1 - 492 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 68.213 ms | 12 - 857 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® SA8775P | 110.909 ms | 1 - 490 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® SA8650P | 110.909 ms | 1 - 490 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® SA8255P | 110.909 ms | 1 - 490 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® QCS8450 | 144.962 ms | 3 - 595 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-9075 | 112.001 ms | 12 - 25 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-X7181 | 66.745 ms | 12 - 12 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® Dragonwing™ Q-8750 | 42.196 ms | 0 - 489 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® SA7255P | 424.692 ms | 1 - 492 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Qualcomm® SA8295P | 118.429 ms | 0 - 398 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Snapdragon® 8 Elite Mobile | 42.196 ms | 0 - 489 MB | NPU
| ResNet-2Plus1D | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 29.863 ms | 12 - 509 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Snapdragon® X2 Elite | 13.564 ms | 3 - 3 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Snapdragon® X Elite | 26.962 ms | 3 - 3 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Snapdragon® 8 Gen 3 Mobile | 21.45 ms | 3 - 465 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Snapdragon® 8 Gen 1 Mobile | 47.823 ms | 3 - 461 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ QCS6490 | 131.579 ms | 2 - 6 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ QCS8275 | 75.115 ms | 2 - 372 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 27.969 ms | 0 - 19 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® SA8775P | 24.465 ms | 3 - 371 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® SA8650P | 24.465 ms | 3 - 371 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® SA8255P | 24.465 ms | 3 - 371 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® QCS8450 | 47.823 ms | 3 - 461 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 24.708 ms | 0 - 5 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ IQ-X7181 | 26.962 ms | 3 - 3 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ Q-6690 | 435.241 ms | 3 - 425 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ Q-7790 | 47.007 ms | 3 - 389 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 16.967 ms | 3 - 374 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® SA7255P | 75.115 ms | 2 - 372 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Qualcomm® SA8295P | 41.916 ms | 0 - 367 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Snapdragon® 8 Elite Mobile | 16.967 ms | 3 - 374 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 13.242 ms | 3 - 390 MB | NPU
| ResNet-2Plus1D | QNN_DLC | w8a8 | Snapdragon® 7 Gen 4 Mobile | 47.007 ms | 3 - 389 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 1500.788 ms | 0 - 798 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Snapdragon® 8 Gen 1 Mobile | 2377.92 ms | 1 - 736 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 1942.958 ms | 0 - 4 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Qualcomm® SA8775P | 1944.202 ms | 1 - 579 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Qualcomm® SA8650P | 1944.202 ms | 1 - 579 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Qualcomm® SA8255P | 1944.202 ms | 1 - 579 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Qualcomm® QCS8450 | 2377.92 ms | 1 - 736 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Qualcomm® Dragonwing™ IQ-9075 | 2008.742 ms | 0 - 82 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Qualcomm® Dragonwing™ Q-8750 | 1410.823 ms | 1 - 571 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Qualcomm® SA8295P | 2444.504 ms | 1 - 540 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Snapdragon® 8 Elite Mobile | 1410.823 ms | 1 - 571 MB | NPU
| ResNet-2Plus1D | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 1268.766 ms | 0 - 573 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 3090.411 ms | 1 - 1621 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Snapdragon® 8 Gen 1 Mobile | 4717.092 ms | 0 - 1336 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® Dragonwing™ QCS6490 | 8663.477 ms | 1447 - 2239 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 4137.099 ms | 2 - 6 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® SA8775P | 4293.165 ms | 2 - 1380 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® SA8650P | 4293.165 ms | 2 - 1380 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® SA8255P | 4293.165 ms | 2 - 1380 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® QCS8450 | 4717.092 ms | 0 - 1336 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 4295.693 ms | 0 - 79 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-6690 | 8068.589 ms | 1393 - 1638 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-7790 | 6288.272 ms | 1342 - 1725 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 2804.666 ms | 1 - 1676 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Qualcomm® SA8295P | 4657.152 ms | 2 - 1091 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Snapdragon® 8 Elite Mobile | 2804.666 ms | 1 - 1676 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 3452.104 ms | 2 - 1455 MB | NPU
| ResNet-2Plus1D | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 6288.272 ms | 1342 - 1725 MB | NPU

## License
* The license for the original implementation of ResNet-2Plus1D can be found
  [here](https://github.com/pytorch/vision/blob/main/LICENSE).

## References
* [A Closer Look at Spatiotemporal Convolutions for Action Recognition](https://arxiv.org/abs/1711.11248)
* [Source Model Implementation](https://github.com/pytorch/vision/blob/main/torchvision/models/video/resnet.py)

## Community
* Join [our AI Hub Slack community](https://aihub.qualcomm.com/community/slack) to collaborate, post questions and learn more about on-device AI.
* For questions or feedback please [reach out to us](mailto:ai-hub-support@qti.qualcomm.com).