来源雪天鱼
基于PYNQ-Z2的手写数字识别卷积加速器设计【持续更新】_雪天鱼的博客-CSDN博客
一、设计思路
1、输入28 x 28 的图片,非png格式,而是txt格式,将图片数据进行量化,存入到txt文件当中。
2、在PL端实现卷积神经网络LeNet-5,纯verilog实现,包括卷积层,激活层,池化层,全连接层。
3、在PS端输出识别的结果。
LeNet-5神经网络
卷积:28 X 28的图片,我们采用6个5X5的卷积核,卷积后得到6个24X24的图片通道 。
激活:将输出结果做非线性变换。
池化:2X2的最大池化,即将24X24的图片缩小成12X12,表征特征信息
再卷积 : 再用12个5X5的卷积核进行卷积12X12的图片,提高特征的表达维度,得到12个8X8的通道。
再激活
再池化:2X2的最大池化,即将12个8X8的图片缩小成12个4X4
展开图片成为一维的12X4X4 = 192
进入全连接层,采用10分类输出结果。
模型INT8量化
模型在GPU或者CPU上都是做浮点运算,可能是float32或者float64,但在硬件上没法做浮点运算,因此需要转化为INT8,即用有符号数的8bit来表示权重参数(-127到127)。卷积层和全连接层才有权重参数。
硬件加速器架构
顶层架构: