一种基于查表的神经网络量化方法技术

技术编号:30231995 阅读:24 留言:0更新日期:2021-09-29 10:06
本申请涉及一种基于查表的神经网络量化方法。所述方法包括:分别构建与神经网络中各层参数及输入数据浮点数据与量化值之间的映射表,将多个数据样本依次输入已训练的全精度神经网络中进行迭代训练,在全精度神经网络对各所述数据样本进行处理时,每一层的参数及输入数据分别根据对应的映射表转化为相应的预设量化值,再根据全精度神经网络对应的损失函数进行反向传播且利用随机梯度下降方法对所述全精度神经网络以及映射表的参数进行优化,直至完成预设次数的迭代训练后,得到量化后的神经网络。采用本方法得到的量化后的神经网络具有较高量化精度和量化效率。具有较高量化精度和量化效率。具有较高量化精度和量化效率。

【技术实现步骤摘要】
一种基于查表的神经网络量化方法


[0001]本申请涉及人工智能
,特别是涉及一种基于查表的神经网络量化方法。

技术介绍

[0002]受动物神经网络启发,人们设计出人工神经网络,使其能够自主地从数据中学习经验。近年来,人工神经网络发展十分迅速,在计算机视觉、自然语言处理、推荐系统、机器人等领域得到了成功的应用。
[0003]随着人工神经网络的不断发展,网络的层数不断加深,参数量不断增大,在性能得到显著提高的同时,对计算资源的需求也越来越大。随着智能手机、智能穿戴设备等智能终端的普及,在计算资源受限的嵌入式设备中运行神经网络的需求越来越高。
[0004]为了降低神经网络的计算开销,权重分解、剪枝、量化、蒸馏等技术相继被提出,有效降低了神经网络对计算资源的需求,提高了神经网络的运行效率,促进了神经网络智能手机等终端设备上的部署。
[0005]传统的量化方法多采用取整计算,对神经网络中的权值和激活值进行量化。这种量化方式没有考虑网络中权值和激活值的“钟形”分布规律,同等地对待每个值,具有较大的量化误差。为了克服这一问题,一些已有方法利用复杂计算首先将权值和激活值转换到另一个域中,之后利用取整操作进行量化。这些方法虽然取得了更低的量化误差及更优的性能,复杂的转换操作却带来了额外的计算负担。

技术实现思路

[0006]基于此,有必要针对上述技术问题,提供一种能够提高神经网络的量化精度和量化效率的一种基于查表的神经网络量化方法。
[0007]一种基于查表的神经网络量化方法,所述方法包括:
[0008]构建映射表,所述映射表包括参数映射表以及输入数据映射表,所述参数映射表包括神经网络中每一层的参数浮点数到预设量化值之间的映射关系,所述输入数据映射表包括神经网络中每一层的输入数据浮点数到预设量化值之间的映射关系;
[0009]将多个数据样本依次输入已训练的全精度神经网络中进行迭代训练,在所述全精度神经网络对各所述数据样本进行处理时,每一层的参数及输入数据分别根据对应的所述参数映射表及输入数据映射表转化为相应的预设量化值;
[0010]根据所述全精度神经网络对应的损失函数进行反向传播且利用随机梯度下降方法对所述全精度神经网络以及映射表的参数进行优化,直至完成预设次数的迭代训练后,得到量化后的神经网络。
[0011]在其中一实施例中,所述构建映射表包括:
[0012]根据神经网络每一层的参数或输入数据获取M=2
b

1组辅助参数{g
11
,g
12
,

,g
1K
},{g
21
,g
22
,

,g
2K
},

,{g
M1
,g
M2
,

,g
MK
},其中b为预设量化值,K为预设值;
[0013]获取温度参数t;
[0014]采用softmax分别计算每组辅助参数在温度参数t条件下的分布概率{p
11
,p
12
,

,p
1K
},{p
21
,p
22
,

,p
2K
},

