chore: import upstream snapshot with attribution
cffconvert / validate (push) Has been skipped
License Check / license-check (push) Failing after 2s

This commit is contained in:
wehub-resource-sync
2026-07-13 12:14:16 +08:00
commit 8a852e4b4e
36502 changed files with 9277225 additions and 0 deletions
@@ -0,0 +1,57 @@
# TFLite Buffer-Stripping Tool/Library
**NOTE: This is an advanced tool used to reduce bandwidth usage in Neural
Architecture Search applications. Use with caution.**
The tools in this directory make it easier to distribute TFLite models to
multiple devices over networks with the sole aim of benchmarking *latency*
performance. The intended workflow is as follows:
* The stripping tool empties eligible constants from a TFLite flatbuffer to
reduce its size.
* This lean model can be easily transported to devices over a network.
* The reconstitution tool on the device takes in a flatbuffer in memory, and
fills in the appropriate buffers with random data.
As an example, see the before/after sizes for MobileNetV1:
* Float: 16.9MB -> 12KB
* Quantized: 4.3MB -> 17.6 KB
**NOTE: This tool only supports single subgraphs for now.**
There are two tools in this directory:
## 1. Stripping buffers out of TFLite flatbuffers
This tool takes in an input `flatbuffer`, and strips out (or 'empties') the
buffers (constant data) for tensors that follow the following guidelines:
* Are either of: Float32, Int32, UInt8, Int8
* If Int32, the tensor should have a min of 10 elements
The second rule above protects us from invalidating constant data that cannot be
randomised (for example, Reshape 'shape' input).
To run the associated script:
```
bazel run -c opt tensorflow/lite/tools/strip_buffers:strip_buffers_from_fb -- --input_flatbuffer=/input/path.tflite --output_flatbuffer=/output/path.tflite
```
## 2. Stripping buffers out of TFLite flatbuffers
The idea here is to reconstitute the lean flatbuffer `Model` generared in the
above step, by filling in random data whereever necessary.
The prototype script can be called as:
```
bazel run -c opt tensorflow/lite/tools/strip_buffers:reconstitute_buffers_into_fb -- --input_flatbuffer=/input/path.tflite --output_flatbuffer=/output/path.tflite
```
## C++ Library
Both the above tools are present as `stripping_lib` in this directory, which
mutate the flatbuffer(s) in-memory. This ensures we can do the above two steps
without touching the filesystem again.