FCN-ExecuTorch / README.md
msluszniak's picture
QNN: FCN-ResNet50/101 a16w8, one context binary per Hexagon version
e2b9f1d
|
Raw History Blame Contribute Delete
3.19 kB
---
license: bsd-3-clause
pipeline_tag: image-segmentation
library_name: executorch
---
# fcn
This repository hosts the **fcn** models exported for the
[React Native ExecuTorch](https://www.npmjs.com/package/react-native-executorch)
library as ExecuTorch `.pte` programs, ready to run on device.
Upstream model: [FCN](https://docs.pytorch.org/vision/main/models/fcn.html)
## Variants
| Path | Backend | Precision |
| --- | --- | --- |
| `coreml/fcn_resnet50_coreml_fp16.pte` | coreml | fp16 |
| `coreml/fcn_resnet101_coreml_fp16.pte` | coreml | fp16 |
| `xnnpack/fcn_resnet50_xnnpack_fp32.pte` | xnnpack | fp32 |
| `xnnpack/fcn_resnet50_xnnpack_int8.pte` | xnnpack | int8 |
| `xnnpack/fcn_resnet101_xnnpack_fp32.pte` | xnnpack | fp32 |
| `xnnpack/fcn_resnet101_xnnpack_int8.pte` | xnnpack | int8 |
| `qnn/fcn_resnet50_qnn_a16w8_v69.pte` | qnn | a16w8 |
| `qnn/fcn_resnet50_qnn_a16w8_v73.pte` | qnn | a16w8 |
| `qnn/fcn_resnet50_qnn_a16w8_v75.pte` | qnn | a16w8 |
| `qnn/fcn_resnet50_qnn_a16w8_v79.pte` | qnn | a16w8 |
| `qnn/fcn_resnet50_qnn_a16w8_v81.pte` | qnn | a16w8 |
| `qnn/fcn_resnet101_qnn_a16w8_v69.pte` | qnn | a16w8 |
| `qnn/fcn_resnet101_qnn_a16w8_v73.pte` | qnn | a16w8 |
| `qnn/fcn_resnet101_qnn_a16w8_v75.pte` | qnn | a16w8 |
| `qnn/fcn_resnet101_qnn_a16w8_v79.pte` | qnn | a16w8 |
| `qnn/fcn_resnet101_qnn_a16w8_v81.pte` | qnn | a16w8 |
## QNN variants
A QNN `.pte` embeds an HTP context binary compiled for one Hexagon version, so
there is one file per version and the runtime picks the one matching the device.
These return a class index per pixel, `(1, 520, 520)` int32, rather than
`(1, 21, 520, 520)` logits.
| Hexagon | Example SoC |
| --- | --- |
| v69 | Snapdragon 8 Gen 1 |
| v73 | Snapdragon 8 Gen 2 |
| v75 | Snapdragon 8 Gen 3 |
| v79 | Snapdragon 8 Elite |
| v81 | Snapdragon 8 Elite Gen 5 |
## Unshipped backends
A backend directory carrying a `NOTES.md` and no `.pte` was exported and
not published. Its note records what went wrong.
- `mlx` ([why](https://huggingface.co/software-mansion/react-native-executorch-fcn/blob/main/mlx/NOTES.md))
## Repository structure
```
config.json 25 B
coreml/config.json 1.5 kB
coreml/fcn_resnet101_coreml_fp16.pte 99.6 MB
coreml/fcn_resnet50_coreml_fp16.pte 63.1 MB
mlx/NOTES.md 2.0 kB
xnnpack/config.json 3.4 kB
xnnpack/fcn_resnet101_xnnpack_fp32.pte 198 MB
xnnpack/fcn_resnet101_xnnpack_int8.pte 52.5 MB
xnnpack/fcn_resnet50_xnnpack_fp32.pte 126 MB
xnnpack/fcn_resnet50_xnnpack_int8.pte 34.0 MB
```
## Compatibility
These files are published for the **ExecuTorch v1.4.1** runtime. ExecuTorch
gives no forward compatibility guarantee, so an older runtime may fail to load
them.
To use them in React Native ExecuTorch, pass the model constant shipped in the
library's model registry to the corresponding task pipeline. See the
[documentation](https://docs.swmansion.com/react-native-executorch/docs/fundamentals/downloading-models).
To load these files in your own ExecuTorch runtime, read the
[compatibility note](https://github.com/pytorch/executorch/blob/main/runtime/COMPATIBILITY.md)
first.