掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请属于人工智能技术领域,尤其涉及一种数据处理方法、卷积计算装置及方法。

背景技术

目前,越来越多的领域开始应用人工智能技术。在人工智能技术中,电子设备可以利用训练样本对计算模型(即神经网络模型)进行机器学习。之后,电子设备可以利用训练好的计算模型来执行一些任务,如分类和预测等。比如,卷积神经网络(ConvolutionalNeural Networks,CNN)可以用于图像识别等。然而,有些卷积层中卷积核的数据庞大,导致在电子设备上进行卷积层的卷积处理时需要占用较多的系统资源。

发明内容

本申请实施例提供一种卷积计算装置及方法,可以在进行卷积层的卷积处理时节省系统资源。

本申请一实施例提供一卷积计算装置,应用于一卷积层的卷积计算,其包括一解压缩电路、一数据组合电路及一计算电路。解压缩电路用以对卷积层的一卷积核的一压缩权重数据进行解压缩,以产生一解压后权重数据。数据组合电路用以组合解压后数据与卷积核的一未压缩权重数据,以还原卷积核的权重数据的数据顺序。计算电路根据卷积核的权重数据及卷积层的输入数据进行计算。

本申请另一实施例提供一卷积计算装置,应用于一卷积层的卷积计算,其包括一解压缩电路及一计算电路。解压缩电路用以对卷积层的一卷积核的一压缩权重数据进行解压缩,以产生一解压后权重数据。计算电路根据解压后权重数据及卷积层的输入数据进行计算。其中,压缩权重数据及输入数据分别储存于一存储器的不同区块中。

本申请又一实施例提供一卷积计算方法,应用于一卷积层的卷积计算。此方法包括对所述卷积层的一卷积核的一压缩权重数据进行解压缩,以产生一解压后权重数据;以及,根据解压后权重数据及卷积层的输入数据进行计算。其中,压缩权重数据及输入数据分别储存于一存储器的不同区块中。

由上可知,由于是将预先经过压缩的卷积核的权重数据传输给电子设备,当进行卷积运算时,先对压缩后的权重数据进行解压缩后,电子设备上的卷积计算装置再据以进行卷积运算,因此,可降低卷积核在电子设备中所占用的存储空间及传输时所需的带宽,从而在进行卷积处理时节省系统资源。

附图说明

下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其有益效果显而易见。

图1是本申请实施例提供的数据处理方法的流程示意图。

图2是本申请实施例提供的卷积计算装置的方块示意图。

图3是本申请另一实施例提供的数据处理方法的流程示意图。

图4是卷积核的权重数据示意图。

图5是对权重数据进行格式转换的示意图。

图6是本申请另一实施例提供的卷积计算装置的方块示意图。

图7是一实施例中权重数据对应的压缩字符的示意图。

图8至图14是本申请实施例提供的数据处理方法的场景示意图。

具体实施方式

请参照图示,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。

本发明提出可应用于卷积计算装置的数据处理方法及对应的卷积计算装置,其藉由预先将卷积层中卷积核的权重数据进行压缩,再将压缩后权重数据输入至对应的卷积计算装置中的,当卷积计算装置进行运算时,再对压缩后权重数据进行解压缩,藉此可降低卷积核权重数据所占用的系统资源。实施上,本发明提出的卷积计算装置可应用于诸如智能手机、平板电脑、安控装置等电子设备上。

请参阅图1,图1是本申请实施例提供的数据处理方法的流程示意图,详细说明如下。

步骤101中,获取一训练好的计算模型的一卷积层对应的一卷积核的权重数据,上述计算模型可以为卷积神经网络。

步骤102中,对卷积核的权重数据进行压缩,得到压缩后的权重数据。一实施例中,步骤101及步骤102是由一处理器执行特定程序代码所实现,而此处理器并不在卷积计算装置中,也就是说,步骤101及步骤102是由卷积计算装置外部的处理器预先对卷积核的权重数据进行压缩处理。实施上,用以压缩卷积核的权重数据的压缩格式可为霍夫曼(Huffman)压缩格式。

步骤103中,将压缩后的权重数据传输到具有卷积计算装置的电子设备上,例如,将压缩后的权重数据传输到电子设备的存储器。

在一实施例中,将预先压缩好的权重数据传输到需使用此权重数据的电子设备上,实施上,压缩后的权重数据是储存于电子设备中一存储器的一第一区块中,而与此权重数据对应的卷积层的输入数据是储存于此存储器的一第二区块中。

步骤104中、对压缩后的权重数据进行解压缩。实施上,可由卷积计算装置中的解压缩电路对压缩后的权重数据进行解压缩处理。

