model2c
About the Project
Python API and Command Line tool to convert ML models into low-level inference for embedded platforms
Getting Started
Prerequisites
Make sure you have tensorflow tf2onnx or torch installed.
Furthermore, make sure you have onnx2c installed and added to PATH.
Lastly you need ProtocolBuffers libraries installed, e.g.:
- Ubuntu:
apt install libprotobuf-dev protobuf-compiler - MacOS:
brew install protobuf
Get the sources:
git clone https://github.com/kraiskil/onnx2c.git
cd onnx2c
git submodule update --init
Then run a standard CMake build
mkdir build
cd build
cmake ..
make onnx2c
And finally add to path
export PATH=$PATH:/path/to/onnx2c/folder
Installation
You can can install the package through pypi:
pip install model2c
Or you can clone the repo and build directly from source:
git clone git@github.com:h3x4g0ns/model2c.git
cd model2c
make install
Usage
Train a model with correponding data until sufficient metrics are obtained.
import torch
import model2c.pytorch import convert
# run convertor
convert(model=torch_model,
input_shape=(batch_size, 1, 224, 224),
quantization="fp32",
output_file="model.c")
print(f"size of output model: {os.path.getsize('model.c')/1024} kilobytes")
Support
model2c currently supports the following ML frameworks
torchtf/keras
To Do
-
torchconvert -
tfconvert - make command line utility
- include dynamic axis for batch size
Metadata
Release files for model2c 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| model2c-1.1.1.tar.gz | 4.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| model2c-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.1 kB
Release files / model2c-1.1.1.tar.gz
| Download URL | model2c-1.1.1.tar.gz |
|---|---|
| Size | 4.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9377e7313ab14fcc73675d5ce5a32cc092ad14984f60e1b6b71e2de2a180762e
|
|
BLAKE2b-256 checksum How to use checksums |
88e37bb80e0c6a76cb60525b7fdd56f39e08644cc88cb87431bac7eda27d9442
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Release files / model2c-1.1.1-py3-none-any.whl
| Download URL | model2c-1.1.1-py3-none-any.whl |
|---|---|
| Size | 4.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e013648c9a457be84984ad021f450815c5cda9ca610b272ea20be6827683a974
|
|
BLAKE2b-256 checksum How to use checksums |
f1ab614aaee67e156ab0650a7562f50dfee6002c2f34c701711fe3a4f76223f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|