当前位置: 首页 > 专利查询>南京大学专利>正文

一种卷积神经网络的比特分割方法及装置制造方法及图纸

技术编号:36553177 阅读:14 留言:0更新日期:2023-02-04 17:07
本发明专利技术公开了一种卷积神经网络的比特分割方法及装置。该方法的步骤包括:步骤1,对神经网络模型进行量化,将数据类型为32位浮点数的输入数据量化为8位定点数的数据类型;步骤2,将步骤1得到的高精度量化结果分割为多条位路径进行传播;步骤3,来自每个比特的特征映射图被单独卷积,但权重参数相同;步骤4,将每个位路径的卷积结果累加起来,生成一个用于分类的特征图。本发明专利技术的方法应用在神经网络可使其所需的硬件资源大大减小,保持硬件友好特性,并提高运算速度。并提高运算速度。并提高运算速度。

【技术实现步骤摘要】
一种卷积神经网络的比特分割方法及装置


[0001]本专利技术涉及卷积神经网络的比特分割方法,属于神经网络的硬件部署


技术介绍

[0002]深度神经网络的巨大计算成本和内存需求使其难以在资源受限的环境中使用。二元神经网络(BNN)利用二元权重和二元激活,以其硬件友好的特点和最小的资源需求而备受关注。然而,BNN通常会受到精度下降的影响。并且对于大型神经网络,BNN往往会在推理精度上遭受重大损失。为了减少精度损失,人们提出了权重和激活精度为2到4位的多位神经网络。虽然权重和激活增加的位精度提高了分类精度,但BNN的各种硬件友好特性不能应用于多位神经网络,因为大多数硬件友好特性来自按位操作。
[0003]正如2017年在神经信息处理系统研究进展中第344

352页发布的文章《Towards accurate binary convolutional neural network》中分析的,比特分割(Bit Split)方法保持了BNN的硬件友好特性,同时通过使用多位精度来提高精度。在比特分割网络(Bit Split Net)中,多位激活的每一位在网络末端合并之前,在整个网络中独立传播。因此,Bit Split网络的每个位路径都类似于BNN,这保留了BNN的硬件友好特性。Bit Split Net仅使用二进制激活函数;与多位激活函数相比,二进制激活函数可以用阈值函数代替。从硬件的角度来看,它很容易实现一个阈值函数,同时充当激活函数和量化函数,并且,可以将多个线性变换与阈值函数相结合。当且仅当使用二进制激活函数时,可以使用阈值函数合并大多数高精度线性变换。因此,与二元神经网络类似,Bit Split Net也可以使用硬件友好阈值函数。

技术实现思路

