Skip to main content

model2c

pypi build PyPI version

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

  • torch
  • tf/keras

To Do

  • torch convert
  • tf convert
  • 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)

Source distribution for model2c 1.1.1
File Size Uploaded
model2c-1.1.1.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for model2c 1.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.1

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page