eiq-olive is an extension of Microsoft's Olive optimization framework, tailored to support additional workflows and deployment targets. This fork introduces new optimization passes, enhanced support for TensorFlow Lite (TFLite), and other improvements aimed at streamlining model conversion and deployment to NXP's edge devices.
- Extended optimization passes for NXP edge devices
- Enhanced TensorFlow Lite (TFLite) support
- Integration with NXP's Neutron SDK and Vela compiler
- ONNX to TFLite conversion pipeline
- Quantization support for edge deployment
| Pass name | Implementation | Dependencies | Input type | Output type | Example |
|---|---|---|---|---|---|
| NeutronConversion | Code | uv (eiq-neutron-sdk packages downloaded on demand) |
TFLite | TFLite | Config |
| ONNX2Quant | Code | eiq-onnx2tflite | ONNX | ONNX | Config |
| TFLiteConversion (ONNX2TFLite) | Code | eiq-onnx2tflite | ONNX | TFLite | Config |
| VelaConversion | Code | nxp-ethos-u-vela | TFLite | TFLite | Config |
eiq-olive and all pass-related dependencies are available in the NXP eIQ PyPI repository at https://eiq.nxp.com/repository/.
pip install --extra-index-url https://eiq.nxp.com/repository/ eiq-olive--extra-index-url, be aware of potential dependency confusion attacks. Packages may
be hijacked via pypi.org if an attacker uploads a malicious package with the same name and a higher version number. Pip
will prioritize the package with the highest version across all configured indexes. Consider using additional security
measures such as pinning package versions or using hash verification for production environments.
The examples directory contains various optimization workflows demonstrating different passes and use cases:
- YOLO examples: Model conversion and optimization workflows for YOLO models
- neutron_conversion.json - Neutron SDK conversion
- onnx2quant.json - ONNX quantization
- onnx2tflite.json - ONNX to TFLite conversion
- vela_conversion.json - Vela compiler optimization
Each example includes its own README with specific setup instructions and required dependencies. Please refer to the individual example directories for detailed usage information.
This project maintains the same license as the upstream Microsoft Olive project. See LICENSE for details.
For issues related to:
- eiq-olive specific features: Open an issue in this repository
- Upstream Olive features: Refer to Microsoft Olive repository
- NXP hardware/SDK: Visit NXP Community
See CHANGELOG.md for version history and updates.