请参阅图2,图2是本申请实施例提供的卷积计算装置的方块示意图。卷积计算装置20设置于一电子设备中,此电子设备的存储器201中储存有一压缩后的权重数据,其对应一卷积层的卷积核,存储器201中亦可储存此卷积层的输入数据。当卷积计算装置20进行卷积运算时,解压缩电路202自存储器201读取压缩后的权重数据,并对压缩后的权重数据进行解压缩。若压缩权重数据的压缩格式为霍夫曼压缩格式时,解压缩电路202可根据一霍夫曼码表对压缩后的权重数据进行解压缩。

步骤105中、根据解压缩后的权重数据进行卷积计算。当卷积计算装置20进行卷积运算时,计算电路203根据解压缩后的权重数据及对应的卷积层的输入数据进行卷积计算。

由上可知,由于是将预先经过压缩的卷积核的权重数据传输给电子设备,当进行卷积运算时,先对压缩后的权重数据进行解压缩后,电子设备上的卷积计算装置再据以进行卷积运算,因此,可降低卷积核在电子设备中所占用的存储空间及传输时所需的带宽,从而在进行卷积处理时节省系统资源。

请参阅图3,图3为本申请实施例提供的数据处理方法的另一流程示意图,详细说明如下。

步骤301中,获取一卷积神经网络的一卷积层对应的一卷积核的权重数据。例如,如图4所示,一卷积层的卷积核的权重数据为5行12列的一个二维数组,即该卷积核共包含60个权重。在其它实施方式中,卷积核可以是具有其它行数和列数的二维数组,或者卷积核可以是三维或者四维等的数组。

步骤302中,对卷积核的权重数据进行格式转换。为进一步降低数据量,可对卷积核的权重数据进行格式转换,例如将卷积核的各权重由补码转换为原码。

请参阅图5,图5是将权重数据由补码转换为原码的示意图。以卷积核的第1行第5列的权重为例,该权重的补码为FB(其真值为-5)。电子设备可以将该权重由补码FB转换为原码85。需要说明的是,补码FB对应的二进制表示为11111011,其中高4比特的1111代表F(16进制),低4比特的1011代表B(16进制)。补码11111011转换为原码是10000101。原码10000101中的高4比特1000对应的16进制数为8,低4比特0101对应的16进制数为5。因此,FB由补码转换为原码是85。需要说明的是,正数的补码和原码相同。

另外,一般在计算机设备中卷积核的权重数据并不是以16进制的形式存储的,而是以具有多个比特位的二进制的形式存储的。例如,图4中卷积核的第1行第5列的权重FB在计算机设备中并不是以FB的形式存储的,而是以具有很多比特位的二进制数的形式存储的。

步骤303中,按照预设规则确定卷积核的各权重数据对应的8比特二进制数字。在对卷积核的权重数据进行格式转换之后,可再按照一预设规则确定卷积核的各权重所对应的8比特二进制数字。在一实施方式中,预设规则可以是将卷积核的各权重所包括的两个数码位的数字分别转换为对应的4比特二进制数字,并将得到的两个4比特二进制数字按照数码位的顺序拼接成8比特二进制数字。

例如,卷积核的第1行第5列的权重为85,其中85中的“8”对应的二进制数字为1000,“5”对应的二进制数字0101,因此权重85对应的二进制数字可以由1000和0101拼接而成,即10000101。又例如,卷积核的第3行第4列的权重为81,其中81中的“8”对应的二进制数字为1000,“1”对应的二进制数字0001,因此权重81对应的二进制数字可以由1000和0001拼接而成,即10000001。

步骤304中,从卷积核的各权重对应的8比特二进制数字中提取第一部分数据和第二部分数据,该第一部分数据为8比特二进制数字中除最高数码位的数字和最低的三个数码位的数字外的其它数字,该第二部分数据包括8比特二进制数字中的最高数码位的数字和最低的三个数码位的数字。

例如,权重85对应的8比特二进制数字为10000101,则第一部分数据为0000(即从低到高的顺序中的第7比特位、第6比特位、第5比特位和第4比特位),第二部分数字据1101(即从低到高的顺序中的第8比特位、第3比特位、第2比特位和第1比特位)。又例如,权重81对应的8比特二进制数字为10000001,则第一部分数据为0000(即从低到高的顺序中的第7比特位、第6比特位、第5比特位和第4比特位),第二部分数据为1001(即从低到高的顺序中的第8比特位、第3比特位、第2比特位和第1比特位)。

