技术领域
本发明涉及一种区块式推论方法及其系统,特别涉及一种卷积神经网络的存储器优化的区块式推论方法及其系统。
背景技术
当使用卷积神经网络于影像处理应用时,其外部存储器频宽需求可能会相当高,而使用区块式推论流程,可以大幅降低此频宽需求。然而,区块间会有重叠的特征向量,目前已知有两种不同的处理方法,一种是采重新计算方式,另一种则是采重复利用方式。其中前者会增加计算量而降低输出像素量,而后者则是需要大量的区块暂存器来存放重复使用的特征向量。由此可知,目前市场上缺乏一种能在不增加太多计算量以及区块暂存器前提下,可大幅降低外部存储器频宽需求的卷积神经网络的存储器优化的区块式推论方法及其系统,故相关业者均在寻求其解决之道。
发明内容
因此,本发明的目的在于提供一种卷积神经网络的存储器优化的区块式推论方法及其系统,当进行区块式推论时,于区块前行的方向上重复利用已计算过的特征,而于另一个方向上采用重新计算的方式,使区块式推论在不增加过多计算量以及区块暂存器的前提下,依然能大幅降低外部存储器的频宽需求。
依据本发明的方法样式的一实施方式提供一种卷积神经网络的存储器优化的区块式推论方法,其用以处理一输入影像。此卷积神经网络的存储器优化的区块式推论方法包含参数设定步骤、分割步骤、区块推论步骤以及暂存步骤,其中参数设定步骤是设定一推论参数组,此推论参数组包含一卷积深度、一区块宽度、一区块高度及多层卷积核大小。分割步骤是驱动一运算处理单元依据卷积深度、区块宽度、区块高度及此些层卷积核大小划分输入影像成多个输入区块数据,各输入区块数据具有输入区块大小。区块推论步骤是驱动运算处理单元将各输入区块数据执行多层卷积操作而产生输出区块数据,此多层卷积操作包含第一方向数据选取步骤、第二方向数据选取步骤及一卷积运算步骤,其中第一方向数据选取步骤是依据输出区块数据的一位置沿一扫描换行方向选择多个第i层重新计算特征,然后依据输出区块数据的位置及此些第i层重新计算特征选取出一第i层重新计算输入特征区块数据,其中i为1至卷积深度的多个正整数的其中一者。第二方向数据选取步骤是依据第i层重新计算输入特征区块数据沿一区块扫描方向选取出多个第i层重复利用特征,并将第i层重新计算输入特征区块数据及此些第i层重复利用特征组合而产生一第i层重复利用输入特征区块数据。此外,卷积运算步骤是依据第i层卷积核大小从第i层重复利用输入特征区块数据中选取出多个第i层子区块输入特征群,然后对各第i层子区块输入特征群及一卷积参数组执行一卷积运算而产生一第i层子区块输出特征,并将对应此些第i层子区块输入特征群的此些第i层子区块输出特征组合而形成一第i层输出特征区块数据。暂存步骤是驱动一区块暂存器暂存第i层输出特征区块数据及此些第i层重复利用特征。
借此,本发明的卷积神经网络的存储器优化的区块式推论方法通过不同方向使用不同特征的计算方式,使区块式推论在不增加过多计算量以及区块暂存器的前提下,依然能大幅降低外部存储器的频宽需求。
前述实施方式的其他实施例如下:当前述i等于1时,第i层重新计算输入特征区块数据等于各输入区块数据。当i等于卷积深度时,第i层输出特征区块数据等于输出区块数据。
前述实施方式的其他实施例如下:前述第i层重新计算输入特征区块数据具有一第i层重新计算输入特征区块大小与一第i层重新计算输入特征区块通道数,第i层输出特征区块数据具有一第i层输出特征区块大小与一第i层输出特征区块通道数。第i层输出特征区块大小大于第i层重新计算输入特征区块大小,且第i层重新计算输入特征区块通道数等于第i层输出特征区块通道数。
前述实施方式的其他实施例如下:前述区块扫描方向垂直于扫描换行方向,区块宽度大于区块高度,且区块高度的延伸方向平行于区块扫描方向。
前述实施方式的其他实施例如下:前述卷积深度、区块宽度及区块高度均为正整数,第i层卷积核大小为k
前述实施方式的其他实施例如下:前述区块宽度表示为B
前述实施方式的其他实施例如下:当前述其中一第i层子区块输入特征群的多个输入特征的至少一者位于第i层重复利用输入特征区块数据的外区域时,此其中一第i层子区块输入特征群的此些输入特征包含多个外区块特征及多个第一内区块特征。此些外区块特征代表已运算的特征,此些第一内区块特征代表未运算的特征。再者,当其中一第i层子区块输入特征群的此些输入特征均位于第i层重复利用输入特征区块数据的内区域时,此其中一第i层子区块输入特征群的此些输入特征仅包含多个第二内区块特征。第i层重复利用输入特征区块数据沿区块扫描方向的排列顺序为外区域与内区域。
前述实施方式的其他实施例如下:前述外区块特征是存储于区块暂存器,此区块暂存器具有暂存空间,暂存空间通过第i层重新计算输入特征区块数据的宽度、卷积深度、层数、通道数及第i层卷积核大小运算求得。第i层重新计算输入特征区块数据的宽度表示为B
依据本发明的结构样式的一实施方式提供一种卷积神经网络的存储器优化的区块式推论系统,其用以处理一输入影像,此卷积神经网络的存储器优化的区块式推论系统包含区块暂存器以及运算处理单元,其中区块暂存器用以存取第i层输出特征区块数据及多个第i层重复利用特征。运算处理单元电性连接于区块暂存器,运算处理单元接收输入影像并经配置以实施包含以下步骤的操作:参数设定步骤、分割步骤及区块推论步骤。其中参数设定步骤是设定推论参数组,推论参数组包含卷积深度、区块宽度、区块高度及多层卷积核大小。分割步骤是依据卷积深度、区块宽度、区块高度及此些层卷积核大小划分输入影像成多个输入区块数据,各输入区块数据具有输入区块大小。此外,区块推论步骤是将各输入区块数据执行一多层卷积操作而产生输出区块数据,且此多层卷积操作包含第一方向数据选取步骤、第二方向数据选取步骤及卷积运算步骤。第一方向数据选取步骤是依据输出区块数据的位置沿扫描换行方向选择多个第i层重新计算特征,然后依据输出区块数据的位置及此些第i层重新计算特征选取出第i层重新计算输入特征区块数据,其中i为1至卷积深度的多个正整数的其中一者。第二方向数据选取步骤是依据第i层重新计算输入特征区块数据沿区块扫描方向选取出此些第i层重复利用特征,并将第i层重新计算输入特征区块数据及此些第i层重复利用特征组合而产生第i层重复利用输入特征区块数据。卷积运算步骤是依据第i层卷积核大小从第i层重复利用输入特征区块数据中选取出多个第i层子区块输入特征群,然后对各第i层子区块输入特征群及一卷积参数组执行卷积运算而产生第i层子区块输出特征,并将对应此些第i层子区块输入特征群的此些第i层子区块输出特征组合而形成第i层输出特征区块数据。
借此,本发明的卷积神经网络的存储器优化的区块式推论系统通过不同方向使用不同特征的计算方式,使区块式推论在不增加过多计算量以及区块暂存器的前提下,依然能大幅降低外部存储器的频宽需求。
前述实施方式的其他实施例如下:当前述i等于1时,第i层重新计算输入特征区块数据等于各输入区块数据。而当i等于卷积深度时,第i层输出特征区块数据等于输出区块数据。
前述实施方式的其他实施例如下:前述第i层重新计算输入特征区块数据具有第i层重新计算输入特征区块大小与第i层重新计算输入特征区块通道数,第i层输出特征区块数据具有第i层输出特征区块大小与第i层输出特征区块通道数。第i层输出特征区块大小大于第i层重新计算输入特征区块大小,且第i层重新计算输入特征区块通道数等于第i层输出特征区块通道数。
前述实施方式的其他实施例如下:前述区块扫描方向垂直于扫描换行方向,区块宽度大于区块高度,且区块高度的延伸方向平行于区块扫描方向。
前述实施方式的其他实施例如下:前述卷积深度、区块宽度及区块高度均为正整数,第i层卷积核大小为k
前述实施方式的其他实施例如下:前述区块宽度表示为B
前述实施方式的其他实施例如下:当前述其中一第i层子区块输入特征群的多个输入特征的至少一者位于第i层重复利用输入特征区块数据的外区域时,此其中一第i层子区块输入特征群的此些输入特征包含多个外区块特征及多个第一内区块特征。此些外区块特征代表已运算的特征,此些第一内区块特征代表未运算的特征。再者,当其中一第i层子区块输入特征群的此些输入特征均位于第i层重复利用输入特征区块数据的内区域时,此其中一第i层子区块输入特征群的此些输入特征仅包含多个第二内区块特征。第i层重复利用输入特征区块数据沿区块扫描方向的排列顺序为外区域与内区域。
前述实施方式的其他实施例如下:前述外区块特征是存储于区块暂存器,区块暂存器具有暂存空间,暂存空间通过第i层重新计算输入特征区块数据的宽度、卷积深度、层数、通道数及第i层卷积核大小运算求得。第i层重新计算输入特征区块数据的宽度表示为B
附图说明
图1是示出本发明第一实施例的卷积神经网络的存储器优化的区块式推论方法的流程示意图;
图2是示出图1的分割步骤的示意图;
图3是示出图1的区块推论步骤的多层卷积操作的输入区块数据与输出区块数据的立体示意图;
图4是示出图1的第一方向数据选取步骤的示意图;
图5是示出图1的第二方向数据选取步骤的示意图;
图6是示出图3的第1层重复利用输入特征区块数据的示意图;
图7是示出本发明第二实施例的通道混洗的示意图;
图8是示出本发明第三实施例的卷积神经网络的存储器优化的区块式推论系统的方框示意图;
图9是示出本发明第四实施例的具有3×3滤波器的多层卷积操作的流程示意图;以及
图10是示出重新计算、重复利用及本发明的重新计算并重复利用的模拟结果示意图。
附图标记说明:
100:卷积神经网络的存储器优化的区块式推论方法
S02:参数设定步骤
S04:分割步骤
S06:区块推论步骤
S062:第一方向数据选取步骤
S064:第二方向数据选取步骤
S066:卷积运算步骤
S08:暂存步骤
110:输出影像
200:卷积神经网络的存储器优化的区块式推论系统
212:推论参数组
214:卷积参数组
220:区块暂存器
230:运算处理单元
232:卷积引擎
B
B
C1:第i层重复利用输入特征区块通道数
C2:第i层中间特征区块通道数
C3:第i层输出特征区块通道数
D:卷积深度
D
D1:扫描换行方向
D2:区块扫描方向
FC:重新计算
FU:重复利用
FCFU:重新计算并重复利用
IB:输入区块数据
IR:内区域
k-1:重复利用特征数量
L1:第1层
L1FC:第1层重新计算特征
L1FC_I:第1层重新计算输入特征区块数据
L1FU:第1层重复利用特征
L1FU_I:第1层重复利用输入特征区块数据
L1_O:第1层输出特征区块数据
L2:第2层
L2FC:第2层重新计算特征
L2FC_I:第2层重新计算输入特征区块数据
L2FU:第2层重复利用特征
L2FU_I:第2层重复利用输入特征区块数据
L2_O:第2层输出特征区块数据
L3:第3层
L3FC:第3层重新计算特征
L3FC_I:第3层重新计算输入特征区块数据
L3FU:第3层重复利用特征
L3FU_I:第3层重复利用输入特征区块数据
L3_O:第3层输出特征区块数据
LD:第D层
LiFU_I:第i层重复利用输入特征区块数据
Li_M:第i层中间区块数据
Li_O:第i层输出特征区块数据
NTR:标准化吞吐率
OB:输出区块数据
OR:外区域
S:区块暂存器大小限制
SBG1,SBG11,SBG12:第1层子区块输入特征群
SBG2:第2层子区块输入特征群
SBG3:第3层子区块输入特征群
具体实施方式
以下将参照附图说明本发明的多个实施例。为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本发明。也就是说,在本发明部分实施例中,这些实务上的细节是非必要的。此外,为简化附图起见,一些现有惯用的结构与元件在附图中将以简单示意的方式示出之;并且重复的元件将可能使用相同的编号表示。
此外,本文中当某一元件(或单元或模块等)“连接”于另一元件,可指所述元件是直接连接于另一元件,亦可指某一元件是间接连接于另一元件,意即,有其他元件介于所述元件及另一元件之间。而当有明示某一元件是“直接连接”于另一元件时,才表示没有其他元件介于所述元件及另一元件之间。而第一、第二、第三等用语只是用来描述不同元件,而对元件本身并无限制,因此,第一元件亦可改称为第二元件。且本文中的元件/单元/电路的组合非此领域中的一般周知、常规或现有的组合,不能以元件/单元/电路本身是否为现有,来判定其组合关系是否容易被技术领域中的通常知识者轻易完成。
请参阅图1,图1是示出本发明第一实施例的卷积神经网络的存储器优化的区块式推论方法100的流程示意图。此卷积神经网络的存储器优化的区块式推论方法100用以处理一输入影像而产生一输出影像,且包含一参数设定步骤S02、分割步骤S04、区块推论步骤S06以及暂存步骤S08。
参数设定步骤S02是设定一推论参数组,此推论参数组包含卷积深度(depth)、区块宽度、区块高度及多层卷积核大小(kernel size)。此些层卷积核大小的层数等于卷积深度。
分割步骤S04是驱动运算处理单元依据卷积深度、区块宽度、区块高度及此些层卷积核大小划分输入影像成多个输入区块数据,各输入区块数据具有一输入区块大小。
区块推论步骤S06是驱动运算处理单元将各输入区块数据执行一多层卷积操作而产生输出区块数据,且多层卷积操作包含第一方向数据选取步骤S062、第二方向数据选取步骤S064及卷积运算步骤S066。其中第一方向数据选取步骤S062是依据输出区块数据的位置沿扫描换行方向选择多个第i层重新计算特征,然后依据输出区块数据的位置及此些第i层重新计算特征选取出一第i层重新计算输入特征区块数据,其中i为1至卷积深度的多个正整数的其中一者。此外,第二方向数据选取步骤S064是依据第i层重新计算输入特征区块数据沿区块扫描方向选取出多个第i层重复利用特征,并将第i层重新计算输入特征区块数据及此些第i层重复利用特征组合而产生一第i层重复利用输入特征区块数据。再者,卷积运算步骤S066是依据第i层卷积核大小从第i层重复利用输入特征区块数据中选取出多个第i层子区块输入特征群,然后对各第i层子区块输入特征群及卷积参数组执行卷积运算而产生第i层子区块输出特征,并将对应此些第i层子区块输入特征群的此些第i层子区块输出特征组合而形成第i层输出特征区块数据。卷积参数组包含权重参数(weightparameter)与偏差参数(bias parameter)。
暂存步骤S08是驱动区块暂存器(Block buffer bank)暂存第i层输出特征区块数据及此些第i层重复利用特征。
借此,本发明的卷积神经网络的存储器优化的区块式推论方法100通过不同方向使用不同特征的计算方式,使区块式推论在不增加过多计算量以及区块暂存器的前提下,依然能大幅降低外部存储器的频宽需求。以下将通过较详细的实施例来说明上述各步骤的细节。
请一并参阅图1至图6,其中图2是示出图1的分割步骤S04的示意图;图3是示出图1的区块推论步骤S06的多层卷积操作的输入区块数据IB与输出区块数据OB的立体示意图;图4是示出图1的第一方向数据选取步骤S062的示意图;图5是示出图1的第二方向数据选取步骤S064的示意图;以及图6是示出图3的第1层重复利用输入特征区块数据L1FU_I的示意图。如图所示,此实施例是于每一层(即第i层的i=1~D)均执行第一方向数据选取步骤S062、第二方向数据选取步骤S064及卷积运算步骤S066。卷积深度D、区块宽度B
在图3至图6中,卷积深度D为3,区块宽度B
第1层卷积操作(i=1)包含第一方向数据选取步骤S062、第二方向数据选取步骤S064及卷积运算步骤S066。其中第一方向数据选取步骤S062是依据输出区块数据OB(即第3层输出特征区块数据L3_O)的位置沿扫描换行方向D1选择6个第1层重新计算特征L1FC(即(D-i+1)×(k-1)个),然后依据输出区块数据OB的位置及此些第1层重新计算特征L1FC选取出一第1层重新计算输入特征区块数据L1FC_I。此第1层重新计算输入特征区块数据L1FC_I等于输入区块数据IB,输入区块数据IB的输入区块大小等于第1层重新计算输入特征区块数据L1FC_I的第1层重新计算输入特征区块大小,且均等于(B
第2层卷积操作(i=2)包含第一方向数据选取步骤S062、第二方向数据选取步骤S064及卷积运算步骤S066。其中第一方向数据选取步骤S062是依据输出区块数据OB(即第3层输出特征区块数据L3_O)的位置沿扫描换行方向D1选择4个第2层重新计算特征L2FC(即(D-i+1)×(k-1)个),然后依据输出区块数据OB的位置及此些第2层重新计算特征L2FC选取出一第2层重新计算输入特征区块数据L2FC_I。第2层重新计算输入特征区块数据L2FC_I等于第1层输出特征区块数据L1_O。第2层重新计算输入特征区块数据L2FC_I的第2层重新计算输入特征区块大小等于(B
第3层卷积操作(i=3)包含第一方向数据选取步骤S062、第二方向数据选取步骤S064及卷积运算步骤S066。其中第一方向数据选取步骤S062是依据输出区块数据OB(即第3层输出特征区块数据L3_O)的位置沿扫描换行方向D1选择2个第3层重新计算特征L3FC(即(D-i+1)×(k-1)个),然后依据输出区块数据OB的位置及此些第3层重新计算特征L3FC选取出一第3层重新计算输入特征区块数据L3FC_I。第3层重新计算输入特征区块数据L3FC_I等于第2层输出特征区块数据L2_O。第3层重新计算输入特征区块数据L3FC_I的第3层重新计算输入特征区块大小等于(B
在本发明的卷积神经网络的存储器优化的区块式推论方法100中,当其中一第i层子区块输入特征群的多个输入特征的至少一者位于第i层重复利用输入特征区块数据的外区域时,此其中一第i层子区块输入特征群的输入特征包含多个外区块特征及多个第一内区块特征。外区块特征代表前一区块已运算的特征,而第一内区块特征代表目前区块未运算的特征。另外,当其中一第i层子区块输入特征群的输入特征均位于第i层重复利用输入特征区块数据的内区域时,此其中一第i层子区块输入特征群的输入特征仅包含多个第二内区块特征,第二内区块特征代表目前区块未运算的特征。第i层重复利用输入特征区块数据沿区块扫描方向D2的排列顺序为外区域与内区域。举图6为例,当第1层子区块输入特征群SBG11的9个输入特征的6个位于第1层重复利用输入特征区块数据L1FU_I的外区域OR时,此第1层子区块输入特征群SBG11的9个输入特征包含6个外区块特征及3个内区块特征。外区块特征代表已运算的特征且位于外区域OR,而内区块特征代表未运算的特征且位于内区域IR。另外,当第1层子区块输入特征群SBG12的9个输入特征均位于第1层重复利用输入特征区块数据L1FU_I的内区域IR时,此第1层子区块输入特征群SBG12的9个输入特征仅包含9个内区块特征,亦即9个输入特征均为内区块特征。此外,第1层重复利用输入特征区块数据L1FU_I沿区块扫描方向D2的排列顺序为外区域OR与内区域IR。
另外值得一提的是,在暂存步骤S08中,第i层的LiFC_I的最下面k
请一并参阅图1至图7,其中图7是示出本发明第二实施例的通道混洗(shuffle)的示意图。本发明的推论流程可应用于通道混洗的运算,第i层重复利用输入特征区块数据LiFU_I具有一第i层重复利用输入特征区块大小W1×H1与一第i层重复利用输入特征区块通道数C1。第i层中间区块数据Li_M具有一第i层中间特征区块大小W2×H2与一第i层中间特征区块通道数C2。第i层输出特征区块数据Li_O具有一第i层输出特征区块大小W3×H3与一第i层输出特征区块通道数C3。第i层输出特征区块大小W3×H3大于第i层重复利用输入特征区块大小W1×H1,且第i层重复利用输入特征区块大小W1×H1大于第i层中间特征区块大小W2×H2。其中W1、W2及W3为区块宽度,H1、H2及H3为区块高度。此外,第i层重复利用输入特征区块通道数C1等于第i层输出特征区块通道数C3,且第i层中间特征区块通道数C2大于第i层重复利用输入特征区块通道数C1。举例来说,第i层重复利用输入特征区块大小W1×H1、第i层中间特征区块大小W2×H2及第i层输出特征区块大小W3×H3可分别为10×10、8×8及16×16,而第i层重复利用输入特征区块通道数C1、第i层中间特征区块通道数C2及第i层输出特征区块通道数C3可分别为32、128及32,但本发明不以此为限。
借此,本发明可实现特定的多层卷积操作,当进行区块式推论时,于区块前行的方向(即区块扫描方向D2)上重复利用已计算过的特征,而于另一个方向(即扫描换行方向D1)上采用重新计算的方式,使区块式推论在不增加过多计算量以及区块暂存器的前提下,依然能大幅降低外部存储器的频宽需求。
请一并参阅图1、图2、图8及图9,其中图8是示出本发明第三实施例的卷积神经网络的存储器优化的区块式推论系统200的方框示意图;以及图9是示出本发明第三实施例的具有3×3滤波器的多层卷积操作的流程示意图。如图所示,卷积神经网络的存储器优化的区块式推论系统200用以处理输入影像而产生输出影像110,并包含区块暂存器220以及运算处理单元230。输入区块数据IB、推论参数组212及卷积参数组214输入至运算处理单元230,输出区块数据OB输出会组成输出影像110。区块暂存器220用以存取第i层输出特征区块数据及多个第i层重复利用特征,且此两种暂存是使用区块暂存器220中不同位置的区域暂存。此外,运算处理单元230电性连接于区块暂存器220,运算处理单元230接收输入影像并经配置以实施图1的卷积神经网络的存储器优化的区块式推论方法100。运算处理单元230包含卷积引擎232(Convolution Engine),卷积引擎232用以执行卷积运算。运算处理单元230可为微处理器、中央处理器或影像处理器,但本发明不以此为限。L1、L2及LD分别代表第1层、第2层及第D层,第1层L1至第D层LD均通过运算处理单元230的卷积引擎232进行运算。此外,区块暂存器220可存储外区块特征,区块暂存器220具有一暂存空间,此暂存空间可通过第i层重新计算输入特征区块数据的宽度B
举例来说,若每一层(即第i层的i=1~D)均执行第一方向数据选取步骤S062、第二方向数据选取步骤S064及卷积运算步骤S066,且k
借此,本发明的卷积神经网络的存储器优化的区块式推论系统200通过不同方向使用不同特征的计算方式,使区块式推论在不增加过多计算量以及区块暂存器220的前提下,依然能大幅降低外部存储器对输入区块数据IB和输出区块数据OB的频宽需求。
请一并参阅图1与图10,其中图10是示出重新计算(Feature-reComputing;FC)、重复利用(Feature-reUsing;FU)及本发明的重新计算并重复利用(FCFU)的比较结果示意图。其参数设定条件为乘积值A设为64
由图10可知,若对于区块暂存器220有区块暂存器大小限制S,则重复利用FU所能支持的最大支援卷积深度D
由上述实施方式可知,本发明具有下列优点:其一,本发明的卷积神经网络的存储器优化的区块式推论方法通过不同方向使用不同特征的计算方式,使区块式推论在不增加过多计算量以及区块暂存器的前提下,依然能大幅降低外部存储器的频宽需求。其二,本发明的卷积神经网络的存储器优化的区块式推论系统通过不同方向使用不同特征的计算方式,使区块式推论在不增加过多计算量以及区块暂存器的前提下,依然能大幅降低外部存储器的频宽需求。其三,本发明的重新计算并重复利用不仅较重复利用能支持较宽的模型卷积深度范围,而且还能提供较重新计算更好的标准化吞吐率。
虽然本发明已以实施方式公开如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的构思和范围内,当可作各种的变动与润饰,因此本发明的保护范围当视权利要求所界定者为准。
机译: 建立区块链网络中的节点之间的协议的方法,使用多节点分布式网络配置的区块链系统,以及利用区块链系统中的处理器建立要执行的节点之间的协议的方法
机译: 一种在包括多个节点的分布式网络的区块链系统中构建子区块链的方法和区块链系统
机译: 通过优化编程行为来实现推论引擎的系统和方法