基于FPGA的卷积神经网络模型的实现

2019-09-10 07:22杨培宇杨自恒徐勤涛刘爽
信息技术时代·上旬刊 2019年2期
关键词:卷积神经网络

杨培宇 杨自恒 徐勤涛 刘爽

摘要:近年来,FPGA越来越多地应用于语音识别、机器学习和云计算等领域。这是由于FPGA具有强大的并行计算能力,而且与通用处理器相比功耗较低。然而,这些应用主要集中在大规模的FPGA集群上,具有极强的处理能力执行大量的矩阵运算或卷积运算,但不适合便携式或移动应用程序。本文通过对单FPGA平台的研究,探索FPGA在这些领域中的应用。在本课题中,我们实现了一个LeNet-5模型。并在装有XILINX ZYNQ SOC XC7Z020-1CLG400C的PYNQ板上实现了一个带有AXI Stream接口的硬件加速器。我们在CPU平台上对模型进行训练,并将模型部署到PYNQ板上,用Jupyter notebook对模型进行验证。

关键词:FPGA;卷积神经网络;PYNQ

1.前言

在当代社会,研究人员在人工智能和机器学习领域取得了大量的成果。特别是alpha Go的成功提高了人们对人机交互领域的信心。然而,深度学习相关算法以比传统机器学习算法更高的精度优势应用到了许多领域,其中卷积神经网络(Convolutional Neural Network,简称CNN)的研究越来越受到许多研究者的关注,已被广泛应用于图像分类[1],人脸识别[2],数字视频监控[3]等领域。这些神经网络算法在上述领域中具有较高的精度和良好的性能。运行卷积神经网络需要大量的计算能力来模拟神经元的操作和数据的访问,FPGA由于其并行性,可以充分发挥算法的并行性。

2.LeNet-5模型

在本次设计中,我们采用的LeNet-5模型算法。该模型主要由卷积层、池化层和全连接层共同组成。对于FPGA来说,解决方案是实现卷积神经网络的前向计算过程,它将在CPU平台上对模型进行训练,将图像数据和已训练好的权值数据加载到内存中,进行乘法和加法运算来完成神经元的前向计算。

(1)卷积层

卷积层的二维卷积单元计算过程可由公式(2-1)计算得到, 和 表示图像输入的大小, 表示卷积核的权重, 表示阈值。

(2)池化层

公式(2-2)描述了池化层的数学模型,将给定区域( )像素的最大值作为输出 。

(3)全连接层

公式(2-3)描述了前向神经网络模型, 表示权重矩阵, 表示输入图像矩阵, 代表阈值。

3.设计方案

我们在PYNQ开发板上实现一个LeNet-5模型算法,该模型采用ZYNQ-7020-1CLG400C芯片,支持Python和Jupyter notebook编程。PYNQ是Python Productivity for ZYNQ[4]的的缩写。从硬件架构上看,PYNQ的核心芯片是Xilinx ZYNQ芯片,这是一个可编程逻辑(PL)与处理系统(PS)相结合的FPGA SOC平台。在32位ARM内核的处理系统(PS)端,我们可以利用一种FPGA硬件库Overlay为卷积神经网络创建一个硬件加速器。

本文工作主要分为三个部分:

(1)PC机下利用MNIST[5]数据集进行训练得到权值数据,为FPGA的实现提供条件。

(2)PS端用于实现应用程序可视化和提供编程接口,完成对PL端的控制以及应用程序的运行;通过在PS端进行编程,直接将数据集存放在SD卡上,当网络运行时,通过ARM端的app将SD卡的数据集加载到DDR中,通过DMA总线下发到PL端。

(3)PL端将执行LeNet-5模型前向网络的搭建。卷积层和池化层运行在卷积计算引擎中,该引擎由多组并行的乘累加计算单元组成,同时每个乘累加计算单元包含一个激活层。全连接层的其余部分在全连接计算引擎中实现,使用乒乓缓存机制,在卷积层和全连接层之间进行数据同步,降低对内存的消耗。图像数据、权值数据和输出数据存储在FPGA的Block RAM中。PS端和PL端的通信,使用AXI DMA总线来提高数据传输速度。这些模块都由它们各自的控制单元控制,并用有限状态机(FSM)实现。

4.结论

本文实现了LeNet-5模型算法,并通过Jupyter notebook将训练好的模型部署到PYNQ开发板上,设计了一个基于FPGA的卷积神经网络硬件加速器。采用python编程语言设计了一个FPGA SOC系统,加快了FPGA的开发进程,拓宽了FPGA的应用范围。我们建立了一个硬件加速器与AXI Stream接口,与软件程序进行交互,证明了软件和硬件的联合设计可以在神经网络領域发挥作用。该模型可以通过CPU或GPU进行训练后传送到FPGA SOC系统中,开发在移动设备上的应用。

参考文献

[1]Ioannou Y,Robertson D,Shotton J,et al.Training Convolutional Neural Networks with Low-rank Filters for Efficient Image Classification[J].Journal of Bacteriology,2016,167(3):774-783.

[2]Sun Y,Wang X,Tang X.Deep Learning Face Representation from Predicting 10,000 Classes[C].IEEE Conference on computer Vision and Pattern Recognition.IEEE Computer Society,2014:1891-1898.

[3]Li J,Karmoshi S,Zhu M.Unconstrained face detection based on cascaded Convolutional Neural Networks in surveillance video [C],International Conference on Image,Vision and Computing.IEEE,2017:46-52.

[4]“PYNQ”.[Online] Available:http://www.pynq.io/home.html.

[5]http://yann.lecun.com/exdb/mnist/.

作者简介:杨培宇(1996.01-),男,河北省河间市人,哈尔滨市南岗区黑龙江大学,电子与通信工程专业2018级,硕士研究生,研究方向:人工智能及FPGA实现方向。

猜你喜欢
卷积神经网络
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
基于卷积神经网络的树叶识别的算法的研究