一种基于光电计算阵列的深度残差网络的加速方法技术

技术编号:21607063 阅读:37 留言:0更新日期:2019-07-13 18:45
本发明专利技术公开了一种基于光电计算阵列的深度残差网络的加速方法。其中,光电计算阵列包括由多个发光单元周期排列组成的发光阵列和由多个计算单元周期排列组成的计算阵列。加速方法包括如下步骤:发光阵列将深度残差网络的权重通过光输入的方法输入到计算阵列中,作为光输入量,并保存在计算阵列中;将图像数据量化为单比特的数据后输入到计算阵列中,作为电输入量;利用计算阵列分别对深度残差网络的卷积层、全连接层和残差学习单元中的运算进行计算,计算完成后输出数字信号,再对该数字信号进行移位累加操作,得到最终结果。本发明专利技术的加速方法在较大提高运算速度的同时具备高能效的特点。

An Acceleration Method of Deep Residual Network Based on Photoelectric Computing Array

【技术实现步骤摘要】
一种基于光电计算阵列的深度残差网络的加速方法
本专利技术涉及一种利用光电计算阵列对深度残差网络进行加速的方法,属于光学领域和图像识别等机器学习领域。
技术介绍
传统的计算机大多采取冯诺依曼架构,然而,由于冯诺依曼架构存储单元和运算单元的分立,导致了在数据传输上产生了极大的能量消耗,并且影响运算速度。传统的神经网络的训练因为其层次加深而变得困难,梯度消失和梯度爆炸让传统神经网络的精度大大损失,仅靠数据初始化和正则化虽然能解决这个问题,但是却带来了网络性能退化的问题。而深度残差网络可以轻松的对层次较深的神经网络进行训练,不仅解决了梯度问题和退化问题,更使得网络的性能随深度的提升而提升。目前利用数字电路对深度残差网络进行加速的一般方法,是将卷积运算展开为矩阵向量乘法运算,并使用相应的乘累加单元完成矩阵乘法运算。但是,单个乘法器需要较大的资源(面积),也带来较高的功耗;并且存储墙的存在也限制了运算速度的进一步提升。
技术实现思路
本专利技术提出一种基于光电计算阵列的深度残差网络的加速方法,该加速方法在较大提高运算速度的同时具备高能效的特点。本专利技术采用的技术方案如下:一种基于光电计算阵列的深度残差网络的加速方法,其光电计算阵列包括由多个发光单元周期排列组成的发光阵列和由多个计算单元周期排列组成的计算阵列;所述加速方法包括如下步骤:发光阵列将深度残差网络的权重通过光输入的方法输入到计算阵列中,作为光输入量,并保存在计算阵列中;将图像数据量化为单比特的数据后输入到计算阵列中,作为电输入量;利用计算阵列分别对深度残差网络的卷积层、全连接层和残差学习单元中的运算进行计算,计算完成后输出数字信号,再对该数字信号进行移位累加操作,得到最终结果。进一步地,所述计算单元包括载流子控制区、耦合区、以及光生载流子收集区和读出区;所述载流子控制区用于控制并调制光生载流子收集区和读出区内的载流子;所述光生载流子收集区和读出区中的收集区用于吸收发光单元发射的光子并收集产生的光生载流子;所述载流子控制区或者光生载流子收集区和读出区中的读出区与电信号连接,读出区用于输出被所述光生载流子和所述电信号作用后的载流子;所述耦合区连接收集区和读出区。进一步地,利用计算阵列对深度残差网络的卷积层中的卷积运算进行计算,每一层卷积层的计算过程如下:①对于当前卷积层的m个卷积核,将每个卷积核按列展开然后拼接为一列向量,如是m个卷积核对应的m列向量则拼接为一个矩阵,对于输入的n个通道的图像特征图,将n个矩阵上下拼接为一个新的大矩阵,采用与该大矩阵尺寸相同的计算阵列,计算阵列的光输入量为大矩阵中对应的值;②对于输入的n个图像特征图进行批标准化操作;③当前卷积层的输入为n个通道的图像特征图,对于其中的每一个图像特征图进行如下操作获得n'个矩阵:选取和卷积核相同大小的区域,按照规定的步幅,在新的特征图上进行移动p次;每次移动,都将特征图中所对应的值取出,按照纵向顺序展开并拼接为一行向量;移动完成后,便得到了p行向量,将其按顺序上下拼接为一个矩阵;④将所述n'个矩阵左右拼接,得到最终的电输入矩阵;按照从上到下的顺序依次将电输入矩阵的每一行输入计算阵列,行向量的每一列元素对应计算阵列的每一行;⑤行向量按照比特位输入到计算阵列中,即每一次输入一个比特;当计算阵列计算完成后,每一列的结果都经过模数转换器转换得到数字信号,再将数字信号分别按照对应位进行移位,然后累加得到结果,结果的形式为长度为m的向量;该结果即电输入矩阵的一行向量进入计算阵列完成计算的结果,对应着m个卷积核对n个图像特征图中相同区域进行一次卷积运算然后求和的结果;⑥按照步骤④和⑤的方法,电输入矩阵的p行向量按顺序完成计算后得到p个向量形式的结果,将这p行向量上下拼接为一个矩阵;把该矩阵的每一列按照从补零后的图像特征图中取值的顺序拼接成一个特征图,即对应着每一个卷积核卷积运算的结果,共得到m个特征图;⑦对所述m个特征图添加偏置、用激活函数获得非线性特征并进行池化操作,完成后即得到当前层卷积层的最终结果。进一步地,利用计算阵列对深度残差网络的全连接层中的矩阵乘法运算进行计算,每一层全连接层的计算过程如下:①假设上层神经元个数为m个,本层神经元个数为n个,则共有m*n个权重,将这m*n个权重按顺序排列成一个矩阵,采用与该矩阵尺寸相同的计算阵列,计算阵列的光输入量为矩阵中对应的值;②将上层输出的m个值作为计算阵列的电输入量;③电输入量按照比特位输入进光电计算阵列中,即每一次输入一个比特;当计算阵列计算完成后,每一列的结果都经过模数转换器转换得到数字信号,再将数字信号分别按照对应位进行移位,然后累加得到结果,结果的形式为长度为n的向量;④对所述长度为n的向量添加偏置并进行激活操作,完成后即得到当前层全连接层的最终结果。进一步地,利用计算阵列对深度残差网络的残差学习单元的运算进行计算,计算过程如下:①每一个残差学习单元包括两层,是由两个规模大小相同、卷积核大小和个数也相同的卷积层上下连接而成;其中第一层的输入的值直接与第二层的输出的值相加,随后通过激活函数激活,作为残差学习单元的输出;②上述若干个残差学习单元上下连接,共同组成深度残差网络的主体结构;如果上一个残差学习单元的输出特征图大小与下一个残差学习单元中第二层卷积层的输出特征图大小不相同,即同一个残差学习单元中第一层的输入特征图大小与第二层的输出特征图大小不相同,此时通过补零或映射方法使两层的特征图大小变得相同。本专利技术提出了一种基于光电计算阵列对深度残差网络进行加速的方法,该方法利用的光电计算器件可以实现高精度的存-算一体功能,单个器件即可以存储光输入端的光信号并在断光后长时间保存,并且可以实现单个器件即完成乘法运算,非常适合加速以神经网络算法、CT算法为代表的一系列需要大量运算矩阵向量乘法的算法。本专利技术借助计算阵列的面积和功耗优势,相比传统数字电路加速的深度残差网络,可以节省大量的产品体积和能耗。附图说明图1是计算单元的多功能区框图。图2是光电计算阵列的结构示意图。图3是实施例1计算单元结构的(a)截面图和(b)立体图。图4是实施例2计算单元结构的(a)截面图和(b)立体图。图5是实施例3计算单元的(a)结构示意图和(b)多功能区示意图。图6是实施例4的深度残差网络硬件加速器框图。图7是实施例4的1434层深度残差网络的部分结构示意图。图8是实施例4的卷积操作展开为矩阵乘法的原理示意图,(a)为n个卷积核对一张特征图进行卷积操作,输出n个通道的结果;(b)为特征图中对应卷积核的区域按列方向展开作为输入,n个卷积核按列方向展开后拼接为卷积核矩阵,乘法的结果为n列矩阵,每一列对应a中一个通道的结果。图9是实施例5的1534层深度残差网络的全连接层结构示意图。图中:1-发光阵列,2-计算阵列。具体实施方式本专利技术的目的在于利用光电计算阵列来搭建深度残差网络的加速器模型,以获得更小的面积和更高的能效。深度残差网络模型包括若干层卷积层、全连接层,以及大量的残差学习单元;每一个卷积层均使用了BN操作,并使用ReLU激活函数进行激活。光电计算阵列可以用极小的代价计算大规模矩阵乘法,而通过展开卷积操作,可以使其表示为矩阵乘法。本实施例将输入特征图片按照某种颜色标准量化为多个通道本文档来自技高网...

