/nn4mc_cpp

Neural Networks for Microcontrollers

Primary LanguageC++OtherNOASSERTION

nn4mc: Neural Networks for Microcontrollers

Docs License ONXX Tutorial

By the Correll Lab, University of Colorado Boulder

This repository is a generalization of the esp 32 neural network created by Dana Hughes.

In multiple areas of our research, we become interested in online estimation through regression or classification. Specifically, we found the need to be able to flash a microcontroller with a neural network model (which we trained offline, in a more capable computer) with a code that is easy to use, reusable and high performance for a microcontroller.

This library is intended to be used in any microcontroller that supports C code after the neural network has been trained in a machine with Keras, Tensorflow, etc. and the parameters are saved. This enables the microcontroller to make online predictions. It is compatible with any freeRTOS code, the ESP32 and Arduino systems.

More Information

Quick Usage:

Install

$ ./scripts/setup_linux.sh 
$ ./build/h5_nn4mc --help
NN4MC Options:
  -h [ --help ]             help screen
  -s [ --source ] arg       name of the hdf5 file
  -t [ --target ] arg       name of the target folder the code will be 
                            offloaded
  -v [ --verbose ] arg (=1) print neural network configuration json

Exporting code:

$ ./build/h5_nn4mc --source "/path/to/hdf5" --target "path/to/output/files"	

What about packages other than Keras?

We currently develop instructionals on converting packages from multiple sources to Keras.

Technical Questions

Please direct your technical questions to Stack Overflow using the nn4mc tag or e-mail Sarah.AguasvivasManzano@colorado.edu. Also feel free to initiate a new issue in our github repository.

Getting Involved

Citing nn4mc:

We encourage to use the following citation references for academic use of nn4mc.

BibTeX citation:

@misc{nn4mc,
        title={Embedded Neural Networks for Robot Autonomy},
        author={Sarah {Aguasvivas Manzano} and Dana Hughes and Cooper Simpson and Radhen Patel and Nikolaus Correll},
        year={2019},
	note={International Symposium of Robotics Research (ISRR 2019)},
        eprint={1911.03848},
        archivePrefix={arXiv},
        primaryClass={cs.RO}
    }

APA Format:

Manzano, S. A., Hughes, D., Simpson, C., Patel, R., & Correll, N. (2019). Embedded Neural Networks for Robot Autonomy. 
International Symposium of Robotics Research (ISRR 2019). arXiv preprint arXiv:1911.03848. 

Contributors:

nn4mc is supported by the Correll Lab at the University of Colorado Boulder. We also receive support from the Airforce Office of Scientific Research (AFOSR), we are very grateful for this support.