[0004]为了神经网络在资源受限的环境中实现先进网络,使硬件资源消耗最小且不降低精度,本专利技术提供一种卷积神经网络的比特分割方法。
[0005]本专利技术采用的技术方案如下:
[0006]一种卷积神经网络的比特分割方法,该方法的步骤包括:
[0007]步骤1,对神经网络模型进行量化,将数据类型为32位浮点数的输入数据量化为8位定点数的数据类型;
[0008]步骤2,将步骤1得到的高精度量化结果分割为多条位路径进行传播;
[0009]步骤3,来自每个比特的特征映射图被单独卷积,但权重参数相同;
[0010]步骤4,将每个位路径的卷积结果累加起来,生成一个用于分类的特征图。
[0011]进一步地,所述步骤1中,统计出输入数据即激活值中的最大值和最小值,根据输入数据最大值和最小值来计算获得量化的参数,然后对激励数据进行非对称量化。
[0012]进一步地,所述步骤2中,将步骤1得到的高精度量化结果分割为两条路径:最高有效位MSB和第二高有效位MSB;首先生成和原始数据尺寸相同的空矩阵,原始数据8bit量化结果的最高位或第二高位为1时,将对应空矩阵位置赋值为255;原始数据8bit量化结果的
最高位或第二高位为0时,将对应空矩阵位置赋值为0;遍历所有原始数据即分别得到最高有效位MSB和第二高有效位MSB的数据。
[0013]进一步地,所述步骤3中,除了步骤2分割使用的激活层之外,所有其他激活层都使用阈值函数作为激活函数,而且阈值固定为0.5。
[0014]进一步地,所述步骤4中,将每个位路径的结果累加起来,即为将每个位路径的结果进行简单加权和。
[0015]本专利技术还提供一种卷积神经网络的比特分割装置,该装置包括:
[0016]激励量化模块,用于对神经网络模型进行数据量化;
[0017]位分割模块,用于将所述激励量化模块输出的数据分割成多条路径;
[0018]按位卷积模块,用于将每个比特的特征映射图进行单独卷积,采用的权重参数相同;
[0019]位合并模块,用于将每个位路径的卷积结果累加起来,生成一个用于分类的特征图。
[0020]本专利技术充分利用多位激活的每个位在整个网络中独立传播,保留了BNN的高效硬件特性。并且该方法仅使用二进制激活函数,以及使用从硬件方面很容易实现的阈值函数来代替,可以使用阈值函数合并大多数高精度线性变换,所以本专利技术比特分割方法比传统的多位网络更具硬件效率。由于所需硬件资源大大减少,利用本专利技术方法的卷积神经网络可以在资源受限的实际环境中实现。
附图说明
[0021]图1为本专利技术实施例中卷积神经网络的结构及尺寸说明图。其中,convolution表示卷积,RELU表示一种激活函数,max pooling表示最大池化层,fullyconnected表示全连接层,softmax表示一种激活函数。
[0022]图2为本专利技术实施例中的数据流图及结构图。其中,Input Image表示输入特征图,MSB表示最高有效位,2ndMSB表示第二高有效位。
[0023]图3为传统的多位网络中使用的(a)2位量化函数及其(b)近似推导。其中,Input表示量化函数输入,Output表示量化函数输出。
[0024]图4为2位量化函数第一位的激活函数以及第二位的激活函数。其中,Input表示量化函数输入,Output表示量化函数输出,(a)为图3(a)中第一位的激活函数,(b)为图3(a)中第二位的激活函数。
[0025]图5为本专利技术方法的算法流程图。
具体实施方式
[0026]本实施例提供一种卷积神经网络的比特分割方法,特征映射图中的每一位都在比特分割网络中独立传播。尽管每个比特位独立传播,但层中的所有比特共享相同的权重参数。因此,网络参数的大小(或内存占用)与原始卷积神经网络相同。本实施例的整体网络方案中每个特征图数据被拆分为两个位。第一激活层充当“bit拆分层”。bit拆分层将高精度卷积结果拆分为两条路径:MSB和2
nd
MSB。拆分后,每个bit在整个网络中分别传播。在网络末端,一个“位合并层”将分离的位合并成一个特征图数据,最后一个特征映射用于分类器。该
方法将一个k位激活分割为k个二进制激活,通过使用多位精度来保持二元神经网络的硬件友好特性,同时实现比二元神经网络更高的精度。对于每个层,X代表层的输入,Y代表层的输出。以下未描述的其他层以与传统网络中相同的方式实现。
[0027](1)激励量化:对神经网络模型进行量化,将数据类型为float32(32位浮点数)的输入数据量化为int8(8位定点数)的数据类型。以便于后续的数据处理。统计出输入数据(即激活值)中的最大值和最小值,选择量化类型为非对称量化,并根据输入数据最大值和最小值来计算获得量化的参数Z/Zero point(零点)和S/Scale(缩放因子)。
[0028](2)位分割层:比特分割层是卷积神经网络的比特分割方法开始与原始的卷积神经网络不同的第一层。这一层将高精度输入由不同的激活函数分割成多条路径进行传播。图3和图4显示了比特分割层如何模拟传统的基于ReLU的量化层。首先本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种卷积神经网络的比特分割方法,其特征在于,该方法的步骤包括:步骤1,对神经网络模型进行量化,将数据类型为32位浮点数的输入数据量化为8位定点数的数据类型;步骤2,将步骤1得到的高精度量化结果分割为多条位路径进行传播;步骤3,来自每个比特的特征映射图被单独卷积,但权重参数相同;步骤4,将每个位路径的卷积结果累加起来,生成一个用于分类的特征图。2.根据权利要求1所述的一种卷积神经网络的比特分割方法,其特征在于,所述步骤1中,统计出输入数据即激活值中的最大值和最小值,根据输入数据最大值和最小值来计算获得量化的参数,然后对激励数据进行非对称量化。3.根据权利要求1所述的一种卷积神经网络的比特分割方法,其特征在于,所述步骤2中,将步骤1得到的高精度量化结果分割为两条路径:最高有效位MSB和第二高有效位MSB;首先生成和原始数据尺寸相同的空矩阵,原始数据8bit量化结果的最高位或第二高位为1时,将对应空矩阵位...

【专利技术属性】
技术研发人员:王宇宣孙晓磊梅正宇时云凿潘红兵
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1