一种神经网络模型量化损失评估方法技术

技术编号:38131431 阅读:8 留言:0更新日期:2023-07-08 09:39
本发明专利技术提供一种神经网络模型量化损失评估方法,属于量化损失评估领域,本发明专利技术分别对每层的量化损失和整个模型量化损失进行衡量。基于量化损失结果,通过可视化和统计分析的方式,衡量量化损失对模型性能影响。通过上述方式,可以有效衡量量化对模型性能影响,适用于神经网络模型量化场景。神经网络模型量化场景。神经网络模型量化场景。

【技术实现步骤摘要】
一种神经网络模型量化损失评估方法


[0001]本专利技术涉及量化损失评估、模型量化、神经网络、深度学习领域,尤其涉及一种神经网络模型量化损失评估方法。

技术介绍

[0002]近年来,深度学习神经网络模型被广泛应用在许多领域,并取得了非常好的效果。同时,神经网络模型参数量和计算量较大,需要较强的计算和存储资源。在模型推理阶段,往往需要对神经网络模型进行剪枝、量化等操作,以便减小资源占用的压力。另外,神经网络模型对模型量化不敏感,模型量化导致的损失在许多情况下较小,因此模型量化得到广泛的使用。虽然,神经网络模型对模型量化不敏感,但不合理的量化方法仍会导致较大的模型量化损失,而有些模型和任务量化难度较大,容易出现大的量化损失。因此,分析量化损失是模型量化的必备操作。目前,对于模型量化损失评估方法研究较少,大多数是比较量化前后模型在测试集上的准确率等指标。在某些没有测试集的场景,或者测试集不方便获取的场景下,难以评判量化损失。另外,缺少对量化损失的度量方法和评估指标,以便客观衡量模型量化损失。

技术实现思路

[0003]为了解决以上技术问题,本专利技术提供一种神经网络模型量化损失评估方法。
[0004]本专利技术的技术方案是:
[0005]一种神经网络模型量化损失评估方法,包括:
[0006]准备并预处理评估数据;
[0007]量化神经网络模型;
[0008]构建量化损失评估指标;
[0009]评估模型单层量化损失;
[0010]评估模型整体量化损失;<br/>[0011]量化损失统计和可视化;
[0012]量化损失分析。
[0013]进一步的,
[0014]基于数据类型,准备样本数据,并按照模型训练时数据预处理方式进行数据预处理;
[0015]在模型量化时,样本数据作为校准数据集,校准激活值阈值;
[0016]在量化损失评估时,样本数据作为评估数据集,用于评估量化损失。
[0017]进一步的,
[0018]训练神经网络模型,并选择合适的量化方法和量化数据类型,对神经网络模型进行量化。
[0019]进一步的,
[0020]量化损失评估是评估两个张量的差异,用T1和T2分别表示这两个张量;评估指标选择余弦相似度,要先将张量T1和T2转换为向量V1和V2;另外,为了避免除0的情况出现,设置∈变量,并取值为0.0001;量化损失Loss如下:
[0021]Loss=1

