一种面向多核图像处理卷积神经网络的数据读取方法技术

技术编号:21362876 阅读:58 留言:0更新日期:2019-06-15 09:38
本发明专利技术公开了一种面向多核图像处理卷积神经网络的数据读取方法,包括:A)接收卷积计算参数,所述卷积计算参数包括图像尺寸、通道数、卷积核尺寸KxK、和/或步长;B)确定图像的每行数据切分的次数及最后一次剩余数据的长度,使得切分后的图像块每次产生M次卷积计算所需的数据;C)根据所确定的切分后的图像块宽度进行图像切分,对于图像块的第一通道,读入切分后的图像块的前K行数据,将其存入数据缓存单元中;D)读出数据缓存单元中存放的第一行图像数据,然后扩展前M次卷积计算内的所有第一个通道的第一行的数据,共产生M*K个数据;E)将数据缓存单元中存放的第二行至第K行的图像数据读出并扩展;F)对于第二通道至最后一个通道,重复步骤C)和步骤E);G)数据读取单元回到第一通道并读入下一行的数据,覆盖缓存中第一通道中编号最靠前的一行的数据,对数据缓存单元中存储的更新的K行的数据执行步骤D)和步骤E);H)对于第二通道至最后一个通道,重复步骤G);I)重复步骤G)和步骤H),直至完成图像块的最后一行。

A Data Reading Method for Multi-Core Image Processing Convolutional Neural Network

The invention discloses a data reading method for multi-core image processing convolution neural network, including: A) receiving convolution calculation parameters, which include image size, channel number, convolution core size KxK, and/or step size; B) determining the number of data segmentation per line of image and the length of the last remaining data; For the first channel of the image block, the first K-row data of the segmented image block is read into the data buffer unit and stored in the data buffer unit; D) the read-out data buffer unit is stored in the read-out data buffer unit. The first row of image data is then expanded to generate M*K data for the first row of all the first channels in the previous M convolution calculation; E) to read and expand the image data stored in the data buffer unit from the second row to the K row; F) to repeat step C and step E for the second channel to the last channel; The data reading unit returns to the first channel and reads the data in the next line, covering the data of the first channel numbered the most front row in the cache, performing steps D and E for the updated K-line data stored in the data caching unit; H) Repeat steps G for the second channel to the last channel; I) Repeat steps G) and H for the second channel to the last channel. Until the last line of the image block is completed.

