Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Automatic quantization using SeeDot #88

Merged
merged 91 commits into from May 28, 2019

Conversation

Projects
None yet
5 participants
@sridhargopinath
Copy link
Contributor

commented May 23, 2019

This PR adds the SeeDot tool, which is an automatic quantizer. SeeDot takes as input floating-point models like Bonsai and ProtoNN, and generates efficient fixed-point that can be directly run on Arduino microcontrollers. Since SeeDot-generated code contains only integer operations, it performs much better than hand-written floating-point code on devices without floating-point unit like Arduino Uno, Arduino MKR1000, etc.

The tool has been tested on the Bonsai and ProtoNN algorithms on multiple datasets (cifar, mnist, usps, cr, curet, letter, ward).

The README describes the tool in more detail and provides instructions on getting started.

sridhargopinath added some commits Apr 17, 2019

@adityakusupati

This comment has been minimized.

Copy link
Contributor

commented May 24, 2019

I will review it today and let you know. @sridhargopinath

@jacobrosenthal

This comment has been minimized.

Copy link

commented May 27, 2019

Apologies for the drive by review, but excited about the project and can't help myself. Im on mac 10.13.6

pip fails to be able to resolve tf at 1.10.1 It seems like 1.13.1 is the current release. Im not much of a python guy but tensorflow~=1.10 fixed it. Perhaps loosen up the other requirements?

Also antlr4-python3-runtime isnt in the requirements either. The install link goes to their front page which had me install the java jar which obviously didn't help. I added that as well like antlr4-python3-runtime~=4.7 and all the rest of the instructions went smoothly.

(havent tried on arduino yet)

Thanks!

sridhargopinath added some commits May 28, 2019


Follow the below steps to perform prediction on the device, where the SeeDot-generated code is run on a single data-point stored on the device's flash memory.

1. Open the Arduino sketch file located at `arduino/arduino.ino` in the [Arduino IDE](https://www.arduino.cc/en/main/software).

This comment has been minimized.

Copy link
@ShishirPatil

ShishirPatil May 28, 2019

Member

For those skipping steps 1-3, mention full path to Arduino sketch folder.

sridhargopinath added some commits May 28, 2019

@ShishirPatil
Copy link
Member

left a comment

Checked the Arduino code. Looks good.

@harsha-simhadri harsha-simhadri merged commit 84bbb46 into master May 28, 2019

1 check passed

license/cla All CLA requirements met.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.