Easily Parse TFLite Models with Python

Build and Test

This tflite package parses TensorFlow Lite (TFLite) models (*.tflite), which are built by TFLite converter. For background, please refer to Introducing TFLite Parser Python Package.

Usage

Install the package and use it like what you build from the TensorFlow codebase. It’s recommended to install the version that same as the TensorFlow that generates the TFLite model.

pip install tensorflow==2.3.0
pip install tflite==2.3.0

Enhancements

The generated python package is not friendly to use sometimes. We have introduced several enhancements:

Compatibility Handling

TensorFlow sometimes leaves compability hanlding of the TFLite model to the users. As these are API breaking change that can be easily fixed, we do this in the tflite package.

Contributing Updates

As the operator definition may change across different TensorFlow versions, this package needs to be updated accordingly. If you notice that the package is out of date, please feel free to contribute new versions. This is pretty simple, instructions as below.

  1. Fork the repository, and download it.
  2. Install additional depdendency via pip install -r requirements.txt. And install flatbuffer compiler (you may need to manually build it).
  3. Generate the code for update. Tools have been prepared, there are prompt for actions.
    1. Download schema.fbs for a new version.
    2. Update the builtin operator mapping.
    3. Update the classes and functions import of submodules.
    4. Update the API document.
    5. Update the versioning in setup.py.
    6. Build and Test (simply pytest) around. Don’t forget to re-install the newly built tflite package before testing it.
  4. Push your change and open Pull Request.
  5. The maintainer will take the responsibility to upload change to PyPI when merged.

Resources

License

Apache License Version 2.0 as TensorFlow’s.

Disclaimer

The schema.fbs is obtained from TensorFlow directly. Maintainer of this package had tried to contact TensorFlow maintainers for licensing issues, but received no reply. Ownership or maintainship is open to transfer or close if there were any issue.