# TOSA converter for TFLite A tool to legalize TFLite FlatBuffer to TOSA MLIR Bytecode or Text. ## Requirements Before you build or run the converter, ensure you have the following tools installed and on your PATH. ### Linux (Ubuntu) | Tool | Purpose | Version | |--------|-----------------|------------------| | Bazel | build | >= v7.4.1 | | Clang | build | >= v17 | | Python | build & runtime | >= v3.9 | ### Windows (x86_64) | Tool | Purpose | Version | |----------------------------------------------------------|-----------------|---------------------------------------| | Bazel | build | ≥7.4.1 | | LLVM (Clang-CL) | build | 20.1.0 | | MSYS2 | shell & tooling | 3.6.3-2 with Pacman 20.1.0 and bash.exe | | Python | build & runtime | ≥3.9 | | Visual Studio 2022 Professional (C++ Desktop Dev Tools) | build & debug | 17.11.5 | ## Python wheel creation To build the Python wheel Clang is required, the wheel can then be built using: ```console pip install build python -m build --wheel ``` The wheel should now be in the `dist` directory. ## Usage ### Python API ```python from tosa_converter_for_tflite import tflite_flatbuffer_to_tosa_mlir, TosaConverterOutputFormat # default (bytecode) output tflite_flatbuffer_to_tosa_mlir("model_input.tflite", "model_output.tosa.mlirbc") # textual MLIR output tflite_flatbuffer_to_tosa_mlir( "model_input.tflite", "model_output.mlir", TosaConverterOutputFormat.Text ) ``` ### Command-line Interface (CLI) The `tosa-converter-for-tflite` CLI provides a simple way to convert `.tflite` models into TOSA MLIR(bytecode or text). It supports both file-based and stream-based workflows for easy integration into toolchains or pipelines. ### Usage Examples **Convert a `.tflite` file to a TOSA bytecode file(default):** ```bash tosa-converter-for-tflite model.tflite --bytecode -o out.tosa.mlirbc ``` **Read the model from file and write textual TOSA MLIR to file** ```bash tosa-converter-for-tflite model.tflite --text -o out.mlir ``` **Read the model from a file and write textual TOSA MLIR to stdout** ```bash tosa-converter-for-tflite model.tflite --text ``` **Stream the model from stdin and write bytecode to file** ```bash cat model.tflite | tosa-converter-for-tflite --bytecode -o out.tosa.mlirbc ``` **Fully stream the model from stdin and write textual MLIR to stdout** ```bash cat model.tflite | tosa-converter-for-tflite --text ``` ## Supported Platforms This tool supports Linux(r) and Windows(r) on x86_64 architectures. ## Versioning This project uses Calendar Versioning ([CalVer](https://calver.org/)) in the format: `YYYY.0M.Micro` - **YYYY** – 4-digit release year (e.g., 2025) - **0M** – 2-digit Zero-padded release month (e.g., 07 for July) - **Micro** – The third and usually final number in the version. Sometimes referred to as the "patch" segment. # License TOSA Converter for TFLite is distributed under the Apache 2.0 License. # Trademarks and Copyrights * Bazel(tm) is a trademark of Google(r) LLC. * Git(tm) is a trademark of Software Freedom Conservancy. * LLVM(r) and the LLVM logo are trademarks of the LLVM Foundation. * Linux(r) is the registered trademark of Linus Torvalds in the U.S. and elsewhere. * Python(r) is a registered trademark of the Python Software Foundation. * TensorFlow(tm), the TensorFlow logo and any related marks are trademarks of Google Inc. * Ubuntu(r) is a registered trademark of Canonical(r) Ltd. * Visual Studio(r) is a registered trademark of Microsoft(r) Corporation. * Windows(r) is a registered trademark of Microsoft(r) Corporation.