Similarity(V1

V2)
ꢀꢀ
(1)
[0022][0023]进一步的,
[0024]评估模型单层量化损失,针对神经网络中的每一层,进行模拟量化,模拟量化就是对权重和激活值进行量化和反量化,模拟量化公式如下:
[0025][0026]其中X表示权重或激活值,X_new为模拟量化的权重或激活值,Scale表示量化因子,Round()表示取整函数,Clamp()表示裁剪函数,用于将量化后数据裁剪到目标量化范围;使用模拟量化的权重和激活值进行推理,得到该层的模拟量化输出T1;同时,使用正常的权重和激活值进行推理,得到该层输出为T2;对所有评估样本数据推理,并将所有样本的T1合并为T1_all,所有样本的T2合并为T2_all,将T1_all和T2_all转化成向量,并使用公式(1)计算两者的评估损失Loss
i
,i表示模型第i层。对模型需要量化的每一层重复上述步骤,统计得到各层的量化损失Loss
layer
,N表示模型中需要量化的层数;
[0027]Loss
layer
={Loss1,Loss2,

Loss
N
}。
[0028]进一步的,
[0029]评估模型整体量化损失,选择评估数据中的一个样本,使用浮点数模型进行推理,得到模型输出T1;然后,使用量化后的模型进行推理,得到模型输出T2,将T1和T2转化成向量,并使用公式(1)计算两者的评估损失Loss
i
,i表示第i个样本;对评估数据中的每个样本重复上述步骤,统计得到各样本的模型整体量化损失Loss
model
,M表示评估样本数量;
[0030]Loss
model
={Loss1,Loss2,

Loss
M
}。
[0031]进一步的,
[0032]量化损失统计和可视化,将各层的量化损失Loss
layer
画成直方图,并计算各样本的模型整体量化损失Loss
model
的均值、方差和上下四分位数。
[0033]进一步的,
[0034]量化损失分析,通过分析各层的量化损失直方图,可以定位到量化损失较高的层,进而进行针对性优化。
[0035]本专利技术的有益效果是
[0036]本专利技术分别对每层的量化损失和整个模型量化损失进行衡量。基于量化损失结果,通过可视化和统计分析的方式,衡量量化损失对模型性能影响。通过上述方式,可以有效衡量量化对模型性能影响,适用于神经网络模型量化场景。
附图说明
[0037]图1是本专利技术的工作流程示意图。
具体实施方式
[0038]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0039]本专利技术提供了一种神经网络模型量化损失评估方法,
[0040]首先,准备并预处理评估数据(数据处理模块)。基于数据类型,准备少量样本数据,并按照模型训练时数据预处理方式进行数据预处理。在模型量化时,样本数据作为校准数据集,校准激活值阈值。在量化损失评估时,样本数据作为评估数据集,用于评估量化损失。
[0041]其次,量化神经网络模型(模型量化模块)。训练神经网络模型,并选择合适的量化方法和量化数据类型,对神经网络模型进行量化。常用的量化数据类型包括INT8和UINT8数据类型。
[0042]第三,构建量化损失评估指标(量化损失指标模块)。量化损失评估实质是评估两个张量的差异,用T1和T2分别表示这两个张量。评估指标选择余弦相似度,由于余弦相似度是评估两个向量的相似度,因此要先将张量T1和T2转换为向量V1和V2。另外,为了避免除0的情况出现,设置∈变量,并取值为0.0001。量化损失Loss如下:
[0043]Loss=1

Similarity(V1

V2)
ꢀꢀ
(1)
[0044][0045]第四,评估模型单层量化损失(量化损失评估模块)。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络模型量化损失评估方法,其特征在于,包括:准备并预处理评估数据;量化神经网络模型;构建量化损失评估指标;评估模型单层量化损失;评估模型整体量化损失;量化损失统计和可视化;量化损失分析。2.根据权利要求1所述的方法,其特征在于,基于数据类型,准备样本数据,并按照模型训练时数据预处理方式进行数据预处理;在模型量化时,样本数据作为校准数据集,校准激活值阈值;在量化损失评估时,样本数据作为评估数据集,用于评估量化损失。3.根据权利要求1所述的方法,其特征在于,训练神经网络模型,并选择合适的量化方法和量化数据类型,对神经网络模型进行量化。4.根据权利要求1所述的方法,其特征在于,量化损失评估是评估两个张量的差异,用T1和T2分别表示这两个张量;评估指标选择余弦相似度,要先将张量T1和T2转换为向量V1和V2;另外,为了避免除0的情况出现,设置∈变量,并取值为0.0001;量化损失Loss如下:Loss=1

Similarity(V1

V2)
ꢀꢀꢀꢀ
(1)5.根据权利要求1所述的方法,其特征在于,评估模型单层量化损失,针对神经网络中的每一层,进行模拟量化,模拟量化就是对权重和激活值进行量化和反量化,模拟量化公式如下:其中X表示权重或激活值,X_new为模拟量化的权重或激活值,Scale表示量化因子,Round()表示取整函数,Clamp()表示裁剪函数,用于将量化后数据裁剪到目标量化范围;使用模拟量化的权重和激活值进行推理,得到该层的模拟量化输出T1;同时,使用正常的权重和激活值进行推理,得到该层输出为T2;对所有评估样本数据推理,并将所有样本的...

【专利技术属性】
技术研发人员:陈其宾段强姜凯李锐魏子重
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1