larq
qkeras
larq | qkeras | |
---|---|---|
2 | 3 | |
692 | 523 | |
0.3% | 1.3% | |
7.5 | 6.2 | |
17 days ago | 13 days ago | |
Python | Python | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
larq
-
Running CNN on ATmega328P
You quantize the model parameters i.e., don't just send the model in which uses floating point math instead change it to fixed point. This has 2 advantages 1) a pure size reduction and 2) most low power MCU's don't have float point multipliers but do have single cycle fixed point multipliers. This is a classic DSP trick used for a long time. The real research aspects come-in as you start dropping below 8-bit; even coming down to single-bit in some cases(see Larq)
-
Simplifying AI to FPGA deployment, looking for opportunities
It is a difficult question. I work almost exclusively with open source, so I'm not much use to give you advice. Maybe you can see how Plumerai handles things -- they have some stuff proprietary, but they've also open-sourced their BNN Larq stuff: https://github.com/larq/larq
qkeras
-
How to build FPGA-based ML accelerator?
I would check out hls4ml. It's an open source project made by/for people at CERN to convert neural networks created in Python using QKeras (a quantization extension of Keras) into HLS, with Vivado HLS being the most well supported. There are some caveats though, and a fellow student and I have had trouble getting the generated HLS to match the Keras model and be feasible to synthesize, but it seems to work well for smaller neural networks.
-
FPGA Neural Network
For quantization-aware training, there's also a tool we integrate with called qkeras: https://github.com/google/qkeras/tree/master/qkeras
-
[D] How to Quantize a CNN; And how to deal with a professor...
Brevitas appears to be what you're looking for. I haven't used that but developed something similar myself for a previous project. You could take a look at https://github.com/google/qkeras too
What are some alternatives?
finn-examples - Dataflow QNN inference accelerator examples on FPGAs
model-optimization - A toolkit to optimize ML models for deployment for Keras and TensorFlow, including quantization and pruning.
hls4ml - Machine learning on FPGAs using HLS
data-science-ipython-notebooks - Data science Python notebooks: Deep learning (TensorFlow, Theano, Caffe, Keras), scikit-learn, Kaggle, big data (Spark, Hadoop MapReduce, HDFS), matplotlib, pandas, NumPy, SciPy, Python essentials, AWS, and various command lines.
aimet - AIMET is a library that provides advanced quantization and compression techniques for trained neural network models.
nngen - NNgen: A Fully-Customizable Hardware Synthesis Compiler for Deep Neural Network
conifer - Collect and revisit web pages.
horovod - Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet.
d2l-en - Interactive deep learning book with multi-framework code, math, and discussions. Adopted at 500 universities from 70 countries including Stanford, MIT, Harvard, and Cambridge.
Keras - Deep Learning for humans
conifer - Fast inference of Boosted Decision Trees in FPGAs