摘要

手写数字逆向传播(Back Propagation,BP)神经网络由输入层、隐藏层、输出层构成。训练数据是MNIST开源手写数字集里60 000个样本,BP算法由随机梯度下降算法和反向传播算法构成,采用network小批量数据迭代30次的网络学习过程,训练出合适的权重和偏置。利用现场可编程门阵列(Field Programmable Gate Array,FPGA)硬件平台,Verilog代码实现BP算法、时序控制各层网络训练状态、Sigmoid(S型)函数及导数线性拟合是设计重点。初始化均值为0,方差为1的高斯分布网络权重和偏置,采用小批量数据个数m为10,学习系数η为3,在系统中输入样本及标签利用Quartus13.0和modelsim仿真与分析,工程运行迭代30次时间是4.5 s,样本识别正确率是91.6%,与软件python2.7相比满足了硬件设计的实时性和手写数字识别的高准确率。