,{p
M1
,p
M2
,

,p
MK
};
[0015]对每组计算得到的分布概率进行累加后,再将各组之间进行组合,得到映射表。
[0016]在其中一实施例中,计算辅助参数在温度参数t条件下的分布概率的公式为:
[0017][0018]其中,g
ij
为辅助参数,P
ij
为辅助参数计算得到的对应分布概率。
[0019]在其中一实施例中,所述将多个数据样本依次输入已训练的全精度神经网络中进行迭代训练时,温度参数t0的初始值设置为1;
[0020]对所述映射表的优化还包括:在每次进行迭代训练时,还根据以下公式对温度参数t进行调整:
[0021][0022]其中,i表示当前迭代次数,S为预设的总迭代次数,t0为初始值,t1为预设值。
[0023]在其中一实施例中,所述每一层的参数及输入数据分别根据对应的所述参数映射表及输入数据映射表转化为相应的预设量化值包括:
[0024]获取可学习的第一尺度参数以及第二尺度参数;
[0025]将所述参数除以第一尺寸参数进行缩放得到第一缩放数据,将所述输入数据除以第二尺寸参数进行缩放得到第二缩放数据;
[0026]对所述第一缩放数据以及第二缩放数据分别进行裁剪,对应得到第一裁剪值和第二裁剪值;
[0027]对所述第一裁剪值以及第二裁剪值分别根据对应的参数映射表及输入数据映射表进行查找,分别查找到与第一裁剪值及第二裁剪值对应的第一量化值及第二量化值;
[0028]将所述第一量化值乘以第一尺度参数进行缩放得到参数量化值,将所述第二量化值乘以第二尺度参数进行缩放得到输入数据量化值。
[0029]在其中一实施例中,所述第一裁剪值的范围为[0,1],所述第二裁剪值的范围为[

1,1]。
[0030]在其中一实施例中,在构建映射表时,各层的参数及输入数据均映射至同一预设量化值,或每层的参数或输入数据映射至不同的预设量化值。
[0031]在其中一实施例中,在将多个所述数据样本在输入已训练的全精度神经网络进行训练前还对其进行数据增强处理;
[0032]所述增强处理包括对所述数据样本进行旋转操作,或翻转操作。
[0033]一种基于查表的神经网络量化装置,所述装置包括:
[0034]映射表构建模块,用于构建映射表,所述映射表包括参数映射表以及输入数据映射表,所述参数映射表包括神经网络中每一层的参数浮点数到预设量化值之间的映射关系,所述输入数据映射表包括神经网络中每一层的输入数据浮点数到预设量化值之间的映
射关系;
[0035]神经网络量化训练模块,用于将多个数据样本依次输入已训练的全精度神经网络中进行迭代训练,在所述全精度神经网络对各所述数据样本进行处理时,每一层的参数及输入数据分别根据对应的所述参数映射表及输入数据映射表转化为相应的预设量化值;
[0036]神经网络量化完成模块,用于根据所述全精度神经网络对应的损失函数进行反向传播且利用随机梯度下降方法对所述全精度神经网络以及映射表的参数进行优化,直至完成预设次数的迭代训练后,得到量化后的神经网络。
[0037]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0038]构建映射表,所述映射表包括参数映射表以及输入数据映射表,所述参数映射表包括神经网络中每本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于查表的神经网络量化方法,其特征在于,所述方法包括:构建映射表,所述映射表包括参数映射表以及输入数据映射表,所述参数映射表包括神经网络中每一层的参数浮点数到预设量化值之间的映射关系,所述输入数据映射表包括神经网络中每一层的输入数据浮点数到预设量化值之间的映射关系;将多个数据样本依次输入已训练的全精度神经网络中进行迭代训练,在所述全精度神经网络对各所述数据样本进行处理时,每一层的参数及输入数据分别根据对应的所述参数映射表及输入数据映射表转化为相应的预设量化值;根据所述全精度神经网络对应的损失函数进行反向传播且利用随机梯度下降方法对所述全精度神经网络以及映射表的参数进行优化,直至完成预设次数的迭代训练后,得到量化后的神经网络。2.根据权利要求1所述的神经网络量化方法,其特征在于,所述构建映射表包括:根据神经网络每一层的参数或输入数据获取M=2
b

1组辅助参数{g
11
,g
12
,

,g
1K
},{g
21
,g
22
,

,g
2K
},

,{g
M1
,g
M2
,

,g
MK
},其中b为预设量化值,K为预设值;获取温度参数t;采用softmax分别计算每组辅助参数在温度参数t条件下的分布概率{p
11
,p
12
,

,p
1K
},{p
21
,p
22
,

,p
2K
},

,{p
M1
,p
M2
,

...

【专利技术属性】
技术研发人员:郭裕兰王龙光王应谦安玮林再平
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

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

1