Including the calculation method, a neural network in convolution: according to the input feature map, convolution kernel, and layer by layer by layer by convolution convolution and pointwise convolution calculation, to obtain a first predetermined number of P points in all output by convolution on the output channel eigenvalue and repeated; the above operation, to get all the points in the feature points by all the output value of the convolution output channel. Therefore, the storage space used to store the intermediate results can be reduced.
【技术实现步骤摘要】
神经网络中的卷积计算方法和电子设备
本申请涉及神经网络
,且更具体地,涉及一种神经网络中的卷积计算方法和电子设备。
技术介绍
基于卷积神经网络的深度学习技术能够以较高的准确率进行图像识别和检测、语音识别等,因此被广泛地应用于安全监控、辅助驾驶、智能陪伴机器人、智能医疗等领域。由于卷积神经网络中的运算量通常很大,减少神经网络的参数量和计算量成为现在研究的一个热点方向。移动网络(MobileNet)就是最新提出的一种特殊的卷积神经网络,其通过将传统的三维卷积操作分解成逐层卷积(Depthwise)和逐点卷积(Pointwise)两个卷积操作,达到减小计算量的目的,但是计算精度却和传统的卷积相差很少。
技术实现思路
关于MobileNet的现有实现方案,无论是基于通用处理器(CPU),专用图形处理器(GPU),还是专用处理芯片,都需要先计算完逐层卷积操作的输出结果,然后再将它们作为逐点卷积操作的输入数据,再进行计算。这样做的缺点是,当输入输出数据量比较大时,需要较大的片内随机存储器(SRAM)缓存中间结果。然而,片内SRAM大小是固定的,如果遇到片内SRAM大小不足以缓存中间结果的情况,就需要将逐层卷积操作拆分为多次计算,并将每次计算结果写入到片外存储器(DDR)中,直到将逐层卷积操作的计算结果全部计算完成并写入片外存储器(DDR)后,再分批将这些结果从DDR中读出,进行逐点卷积计算。显然,这将给有限的数据传输带宽带来极大的负担,并且导致系统功耗增加。为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种神经网络中的卷积计算方法和电子设备,其可以减小用于 ...
【技术保护点】
一种神经网络中的卷积计算方法,包括:根据输入特征图、逐层卷积核、和逐点卷积核进行逐层卷积计算和逐点卷积计算,以得到第一预定数目p个点在所有逐点卷积输出通道上的输出特征值;以及重复上述操作,以得到所有点在所有逐点卷积输出通道上的输出特征值。
【技术特征摘要】
1.一种神经网络中的卷积计算方法,包括:根据输入特征图、逐层卷积核、和逐点卷积核进行逐层卷积计算和逐点卷积计算,以得到第一预定数目p个点在所有逐点卷积输出通道上的输出特征值;以及重复上述操作,以得到所有点在所有逐点卷积输出通道上的输出特征值。2.如权利要求1所述的方法,还包括:根据存储器中的可用空间、逐层卷积计算单元的数目、和所述输入特征图的宽高维度和输入通道数维度中的至少一个来确定所述第一预定数目p。3.如权利要求1所述的方法,其中,根据输入特征图、逐层卷积核、和逐点卷积核进行逐层卷积计算和逐点卷积计算,以得到第一预定数目p个点在所有逐点卷积输出通道上的输出特征值包括:根据所述输入特征图和所述逐层卷积核进行逐层卷积计算,以得到第一预定数目p个点在第二预定数目m个逐层卷积输出通道上的中间特征值;根据所述第一预定数目p个点在所述第二预定数目m个逐层卷积输出通道上的中间特征值和逐点卷积核进行逐点卷积计算,以得到第一预定数目p个点在所有逐点卷积输出通道上的本次逐点卷积部分和;分别将所述第一预定数目p个点在所有逐点卷积输出通道上的本次逐点卷积部分和与所述第一预定数目p个点的前次累加计算结果进行累加计算,以生成所述第一预定数目p个点的本次累加计算结果;以及重复上述操作,根据所述第一预定数目p个点在下第二预定数目m个逐层卷积输出通道上的中间特征值和逐点卷积核进行逐点卷积计算,并相应地执行后续操作,直到所述第一预定数目p个点在所有逐层卷积输出通道上的中间特征值都完成逐点卷积计算和累加计算为止,所述第一预定数目p个点的最终累加计算结果为所述第一预定数目p个点在所有逐点卷积输出通道上的输出特征值。4.如权利要求3所述的方法,其中,所述第二预定数目m是根据逐层卷积计算单元的数目和所述第一预定数目p来确定的。5.如权利要求3所述的方法,其中,根据所述输入特征图和所述逐层卷积核进行逐层卷积计算,以得到第一预定数目p个点在第二预定数目m个逐层卷积输出通道上的中间特征值包括:从所述输入特征图中读取第一预定数目p组点在第二预定数目m个输入通道上的输入特征值;与所述第一预定数目p组点在所述第二预定数目m个输入通道上的输入特征值对应地,读取对应的第二预定数目m个逐层卷积核中的权重值;以及分别对所述第一预定数目p组点在所述第二预定数目m个输入通道上的输入特征值与对应的第二预定数目m个逐层卷积核中的权重值进行逐层卷积计算,以得到与所述第一预定数目p组点分别对应的所述第一预定数目p个点在所述第二预定数目m个逐层卷积输出通道上的中间特征值。6.如权利要求5所述的方法,其中,从所述输入特征图中读取第一预定数目p组点在第二预定数目m个输入通道上的输入特征值包括:以逐层卷积核中的权重值的宽高为一组点的宽高、以所述逐层卷积计算的步长为两组点之间的读取步长,从所述输入特征图中读取所述第一预定数目p组点在所述第二预定数目m个输入通道上的输入特征值。7.如权利要求5所述的方法,其中,分别对所述第一预定数目p组点在所述第二预定数目m个输入通道上的输入特征值与对应的第二预定数目m个逐层卷积核中的权重值进行逐层卷积计算,以得到与所述第一预定数目p组点分别对应的所述第一预定数目p个点在所述第二预定数目m个逐层卷积输出通道上的中间特征值包括:针对所述第一预定数目p组点中的每组点,执行以下操作:分别对该组点中的一个点在所述第二预定数目m个输入通道上的输入特征值与对应的第二预定数目m个逐层卷积核中的相应一个权重值进行乘法计算,以得到该组点的本次乘法计算结果;分别将该组点的本次乘法计算结果与该组点的前次乘法计算结果进行累加计算,以生成该组点的本次累加计算结果;以及重复上述操作,分别对该组点中的下一个点在所述第二预定数目m个输入通道上的输入特征值与对应的第二预定数目m个逐层卷积核中的相应下一个权重值进行乘法计算并相应地执行后续操作,直到该组点中的所有点在所述第二预定数目m个输入通道上的输入特征值都完成乘法计算和累加计算为止,该组点的最终累加计算结果为与该组点对应的一个点在所述第二预定数目m个逐层卷积输出通道上的中间特征值。8.如权利要求3所述的方法,还包括:在得到所述第一预定数目p个点在第二预定数目m个逐层卷积输出通道上的中间特征值之后,在存储器中存储每个中间特征值。9.如权利要求8所述的方法,还包括:当在存储器中存储每个中间特征值之前,对每个中间特征值执行以下各项中的至少一个:激活操作和量化操作。10.如权利要求3所述的方法,其中,根据所述第一预定数目p个点在所述第二预定数目m个逐层卷积输出通道上的中间特征值和逐点卷积核进行逐点卷积计算,以得到第一预定数目p个点在所有逐点卷积输出通道上的本次逐点卷积部分和包括:分别根据所述第一预定数目p个点在第三预定数目m’个逐层卷积输出通道上的中间特征值和所有逐点卷积核中对应的第三预定数目m’个逐点卷积通道上的权重值进行逐点卷积计算,以得到所述第一预定数目p个点在所有逐点卷积输出通道上的本次逐点卷积子部分和;分别将所述第一预定数目p个点在所有逐点卷积输出通道上的本次逐点卷积子部分和与所述第一预定数目p个点的前次累加计算子结果进行累加计算,以生成所述第一预定数目...
【专利技术属性】
技术研发人员:陈亮,黄畅,凌坤,李建军,李德林,罗恒,
申请(专利权)人:北京地平线信息技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。