CN109615059B - 一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统 - Google Patents
一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统 Download PDFInfo
- Publication number
- CN109615059B CN109615059B CN201811315318.3A CN201811315318A CN109615059B CN 109615059 B CN109615059 B CN 109615059B CN 201811315318 A CN201811315318 A CN 201811315318A CN 109615059 B CN109615059 B CN 109615059B
- Authority
- CN
- China
- Prior art keywords
- filter
- input data
- data block
- vector
- data vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统,包括:根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块进行填零判定,获得数据控制信号;根据数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;对第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算。本发明提供的方法,依据程序中提供的对滤波器数据块和输出数据块的索引向量来判断当前运算是否处在输入填零或者滤波器填零的位置,用硬件结构实现原来需要软件编程实现的判断跳转功能,实现对输入边缘填充运算、滤波器膨胀运算的加速。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统。
背景技术
近年来,卷积深度神经网络算法在图像识别、视频监控等领域得到广泛的应用,该算法可以在CPU上实现,也可以在GPU上实现,为了加速卷积深度神经网络算法的运算速度,目前也有很多专用的加速器实现。
卷积深度神经网络有两个特殊的操作:输入边缘填充和滤波器膨胀。输入边缘填充运算是指为了控制输出矩阵的尺寸以及防止边缘信息的丢失,在运算之前,在输入数据矩阵的行、列两个维度的边缘扩展出来一行一列,或者多行多列,这些扩展的行列内容均填充0。滤波器膨胀运算是指为了让扩大滤波器的视野,在滤波器矩阵元素之间添补零扩大原滤波器尺寸的运算。这两种运算实质上是分别对输入矩阵和滤波器矩阵进行的填零运算。对于这两种运算在算法实现时有两种常用的实现方案,第一种方案是对输入矩阵和滤波器矩阵在卷积运算前进行预处理,将需要填的零提前填充好形成新的矩阵,然后在运算;而另一种方案是用原始矩阵,但是在计算的时候,通过在算法实现的程序中加入判断语句来判断当前运算是否是对需要填零的位置进行计算,如果是则跳过当前运算,如果不是则正常运算。
在现有技术中,对输入矩阵和滤波器矩阵进行填零预处理后,需要存储、传输的数据量就会变大,会降低存储效率,增加存取功耗;而如果不改变原始矩阵,在程序中加入判断的方法,会在程序中引入很多的分支跳转过程,浪费运算时间,降低算法运算速度。
发明内容
本发明实施例提供一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统,用以解决现有技术中对输入矩阵和滤波器矩阵进行填零预处理后,需要存储、传输的数据量就会变大,会降低存储效率,增加存取功耗;而如果不改变原始矩阵,在程序中加入判断的方法,会在程序中引入很多的分支跳转过程,浪费运算时间,降低算法运算速度的问题。
本发明实施例提供一种卷积神经网络中边缘填充和滤波器膨胀运算方法,包括:
根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,获得数据控制信号;
根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;
对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算。
其中,所述方法还包括:将所述输入数据块、滤波器数据块和所述逻辑运算的运算结果进行储存。
其中,所述根据输入的数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,获得数据控制信号的步骤之前,还包括:
根据需要进行计算的输入数据向量与滤波器数据向量在进行缘填充运算后的输入数据块与进行过膨胀运算后的滤波器数据块中的索引信号,计算获得需要进行计算的输入数据向量与滤波器数据向量在所述输入数据块和所述滤波器数据块中对应的索引信号;
根据所述需要进行计算的输入数据向量与滤波器数据向量在输入数据块和所述滤波器数据块中对应的索引信号,从存储器中读取所述第一输入数据向量与第一滤波器数据向量。
其中,根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块进行填零判定,获得数据控制信号的步骤具体包括:
根据输入数据块控制信号和需要进行计算的输入数据向量在进行缘填充运算后的输入数据块中对应的索引信号,计算所述对边缘填充运算后的输入数据块的填零使能标志;
根据滤波器数据块控制信号和需要进行计算的滤波器数据向量在所述进行过膨胀运算后的滤波器数据块中对应的索引信号,计算膨胀运算后的滤波器数据块的填零使能标志;
对所述输入数据块的填零使能标志和所述滤波器数据块的填零使能标志进行或运算,获得数据控制信号。
其中,所述根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量的步骤,具体为:
若数据控制信号为0,则第二输入数据向量等于第一输入数据向量,第二滤波器数据向量等于第一滤波器数据;
若数据控制信号为1,则第二输入数据向量与第二滤波器向量都为零向量。
本发明实施例还提供一种卷积神经网络中边缘填充和滤波器膨胀运算系统,包括:
填零加速单元,用于根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块进行填零判定,获得数据控制信号;
数据选择单元,用于根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;
运算单元,用于对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算。
其中,所述系统还包括:存储单元,用于将所述输入数据块、滤波器数据块和所述逻辑运算的运算结果进行储存。
其中,所述填零加速单元还包括:
输入数据块判断子单元,用于根据输入数据块控制信号和需要进行计算的输入数据向量在进行缘填充运算后的输入数据块中对应的索引信号,计算所述对边缘填充运算后的输入数据块的填零使能标志;
滤波器数据块判断子单元,用于根据滤波器数据块控制信号和需要进行计算的滤波器数据向量在所述进行过膨胀运算后的滤波器数据块中对应的索引信号,计算膨胀运算后的滤波器数据块的填零使能标志;
逻辑门子单元,用于对所述输入数据块的填零使能标志和所述滤波器数据块的填零使能标志进行或运算,获得数据控制信号。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述卷积神经网络中边缘填充和滤波器膨胀运算方法。
本发明实施例还提供一种卷积神经网络中边缘填充和滤波器膨胀运算设备,包括:
至少一个处理器;以及与所述处理器连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述提供的卷积神经网络中边缘填充和滤波器膨胀运算方法。
本发明实施例提供的卷积神经网络中边缘填充和滤波器膨胀运算方法及系统,依据程序中提供的对滤波器数据块和输入数据块的索引向量来判断当前运算是否处在输入填零或者滤波器填零的位置,然后依据判断结果来控制运算通路的使能,从而用硬件结构实现原来需要软件编程实现的判断跳转功能,进而实现对输入边缘填充运算、滤波器膨胀运算的加速。既不需要增加存储开销,又能够省掉分支跳转指令的时间开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种卷积神经网络中边缘填充和滤波器膨胀运算方法的流程示意图;
图2为卷积神经网络中,输入边缘填充运算示意图;
图3为卷积神经网络中,滤波器膨胀运算示意图;
图4为本发明实施例提供的一种卷积神经网络中边缘填充和滤波器膨胀运算方法中,数据控制信号计算流程图;
图5为本发明实施例提供的一种卷积神经网络中边缘填充和滤波器膨胀运算系统的结构示意图;
图6为本发明实施例提供的一种卷积神经网络中边缘填充和滤波器膨胀运算系统的另一结构示意图;
图7为本发明实施例提供的一种卷积神经网络中边缘填充和滤波器膨胀运算设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,图1为本发明实施例提供的一种卷积神经网络中边缘填充和滤波器膨胀运算方法的流程示意图,所述方法包括:
S1,根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,获得数据控制信号;
S2,根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;
S3,对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算。
具体的,在卷积神经网络的输入边缘填充动作中,输入边缘填充运算是针对输入数据块进行的操作,如图2所示,原输入数据块为三维数据块,输入边缘填充运算会分别在原输入数据块的东、南、西、北边填充一行或者多行全零数据,输入边缘填充运算后得到的数据块为填零后的输入数据块。
另一方面,在滤波器膨胀运算过程中,滤波器膨胀运算是针对滤波器数据块进行的操作,如图3所示,原输入数据块为三维数据块,滤波器膨胀运算会依据膨胀系数,在原滤波器数据块的行列两个维度上的数据中间添加零,如膨胀系数为2,则原滤波器数据块在行列维度每隔一个数添加一个零。滤波器进行滤波器膨胀运算后得到的数据块为填零后的滤波器数据块。该模块通常作为计算卷积深度神经网络的加速器的一部分,通常需要和其他部分协同工作。
本实施例中,针对输入的数据块的控制信号,对输入的数据向量进行填零判定,其中,输入的数据向量包括输入数据向量和滤波器数据向量,在进行填零判定后,会生成数据控制信号rdata_mask。
在获得了数控制信号rdata_mask后,对输入数据向量INPUT1和滤波器数据向量FILTER1在rdata_mask的控制下,决定输出数据向量INPUT2和FILTER2分别等于输入数据向量INPUT1和滤波器数据向量FILTER1,还是都等于0信号。其中,输入数据向量INPUT1为N路数据向量,其中,N表示神经网络中运算单元进行运算需要的数据量。当rdata_mask=0时,输出数据向量为INPUT2=INPUT1,FILTER2=FILTER1,当rdata_mask=1时,输出数据向量为:INPUT2=[N{0}],FILTER2=[N{0}],[N{0}]表示输出的N路数据均为0。最后,根据输出数据向量INPUT2和FILTER2,引导神经网络的计算模块进行逻辑运算。
通过本方法,依据程序中提供的对滤波器数据块和输入数据块的索引向量来判断当前运算是否处在输入填零或者滤波器填零的位置,然后依据判断结果来控制运算通路的使能,从而用硬件结构实现原来需要软件编程实现的判断跳转功能,进而实现对输入边缘填充运算、滤波器膨胀运算的加速。既不需要增加存储开销,又能够省掉分支跳转指令的时间开销。
在上述实施例的基础上,所述方法还包括:
将所述输入数据块、滤波器数据块和所述逻辑运算的运算结果进行储存。
具体的,本实施例提供的方法还包括储存步骤,对卷积神经网络需要的运算数据和运算结果进行相应的储存动作。
在上述实施例的基础上,
所述根据输入的数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,获得数据控制信号的步骤之前,还包括:
根据需要进行计算的输入数据向量与滤波器数据向量在进行边缘填充运算后的输入数据块与进行过膨胀运算后的滤波器数据块中的索引信号,计算获得所述需要进行计算的输入数据向量与滤波器数据向量在输入数据块和所述滤波器数据块中对应的索引信号;
根据所述需要进行计算的输入数据向量与滤波器数据向量在输入数据块和所述滤波器数据块中对应的索引信号,从存储器中读取所述第一输入数据向量与第一滤波器数据向量。
具体的,在获得数据控制信号的步骤之前,需要进行第一输入数据向量与第一滤波器数据向量的提取,具体步骤为:根据当前要进行计算的输入数据向量、滤波器数据向量在进行过边缘填充运算后的输入数据块与进行过膨胀运算后的滤波器数据块中的索引信号,计算出相应向量在边缘填充运算前的输入数据块与膨胀运算前的滤波器数据块中的对应的索引信号,根据该索引信号计算出当前要进行计算的数据向量、滤波器数据向量的地址信号,根据所述地址信号从存储器提取所述数据向量,即第一输入数据向量与第一滤波器数据向量。
在上述实施例的基础上,所述根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块进行填零判定,获得数据控制信号的步骤具体包括:
根据输入数据块控制信号和需要进行计算的输入数据向量在进行缘填充运算后的输入数据块中对应的索引信号,计算所述对边缘填充运算后的输入数据块的填零使能标志;
根据滤波器数据块控制信号和需要进行计算的滤波器数据向量在所述进行过膨胀运算后的滤波器数据块中对应的索引信号,计算膨胀运算后的滤波器数据块的填零使能标志;
对所述输入数据块的填零使能标志和所述滤波器数据块的填零使能标志进行或运算,获得数据控制信号。
所述根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量的步骤,具体为:
若数据控制信号为0,则第二输入数据向量等于第一输入数据向量,第二滤波器数据向量等于第一滤波器数据;若数据控制信号为1,则第二输入数据向量与第二滤波器向量都为零向量。
具体实施中,输入数据块填零判断依据控制信号pad_en,pad_size,I_ROW,I_COL以及输入信号i_row,i_col计算出输入数据块填零使能标志pad_flag;pad_en为长度为4的向量,每个元素表示输入数据块一条边的填零使能信号,pad_en[0]表示输入数据块西边的填零使能信号,pad_en[1]表示输入数据块东边的填零使能信号,pad_en[2]表示输入数据块北边的填零使能信号,pad_en[3]表示输入数据块南边的填零使能信号;I_ROW表示原输入数据块的总行数,I_COL表示原输入数据块的总列数;i_row为当前进行计算的向量在填零后的输入数据块的行数;i_col为当前进行计算的向量在填零后的输入数据块的列数。输入数据块填零判断模块的运算逻辑如图4所示模块框图中的表达式所示。其中%表示取模运算;//表示整除运算,即取商的整数部分;&表示逻辑与运算;or表示逻辑或运算。
滤波器数据块填零判断依据dilation_en和dilation_size以及输入信号f_row和f_col计算出滤波器数据块填零使能标志dilation_flag;dilation_en表示原滤波器数据块填零使能信号;dilation_size表示原滤波器数据块的膨胀系数;f_row表示当前进行计算的向量在填零后的滤波器数据块的行数,f_col表示当前进行计算的向量在填零后的滤波器数据块的列数。滤波器数据块填零判断模块的运算逻辑如图4所示模块框图中的表达式所示。
在获得了两个使能标志pad_flag和dilation_flag后,对两个使能标志进行或运算,得到最终的数据控制信号rdata_mask。
综上所述,本发明实施例提供的卷积神经网络中边缘填充和滤波器膨胀运算方法,依据程序中提供的对滤波器数据块和输出数据块的索引向量来判断当前运算是否处在输入填零或者滤波器填零的位置,然后依据判断结果来控制运算通路的使能,从而用硬件结构实现原理需要软件编程实现的判断跳转功能,进而实现对输入边缘填充运算、滤波器膨胀运算的加速,既不需要增加存储开销,又能够省掉分支跳转指令的时间开销。
参考图5,图5为本发明实施例提供的一种卷积神经网络中边缘填充和滤波器膨胀运算系统的结构示意图,所提供的系统包括:填零加速单元51,数据选择单元52,运算单元53。
其中,填零加速单元51用于根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块进行填零判定,获得数据控制信号;
数据选择单元52用于根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;
运算单元53用于对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算。
具体的,针对输入的数据块的控制信号,对输入的数据向量进行填零判定,其中,输入的数据向量包括输入数据向量和滤波器数据向量,在进行填零判定后,会生成数据控制信号rdata_mask。
在获得了数控制信号rdata_mask后,对输入数据向量INPUT1和滤波器数据向量FILTER1在rdata_mask的控制下,决定输出数据向量INPUT2和FILTER2分别等于输入数据向量INPUT1和滤波器数据向量FILTER1,还是都等于0信号。其中,输入数据向量INPUT1为N路数据向量,其中,N表示神经网络中运算单元进行运算需要的数据量。当rdata_mask=0时,输出数据向量为INPUT2=INPUT1,FILTER2=FILTER1,当rdata_mask=1时,输出数据向量为:INPUT2=[N{0}],FILTER2=[N{0}],[N{0}]表示输出的N路数据均为0。最后,根据输出数据向量INPUT2和FILTER2,引导神经网络的计算模块进行逻辑运算。
通过本系统,依据程序中提供的对滤波器数据块和输入数据块的索引向量来判断当前运算是否处在输入填零或者滤波器填零的位置,然后依据判断结果来控制运算通路的使能,从而用硬件结构实现原来需要软件编程实现的判断跳转功能,进而实现对输入边缘填充运算、滤波器膨胀运算的加速。既不需要增加存储开销,又能够省掉分支跳转指令的时间开销。
在上述实施例的基础上,所述系统还包括:存储单元,用于将所述输入数据块、滤波器数据块和所述逻辑运算的运算结果进行储存。
所述填零加速单元还包括:
输入数据块判断子单元,根据输入数据块控制信号和需要进行计算的输入数据向量在进行缘填充运算后的输入数据块中对应的索引信号,计算所述对边缘填充运算后的输入数据块的填零使能标志;
滤波器数据块判断子单元和需要进行计算的滤波器数据向量在所述进行过膨胀运算后的滤波器数据块中对应的索引信号,用于根据滤波器数据块控制信号计算膨胀运算后的滤波器数据块的填零使能标志;
逻辑门子单元,用于对所述输入数据块的填零使能标志和所述滤波器数据块的填零使能标志进行或运算,获得数据控制信号。
具体的,本实施例提供的系统还包括储存步骤,对卷积神经网络需要的运算数据和运算结果进行相应的储存动作。
所述填零加速单元进一步的包括输入数据块填零判断子单元、滤波器数据块判断子单元和逻辑门子单元。
输入数据块填零判断依据控制信号pad_en,pad_size,I_ROW,I_COL以及输入信号i_row,i_col计算出输入数据块填零使能标志pad_flag;pad_en为长度为4的向量,每个元素表示输入数据块一条边的填零使能信号,pad_en[0]表示输入数据块西边的填零使能信号,pad_en[1]表示输入数据块东边的填零使能信号,pad_en[2]表示输入数据块北边的填零使能信号,pad_en[3]表示输入数据块南边的填零使能信号;I_ROW表示原输入数据块的总行数,I_COL表示原输入数据块的总列数;i_row为当前进行计算的向量在填零后的输入数据块的行数;i_col为当前进行计算的向量在填零后的输入数据块的列数。输入数据块填零判断模块的运算逻辑如图4所示模块框图中的表达式所示。
滤波器数据块填零判断依据dilation_en和dilation_size以及输入信号f_row和f_col计算出滤波器数据块填零使能标志dilation_flag;dilation_en表示原滤波器数据块填零使能信号;dilation_size表示原滤波器数据块的膨胀系数;f_row表示当前进行计算的向量在填零后的滤波器数据块的行数,f_col表示当前进行计算的向量在填零后的滤波器数据块的列数。滤波器数据块填零判断模块的运算逻辑如图4所示模块框图中的表达式所示。
在获得了两个使能标志pad_flag和dilation_flag后,对两个使能标志进行或运算,得到最终的数据控制信号rdata_mask。
在本发明的又一实施例中,根据图6所示的卷积神经网络中边缘填充和滤波器膨胀运算系统进行多次试验。
在实验一中,控制单元的控制信号如下:
pad_en[0]=1,pad_en[1]=0,pad_en[2]=0,pad_en[0]=0,pad_size=1,I_ROW=3,I_COL=3,dilation_en=0,dilation_size=0。
当前加速器进行的卷积运算步骤对应的对已填零输入数据块的索引如下:i_row=0,i_col=0,
那么,填零加速单元输出rdata_mask=1,因此,数据选择单元的输出为全零向量。
在实验二中,控制单元的控制信号如下:
pad_en[0]=1,pad_en[1]=0,pad_en[2]=0,pad_en[0]=0,pad_size=1,I_ROW=3,I_COL=3,dilation_en=0,dilation_size=0。
当前加速器进行的卷积运算步骤对应的对已填零输入数据块的索引如下:i_row=1,i_col=0。
那么,填零加速单元输出rdata_mask=0,因此,因此,数据选择单元的输出为数据选择单元的输入向量INPUT2=INPUT1,FILTER2=FILTER1。
在实验三中,控制单元的控制信号如下:
pad_en[0]=0,pad_en[1]=0,pad_en[2]=0,pad_en[0]=0,pad_size=1,I_ROW=3,I_COL=3,dilation_en=1,dilation_size=2。
当前加速器进行的卷积运算步骤对应的对已填零滤波器数据块的索引如下:f_row=0,f_col=0。
那么,填零加速单元输出rdata_mask=0,因此,数据选择单元的输出为数据选择单元的输入向量INPUT2=INPUT1,FILTER2=FILTER1。
在实验四中,控制单元的控制信号如下:
pad_en[0]=0,pad_en[1]=0,pad_en[2]=0,pad_en[0]=0,pad_size=1,I_ROW=3,I_COL=3,dilation_en=1,dilation_size=2。
当前加速器进行的卷积运算步骤对应的对已填零滤波器数据块的索引如下:f_row=1,f_col=0。
那么,填零加速单元输出rdata_mask=1,因此,数据选择单元的输出为全零向量。
图7示例了一种人脸识别检测设备的结构示意图,如图7所示,该服务器可以包括:处理器(processor)710、存储器(memory)730和总线740,其中,处理器710,存储器730通过总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行如下方法:根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块进行填零判定,获得数据控制信号;根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算。
本实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块进行填零判定,获得数据控制信号;根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块进行填零判定,获得数据控制信号;根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种卷积神经网络中边缘填充和滤波器膨胀运算方法,其特征在于,包括:
根据输入数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,获得数据控制信号;
根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;
对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算;
其中,所述对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,具体包括:
基于需要进行运算的输入数据向量和滤波器数据向量在边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中的索引信号,判断当前运算是否处在边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块的填零位置;
所述根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量的步骤,具体为:
若数据控制信号为0,则第二输入数据向量等于第一输入数据向量,第二滤波器数据向量等于第一滤波器数据向量;
若数据控制信号为1,则第二输入数据向量与第二滤波器向量都为零向量;
所述第一输入数据向量与第一滤波器数据向量是根据需要进行计算的输入数据向量与滤波器数据向量在所述输入数据块和所述滤波器数据块中对应的索引信号,从存储器中读取得到的。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述输入数据块、滤波器数据块和所述逻辑运算的运算结果进行储存。
3.根据权利要求1所述的方法,其特征在于,所述根据输入的数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,获得数据控制信号的步骤之前,还包括:
根据需要进行计算的输入数据向量与滤波器数据向量在进行边缘填充运算后的输入数据块与进行过膨胀运算后的滤波器数据块中的索引信号,计算获得需要进行计算的输入数据向量与滤波器数据向量在所述输入数据块和所述滤波器数据块中对应的索引信号。
4.根据权利要求3所述的方法,其特征在于,所述根据输入的数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,获得数据控制信号的步骤具体包括:
根据输入数据块控制信号和需要进行计算的输入数据向量在进行边缘填充运算后的输入数据块中对应的索引信号,计算所述对边缘填充运算后的输入数据块的填零使能标志;
根据滤波器数据块控制信号和需要进行计算的滤波器数据向量在所述进行过膨胀运算后的滤波器数据块中对应的索引信号,计算膨胀运算后的滤波器数据块的填零使能标志;
对所述输入数据块的填零使能标志和所述滤波器数据块的填零使能标志进行或运算,获得数据控制信号。
5.一种卷积神经网络中边缘填充和滤波器膨胀运算系统,其特征在于,包括:
填零加速单元,用于根据输入数据块和滤波器数据块的控制信号,对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,获得数据控制信号;
数据选择单元,用于根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量;
运算单元,用于对所述第二输入数据向量和第二滤波器数据向量进行卷积神经网络的逻辑运算;
其中,所述对边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中需要进行运算的输入数据向量和滤波器数据向量进行填零判定,具体包括:
基于需要进行运算的输入数据向量和滤波器数据向量在边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块中的索引信号,判断当前运算是否处在边缘填充运算后的输入数据块和膨胀运算后的滤波器数据块的填零位置;
所述根据所述数据控制信号,对第一输入数据向量和第一滤波器数据向量进行填零运算,获得第二输入数据向量和第二滤波器数据向量的步骤,具体为:
若数据控制信号为0,则第二输入数据向量等于第一输入数据向量,第二滤波器数据向量等于第一滤波器数据;
若数据控制信号为1,则第二输入数据向量与第二滤波器向量都为零向量;
所述第一输入数据向量与第一滤波器数据向量是根据需要进行计算的输入数据向量与滤波器数据向量在所述输入数据块和所述滤波器数据块中对应的索引信号,从存储器中读取得到的。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括:存储单元,用于将所述输入数据块、滤波器数据块和所述逻辑运算的运算结果进行储存。
7.根据权利要求5所述的系统,其特征在于,所述填零加速单元还包括:
输入数据块判断子单元,用于根据输入数据块控制信号和需要进行计算的输入数据向量在进行边缘填充运算后的输入数据块中对应的索引信号,计算所述对边缘填充运算后的输入数据块的填零使能标志;
滤波器数据块判断子单元,用于根据滤波器数据块控制信号和需要进行计算的滤波器数据向量在进行过膨胀运算后的滤波器数据块中对应的索引信号,计算膨胀运算后的滤波器数据块的填零使能标志;
逻辑门子单元,用于对所述输入数据块的填零使能标志和所述滤波器数据块的填零使能标志进行或运算,获得数据控制信号。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1到4中任一所述的方法的步骤。
9.一种卷积神经网络中边缘填充和滤波器膨胀运算设备,其特征在于,包括:
至少一个处理器;以及与所述处理器连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811315318.3A CN109615059B (zh) | 2018-11-06 | 2018-11-06 | 一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811315318.3A CN109615059B (zh) | 2018-11-06 | 2018-11-06 | 一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109615059A CN109615059A (zh) | 2019-04-12 |
CN109615059B true CN109615059B (zh) | 2020-12-25 |
Family
ID=66002768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811315318.3A Active CN109615059B (zh) | 2018-11-06 | 2018-11-06 | 一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109615059B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647776A (zh) * | 2018-05-08 | 2018-10-12 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络卷积膨胀处理电路及方法 |
CN108717569A (zh) * | 2018-05-16 | 2018-10-30 | 中国人民解放军陆军工程大学 | 一种膨胀全卷积神经网络及其构建方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329936A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
US10803378B2 (en) * | 2017-03-15 | 2020-10-13 | Samsung Electronics Co., Ltd | System and method for designing efficient super resolution deep convolutional neural networks by cascade network training, cascade network trimming, and dilated convolutions |
CN107451654B (zh) * | 2017-07-05 | 2021-05-18 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
CN107871142A (zh) * | 2017-11-14 | 2018-04-03 | 华南理工大学 | 一种基于深度卷积对抗网络模型的空洞卷积方法 |
CN108021978A (zh) * | 2017-11-14 | 2018-05-11 | 华南理工大学 | 一种基于wgan模型的空洞卷积方法 |
CN108596330B (zh) * | 2018-05-16 | 2022-03-15 | 中国人民解放军陆军工程大学 | 一种并行特征全卷积神经网络装置及其构建方法 |
-
2018
- 2018-11-06 CN CN201811315318.3A patent/CN109615059B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647776A (zh) * | 2018-05-08 | 2018-10-12 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络卷积膨胀处理电路及方法 |
CN108717569A (zh) * | 2018-05-16 | 2018-10-30 | 中国人民解放军陆军工程大学 | 一种膨胀全卷积神经网络及其构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109615059A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214726B (zh) | 运算加速器 | |
EP4227886A1 (en) | Matrix operation method and apparatus for image data, device, and storage medium | |
CN114995782B (zh) | 数据处理方法、装置、设备和可读存储介质 | |
CN113469350A (zh) | 一种适于npu的深度卷积神经网络加速方法和系统 | |
CN108171662A (zh) | 读取图像压缩数据的方法及包含该方法的反畸变方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
US12112450B2 (en) | Method for computing, computing device, and computer-readable storage medium | |
CN111626405A (zh) | 一种cnn加速方法、加速装置及计算机可读存储介质 | |
CN110390075A (zh) | 矩阵预处理方法、装置、终端及可读存储介质 | |
US20210201122A1 (en) | Data processing methods, apparatuses, devices, storage media and program products | |
CN110232665B (zh) | 最大池化方法、装置、计算机设备及存储介质 | |
CN109615059B (zh) | 一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统 | |
CN110414663B (zh) | 神经网络的卷积实现方法及相关产品 | |
CN111124626A (zh) | 一种众核系统及其数据处理方法和处理装置 | |
WO2024045665A1 (zh) | 多点乘运算系统、方法、图形处理器、电子装置及设备 | |
CN107977923B (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN115346099A (zh) | 基于加速器芯片的图像卷积方法、芯片、设备及介质 | |
CN108491546A (zh) | 一种页面切换方法及电子设备 | |
US20190073584A1 (en) | Apparatus and methods for forward propagation in neural networks supporting discrete data | |
CN109993274B (zh) | 人工智能计算装置及相关产品 | |
CN111507178B (zh) | 数据处理的优化方法及装置、存储介质、计算机设备 | |
CN111714879B (zh) | 物理状态的更新方法和装置、存储介质、电子装置 | |
CN112017100A (zh) | 卷积运算方法及相关产品 | |
CN116781484B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN111831405B (zh) | 一种数据处理方法、逻辑芯片及其设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210122 Address after: Room 908, block C, Kechuang headquarters building, No. 320, pubin Road, Jiangpu street, Nanjing area, Jiangsu Free Trade Zone, Nanjing City, Jiangsu Province, 211800 Patentee after: Jixin communication technology (Nanjing) Co.,Ltd. Address before: 570228 Hainan University, 58 Renmin Avenue, Meilan District, Haikou City, Hainan Province Patentee before: HAINAN University |
|
TR01 | Transfer of patent right |