步骤305中,对各权重对应的第一部分数据进行压缩。在得到卷积核的各权重对应的第一部分数据和第二部分数据后,可对各权重对应的第一部分数据进行无损压缩,压缩后的第一部分数据与未压缩的第二部分数据可分开储存,也是说,经压缩的第一部分数据是集中储存在一起,而未经压缩的第二部分数据是集中储存在一起。

一实施例中,在对各权重对应的第一部分数据进行的压缩可以是霍夫曼压缩。霍夫曼压缩是一种无损压缩方式,它可以用较少的比特表示出现频率较高的字符,用较多的比特表示出现频率较低的字符,从而达到数据压缩的目的。

例如,所有权重的第一部分数据中“0000”出现的频率最高,在霍夫曼编码中“0000”用字符“1”表示,这样卷积核的数据就可以实现压缩目的了。

步骤302中之所以要将卷积核中的权重由补码转换为原码,并从卷积核中提取第一部分数据,且对第一部分数据进行压缩,是因为正数和负数的原码的第一部分数据相同,因此可以提高卷积核对应的数据的压缩率。

步骤306中,将压缩后的权重数据及未压缩的权重数据传输至一需使用这些数据的电子设备。此电子设备具有一卷积计算装置,请参阅图6,图6是本申请另一实施例提供的卷积计算装置的方块示意图。卷积计算装置60可利用储存在电子设备中的压缩后的权重数据及未压缩的权重数据进行卷积计算。这里的压缩后的权重数据即前述的压缩后的第一部分数据,而未压缩的权重数据即前述的第二部分数据。实施上,压缩后的权重数据及未压缩的权重数据储存于电子设备中一存储器不同的区块中,而步骤301至步骤306是由一处理器执行特定程序代码所实现,而此处理器并不在包含卷积计算装置60的电子设备中。

步骤307中,对压缩后的权重数据进行解压缩。当卷积计算装置进行卷积计算时,解压缩电路自存储器601读取压缩后的权重数据,并进行解压缩处理。若压缩权重数据的压缩格式为霍夫曼压缩格式时,解压缩电路602可根据一霍夫曼码表对压缩后的权重数据进行解压缩,霍夫曼码表可储存于一寄存器中。解压缩电路602可将解压后所得到的各权重对应的第一部分数据存回存储器601中或直接输出到数据组合电路604。

步骤308中,组合解压后权重数据与未压缩权重数据,以还原卷积核的权重数据的数据顺序。一实施例中,解压后所得到的各权重对应的第一部分数据储存于存储器601中,数据组合电路604交错地自存储器601中读取第一部分数据及第二部分数据(即未压缩的权重数据),并重排序两者的各权重中数据的顺序,以还原权重数据原始的顺序。实施上,数据组合电路604依据步骤304中取出第一部分数据及第二部分数据的规则,进行反向处理,以还原权重数据原始的顺序。

步骤309中,对已还原顺序的权重数据进行格式转换,以还原权重数据原始格式。转换电路605依据步骤302中所进行格式转换对顺序还原好的权重数据进行格式还原处理。举例来说,若步骤302中是将卷积核中的权重数据由补码转换为原码,转换电路605则会将已还原顺序的权重数据中的原码转换为补码,以将权重数据还原成原始的格式。若权重数据在压缩前有进行其它的格式转换,转换电路605亦会进行反向的格式转换,以将权重数据还原成原始的格式。实施上,转换电路605亦可在第一部分数据与第二部分数据重组前就对解压缩后的权重数据进行反向格式转换。

步骤310中,计算电路603根据已还原的权重数据及对应卷积层的输入数据进行卷积计算。根据权重数据及对应的卷积层的输入数据进行卷积计算。

在一实施例中,对卷积核的权重数据进行压缩前,可先判断卷积核的权重数据的数据量是否大于一预设阈值,若是,则对卷积核对应的权重数据进行分块,得到至少两个数据块,再分别对这两个数据块进行压缩。需要说明的是,由于卷积计算装置的存储空间较小,因此当卷积核的数据量较大时,可以先对卷积核对应的数据进行分块,再对每一分块进行压缩,卷积计算装置则可以在对各数据块对应的压缩数据进行解压缩后再拼接还原成一个完整的卷积核。本实施例中,如果需要对卷积核对应的数据进行分块,电子设备可对分块后得到的所有数据块进行统一的霍夫曼压缩编码,即同一个卷积层的卷积核只会对应于一个霍夫曼码表。