【技术实现步骤摘要】
一种面向多核图像处理卷积神经网络的数据读取方法
本专利技术涉及计算机领域,尤其涉及一种面向多核图像处理卷积神经网络的数据读取方法。
技术介绍
卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种前馈神经网络,与传统的BP神经网络相比,具有识别效率高、旋转缩放不变性好等优点,已在数字图像处理及人脸识别等各个领域得到了广泛的应用。传统卷积神经网络一般由多个交替的卷积层、池化层以及最后的全连接层组成。卷积神经网络可通过反向传播方法将网络损失传递到网络的所有层。参数更新学习过程通过随机梯度下降算法来实现。卷积神经网络与传统神经网络最大的区别在于,其卷积层采用了一种权值共享局部连接网络,而不是传统的权值独立全连接网络,这使得在层数相同的情况下,卷积神经网络的连接数目要远少于传统神经网络。卷积层的二维数据结构使得卷积神经网络非常适合于处理图像数据信息。此外,池化层的加入使得卷积神经网络对输入数据的几何变化(平移、缩放、旋转等)具有一定程度的稳健性。卷积神经网络由于其强大的数据特征提取能力和非线性学习能力,在性能上超越了大多数传统的机器视觉算法。目前在图像分类、目标识别等研究和应用领域,卷积神经网络已经成为主流方法。目前常用的卷积神经网络由于计算量特别巨大,一般均采用多个乘累加器(MAU)并发运行的方式来降低网络的计算时间。而要为这些MAU同时提供计算所需的数据,对系统的总线带宽也提出了很大的挑战。另一方面,用于图像处理的卷积神经网络的卷积核用到的均为二维甚至三维的数据结构,直接从系统的内存(例如,DDR)中读取这些地址不连续的数据对系统内存的利用率也会产生极大的影响。
技术实现思路
针对现有技术中存在的上述问题,本专利技术提出一种数据读取方法,在满足MAU计算需求的前提下,将对系统内存的访问大大降低。根据本专利技术的一个方面,提供一种数据读取方法,包括:A)接收卷积计算参数,所述卷积计算参数包括图像尺寸、通道数、卷积核尺寸KxK、和/或步长;B)确定图像的每行数据切分的次数及最后一次剩余数据的长度,使得切分后的图像块每次产生M次卷积计算所需的数据;C)根据所确定的切分后的图像块宽度进行图像切分,对于图像块的第一通道,读入切分后的图像块的前K行数据,将其存入数据缓存单元中;D)读出数据缓存单元中存放的第一行图像数据,然后扩展前M次卷积计算内的所有第一个通道的第一行的数据,共产生M*K个数据;E)将数据缓存单元中存放的第二行至第K行的图像数据读出并扩展;F)对于第二通道至最后一个通道,重复步骤C)和步骤E);G)数据读取单元回到第一通道并读入下一行的数据,覆盖缓存中第一通道中编号最靠前的一行的数据,对数据缓存单元中存储的更新的K行的数据执行步骤D)和步骤E);H)对于第二通道至最后一个通道,重复步骤G);I)重复步骤G)和步骤H),直至完成图像块的最后一行。在本专利技术的一个实施例中,切分后的图像块的宽度在M到M+K-1之间。在本专利技术的一个实施例中,相邻图像块的数据之间有若干像素的重叠。在本专利技术的一个实施例中,该数据读取方法还包括:J)判断是否还存在未处理的图像块,如果不存在未处理的图像块,则数据读取操作结束;如果存在未处理的图像块,则将未处理的图像块作为当前图像块,返回当前图像块的第一通道,读入图像块的前K行数据,将其存入数据缓存单元中,重复步骤步骤D)至步骤G)。在本专利技术的一个实施例中,根据卷积核尺寸、图像尺寸、系统的总线位宽及内存等参数确定每次连续产生的卷积计算的次数M。在本专利技术的一个实施例中,所述数据扩展及输出单元将扩展后的数据以K倍读入带宽的速度被送至后级的MAU。在本专利技术的一个实施例中,将当前图像块的全部通道的K行数据存储在数据缓存单元中。在本专利技术的一个实施例中,当最后一个图像块的宽度不足M时,则最后一个图像块的行数据一次读到行尾。在本专利技术的一个实施例中,该数据读取方法还包括:在进行图像切分之前,在输入图像周围一圈填充宽度为(K-1)/2且值为0的数据。本专利技术公开的系统和方法可以充分利用卷积神经网络中相邻卷积核中重复的数据,将对系统内存的访问量降到理论最低值,从而降低了对卷积神经网络对系统带宽的要求。本专利技术公开的系统和方法可以充分利用系统对连续地址突发读操作的低延时特性。提高了系统带宽的利用率。本专利技术公开的系统和方法采用了切分图像的方法,使得缓存空间的大小与图像的尺寸无关,降低了系统对片上缓存的尺寸要求。本专利技术公开的系统和方法优先产生每次卷积计算的所有数据,使得后续的MAU每次卷积计算过程中只需结果输出一次最终结果,降低了MAU计算过程中存储中间结果所需的缓存空间或系统带宽。附图说明为了进一步阐明本专利技术的各实施例的以上和其它优点和特征,将参考附图来呈现本专利技术的各实施例的更具体的描述。可以理解,这些附图只描绘本专利技术的典型实施例,因此将不被认为是对其范围的限制。在附图中,为了清楚明了,相同或相应的部件将用相同或类似的标记表示。图1示出了根据本专利技术的卷积网络输入数据各参数的关系示意图。图2示出根据本专利技术的一个实施例的数据读取系统200的示意框图。图3示出根据本专利技术的一个实施例的数据读取方法的流程图。图4示出了根据本专利技术的一个示例的卷积网络输入数据各参数的关系示意图。图5示出根据本专利技术的一个实施例的数据扩展及输出单元的结构示意图。图6示出根据本专利技术的一个实施例的步骤305中缓存的状态示意图。图7示出根据本专利技术的一个实施例的步骤306中缓存的状态示意图。具体实施方式在以下的描述中,参考各实施例对本专利技术进行描述。然而,本领域的技术人员将认识到可在没有一个或多个特定细节的情况下或者与其它替换和/或附加方法、材料或组件一起实施各实施例。在其它情形中,未示出或未详细描述公知的结构、材料或操作以免使本专利技术的各实施例的诸方面晦涩。类似地,为了解释的目的,阐述了特定数量、材料和配置,以便提供对本专利技术的实施例的全面理解。然而,本专利技术可在没有特定细节的情况下实施。此外,应理解附图中示出的各实施例是说明性表示且不一定按比例绘制。在本说明书中,对“一个实施例”或“该实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本专利技术的至少一个实施例中。在本说明书各处中出现的短语“在一个实施例中”并不一定全部指代同一实施例。需要说明的是,本专利技术的实施例以特定顺序对步骤进行描述,然而这只是为了方便区分各步骤,而并不是限定各步骤的先后顺序,在本专利技术的不同实施例中,可根据具体的流程的调节来调整各步骤的先后顺序。卷积计算可看作是加权求和的过程,将图像区域中的每个像素分别与滤波器(即,权矩阵)的每个元素对应相乘,所有乘积之和作为区域中心像素的新值。滤波器是卷积时使用到的权,用一个矩阵表示,该矩阵与对应的图像区域大小相同,其行、列都是奇数,是一个权矩阵。假设输入数据的参数为:图像宽度W(像素数),图像高度H(像素数),图像通道数C,卷积核尺寸为KxK,步长为S=1。图1示出了根据本专利技术的卷积网络输入数据各参数的示意图。完成所有计算需要WxH次卷积计算(每行W次卷积,共H行),这里,为了维持输出图像尺寸不变,需要在输入图像周围一圈填充宽度为(K-1)/2且值为0的数据。而每次卷积需要的数据量为KxKxC。因此所有卷积计算需要本文档来自技高网
...

