Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Convert tflite to JSON and make it editable in the IDE. It also converts the edited JSON back to tflite binary.

License

Notifications You must be signed in to change notification settings

PINTO0309/tflite2json2tflite

Repository files navigation

tflite2json2tflite

Convert tflite to JSON and make it editable in the IDE. It also converts the edited JSON back to tflite binary.

GitHub

Usage sample

1. Docker run

docker run --rm -it -v `pwd`:/home/user/workdir ghcr.io/pinto0309/tflite2json2tflite:latest

2. tflite to JSON

image

./flatc -t \
--strict-json \
--defaults-json \
-o workdir \
./schema.fbs -- workdir/model_float32.tflite

3. JSON edit

sed -i -e 's/Placeholder/input/g' workdir/model_float32.json
sed -i -e 's/fusion\/fusion_3\/BiasAdd/output/g' workdir/model_float32.json

4. JSON to tflite

./flatc \
-o workdir \
-b ./schema.fbs workdir/model_float32.json
rm workdir/model_float32.json

image

5. flatbuffers (flatc)

I have made my own modifications to the official flatbuffers(flatc) to preserve the accuracy of the quantization parameters output to JSON. For more information, please see this issue. tflite to JSON to tflite quantization error #1

https://github.com/google/flatbuffers

  • flatbuffers/include/flatbuffers/util.h

    • From:
      template<> inline std::string NumToString<double>(double t) {
       return FloatToString(t, 12);
      }
      template<> inline std::string NumToString<float>(float t) {
       return FloatToString(t, 6);
      }
    • To:
      template<> inline std::string NumToString<double>(double t) {
       return FloatToString(t, 12);
      }
      template<> inline std::string NumToString<float>(float t) {
       return FloatToString(t, 17);
      }
  • build

    cd flatbuffers && mkdir build && cd build
    cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
    make -j$(nproc)

About

Convert tflite to JSON and make it editable in the IDE. It also converts the edited JSON back to tflite binary.

Topics

Resources

License

Stars

Watchers

Forks

Packages

AltStyle によって変換されたページ (->オリジナル) /