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.
Project description
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
- 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:n
is 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/tfliteiorewriter: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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for tfliteiorewriter-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d189921f32787d4c8d05f4a270b413b0ff5a41e1d3670829b59410fab9ac662d |
|
MD5 | f4c0c1707208fe10a2110879bec5da4b |
|
BLAKE2b-256 | 410df35177c01da9031a1be18dd7f5fbaa897358fc4c129c9ddf6ae6672098a3 |