Skip to main content

C code generation program for uTensor

Project description

# Installation (Python 2 & 3)

- installation with `setup.py`
```
python setup.py install
```

- installation with `pip`
```
pip install utensor_cgen
```

# Develop Environment

We use `pipenv` to setup the develop environment.

You can go to this [repo](https://github.com/pypa/pipenv) for detail information about `pipenv`.

## Setup with `pipenv`

1. `$ pipenv install -d`
2. `$ pipenv shell`
- this will spawn a subshell and activate the virtual environment for you
- You should be able to use the cli now

**Note**: If you have trouble with installation with `pipenv`, try to remove `Pipfile.lock` first and run `pipenv install -d` again.

# Example

Please refer to [tests/deep_mlp](https://github.com/uTensor/utensor_cgen/tree/develop/tests/deep_mlp) for detailed example

# User Guild

Following steps are a general guild for user how to porting a `TensorFlow` protobuf file into a `uTensor` implementation:

1. Freeze and quantize your graph
- [Freezing](https://www.tensorflow.org/extend/tool_developers/#freezing)
- [Quantization](https://www.tensorflow.org/performance/quantization)
- An alternative is to use the [`quantize_graph.py`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/quantization/quantize_graph.py) script
- it should output one qunatized pb file, say `quantized_graph.pb`
2. install `utensor_cgent`
- run `python3 setupt.py install`
3. run `utensor-cli quantized_graph.pb`, where `quantized_graph.pb` is the output pb file you get from step **1**
- run `utensor-cli -h` for help

# TODOs
1. (done) Freezed graph protobuff parser
2. (done)Tensor snippets for [`uTensor`](https://github.com/neil-tan/uTensor)
3. (done) Add template engine for richer flexibility
- [jinja2](http://jinja.pocoo.org)
4. (done?) core code generator implementation
- We need some refactoring, PRs are welcomed!
5. type alias in C/C++
- ex: use `uint8_t` or `unsigned char`?
- a lot more about this....
6. (done) `MANIFAST.in` for the `setup.py`
7. Relation among snippets/containers
- shared template variables? (headers, shared placeholders...etc)
8. Better configuration schema
- json
- yaml
- or ?

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

utensor_cgen-0.1.6.tar.gz (24.4 kB view details)

Uploaded Source

File details

Details for the file utensor_cgen-0.1.6.tar.gz.

File metadata

File hashes

Hashes for utensor_cgen-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f5e0a6e3f90f56fc0cf633c75ec149c722df71c1a0ff5927d7c51e30ca5f67f8
MD5 d0e42cf47d30b11a4ebf2f2616905287
BLAKE2b-256 71b717fed2656b9b171e3355d0ae003ff0231645ac8d4cce3f5ce2c11a093e43

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page