Instructions to use litert-community/convnext_tiny with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LiteRT
How to use litert-community/convnext_tiny with LiteRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Refresh TorchVision FP32 and channelwise INT8 exports
Browse filesApply validated graph cleanup, replay the established quantization recipe, and document CPU/GPU/NPU checks. Preserve the existing dynamic and Google Tensor G5 variants.
- README.md +67 -2
- convnext_tiny.tflite +2 -2
- convnext_tiny_int8_channelwise.tflite +2 -2
README.md
CHANGED
|
@@ -44,12 +44,77 @@ num_params: 28589128
|
|
| 44 |
|
| 45 |
`convnext_tiny_int8_channelwise.tflite`: Mixed INT8/FP32 with channelwise INT8 weights. LayerNorm remains FP32.
|
| 46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
## Compatibility
|
| 48 |
|
| 49 |
| File | CPU | GPU | NPU |
|
| 50 |
|---|---|---|---|
|
| 51 |
-
| `convnext_tiny.tflite` |
|
| 52 |
-
| `convnext_tiny_int8_channelwise.tflite` |
|
|
|
|
|
|
|
| 53 |
|
| 54 |
## Intended uses & limitations
|
| 55 |
|
|
|
|
| 44 |
|
| 45 |
`convnext_tiny_int8_channelwise.tflite`: Mixed INT8/FP32 with channelwise INT8 weights. LayerNorm remains FP32.
|
| 46 |
|
| 47 |
+
## 2026-09-22 maintenance update
|
| 48 |
+
|
| 49 |
+
This maintenance update removes ten redundant reshapes from the LayerNorm fallback bodies in the published FP32 graph. The source checkpoint and public FP32 input/output interface are unchanged. The channelwise INT8 file is regenerated from the refreshed FP32 export.
|
| 50 |
+
|
| 51 |
+
| File | Size (bytes) | SHA-256 |
|
| 52 |
+
|---|---:|---|
|
| 53 |
+
| `convnext_tiny.tflite` | 114422656 | `17d67ff1731ea2a2f9726fc8a8170cd3168c7be2ce1bf36258db3add06316f18` |
|
| 54 |
+
| `convnext_tiny_int8_channelwise.tflite` | 29859024 | `d22d0fd223a678d8af582cf54ae28377d08807922b548e65068e8d35eddffc53` |
|
| 55 |
+
|
| 56 |
+
### Source and preprocessing
|
| 57 |
+
|
| 58 |
+
TorchVision `ConvNeXt_Tiny_Weights.IMAGENET1K_V1` ([checkpoint](https://download.pytorch.org/models/convnext_tiny-983f1562.pth)).
|
| 59 |
+
Convert to RGB, resize the short side to 236 with bilinear interpolation and antialiasing,
|
| 60 |
+
then center crop to 224 × 224. Divide pixels by 255, subtract `[0.485, 0.456, 0.406]`,
|
| 61 |
+
and divide by `[0.229, 0.224, 0.225]`. The input layout is NCHW, shape `[1, 3, 224, 224]`;
|
| 62 |
+
output is ImageNet class scores with shape `[1, 1000]`.
|
| 63 |
+
|
| 64 |
+
### Quantization
|
| 65 |
+
|
| 66 |
+
`convnext_tiny_int8_channelwise.tflite`: Mixed INT8/FP32 with channelwise INT8 weights and INT8 input/output. LayerNorm remains FP32; this is not a fully integer model.
|
| 67 |
+
The base recipe is `ai_edge_quantizer.recipe.static_wi8_ai8()`, with local scale/bias
|
| 68 |
+
safeguards to avoid overflowing INT32 biases. Intermediate calibration ranges use an
|
| 69 |
+
exponential moving average; the output logits use the global observed range.
|
| 70 |
+
|
| 71 |
+
- Calibration images: 500 (manifest image IDs: 0–499).
|
| 72 |
+
- Calibration manifest SHA-256: `6a8d04c842352ef41d7795e3ec6acd30a4cbad520466d69b8b0503a521d5d1e5`.
|
| 73 |
+
- Base quantization recipe SHA-256: `3db5fac189c1707c9a0c3a18fecaa8fabd8c9ef3681af553d9e0c86fc18ec0fb`.
|
| 74 |
+
|
| 75 |
+
For INT8 input, apply the preprocessing above, then compute
|
| 76 |
+
`clip(round(x / input_scale) + input_zero_point, -128, 127)` and cast to INT8,
|
| 77 |
+
using nearest rounding with ties away from zero, as in this validation.
|
| 78 |
+
Dequantize output scores with `(q - output_zero_point) * output_scale`.
|
| 79 |
+
Read scales and zero points from the selected model file; do not assume that they
|
| 80 |
+
match an earlier revision. The existing FP32 usage example, where present, requires
|
| 81 |
+
this additional I/O handling before it can be used with the INT8 variant.
|
| 82 |
+
|
| 83 |
+
### Validation of the refreshed artifacts
|
| 84 |
+
|
| 85 |
+
CPU evaluation used 1000 images from ImageNet-1k validation (manifest image IDs: 1000–1999). These are subset measurements, not a new full-validation accuracy result.
|
| 86 |
+
|
| 87 |
+
| Variant | CPU backend | Top-1 correct | Top-5 correct |
|
| 88 |
+
|---|---|---:|---:|
|
| 89 |
+
| FP32 | xnnpack | 847 | 958 |
|
| 90 |
+
| FP32 | builtin | 847 | 958 |
|
| 91 |
+
| Mixed INT8/FP32 | xnnpack | 837 | 958 |
|
| 92 |
+
| Mixed INT8/FP32 | builtin | 833 | 956 |
|
| 93 |
+
|
| 94 |
+
For both variants on both CPU backends, all 1,000 output vectors are bit-identical to the preceding published revision. Public input/output metadata, quantization parameters and signatures are unchanged.
|
| 95 |
+
|
| 96 |
+
The model-index values of 82.46% top-1 and 96.13% top-5 in this card's metadata are historical results retained from the earlier publication. They were not remeasured over the full validation set for this maintenance release.
|
| 97 |
+
|
| 98 |
+
Validation used LiteRT 2.3.0 on host CPU. The 1,000-image subset is disjoint from the 500 calibration images, but was used during earlier recipe development; it is a regression set, not an untouched test set.
|
| 99 |
+
|
| 100 |
+
Saved calibration arrays were restored as float32. Replaying the same recipe and INT32-bias safeguards on the previous source exports reproduced both previous quantized files byte for byte.
|
| 101 |
+
|
| 102 |
+
FP32 GPU validation used 10 images on TECNO LJ9 / MT6897 with both default and explicit FP32 precision. Explicit FP32 relative L2 error versus host CPU was 1.77091e-06, with no top-1 changes. This release makes no new latency claim.
|
| 103 |
+
|
| 104 |
+
Quantized MT6897 NPU execution used 10 images: 0 top-1 changes versus the quantized host CPU reference, relative L2 error 0.188453. The NPU output scores are bit-identical to the retained checks of the preceding published quantized file; the CPU/NPU numerical difference is unchanged. SM8750 and MT6993 coverage is host AOT compilation only; corresponding devices were unavailable.
|
| 105 |
+
|
| 106 |
+
The existing `convnext_tiny_dynamic_wi8_afp32.tflite` and
|
| 107 |
+
`convnext_tiny_Google_Tensor_G5_apply_plugin.tflite` files are retained unchanged.
|
| 108 |
+
The validation results in this update apply only to the two files listed in the artifact table.
|
| 109 |
+
|
| 110 |
## Compatibility
|
| 111 |
|
| 112 |
| File | CPU | GPU | NPU |
|
| 113 |
|---|---|---|---|
|
| 114 |
+
| `convnext_tiny.tflite` | Validated: builtin and XNNPACK, 1,000 images | Validated on TECNO LJ9 / MT6897: full delegation, 10 images | Not evaluated for this FP32 artifact |
|
| 115 |
+
| `convnext_tiny_int8_channelwise.tflite` | Validated: builtin and XNNPACK, 1,000 images | Not supported on the tested MLDrift stack; use FP32 | Full AOT: MT6897, MT6993, SM8750; MT6897 device smoke passed |
|
| 116 |
+
|
| 117 |
+
Compatibility entries above describe the 2026-09-22 artifacts. Earlier releases had FP32 GPU smoke checks and channelwise INT8 Qualcomm/MediaTek AOT compilation checks; those historical checks do not certify changed files. AOT compilation coverage alone does not establish on-device numerical accuracy. Earlier INT8 runs on the tested LiteRT MLDrift GPU stack produced large numerical errors; use the FP32 variant for GPU when its current validation supports that backend.
|
| 118 |
|
| 119 |
## Intended uses & limitations
|
| 120 |
|
convnext_tiny.tflite
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:17d67ff1731ea2a2f9726fc8a8170cd3168c7be2ce1bf36258db3add06316f18
|
| 3 |
+
size 114422656
|
convnext_tiny_int8_channelwise.tflite
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d22d0fd223a678d8af582cf54ae28377d08807922b548e65068e8d35eddffc53
|
| 3 |
+
size 29859024
|