【技术保护点】
1.一种基于光电计算阵列的深度残差网络的加速方法,其特征在于,所述光电计算阵列包括由多个发光单元周期排列组成的发光阵列和由多个计算单元周期排列组成的计算阵列;所述加速方法包括如下步骤:发光阵列将深度残差网络的权重通过光输入的方法输入到计算阵列中,作为光输入量,并保存在计算阵列中;将图像数据量化为单比特的数据后输入到计算阵列中,作为电输入量;利用计算阵列分别对深度残差网络的卷积层、全连接层和残差学习单元中的运算进行计算,计算完成后输出数字信号,再对该数字信号进行移位累加操作,得到最终结果。

【技术特征摘要】
1.一种基于光电计算阵列的深度残差网络的加速方法,其特征在于,所述光电计算阵列包括由多个发光单元周期排列组成的发光阵列和由多个计算单元周期排列组成的计算阵列;所述加速方法包括如下步骤:发光阵列将深度残差网络的权重通过光输入的方法输入到计算阵列中,作为光输入量,并保存在计算阵列中;将图像数据量化为单比特的数据后输入到计算阵列中,作为电输入量;利用计算阵列分别对深度残差网络的卷积层、全连接层和残差学习单元中的运算进行计算,计算完成后输出数字信号,再对该数字信号进行移位累加操作,得到最终结果。2.根据权利要求1所述的一种基于光电计算阵列的深度残差网络的加速方法,其特征在于,所述计算单元包括载流子控制区、耦合区、以及光生载流子收集区和读出区;所述载流子控制区用于控制并调制光生载流子收集区和读出区内的载流子;所述光生载流子收集区和读出区中的收集区用于吸收发光单元发射的光子并收集产生的光生载流子;所述载流子控制区或者光生载流子收集区和读出区中的读出区与电信号连接,读出区用于输出被所述光生载流子和所述电信号作用后的载流子;所述耦合区连接收集区和读出区。3.根据权利要求1所述的一种基于光电计算阵列的深度残差网络的加速方法,其特征在于,利用计算阵列对深度残差网络的卷积层中的卷积运算进行计算,每一层卷积层的计算过程如下:①对于当前卷积层的m个卷积核,将每个卷积核按列展开然后拼接为一列向量,如是m个卷积核对应的m列向量则拼接为一个矩阵,对于输入的n个通道的图像特征图,将n个矩阵上下拼接为一个新的大矩阵,采用与该大矩阵尺寸相同的计算阵列,计算阵列的光输入量为大矩阵中对应的值;②对于输入的n个图像特征图进行批标准化操作;③当前卷积层的输入为n个通道的图像特征图,对于其中的每一个图像特征图进行如下操作获得n'个矩阵:选取和卷积核相同大小的区域,按照规定的步幅,在新的特征图上进行移动p次;每次移动,都将特征图中所对应的值取出,按照纵向顺序展开并拼接为一行向量;移动完成后,便得到了p行向量,将其按顺序上下拼接为一个矩阵;④将所述n'个矩阵左右拼接,得到最终的电输入矩阵;按照从上到下的顺序依次将电输入矩阵的每一行输入计算阵列,行向量的每一列元素对应计算阵列的每一行;⑤行向量按照比特位输入到计算阵列中,即每一次输入一个比特;当计算阵列计...

【专利技术属性】
技术研发人员:王瑶娄胜王宇宣
申请(专利权)人:南京吉相传感成像技术研究院有限公司
类型:发明
国别省市:江苏,32

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

1