Skip to content

Training and Implementation of a CNN for image classification with binary weights and activations on FPGA with HLS tools

License

Notifications You must be signed in to change notification settings

ralbertazzi/bnn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Training and Implementation of a CNN for image classification with binary weights and activations on FPGA with HLS tools

This is the repository for the project work of Reconfigurable Embedded Systems at the University of Bologna - Professor Stefano Mattoccia

In this work I first learnt about binary networks with binary weights and activations; I then trained a network on the MNIST dataset, achieving 96% accuracy with a small network (460k weights).

However, the core of the project is the implementation of a Binary Network on a FPGA device (Zynq) using High-Level Synthesis Tools (Vivado HLS). I implemented the core modules (convolution, dense, max pooling, padding), optimizing resources, evaluating results and discussing trade-offs between timing and resources. The whole implementation is pipelined and can achieve a throughput of thousands of images/sec by using less than half the resources available on the FPGA.

You can find additional informations inside the provided slides.

References

Author

Riccardo Albertazzi - University of Bologna - May 2018

About

Training and Implementation of a CNN for image classification with binary weights and activations on FPGA with HLS tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published