【技术保护点】
1.一种面向多核图像处理卷积神经网络的数据读取方法,包括:A)接收卷积计算参数,所述卷积计算参数包括图像尺寸、通道数、卷积核尺寸KxK、和/或步长;B)确定图像的每行数据切分的次数及最后一次剩余数据的长度,使得切分后的图像块每次产生M次卷积计算所需的数据;C)根据所确定的切分后的图像块宽度进行图像切分,对于图像块的第一通道,读入切分后的图像块的前K行数据,将其存入数据缓存单元中;D)读出数据缓存单元中存放的第一行图像数据,然后扩展前M次卷积计算内的所有第一个通道的第一行的数据,共产生M*K个数据;E)将数据缓存单元中存放的第二行至第K行的图像数据读出并扩展;F)对于第二通道至最后一个通道,重复步骤C)和步骤E);G)数据读取单元回到第一通道并读入下一行的数据,覆盖缓存中第一通道中编号最靠前的一行的数据,对数据缓存单元中存储的更新的K行的数据执行步骤D)和步骤E);H)对于第二通道至最后一个通道,重复步骤G);I)重复步骤G)和步骤H),直至完成图像块的最后一行。

【技术特征摘要】
1.一种面向多核图像处理卷积神经网络的数据读取方法,包括:A)接收卷积计算参数,所述卷积计算参数包括图像尺寸、通道数、卷积核尺寸KxK、和/或步长;B)确定图像的每行数据切分的次数及最后一次剩余数据的长度,使得切分后的图像块每次产生M次卷积计算所需的数据;C)根据所确定的切分后的图像块宽度进行图像切分,对于图像块的第一通道,读入切分后的图像块的前K行数据,将其存入数据缓存单元中;D)读出数据缓存单元中存放的第一行图像数据,然后扩展前M次卷积计算内的所有第一个通道的第一行的数据,共产生M*K个数据;E)将数据缓存单元中存放的第二行至第K行的图像数据读出并扩展;F)对于第二通道至最后一个通道,重复步骤C)和步骤E);G)数据读取单元回到第一通道并读入下一行的数据,覆盖缓存中第一通道中编号最靠前的一行的数据,对数据缓存单元中存储的更新的K行的数据执行步骤D)和步骤E);H)对于第二通道至最后一个通道,重复步骤G);I)重复步骤G)和步骤H),直至完成图像块的最后一行。2.如权利要求1所述的数据读取方法,其特征在于,切分后的图像块的宽度在M到M+K-1之间。3.如权利要求1...

【专利技术属性】
技术研发人员:刘明润
申请(专利权)人:上海熠知电子科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1