File size: 3,189 Bytes
cd8302b
 
 
 
 
 
8641801
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e2b9f1d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8641801
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0a9d2db
8641801
 
 
 
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
---
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.