基于卷积神经网络的图像分析方法及相关设备与流程

文档序号:20953764发布日期:2020-06-02 20:17阅读:242来源:国知局
基于卷积神经网络的图像分析方法及相关设备与流程
本申请涉及神经网络
技术领域
,具体涉及一种基于卷积神经网络的图像分析方法及相关设备。
背景技术
:目前,神经网络处理器包括多个网络层,不同的网络层对应不同的卷积步长。网络层的输出矩阵(图像包括的多个特征)是神经网络处理器根据网络层的输入矩阵和卷积核进行多次卷积计算得到的;每次根据网络层的输入矩阵(基于输入图像得到的)和卷积核进行卷积计算的过程为:首先,神经网络处理器根据卷积步长从网络层的输入矩阵中选取运算矩阵;然后,神经网络处理器对运算矩阵和卷积核进行卷积计算。这种卷积计算方式导致在不同卷积步长下神经网络处理器的计算效率较低,进而间接降低图像分析的效率。技术实现要素:本申请实施例提供一种基于卷积神经网络的图像分析方法及相关设备,用于提高在不同卷积步长下神经网络处理器的计算效率,进而间接提高图像分析的效率。第一方面,本申请实施例提供一种基于卷积神经网络的图像分析方法,应用于神经网络处理器,包括:获得网络层a的输入矩阵,网络层a为卷积神经网络模型包括的多个网络层中的其中一个,网络层a的输入矩阵是基于目标种类图像得到的;获得网络层a对应的目标卷积核和目标卷积步长,不同的网络层对应不同的卷积步长;根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,目标卷积步长用于从网络层a的输入矩阵中筛选卷积计算所需的多个行输入数据,网络层a的输出矩阵用于表征目标种类图像包括的多个特征;根据预存的种类图像与预设操作的映射关系确定目标种类图像对应的目标预设操作;根据目标种类图像包括的多个特征执行目标预设操作。在一个可能的示例中,目标种类图像为人脸图像,目标种类图像包括的多个特征为多个人脸特征,根据网络层a的输出矩阵执行目标预设操作,包括:判断多个人脸特征组成的人脸特征集合是否与人脸特征库匹配;若多个人脸特征组成的人脸特征集合与目标人脸特征集合匹配,则根据预存的人脸特征集合与人物信息的映射关系确定目标人脸特征集合对应的目标人物信息,目标人脸特征集合属于人脸特征库;对目标人物信息执行输出操作。在一个可能的示例中,目标种类图像为车牌图像,目标种类图像包括的多个特征为目标车牌号码,根据网络层a的输出矩阵执行目标预设操作,包括:判断目标车牌号码是否与车牌号码库匹配;若目标车牌号码与车牌号码库匹配,则根据预存的车牌号码与车辆登记信息的映射关系确定目标车牌号码对应的目标车牌登记信息;对目标车牌登记信息执行输出操作。在一个可能的示例中,目标卷积步长为s1×s2,网络层a的输入矩阵的大小为r1×r2,目标卷积核的大小为f×f,根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,包括:当s1和s2均为1时,获取网络层a的输入矩阵的第i行输入数据至第(i+f-1)行输入数据,i为1至(r1-f+1)中的任意一个;对第i行输入数据至第(i+f-1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第i行输出数据;根据(r1-f+1)行输出数据获得网络层a的输出矩阵,(r1-f+1)行输出数据包括第i行输出数据。在一个可能的示例中,目标卷积步长为s3×s4,网络层a的输入矩阵的大小为r3×r4,目标卷积核的大小为f×f,根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,包括:当s3和s4均为2时,获取网络层a的输入矩阵的第(2j-1)行输入数据至第(2j+1)行输入数据,j为1至[(r3-f)/s4+1]中的任意一个;根据目标卷积步长对第(2j-1)行输入数据至第(2j+1)行输入数据进行筛选,得到筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据;对筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第j行输出数据;根据[(r3-f)/s4+1]行输出数据获得网络层a的输出矩阵,[(r3-f)/s4+1]行输出数据包括第j行输出数据。第二方面,本申请实施例提供一种基于卷积神经网络的图像分析装置,应用于神经网络处理器,包括:第一获得单元,用于获得网络层a的输入矩阵,网络层a为卷积神经网络模型包括的多个网络层中的其中一个,网络层a的输入矩阵是基于目标种类图像得到的;第一获得单元,用于获得网络层a对应的目标卷积核和目标卷积步长,不同的网络层对应不同的卷积步长;计算单元,用于根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,目标卷积步长用于从网络层a的输入矩阵中筛选卷积计算所需的多个行输入数据,网络层a的输出矩阵用于表征目标种类图像包括的多个特征;确定单元,用于根据预存的种类图像与预设操作的映射关系确定目标种类图像对应的目标预设操作;执行单元,用于根据目标种类图像包括的多个特征执行目标预设操作。第三方面,本申请实施例提供一种神经网络处理器,上述神经网络处理器用于实现本申请实施例第一方面的方法的部分或全部步骤。第四方面,本申请实施例提供一种神经网络处理器,上述神经网络处理器包括本申请实施例第二方面的卷积计算装置。第五方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行如本申请实施例第一方面的方法中的部分或全部步骤的指令。第六方面,本申请实施例提供一种计算机可读存储介质,上述计算机可读存储介质用于存储计算机程序,上述计算机程序被处理器执行,以实现本申请实施例第一方面的方法中所描述的部分或全部步骤。第七方面,本申请实施例提供了一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行本申请实施例第一方面的方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。可以看出,相较于每次根据网络层的输入矩阵(基于输入图像得到的)和卷积核进行卷积计算均需要神经网络处理器根据卷积步长从网络层的输入矩阵中选取运算矩阵,以及对运算矩阵和卷积核进行卷积计算,在本申请实施例中,对于不同的卷积步长来说,由于卷积步长用于从网络层a的输入矩阵(基于目标种类图像得到的)中筛选卷积计算所需的多个行输入数据,进而神经网络处理器对卷积计算所需的多个行输入数据和卷积核进行卷积计算,得到网络层a的输出矩阵(用于表征目标种类图像包括的多个特征),这样有助于提高在不同卷积步长下神经网络处理器的计算效率。由于获得目标种类图像包括的多个特征的时间大大缩短,因此能够更快的基于目标种类图像包括的多个特征执行目标种类图像对应的目标预设操作,进而间接提高图像分析的效率。附图说明为了更清楚地说明本申请实施例或
背景技术
中的技术方案,下面将对本申请实施例或
背景技术
中所需要使用的附图进行说明。图1是本申请实施例提供的一种基于卷积神经网络的图像分析系统的架构示意图;图2a是本申请实施例提供的一种基于卷积神经网络的图像分析方法的流程示意图;图2b是本申请实施例提供的一种填充的示意图;图2c是本申请实施例提供的一种确定对网络层a的第一输入矩阵进行卷积计算需要的p1个处理元件的示意图;图2d是本申请实施例提供的一种多个处理元件的示意图;图2e是本申请实施例提供的一种确定网络层a的输出矩阵的第i行输出数据的示意图;图2f是本申请实施例提供的一种确定网络层a的输出矩阵的示意图;图2g是本申请实施例提供的一种对第1行输入数据至第3层输入数据筛选的示意图;图2h是本申请实施例提供的另一种确定网络层a的输出矩阵的示意图;图3是本申请实施例提供的另一种基于卷积神经网络的图像分析方法的流程示意图;图4是本申请实施例提供的一种基于卷积神经网络的图像分析装置的功能单元组成框图;图5是本申请实施例提供的一种电子设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。电子设备可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(userequipment,ue),移动台(mobilestation,ms),终端设备(terminaldevice)等等。为方便描述,上面提到的设备统称为电子设备。下面对本申请实施例进行详细介绍。请参见图1,图1是本申请实施例提供的一种基于卷积神经网络的图像分析系统的架构示意图,该基于卷积神经网络的图像分析系统包括神经网络处理器,其中:神经网络处理器,用于获得网络层a的输入矩阵,网络层a为卷积神经网络模型包括的多个网络层中的其中一个,网络层a的输入矩阵是基于目标种类图像得到的;神经网络处理器,还用于获得网络层a对应的目标卷积核和目标卷积步长,不同的网络层对应不同的卷积步长;神经网络处理器,还用于根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,目标卷积步长用于从网络层a的输入矩阵中筛选卷积计算所需的多个行输入数据,网络层a的输出矩阵用于表征目标种类图像包括的多个特征;神经网络处理器,还用于根据预存的种类图像与预设操作的映射关系确定目标种类图像对应的目标预设操作;神经网络处理器,还用于根据目标种类图像包括的多个特征执行目标预设操作。请参见图2a,图2a是本申请实施例提供的一种基于卷积神经网络的图像分析方法的流程示意图,应用于神经网络处理器,该基于卷积神经网络的图像分析方法包括步骤201-205,具体如下:201、神经网络处理器获得网络层a的输入矩阵,网络层a为卷积神经网络模型包括的多个网络层中的其中一个,网络层a的输入矩阵是基于目标种类图像得到的。n个网络层包括输入层、卷积层、池化层、全连接层和输出层。网络层a的输入矩阵可以是基于人脸图像得到的,也可以是基于车牌图像得到的,在此不作限定。其中,人脸图像或车牌图像均是通过摄像头采集得到的。202、神经网络处理器获得网络层a对应的目标卷积核和目标卷积步长,不同的网络层对应不同的卷积步长。在一个可能的示例中,神经网络处理器获得网络层a对应的目标卷积核和目标卷积步长,包括:神经网络处理器根据网络层与卷积核的映射关系获得网络层a对应的目标卷积核;神经网络处理器根据网络层与卷积步长的映射关系获得网络层a对应的目标卷积步长。网络层与卷积核的映射关系预先存储于神经网络处理器中,网络层与卷积核的映射关系如下表1所示:表1网络层卷积核输入层第一卷积核卷积层第二卷积核池化层第三卷积核全连接层第四卷积核输出层第五卷积核网络层与卷积步长的映射关系预先存储于神经网络处理器中,网络层与卷积步长的映射关系如下表2所示:表2网络层卷积步长输入层第一卷积步长卷积层第二卷积步长池化层第三卷积步长全连接层第四卷积步长输出层第五卷积步长神经网络处理器获得网络层a对应的目标卷积步长还可以通过向中央处理器发送携带网络层a的卷积步长获取请求,卷积步长获取请求用于指示中央处理器反馈网络层a的卷积步长;接收中央处理器针对卷积步长获取请求发送的网络层a的目标卷积步长。203、神经网络处理器根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,目标卷积步长用于从网络层a的输入矩阵中筛选卷积计算所需的多个行输入数据,网络层a的输出矩阵用于表征目标种类图像包括的多个特征。在一个可能的示例中,神经网络处理器包括p2个处理元件,p2个处理元件中的每个处理元件包括q个乘法累加单元,p2和q均为大于1的整数,神经网络处理器根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵之前,方法还包括:神经网络处理器根据目标卷积核和目标卷积步长对网络层a的输入矩阵进行填充,得到网络层a的第一输入矩阵;神经网络处理器根据网络层a的第一输入矩阵、p2和q确定对网络层a的第一输入矩阵进行卷积计算需要的p1个处理元件。在一个可能的示例中,目标卷积核的大小为f×f,目标卷积步长为s5×s6,神经网络处理器根据目标卷积核和目标卷积步长对网络层a的输入矩阵进行填充,得到网络层a的第一输入矩阵,包括:神经网络处理器获取网络层a的输入矩阵的大小r5×r6;神经网络处理器计算(r5-f)/s6,得到第一余数,以及根据第一余数和s6确定网络层a的输入矩阵对应的行填充数据;神经网络处理器计算(r6-f)/s5,得到第二余数,以及根据第二余数和s5确定网络层a的输入矩阵对应的列填充数据;神经网络处理器根据行填充数据和列填充数据对网络层a的输入矩阵执行填充操作,得到网络层a的第一输入矩阵。目标卷积步长包括水平卷积步长和垂直卷积步长,水平卷积步长为s5,垂直卷积步长为s6。网络层a的输入矩阵包括r5行输入数据和r6列输入数据。具体地,神经网络处理器根据第一余数和s6确定网络层a的输入矩阵对应的行填充数据的实施方式可以为:若第一余数为0且s6=1或2,则神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第0行输入数据和第(r5+1)行输入数据;若第一余数为0且s6为大于1的奇数,则神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第[-(s6+1)/2+2]行输入数据至第0行输入数据和第(r5+1)行输入数据至第[r5+(s6+1)/2]行输入数据;若第一余数为0且s6为大于2的偶数,则神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第(-s6/2+1)行输入数据至第0行输入数据和第(r5+1)行输入数据至第(r5+s6/2)行输入数据。若第一余数不为0且s6=2,则神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第0行输入数据、第(r5+1)行输入数据和第(r5+2)行输入数据;若第一余数不为0、s6与第一余数的差值t1为1且s6为大于2的奇数,则神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第[-(t1+1)/2+1]行输入数据至第0行输入数据和第(r5+1)行输入数据至第[r5+(t1+1)/2]行输入数据;若第一余数不为0、s6与第一余数的差值t1为1且s6为大于2的偶数,则神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第[-(t1+2)/2+2]行输入数据至第0行输入数据和第(r5+1)行输入数据至第[r5+(t1+2)/2]行输入数据;若第一余数不为0且s6与第一余数的差值t1为大于1的奇数,则神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第[-(t1+1)/2+2]行输入数据至第0行输入数据和第(r5+1)行输入数据至第[r5+(t1+1)/2]行输入数据;若第一余数不为0且s6与第一余数的差值t1为大于1的偶数,则神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第(-t1/2+1)行输入数据至第0行输入数据和第(r5+1)行输入数据至第(r5+t1/2)行输入数据。具体地,神经网络处理器根据第二余数和s5确定网络层a的输入矩阵对应的列填充数据的实施方式可以为:若第二余数为0且s5=1或2,则神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第0列输入数据和第(r6+1)列输入数据;若第二余数为0且s5为大于1的奇数,则神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第[-(s5+1)/2+2]列输入数据至第0列输入数据和第(r6+1)列输入数据至第[r6+(s5+1)/2]列输入数据;若第二余数为0且s5为大于2的偶数,则神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第(-s5/2+1)列输入数据至第0列输入数据和第(r6+1)列输入数据至第(r6+s5/2)列输入数据;若第二余数不为0且s5=2,则神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第0列输入数据、第(r6+1)列输入数据和第(r6+2)列输入数据;若第二余数不为0、s5与第二余数的差值t2为1且s5为大于2的奇数,则神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第[-(s5+1)/2+1]列输入数据至第0列输入数据和第(r6+1)列输入数据至第[r6+(s5+1)/2]列输入数据;若第二余数不为0、s5与第二余数的差值t2为1且s5为大于2的偶数,则神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第[-(s5+2)/2+2]列输入数据至第0列输入数据和第(r6+1)列输入数据至第[r6+(s5+2)/2]列输入数据;若第二余数不为0且s5与第二余数的差值t2为大于1的奇数,则神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第[-(t2+1)/2+2]列输入数据至第0列输入数据和第(r6+1)列输入数据至第[r6+(t2+1)/2]列输入数据;若第二余数不为0且s5与第二余数的差值t2为大于1的偶数,则神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第(-t2/2+1)列输入数据至第0列输入数据和第(r6+1)列输入数据至第(r6+t2/2)列输入数据。举例来说,如图2b所示,图2b是本申请实施例提供的一种填充的示意图,网络层a的输入矩阵的大小为8×8,目标卷积核的大小为3×3,目标卷积步长为2×2,神经网络处理器确定网络层a的输入矩阵对应的行填充数据为第0行输入数据、第9行输入数据和第10行输入数据,神经网络处理器确定网络层a的输入矩阵对应的列填充数据为第0列输入数据、第9列填充数据和第10列输入数据,神经网络处理器根据网络层a的输入矩阵对应的行填充数据和列填充数据对网络层a的输入矩阵进行填充,得到网络层a的第一输入矩阵。在一个可能的示例中,神经网络处理器根据网络层a的第一输入矩阵、p2和q确定对网络层a的第一输入矩阵进行卷积计算需要的p1个处理元件,包括:神经网络处理器获取网络层a的第一输入矩阵的大小r7×r8;神经网络处理器计算r8/q,得到商和第三余数;若第三余数为0,则神经网络处理器将商确定为p1,p1为对网络层a的第一输入矩阵进行卷积计算需要的处理元件的数量,以及确定p1个处理元件中的每个处理元件包括q个乘法累加单元;若第三余数不为0,则神经网络处理器将商加1确定为p1,p1为对网络层a的第一输入矩阵进行卷积计算需要的处理元件的数量,以及确定p1个处理元件中的第1个处理元件至第(p1-1)个处理元件中的每个处理元件包括q个乘法累加单元和第p1个处理元件包括的乘法累加单元的数量为第三余数。举例来说,如图2c所示,图2c是本申请实施例提供的一种确定对网络层a的第一输入矩阵进行卷积计算需要的p1个处理元件的示意图,网络层a的第一输入矩阵包括140列输入数据,p2=32,q=14,神经网络处理器计算140/14,得到商为10和第三余数均为0,神经网络处理器确定对网络层a的第一输入矩阵进行卷积计算需要10个处理元件,10个处理元件中的每个处理元件包括14个乘法累加单元。网络层a的输出矩阵的大小为r9×r10,r9=(r7-f)/s6+1,r10=(r8-f)/s5+1。在一个可能的示例中,目标卷积步长为s1×s2,网络层a的输入矩阵的大小为r1×r2,目标卷积核的大小为f×f,神经网络处理器根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,包括:当s1和s2均为1时,神经网络处理器获取网络层a的输入矩阵的第i行输入数据至第(i+f-1)行输入数据,i为1至(r1-f+1)中的任意一个;神经网络处理器对第i行输入数据至第(i+f-1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第i行输出数据;神经网络处理器根据(r1-f+1)行输出数据获得网络层a的输出矩阵,(r1-f+1)行输出数据包括第i行输出数据。具体地,目标卷积核包括的9个元素值为(c、b、a、f、e、d、i、h、g),神经网络处理器使用p1个处理元件对第i行输入数据至第(i+f-1)行输入数据和目标卷积核执行卷积计算操作,得到网络层a的输出矩阵的第i行输出数据的实施方式可以为:b1:神经网络处理器利用p1个处理元件将第i行输入数据与b相乘,得到r2个第一中间值;b2:神经网络处理器利用p1个处理元件对第i行输入数据进行左移,将左移后的第i行输出数据与a相乘,得到r2个第二中间值,以及将r2个第二中间值分别与r2个第一中间值累加,得到r2个第三中间值;b3:神经网络处理器利用p1个处理元件对第i行输入数据进行右移,将右移后的第i行输出数据与c相乘,得到r2个第四中间值,以及将r2个第四中间值分别与r2个第三中间值累加,得到r2个第五中间值;b4:神经网络处理器利用p1个处理元件将第(i+1)行输入数据与e相乘,得到r2个第六中间值,以及将r2个第六中间值分别与r2个第五中间值累加,得到r2个第七中间值;b5:神经网络处理器利用p1个处理元件对第(i+1)行输入数据进行左移,将左移后的第(i+1)行输出数据与d相乘,得到r2个第八中间值,以及将r2个第八中间值分别与r2个第七中间值累加,得到r2个第九中间值;b6:神经网络处理器利用p1个处理元件对第(i+1)行输入数据进行右移,将右移后的第(i+1)行输出数据与f相乘,得到r2个第十中间值,以及将r2个第十中间值分别与r2个第九中间值累加,得到r2个第十一中间值;b7:神经网络处理器利用p1个处理元件将第i行输入数据与h相乘,得到r2个第十二中间值,以及将r2个第十二中间值分别与r2个第十一中间值累加,得到r2个第十三中间值;b8:神经网络处理器利用p1个处理元件对第(i+f-1)行输入数据进行左移,将左移后的第(i+f-1)行输出数据与g相乘,得到r2个第十四中间值,以及将r2个第十四中间值分别与r2个第十三中间值累加,得到r2个第十五中间值;b9:神经网络处理器利用p1个处理元件对第(i+f-1)行输入数据进行右移,将右移后的第(i+f-1)行输出数据与i相乘,得到r2个第十六中间值,以及将r2个第十六中间值分别与r2个第十五中间值累加,得到r2个第十七中间值。p1个处理元件中的每个处理元件包括的至少一个乘法累加单元并行运算。第i行输入数据至第(i+f-1)行输入数据中的每行输入数据进行左移是通过左移程序实现的,第i行输入数据至第(i+f-1)行输入数据中的每行输入数据进行右移是通过右移程序实现的,左移程序和右移程序预先存储于神经网络处理器中。参见图2d,图2d是本申请实施例提供的一种多个处理元件的示意图,多个处理元件包括1个high(高位)pe、多个middle(中间)pe和1个low(低位)pe,对于每个pe中任意两个相邻的mac来说,左侧mac为高位mac,右侧mac为低位mac;处理元件为processingelements,简称pe;乘法累加单元为multiplyaccumulateunit,简称mac。对于highpe来说,左移的时候,高位mac从pe内右侧mac获取数据,最低位mac从右侧pe的高位mac获取数据;右移的时候,最高位mac从填充总线获取数据,低位mac从pe内左侧mac获取数据,填充总线用于填充数据与处理元件之间的数据传输;对于lowpe来说,左移的时候,高位mac从pe内右侧mac获取数据,最低位mac从填充总线获取数据;右移的时候,最高位mac从左侧pe的低位mac获取数据,低位mac从pe内的左侧mac获取数据;对于middlepe来说,左移的时候,高位mac从pe内右侧mac获取数据,最低位mac从右侧pe高位mac获取数据;右移的时候,最高位mac从左侧pe的低位mac获取数据,低位mac从pe内左侧mac获取数据。在申请实施例中,一个处理件组包括的p1个处理元件并行处理一行输入数据,相邻处理元件之间数据可以相互的左移或右移,然而,现有的卷积计算方式每次使用处理元件组对输入矩阵和卷积核矩阵进行卷积计算时,相邻处理元件之间数据不可移动。其中,当f不为3时,神经网络处理器使用p1个处理元件对第i行输入数据至第(i+f-1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第i行输出数据的实施方式参照当f为3时,神经网络处理器使用p1个处理元件对第i行输入数据至第(i+f-1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第i行输出数据的实施方式,在此不再叙述。举例来说,如图2e所示,图2e是本申请实施例提供的一种确定网络层a的输出矩阵的第i行输出数据的示意图,p1=1,q=7,r2=7,f=3,s1=1,i=1,网络层a的输入矩阵的第1行输入数据至第3行输入数据中的每行输入数据包括7个元素值,第一行输入数据中0和8均为填充数据,第二行输入数据中16和12均为填充数据,第三行输入数据中32和40均为填充数据,目标卷积核包括的9个元素值为(c、b、a、f、e、d、i、h、g),神经网络处理器使用7个乘法累加单元对网络层a的输入矩阵的第1行输入数据至第3行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第1行输出数据为(u1、u2、u3、u4、u5、u6、u7)。可见,在本示例中,神经网络处理器使用p1个处理元件对网络层a的输入矩阵的第i行输入数据至第(i+f-1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第i行输出数据。由于p1个处理元件并行运算,这样有助于提高神经网络处理器的计算效率。具体地,目标卷积核还包括偏置值,神经网络处理器根据(r1-f+1)行输出数据获得网络层a的输出矩阵的实施方式可以为:神经网络处理器根据(r3-f+1)行输出数据确定网络层a的待输出矩阵;神经网络处理器将网络层a的待输出矩阵的第m行第n列的元素值、偏置值之和确定为网络层a的输出矩阵的第m行第n列的元素值;神经网络处理器对网络层a的待输出矩阵的[(r1-f+1)×(r2-f+1)]个元素值中除第m行第n列的元素值之外的[(r1-f+1)×(r2-f+1)-1]个元素值执行相同操作,得到网络层a的输出矩阵的[(r1-f+1)×(r2-f+1)-1]个元素值,网络层a的输出矩阵的[(r1-f+1)×(r2-f+1)-1]个元素值与网络层a的待输出矩阵的[(r1-f+1)×(r2-f+1)]个元素值中除第m行第n列的元素值之外的[(r1-f+1)×(r2-f+1)-1]个元素值一一对应;神经网络处理器根据网络层a的输出矩阵的第m行第n列的元素值和网络层a的输出矩阵的[(r1-f+1)×(r2-f+1)-1]个元素值确定网络层a的输出矩阵。举例来说,如图2f所示,图2f是本申请实施例提供的一种确定网络层a的输出矩阵的示意图,r1=5,f=3,网络层a的输出矩阵的第1行输出数据包括的3个元素值为(2、4、3),网络层a的输出矩阵的第2行输出数据包括的3个元素值为(5、7、8),网络层a的输出矩阵的第3行输出数据包括的3个元素值为(9、1、6),偏置值为1,神经网络处理器确定网络层a的输出矩阵包括的9个元素值为(3、5、4、6、8、9、10、2、7)。当s1为1时,网络层a的输出矩阵的第i行输出数据为(u1、u2、u3、u4、u5、u6、u7、u8、u9),当s1为3时,网络层a的输出矩阵的第i行输出数据为(u1、u4、u7)。当s1为1时,网络层a的输出矩阵的第i行输出数据为(u1、u2、u3、u4、u5、u6、u7、u8、u9、u10、u11、u12、u13、u14、u15),当s1为5时,网络层a的输出矩阵的第i行输出数据为(u1、u6、u11)。当s1为1时,网络层a的输出矩阵的第i行输出数据为(u1、u2、u3、u4、u5、u6、u7、u8、u9、u10、u11、u12、u13、u14、u15、u16、u17、u18、u19、u20、u21),当s1为7时,网络层a的输出矩阵的第i行输出数据为(u1、u8、u15)。在一个可能的示例中,目标卷积步长为s3×s4,网络层a的输入矩阵的大小为r3×r4,目标卷积核的大小为f×f,神经网络处理器根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,包括:当s3和s4均为2时,神经网络处理器获取网络层a的输入矩阵的第(2j-1)行输入数据至第(2j+1)行输入数据,j为1至[(r3-f)/s4+1]中的任意一个;根据目标卷积步长对第(2j-1)行输入数据至第(2j+1)行输入数据进行筛选,得到筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据;神经网络处理器对筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第j行输出数据;神经网络处理器根据[(r3-f)/s4+1]行输出数据获得网络层a的输出矩阵,[(r3-f)/s4+1]行输出数据包括第j行输出数据。在一个可能的示例中,神经网络处理器根据目标卷积步长对第(2j-1)行输入数据至第(2j+1)行输入数据进行筛选,得到筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据,包括:神经网络处理器根据s3对第(2j-1)行输入数据进行f次筛选,得到筛选后的第(2j-1)行输入数据,筛选后的第(2j-1)行输入数据包括f个第(2j-1)行子输入数据,每个第(2j-1)行子输入数据的数据个数为第(2j-1)行输入数据的数据个数的一半;神经网络处理器根据s3对第2j行输入数据进行f次筛选,得到筛选后的第2j行输入数据,筛选后的第2j行输入数据包括f个第2j行子输入数据,每个第2j行子输入数据的数据个数为第2j行输入数据的数据个数的一半;神经网络处理器根据s3对第(2j+1)行输入数据进行f次筛选,得到筛选后的第(2j+1)行输入数据,筛选后的第(2j+1)行输入数据包括f个第(2j+1)行子输入数据,每个第(2j+1)行子输入数据的数据个数为第(2j+1)行输入数据的数据个数的一半。举例来说,如图2g所示,图2g是本申请实施例提供的一种对第1行输入数据至第3行输入数据筛选的示意图,第1行输入数据至第3行输入数据中的每行输入数据的数据个数均为15,第1行输入数据中0和14均为填充数据,第2行输入数据中16和30均为填充数据,第3行输入数据中32和46均为填充数据,水平卷积步长s3为2,对第1行输入数据进行3次筛选,得到3个第1行子输入数据;对第2行输入数据进行3次筛选,得到3个第2行子输入数据;对第3行输入数据进行3次筛选,得到3个第3行子输入数据。具体地,目标卷积核包括的9个元素值为(c、b、a、f、e、d、i、h、g),神经网络处理器使用p1个处理元件对第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核执行卷积计算操作,得到网络层a的输出矩阵的第j行输出数据的实施方式可以为:c1:神经网络处理器根据s3从第(2j-1)行输入数据中选取r4/s3个第一待相乘元素值,使用p1个处理元件将r4/s3个第一待相乘元素值分别与b相乘,得到r4/s3个第十八中间值;c2:神经网络处理器根据s3从(2j-1)行输入数据中选取r4/s3个第二待相乘元素值,使用p1个处理元件将r4/s3个第二待相乘元素值分别与a相乘,得到r4/s3个第十九中间值,以及将r4/s3个第十九中间值分别与r4/s3个第十八中间值累加,得到r4/s3个第二十中间值;c3:神经网络处理器根据s3从第(2j-1)行输入数据中选取r4/s3个第三待相乘元素值,使用p1个处理元件将r4/s3个第三待相乘元素值分别与c相乘,得到r4/s3个第二十一中间值,以及将r4/s3个第二十一中间值分别与r4/s3个第二十中间值累加,得到r4/s3个第二十二中间值;c4:神经网络处理器根据s3从第2j行输入数据中选取r4/s3个第四待相乘元素值,使用p1个处理元件将r4/s3个第四待相乘元素值分别与e相乘,得到r4/s3个第二十三中间值,以及将r4/s3个第二十三中间值分别与r4/s3个第二十二中间值累加,得到r4/s3个第二十四中间值;c5:神经网络处理器根据s3从第2j行输入数据中选取r4/s3个第五待相乘元素值,使用p1个处理元件将r4/s3个第五待相乘元素值分别与d相乘,得到r4/s3个第十二五中间值,以及将r4/s3个第二十五中间值分别与r4/s3个第二十四中间值累加,得到r4/s3个第二十六中间值;c6:神经网络处理器根据s3从第2j行输入数据中选取r4/s3个第六待相乘元素值,使用p1个处理元件将r4/s3个第六待相乘元素值分别与f相乘,得到r4/s3个第二十七中间值,以及将r4/s3个第二十七中间值分别与r4/s3个第二十六中间值累加,得到r4/s3个第二十八中间值;c7:神经网络处理器根据s3从第(2j+1)行输入数据中选取r4/s3个第七待相乘元素值,使用p1个处理元件将r4/s3个第七待相乘元素值分别与h相乘,得到r4/s3个第二十九中间值,以及将r4/s3个第二十九中间值分别与r4/s3个第二十八中间值累加,得到r4/s3个第三十中间值;c8:神经网络处理器根据s3从第(2j+1)行输入数据中选取r4/s3个第八待相乘元素值,使用p1个处理元件将r4/s3个第八待相乘元素值分别与g相乘,得到r4/s3个第三十一中间值,以及将r4/s3个第三十一中间值分别与r4/s3个第三十中间值累加,得到r4/s3个第三十二中间值;c9:神经网络处理器根据s3从第(2j+1)行输入数据中选取r4/s3个第九待相乘元素值,使用p1个处理元件将r4/s3个第九待相乘元素值分别与i相乘,得到r4/s3个第三十三中间值,以及将r4/s3个第三十三中间值分别与r4/s3个第三十二中间值累加,得到r4/s3个第三十四中间值。当f不为3时,神经网络处理器使用p1个处理元件组对第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第j行输出数据的实施方式参照当f为3时,神经网络处理器使用p1个处理元件对第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第j行输出数据的实施方式,在此不再叙述。当s1=2时,网络层a的输出矩阵的第j行输出数据为(v1、v2、v3、v4、v5、v6、v7、v8),当s1=4时,网络层a的输出矩阵的第j行输出数据为(v1、v3、v5、v7)。当s1=2时,网络层a的输出矩阵的第j行输出数据为(v1、v2、v3、v4、v5、v6、v7、v8、v9),当s1=6时,网络层a的输出矩阵的第j行输出数据为(v1、v4、v7)。举例来说,如图2h所示,图2h是本申请实施例提供的另一种确定网络层a的输出矩阵的示意图,p1=1,q=7,r4=13,f=3,s3=2,i=1,网络层a的输入矩阵的第1行输入数据至第3行输入数据中的每行输入数据包括13个元素值,第一行输入数据中0和14均为填充数据,第二行输入数据中16和30均为填充数据,第三行输入数据中32和46均为填充数据,目标卷积核包括的9个元素值为(c、b、a、f、e、d、i、h、g),神经网络处理器使用7个乘法累加单元对网络层a的输入矩阵的第1行输入数据至第3行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第1行输出数据。可见,在本示例中,神经网络处理器使用p1个处理元件对网络层a的输入矩阵的第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第j行输出数据。由于p1个处理元件并行运算,这样有助于提高神经网络处理器的计算效率。神经网络处理器根据[(r3-f)/s4+1]行输出数据和偏置值确定网络层a的输出矩阵的实施方式参照神经网络处理器根据(r1-f+1)行输出数据和偏置值确定网络层a的输出矩阵的实施方式,在此不再叙述。204、神经网络处理器根据预存的种类图像与预设操作的映射关系确定目标种类图像对应的目标预设操作。种类图像与预设操作一一对应;如果种类图像为人脸图像,那么预设操作为基于人脸图像获得人物信息;如果种类图像为车牌图像,那么预设操作为基于车牌图像获得车牌登记信息。205、神经网络处理器根据目标种类图像包括的多个特征执行目标预设操作。可以看出,相较于每次根据网络层的输入矩阵(基于输入图像得到的)和卷积核进行卷积计算均需要神经网络处理器根据卷积步长从网络层的输入矩阵中选取运算矩阵,以及对运算矩阵和卷积核进行卷积计算,在本申请实施例中,对于不同的卷积步长来说,由于卷积步长用于从网络层a的输入矩阵(基于目标种类图像得到的)中筛选卷积计算所需的多个行输入数据,进而神经网络处理器对卷积计算所需的多个行输入数据和卷积核进行卷积计算,得到网络层a的输出矩阵(用于表征目标种类图像包括的多个特征),这样有助于提高在不同卷积步长下神经网络处理器的计算效率。由于获得目标种类图像包括的多个特征的时间大大缩短,因此能够更快的基于目标种类图像包括的多个特征执行目标种类图像对应的目标预设操作,进而间接提高图像分析的效率。在一个可能的示例中,目标种类图像为人脸图像,目标种类图像包括的多个特征为多个人脸特征,神经网络处理器根据网络层a的输出矩阵执行目标预设操作,包括:神经网络处理器判断多个人脸特征组成的人脸特征集合是否与人脸特征库匹配;若多个人脸特征组成的人脸特征集合与目标人脸特征集合匹配,则神经网络处理器根据预存的人脸特征集合与人物信息的映射关系确定目标人脸特征集合对应的目标人物信息,目标人脸特征集合属于人脸特征库;神经网络处理器对目标人物信息执行输出操作。人脸特征集合与人物信息的映射关系预先存储于神经网络处理器中,人脸特征集合与人物信息的映射关系如下表3所示:表3人脸特征集合人物信息第一人脸特征集合第一人物信息第二人脸特征集合第二人物信息第三人脸特征结合第三人物信息…………人脸特征集合与人物信息一一对应;如果人脸特征集合为第一人脸特征集合,那么人物信息为第一人物信息。可见,在本示例中,由于获得多个人脸特征的时间大大缩短,因此能够更快的确定多个人脸特征组成的人脸特征集合对应的人物信息,进而间接提高基于人脸图像分析得到相应人物信息的效率。在一个可能的示例中,目标种类图像为车牌图像,目标种类图像包括的多个特征为目标车牌号码,神经网络处理器根据网络层a的输出矩阵执行目标预设操作,包括:神经网络处理器判断目标车牌号码是否与车牌号码库匹配;若目标车牌号码与车牌号码库匹配,则神经网络处理器根据预存的车牌号码与车辆登记信息的映射关系确定目标车牌号码对应的目标车牌登记信息;神经网络处理器对目标车牌登记信息执行输出操作。车牌号码与车辆登记信息的映射关系预先存储于神经网络处理器中,车牌号码与车辆登记信息的映射关系如下表4所示:表4车牌号码车辆登记信息第一车牌号码第一车辆登记信息第二车牌号码第二车辆登记信息第三车牌号码第三车辆登记信息…………车牌号码与车辆登记信息一一对应;如果车牌号码为第一车牌号码,那么车辆登记信息为第一车辆登记信息。可见,在本示例中,由于获得车牌号码的时间大大缩短,因此能够更快的确定车牌号码对应的车辆登记信息,进而间接提高基于车牌图像分析得到相应车牌登记信息的效率。与上述图2a所示的实施例一致的,请参见图3,图3是本申请实施例提供的另一种基于卷积神经网络的图像分析方法的流程示意图,应用于神经网络处理器,该基于卷积神经网络的图像分析方法包括步骤301-311,具体如下:301、神经网络处理器获得网络层a的输入矩阵,网络层a的输入矩阵的大小为r3×r4,网络层a为卷积神经网络模型包括的多个网络层中的其中一个,网络层a的输入矩阵是基于人脸图像得到的。302、神经网络处理器根据网络层与卷积核的映射关系确定网络层a对应的目标卷积核,目标卷积核的大小为f×f。303、神经网络处理器根据网络层与卷积步长的映射关系获得网络层a对应的目标卷积步长,目标卷积步长为s3×s4,不同的网络层对应不同的卷积步长。304、当s3和s4均为2时,神经网络处理器获取网络层a的输入矩阵的第(2j-1)行输入数据至第(2j+1)行输入数据,j为1至[(r3-f)/s4+1]中的任意一个。305、神经网络处理器根据s3对第(2j-1)行输入数据进行f次筛选,得到筛选后的第(2j-1)行输入数据,筛选后的第(2j-1)行输入数据包括f个第(2j-1)行子输入数据,每个第(2j-1)行子输入数据的数据个数为第(2j-1)行输入数据的数据个数的一半。306、神经网络处理器根据s3对第2j行输入数据进行f次筛选,得到筛选后的第2j行输入数据,筛选后的第2j行输入数据包括f个第2j行子输入数据,每个第2j行子输入数据的数据个数为第2j行输入数据的数据个数的一半。307、神经网络处理器根据s3对第(2j+1)行输入数据进行f次筛选,得到筛选后的第(2j+1)行输入数据,筛选后的第(2j+1)行输入数据包括f个第(2j+1)行子输入数据,每个第(2j+1)行子输入数据的数据个数为第(2j+1)行输入数据的数据个数的一半。308、神经网络处理器对筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第j行输出数据。309、神经网络处理器根据[(r3-f)/s4+1]行输出数据获得网络层a的输出矩阵,[(r3-f)/s4+1]行输出数据包括第j行输出数据,网络层a的输出矩阵用于表征多个人脸特征。310、若多个人脸特征组成的人脸特征集合与人脸特征库中的目标人脸特征集合匹配,则神经网络处理器根据预存的人脸特征集合与人物信息的映射关系确定目标人脸特征集合对应的目标人物信息。311、神经网络处理器对目标人物信息执行输出操作。需要说明的是,图3所示的方法的各个步骤的具体实现过程可参见上述方法的具体实现过程,在此不再叙述。请参见图4,图4为本申请实施例提供的一种基于卷积神经网络的图像分析装置的功能单元组成框图,应用于神经网络处理器,该基于卷积神经网络的图像分析装置400包括:第一获得单元401,用于获得网络层a的输入矩阵,网络层a为卷积神经网络模型包括的多个网络层中的其中一个,网络层a的输入矩阵是基于目标种类图像得到的;第二获得单元402,用于获得网络层a对应的目标卷积核和目标卷积步长,不同的网络层对应不同的卷积步长;计算单元403,用于根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,目标卷积步长用于从网络层a的输入矩阵中筛选卷积计算所需的多个行输入数据,网络层a的输出矩阵用于表征目标种类图像包括的多个特征;确定单元404,用于根据预存的种类图像与预设操作的映射关系确定目标种类图像对应的目标预设操作;执行单元405,用于根据目标种类图像包括的多个特征执行目标预设操作。可以看出,相较于每次根据网络层的输入矩阵(基于输入图像得到的)和卷积核进行卷积计算均需要神经网络处理器根据卷积步长从网络层的输入矩阵中选取运算矩阵,以及对运算矩阵和卷积核进行卷积计算,在本申请实施例中,对于不同的卷积步长来说,由于卷积步长用于从网络层a的输入矩阵(基于目标种类图像得到的)中筛选卷积计算所需的多个行输入数据,进而神经网络处理器对卷积计算所需的多个行输入数据和卷积核进行卷积计算,得到网络层a的输出矩阵(用于表征目标种类图像包括的多个特征),这样有助于提高在不同卷积步长下神经网络处理器的计算效率。由于获得目标种类图像包括的多个特征的时间大大缩短,因此能够更快的基于目标种类图像包括的多个特征执行目标种类图像对应的目标预设操作,进而间接提高图像分析的效率。在一个可能的示例中,目标种类图像为人脸图像,目标种类图像包括的多个特征为多个人脸特征,在根据网络层a的输出矩阵执行目标预设操作方面,上述执行单元405具体用于:判断多个人脸特征组成的人脸特征集合是否与人脸特征库匹配;若多个人脸特征组成的人脸特征集合与目标人脸特征集合匹配,则根据预存的人脸特征集合与人物信息的映射关系确定目标人脸特征集合对应的目标人物信息,目标人脸特征集合属于人脸特征库;对目标人物信息执行输出操作。在一个可能的示例中,目标种类图像为车牌图像,目标种类图像包括的多个特征为目标车牌号码,在根据网络层a的输出矩阵执行目标预设操作方面,上述执行单元405具体用于:判断目标车牌号码是否与车牌号码库匹配;若目标车牌号码与车牌号码库匹配,则根据预存的车牌号码与车辆登记信息的映射关系确定目标车牌号码对应的目标车牌登记信息;对目标车牌登记信息执行输出操作。在一个可能的示例中,在获得网络层a对应的目标卷积核和目标卷积步长方面,上述第二获得单元402具体用于:根据网络层与卷积核的映射关系获得网络层a对应的目标卷积核;根据网络层与卷积步长的映射关系获得网络层a对应的目标卷积步长。在一个可能的示例中,目标卷积步长为s1×s2,网络层a的输入矩阵的大小为r1×r2,目标卷积核的大小为f×f,在根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵方面,上述计算单元403具体用于:当s1和s2均为1时,获取网络层a的输入矩阵的第i行输入数据至第(i+f-1)行输入数据,i为1至(r1-f+1)中的任意一个;对第i行输入数据至第(i+f-1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第i行输出数据;根据(r1-f+1)行输出数据获得网络层a的输出矩阵,(r1-f+1)行输出数据包括第i行输出数据。在一个可能的示例中,目标卷积步长为s3×s4,网络层a的输入矩阵的大小为r3×r4,目标卷积核的大小为f×f,在根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵方面,上述计算单元403具体用于:当s3和s4均为2时,获取网络层a的输入矩阵的第(2j-1)行输入数据至第(2j+1)行输入数据,j为1至[(r3-f)/s4+1]中的任意一个;根据目标卷积步长对第(2j-1)行输入数据至第(2j+1)行输入数据进行筛选,得到筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据;对筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第j行输出数据;根据[(r3-f)/s4+1]行输出数据获得网络层a的输出矩阵,[(r3-f)/s4+1]行输出数据包括第j行输出数据。在一个可能的示例中,在根据目标卷积步长对第(2j-1)行输入数据至第(2j+1)行输入数据进行筛选,得到筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据方面,上述计算单元403具体用于:根据s3对第(2j-1)行输入数据进行f次筛选,得到筛选后的第(2j-1)行输入数据,筛选后的第(2j-1)行输入数据包括f个第(2j-1)行子输入数据,每个第(2j-1)行子输入数据的数据个数为第(2j-1)行输入数据的数据个数的一半;根据s3对第2j行输入数据进行f次筛选,得到筛选后的第2j行输入数据,筛选后的第2j行输入数据包括f个第2j行子输入数据,每个第2j行子输入数据的数据个数为第2j行输入数据的数据个数的一半;根据s3对第(2j+1)行输入数据进行f次筛选,得到筛选后的第(2j+1)行输入数据,筛选后的第(2j+1)行输入数据包括f个第(2j+1)行子输入数据,每个第(2j+1)行子输入数据的数据个数为第(2j+1)行输入数据的数据个数的一半。与上述图2a和图3所示的实施例一致的,请参见图5,图5是本申请实施例提供的一种电子设备的结构示意图,该电子设备500包括处理器、存储器、通信接口以及一个或多个程序,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令:获得网络层a的输入矩阵,网络层a为卷积神经网络模型包括的多个网络层中的其中一个,网络层a的输入矩阵是基于目标种类图像得到的;获得网络层a对应的目标卷积核和目标卷积步长,不同的网络层对应不同的卷积步长;根据目标卷积步长定对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵,目标卷积步长用于从网络层a的输入矩阵中筛选卷积计算所需的多个行输入数据,网络层a的输出矩阵用于表征目标种类图像包括的多个特征;根据预存的种类图像与预设操作的映射关系确定目标种类图像对应的目标预设操作;根据目标种类图像包括的多个特征执行目标预设操作。可以看出,相较于每次根据网络层的输入矩阵(基于输入图像得到的)和卷积核进行卷积计算均需要神经网络处理器根据卷积步长从网络层的输入矩阵中选取运算矩阵,以及对运算矩阵和卷积核进行卷积计算,在本申请实施例中,对于不同的卷积步长来说,由于卷积步长用于从网络层a的输入矩阵(基于目标种类图像得到的)中筛选卷积计算所需的多个行输入数据,进而神经网络处理器对卷积计算所需的多个行输入数据和卷积核进行卷积计算,得到网络层a的输出矩阵(用于表征目标种类图像包括的多个特征),这样有助于提高在不同卷积步长下神经网络处理器的计算效率。由于获得目标种类图像包括的多个特征的时间大大缩短,因此能够更快的基于目标种类图像包括的多个特征执行目标种类图像对应的目标预设操作,进而间接提高图像分析的效率。在一个可能的示例中,目标种类图像为人脸图像,目标种类图像包括的多个特征为多个人脸特征,在根据网络层a的输出矩阵执行目标预设操作方面,上述程序包括具体用于执行以下步骤的指令:判断多个人脸特征组成的人脸特征集合是否与人脸特征库匹配;若多个人脸特征组成的人脸特征集合与目标人脸特征集合匹配,则根据预存的人脸特征集合与人物信息的映射关系确定目标人脸特征集合对应的目标人物信息,目标人脸特征集合属于人脸特征库;对目标人物信息执行输出操作。在一个可能的示例中,目标种类图像为车牌图像,目标种类图像包括的多个特征为目标车牌号码,在根据网络层a的输出矩阵执行目标预设操作方面,上述程序包括具体用于执行以下步骤的指令:判断目标车牌号码是否与车牌号码库匹配;若目标车牌号码与车牌号码库匹配,则根据预存的车牌号码与车辆登记信息的映射关系确定目标车牌号码对应的目标车牌登记信息;对目标车牌登记信息执行输出操作。在一个可能的示例中,在获得网络层a对应的目标卷积核和目标卷积步长方面,上述程序包括具体用于执行以下步骤的指令:根据网络层与卷积核的映射关系获得网络层a对应的目标卷积核;根据网络层与卷积步长的映射关系获得网络层a对应的目标卷积步长。在一个可能的示例中,目标卷积步长为s1×s2,网络层a的输入矩阵的大小为r1×r2,目标卷积核的大小为f×f,在根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵方面,上述程序包括具体用于执行以下步骤的指令:当s1和s2均为1时,获取网络层a的第一输入矩阵的第i行输入数据至第(i+f-1)行输入数据,i为1至(r1-f+1)中的任意一个;对第i行输入数据至第(i+f-1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第i行输出数据;根据(r1-f+1)行输出数据获得网络层a的输出矩阵,(r1-f+1)行输出数据包括第i行输出数据。在一个可能的示例中,目标卷积步长为s3×s4,网络层a的输入矩阵的大小为r3×r4,目标卷积核的大小为f×f,在根据目标卷积步长对网络层a的输入矩阵和目标卷积核进行卷积计算,得到网络层a的输出矩阵方面,上述程序包括具体用于执行以下步骤的指令:当s3和s4均为2时,获取网络层a的输入矩阵的第(2j-1)行输入数据至第(2j+1)行输入数据,j为1至[(r3-f)/s4+1]中的任意一个;根据目标卷积步长对第(2j-1)行输入数据至第(2j+1)行输入数据进行筛选,得到筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据;对筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据和目标卷积核进行卷积计算,得到网络层a的输出矩阵的第j行输出数据;根据[(r3-f)/s4+1]行输出数据获得网络层a的输出矩阵,[(r3-f)/s4+1]行输出数据包括第j行输出数据。在一个可能的示例中,在根据目标卷积步长对第(2j-1)行输入数据至第(2j+1)行输入数据进行筛选,得到筛选后的第(2j-1)行输入数据至第(2j+1)行输入数据方面,上述程序包括具体用于执行以下步骤的指令:根据s3对第(2j-1)行输入数据进行f次筛选,得到筛选后的第(2j-1)行输入数据,筛选后的第(2j-1)行输入数据包括f个第(2j-1)行子输入数据,每个第(2j-1)行子输入数据的数据个数为第(2j-1)行输入数据的数据个数的一半;根据s3对第2j行输入数据进行f次筛选,得到筛选后的第2j行输入数据,筛选后的第2j行输入数据包括f个第2j行子输入数据,每个第2j行子输入数据的数据个数为第2j行输入数据的数据个数的一半;根据s3对第(2j+1)行输入数据进行f次筛选,得到筛选后的第(2j+1)行输入数据,筛选后的第(2j+1)行输入数据包括f个第(2j+1)行子输入数据,每个第(2j+1)行子输入数据的数据个数为第(2j+1)行输入数据的数据个数的一半。本申请实施例还提供一种神经网络处理器,该神经网络处理器用于实现如上述方法实施例中记载的任一方法的部分或全部步骤。本申请实施例还提供一种神经网络处理器,该神经网络处理器包括如上述装置实施例中记载的任一卷积计算装置。本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实现方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本申请的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1