FloyedShen / mnist_hls

Lenet for MNIST handwritten digit recognition using Vivado hls tool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mnist_hls

Lenet for MNIST handwritten digit recognition using Vivado hls tool.

  • Accuracy : 97.5938% (8-bit Mode).
  • Speed : 71.43 FPS (100MHz, Zedboard)
  • The complete project is provided, please download it from Baidu net disk, key:1bv4

requirement

  • Vivado hls 2019.2
  • petalinux 2019.2 (optional)
  • Vitis 2019.2
  • python 3+

usage

  • Download MNIST dataset from MNIST and cpoy the dataset to '~/Vivado_hls/MNIST_DATA/'

  • build hls project

# When you are in the project root directory
cd Vivado_hls
vivado_hls -f script.tcl
  • Generate 'tanh' table (default: ap_fixed<8,3>)
# When you are in the project root directory
cd Vivado_hls/tools
python ./tanh_table.py
  • build vivado project
# When you are in the project root directory
cd Vivado
vivado -source source/tcl
  • Generate output product && export hardware.

  • Open Vitis && create platform from *.xsa generated by vivado.

  • Create an application project based on the 'hello world' template.

  • Use this file './Vitis/helloworld.c' replace the original file and add file './Vitis/mnist_data.h'.

  • Run and see the results

TODO

  • Simplify lookup table of 'tanh'.
  • Complete PS design based on embedded linux.

About

Lenet for MNIST handwritten digit recognition using Vivado hls tool

License:MIT License


Languages

Language:Objective-C 96.7%Language:Tcl 1.4%Language:C++ 1.2%Language:C 0.7%Language:Python 0.1%