tflite-input-output-rewriter
This tool displays tflite signatures and rewrites the input/output OP name to the name of the signature. There is no need to install TensorFlow or TFLite.
Environment
- Ubuntu 20.04+
- flatbuffers-compiler (Note: Official binaries are degraded by lack of precision when processing INT8 quantized tflite files.)
- requests
Motivation
The purpose is to solve the following problems by forcibly rewriting tflite's input/output OP names.
-
When TFLite models are generated, TensorFlow automatically prefixes the input OP name with
serving_default_, resulting in very difficult-to-read models. Also, an unnecessary index:nis added to the end of the name. -
Also, the output OP name is arbitrarily rewritten to the unintelligible
StatefulPartitionedCall:n.
Execution
- Docker
$ docker login ghcr.io Username (xxxx): {Enter} Password: {Personal Access Token} Login Succeeded $ docker run --rm -it \ -v `pwd`:/home/user \ ghcr.io/pinto0309/tflite-input-output-rewriter:latest $ tfliteiorewriter -i xxxx.tflite - Local
$ sudo apt-get update && sudo apt-get install -y flatbuffers-compiler # Other than debian/ubuntu: https://github.com/google/flatbuffers/releases $ pip install -U tfliteiorewriter $ tfliteiorewriter -i xxxx.tflite
usage: tfliteiorewriter
[-h]
-i INPUT_TFLITE_FILE_PATH
[-v]
[-o OUTPUT_FOLDER_PATH]
[-r RENAME RENAME]
optional arguments:
-h, --help
show this help message and exit
-i INPUT_TFLITE_FILE_PATH, --input_tflite_file_path INPUT_TFLITE_FILE_PATH
Input tflite file path.
If `--rename` is not used, the input/output OP name is overwritten with the definition
information in signature_defs.
-v, --view
Runs in a mode that only displays the signature_defs recorded in the model.
This mode does not rewrite the model.
-o OUTPUT_FOLDER_PATH, --output_folder_path OUTPUT_FOLDER_PATH
Output tflite file folder path.
-r RENAME RENAME, --rename RENAME RENAME
Replace with any specified name.
--rename {from_name1} {to_name1} --rename {from_name2} {to_name2} ...
--rename serving_default_input_1:0 aaa --rename StatefulPartitionedCall:0 bbb
Execution Result
If this tool is run without additional options, it will overwrite the input/output OP names for Netron display with the input/output name definition information in signature_defs.
-
Inputs
-
Outputs
View Mode Result
tfliteiorewriter -i xxxx.tflite -v
Rename Mode Result
Replace with any name by specifying {From} and {To} in the --renmae (-r) option.
-
Before
tfliteiorewriter \ -i xxxx.tflite \ -r serving_default_input_1:0 aaa \ -r StatefulPartitionedCall:0 bbb
-
After
Metadata
Release files for tfliteiorewriter 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tfliteiorewriter-1.1.0.tar.gz | 11.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tfliteiorewriter-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.1 kB
Release files / tfliteiorewriter-1.1.0.tar.gz
| Download URL | tfliteiorewriter-1.1.0.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f255fb776d742eb56ca02d7ea80eb18829a3ba1aa9e792f1ab3a331881fc06a7
|
|
BLAKE2b-256 checksum How to use checksums |
f1da8b0ba4e4fa82f80d562b5bec1c047d68f264e92113ca2c13fc9153be0b7a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.18
|
Release files / tfliteiorewriter-1.1.0-py3-none-any.whl
| Download URL | tfliteiorewriter-1.1.0-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
118723c0feddb6d7aab93124db7f25ae89c93697677d82dd365d6ab5fcf3e7ec
|
|
BLAKE2b-256 checksum How to use checksums |
35b239425a8b3089561017ab7683aea9cee16246fd9b15ee67a388eeffd4e4bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.18
|