在一实施例中,对各权重对应的第一部分数据所进行压缩处理可包括两阶段,第一阶段为先将各权重对应的第一部分数据转换为16进制的压缩字符。第二阶段为获取卷积核的所有权重对应的压缩字符,并对所有压缩字符进行编码压缩,得到压缩数据和解压缩映射关系表,所述解压缩映射关系表中记载有各压缩字符及其对应的压缩编码。实施上,亦可将各权重对应的第二部分数字转换为16进制的目标字符。而卷积计算装置则会进行对应的反向处理,以还原原始的权重数据。

在一具体实施例中,经补码转原码的转换后,可将各权重对应的第一部分数据转换为16进制的压缩字符。例如,权重85对应的第一部分数据为0000,该第一部分数据0000对应的16进制的字符为0,该0即是权重85对应的第一部分数据转换而来的压缩字符。又例如,权重81对应的第一部分数据为0000,该第一部分数据0000对应的16进制的字符为0,该0即是权重81对应的第一部分数据转换而来的压缩字符。

在获取到卷积核中的所有权重对应的压缩字符后,可对所有压缩字符进行霍夫曼(Huffman)编码压缩,从而得到压缩数据和解压缩间的映射关系表,该解压缩映射关系表中记载有各压缩字符及其对应的霍夫曼编码。该解压缩映射关系表即为用于解压缩的霍夫曼码表。

例如,卷积核的所有权重对应的压缩字符按照各权重在卷积核中的行列位置进行排列得到的二维数组如图7所示。即,图7中的二维数组的第1行第1列的字符为第二卷积核中的第1行第1列的权重对应的压缩字符。二维数组的第1行第2列的字符为第二卷积核中的第1行第2列的权重对应的压缩字符,等等,依次类推。

在获取到所有的压缩字符后,即可对这些压缩字符进行霍夫曼编码压缩,从而得到压缩数据以及对应的用于解压缩的霍夫曼码表。例如,由于所有的压缩字符中“0”出现了54次,“1”出现了5次,“3”出现了1次。因此,通过构建霍夫曼树(Huffman Tree)可得,“0”对应的霍夫曼编码可以为“1”,“1”对应的霍夫曼编码可以为“01”,“3”对应的霍夫曼编码可以为“00”。霍夫曼树可以如图8所示,霍夫曼码表可以如图9所示。

此外,还可将卷积核的各权重对应的第二部分数据转换为16进制的目标字符。这样的话,当卷积计算装置需要对压缩后的卷积核进行解压缩时,卷积计算装置可将该压缩数据解压为各权重对应的压缩字符,并将各权重对应的压缩字符还原为各权重对应的第一部分数据。同时,卷积计算装置可以将各权重对应的目标字符还原为各权重对应的第二部分数据。之后,卷积计算装置再进行第一部分数据和第二部分数据重组及格式转换等处理,以还原原始的权重数据。

可以理解的是,上述将第一部分数据和第二部分数据均转换为16进制的字符的方式可以进一步提高压缩率从而进一步降低在传输压缩后的卷积核时的带宽。

在一实施例中,为了进一步降低传输带宽,可以通过如下方式对经过霍夫曼压缩后的数据再进行压缩。例如,卷积核的各权重的第一部分数据转换成的压缩字符在经过霍夫曼压缩编码后的数组可以如图10所示。比如,本实施例将压缩后的霍夫曼数据分成两个数据块,即第1列至第6列为第一数据块,第7列至第12列为第二数据块,其中,第一数据块和第二数据块均各自占据15个字节(Byte)。对于第一数据块,本实施例可以按照从左至右、从上到下的顺序每4个字符截取作为一个部分、不足4个字符则进行末尾补零的方式将第一数据块(共33个字符)转换为10个部分,再将每个部分的字符转换为16进制的字符,这样第一数据块就被转换为如下字符:FBFFEEFF80,如图11所示。可以理解的是,在电子设备中FBFFEEFF80一共占据5个字节(Byte)。同理,对于第二数据块,本实施例可以按照从左至右、从上到下的顺序每4个字符截取作为一个部分、不足4个字符则进行末尾补零的方式将第一数据块(共33个字符)转换为10个部分,再将每个部分的字符转换为16进制的字符,这样第一数据块就被转换为如下字符:7FFFE7FE80,如图12所示。可以理解的是,在电子设备中7FFFE7FE80一共占据5个字节(Byte)。通过上述方式,卷积核的第一部分数字对应的压缩数据由原来的30个字节进一步压缩为10个字节,压缩率得以提高。

在一实施例中,如果对第一部分数据进行4比特的霍夫曼编码压缩,则霍夫曼编码的最大长度为15比特(即2

以上对本申请实施例所提供的一种数据处理方法及卷积计算装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 卷积计算加速器、卷积计算方法及卷积计算设备
  • 卷积计算方法、卷积计算装置及终端设备
技术分类

06120112185479