Newer
Older
<!--
SPDX-FileCopyrightText: Copyright 2025 Arm Limited and/or its affiliates <open-source-office@arm.com>
SPDX-License-Identifier: Apache-2.0
-->
# TOSA converter for TFLite
Deeptanshu Sekhri
committed
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 |
Eirene Vlassi Pandi
committed
| Python | build & runtime | >= v3.9 |
### Windows (x86_64)
| Tool | Purpose | Version |
|----------------------------------------------------------|-----------------|---------------------------------------|
Eirene Vlassi Pandi
committed
| 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 |
Eirene Vlassi Pandi
committed
| 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
Deeptanshu Sekhri
committed
### Python API
Deeptanshu Sekhri
committed
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")
Deeptanshu Sekhri
committed
# textual MLIR output
tflite_flatbuffer_to_tosa_mlir(
"model_input.tflite",
"model_output.mlir",
TosaConverterOutputFormat.Text
)
Deeptanshu Sekhri
committed
### Command-line Interface (CLI)
The `tosa-converter-for-tflite` CLI provides a simple way to convert `.tflite` models
Deeptanshu Sekhri
committed
into TOSA MLIR(bytecode or text). It supports both file-based and stream-based workflows
for easy integration into toolchains or pipelines.
### Usage Examples
Deeptanshu Sekhri
committed
**Convert a `.tflite` file to a TOSA bytecode file(default):**
```bash
Deeptanshu Sekhri
committed
tosa-converter-for-tflite model.tflite --bytecode -o out.tosa.mlirbc
```
Deeptanshu Sekhri
committed
**Read the model from file and write textual TOSA MLIR to file**
```bash
Deeptanshu Sekhri
committed
tosa-converter-for-tflite model.tflite --text -o out.mlir
```
Deeptanshu Sekhri
committed
**Read the model from a file and write textual TOSA MLIR to stdout**
```bash
Deeptanshu Sekhri
committed
tosa-converter-for-tflite model.tflite --text
```
Deeptanshu Sekhri
committed
**Stream the model from stdin and write bytecode to file**
```bash
cat model.tflite | tosa-converter-for-tflite --bytecode -o out.tosa.mlirbc
```
Deeptanshu Sekhri
committed
**Fully stream the model from stdin and write textual MLIR to stdout**
```bash
Deeptanshu Sekhri
committed
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.
Eirene Vlassi Pandi
committed
* 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.
Eirene Vlassi Pandi
committed
* TensorFlow(tm), the TensorFlow logo and any related marks are trademarks of Google Inc.
* Ubuntu(r) is a registered trademark of Canonical(r) Ltd.
Eirene Vlassi Pandi
committed
* Visual Studio(r) is a registered trademark of Microsoft(r) Corporation.
* Windows(r) is a registered trademark of Microsoft(r) Corporation.