This is an official, proof-of-concept C implementation of the paper PocketNN: Integer-only Training and Inference of Neural Networks via Direct Feedback Alignment and Pocket Activations in Pure C . The paper was accepted in TinyML 2022 Research Symposium as a full paper.
Just run the main.cpp
file to see training and testing a PocketNN network with the MNIST dataset! Other sample usages are written in pktnn_examples.cpp
file.
I used Visual Studio 2019 to write this code. Visual Studio solution file is included in the repository to help importing the project.
TinyML 2022's official citation information will be updated soon. In the meantime, please use the arXiv information as below.
@article{song2022pocketnn,
title={PocketNN: Integer-only Training and Inference of Neural Networks via Direct Feedback Alignment and Pocket Activations in Pure C },
author={Song, Jaewoo and Lin, Fangzhen},
journal={arXiv preprint arXiv:2201.02863},
year={2022}
}
Please click the image below to watch a youtube video which was recorded at tinyML 2022.
Youtube link of TinyML 2022: PocketNN Presentation
PocketNN uses the MIT License. For details, please see the LICENSE
file.
Two sample datasets are copied from their original website.
- MNIST dataset: MNIST dataset is from the MNIST website. The site says "Please refrain from accessing these files from automated scripts with high frequency. Make copies!" So I made the copies and put them in this repository.
- Fashion-MNIST dataset: Fashion-MNIST dataset is from its github repository. It follows the MIT License which allows copy and distribution.