Upload README.md with huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
tags:
|
| 4 |
+
- executorch
|
| 5 |
+
- xnnpack
|
| 6 |
+
- pte
|
| 7 |
+
- on-device
|
| 8 |
+
- image-segmentation
|
| 9 |
+
- lane-detection
|
| 10 |
+
---
|
| 11 |
+
# twinlitenet — ExecuTorch XNNPACK
|
| 12 |
+
|
| 13 |
+
`twinlitenet_xnnpack_fp32.pte` (1.8 MB, fp32, XNNPACK-delegated)
|
| 14 |
+
|
| 15 |
+
- **Source**: chequanghuy/TwinLiteNet (pretrained/best.pth)
|
| 16 |
+
- **License**: MIT
|
| 17 |
+
- **Input**: [[1, 3, 360, 640]] — RGB 0-1, 360x640
|
| 18 |
+
- **Output**: drivable area [1,2,360,640] + lane line [1,2,360,640]
|
| 19 |
+
|
| 20 |
+
## Verification (Mac arm64, executorch 1.4.0, torch 2.13.0)
|
| 21 |
+
|
| 22 |
+
Parity vs torch fp32 eager on random input:
|
| 23 |
+
|
| 24 |
+
| output | shape | max_abs_diff | corr |
|
| 25 |
+
|--------|-------|--------------|------|
|
| 26 |
+
| 0 | [1, 2, 360, 640] | 1.192e-05 | 1.000000 |
|
| 27 |
+
| 1 | [1, 2, 360, 640] | 1.049e-05 | 1.000000 |
|
| 28 |
+
|
| 29 |
+
Median latency over 10 runs (single Mac process, reference only — device numbers to follow):
|
| 30 |
+
ExecuTorch 33.7 ms vs torch eager 23.3 ms.
|
| 31 |
+
|
| 32 |
+
## Conversion
|
| 33 |
+
|
| 34 |
+
torch.export -> to_edge_transform_and_lower(XnnpackPartitioner) -> .pte
|
| 35 |
+
(conversion scripts: `convert/` in the conversion repo)
|
| 36 |
+
|
| 37 |
+
**Notes**: PReLU is excluded from XNNPACK delegation (XNNPACK PReLU segfaults at execute on macOS arm64 in executorch 1.4.0; minimal repro: a lone nn.PReLU(1)). PReLU runs on the portable kernel instead; outputs are bit-identical to the stock model.
|