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

率失真优化的图像压缩神经网络训练后量化方法技术

技术编号:38612284 阅读:8 留言:0更新日期:2023-08-26 23:40
本发明专利技术公开了一种率失真优化的图像压缩神经网络训练后量化方法。该方法步骤如下:获取高清图像数据集,构建训练集、测试集和交叉验证集;建立与浮点模型对应的量化模型,并初始化量化参数;构建图像压缩神经网络,逐层优化量化模型,对于当前层的优化,分为前向传播和反向传播两个过程:在前向传播中,计算当前层的量化损失和整个模型的率失真损失,加权作为损失函数;在反向传播中,通过梯度下降法优化该层权重、偏置、激活值的量化参数和权重、偏置的舍入方式;直到量化模型所有层优化完毕,得到最终的量化模型和量化参数。本发明专利技术的量化方法,与32比特的浮点模型在大量测试图像上的同等比较中,可以在保持性能的情况下减少75%的内存占用。的内存占用。的内存占用。

【技术实现步骤摘要】
率失真优化的图像压缩神经网络训练后量化方法


[0001]本专利技术涉及神经网络的网络量化领域,特别涉及一种率失真优化的图像压缩神经网络训练后量化方法。

技术介绍

[0002]过去的几十年里,图像压缩被广泛地应用以实现高效的信息共享。近年来,基于学习的图像压缩神经网络(Learned Image Compression)蓬勃发展,它能使用统计学习方法从原始数据中提取高层特征,在大量的数据中获得输入空间的有效表征,实现图像的高效压缩,相较于传统图像编解码,其展现出更高的编码效率和明显的性能提升。
[0003]然而随着编码增益的提升,图像压缩神经网络的复杂性也急剧上升。首先神经网络一般采用浮点数来表征数据,这带来了巨大的时间和空间复杂度,一个典型的神经网络模型所需的浮点运算频率往往在十亿甚至万亿的数量级上,而所需要的运行内存则在数百兆至数千兆字节之间,这严重限制了它的应用场景。另一方面,由于浮点运算中存在的数值不稳定性,即使极小的舍入误差也会导致跨平台的数据传输出现解码失败,严重损害了主观的体验质量。
[0004]量化是解决上述实际问题的一种有效方法,通过将原始32比特的浮点模型中的参数量化为低比特的定点数,在保持网络模型的参数量不变的同时,减少了每个网络参数的比特位数,通过降低每次浮点运算的开销来降低模型的计算复杂度;此外量化后的定点数还避免了跨平台的浮点运算所带来的数值不稳定性,保证了运算过程的一致性。
[0005]而当前的针对图像压缩神经网络的量化方法,往往带来较大的率失真(Rate

Distortion)损失或依赖模型的重训练,如果在保持模型表达能力的基础上,将浮点模型量化为低比特的定点模型,对于图像压缩神经网络的跨平台部署和推理加速是很有意义的。

技术实现思路

[0006]为此,本专利技术的目的是高效地量化图像压缩神经网络,提出一种率失真优化的图像压缩神经网络训练后量化方法。
[0007]本专利技术采用的技术方案为:
[0008]率失真优化的图像压缩神经网络训练后量化方法,包括如下步骤:
[0009]S1,获取高清图像数据集,构建模型量化及优化所需的训练集、测试集和交叉验证集;
[0010]S2,获取训练后的原始浮点模型,建立与原始浮点模型对应的量化模型:将需要量化的原始浮点模型中的各个模块替换为对应的定点模块,在定点模块内和模块间插入量化节点,并初始化量化参数;
[0011]S3,构建图像压缩神经网络,包括主编码器、主解码器、超编码器和超解码器;从所述主编码器开始依次对超编码器、超解码器和主解码器进行逐层优化所述量化模型;对于当前层的优化,包括前向传播和反向传播两个过程:
[0012]在前向传播过程中,计算当前层量化输出和原始浮点模型输出间的量化损失,计算量化模型最终输出和原始浮点模型最终输出间的率失真损失,加权量化损失和率失真损失作为损失函数;
[0013]在反向传播过程中,使用所述损失函数计算梯度,通过梯度下降法优化当前层权重、偏置、激活值的量化因子和权重、偏置的舍入方式;
[0014]S4,当所述量化模型的所有层优化完毕后,得到最终的量化模型和量化参数。
[0015]进一步地,所述步骤S2中,对每个层的每个通道单独计算其相应量化参数,进行逐通道量化。
[0016]进一步地,所述步骤S2中,相应量化参数包括量化因子、零点以及控制动态范围的参数。
[0017]进一步地,所述步骤S3中,在前向传播过程中使用量化输出和原始浮点模型输出间的均方误差作为当前层的量化损失,使用量化模型输出和原始浮点模型输出间的率失真损失作为整个模型的任务损失,将量化损失与任务损失相加权作为损失函数。
[0018]进一步地,所述步骤S3中,在反向传播过程中通过梯度下降法优化控制动态范围的参数实现自适应的动态范围,以便优化量化因子,同时使用自适应舍入策略代替四舍五入操作。
[0019]本专利技术提出了一种新的图像压缩神经网络量化方法,可以将原始32比特的浮点模型量化为8比特的定点模型,在内存占用减少约75%的同时,保持模型的性能稳定,相比于其他的图像压缩神经网络量化方法,无需模型的重训练,即可实现了更小的率失真损失。此外,作为一种无需再训练的方法,其具有更好的可扩展性。
附图说明
[0020]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性的劳动前提下,还可以根据这些附图获得其他的附图。
[0021]图1是本专利技术量化方法的流程图。
[0022]图2是图像压缩神经网络的系统图。
[0023]图3是量化卷积层前向传播和反向传播的计算图。
[0024]图4是本专利技术方法同原始32比特浮点模型在24张768
×
512分辨率的Kodak数据集上的性能对比图。
[0025]图5是本专利技术方法同原始32比特浮点模型在100张1200
×
1200分辨率的Tecnick数据集上的性能对比图。
具体实施方式
[0026]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方法做进一步地详细描述。
[0027]本实施例的一种率失真优化的图像压缩神经网络训练后量化方法,是指对训练后的原始浮点模型进行量化,具体步骤如下:
[0028](1)首先收集和整理所需高清图像(包括柯达无损图片库、ImageNet图片库等),构建模型量化及优化所需的训练数据集、测试数据集和交叉验证集。
[0029](2)获取训练后的原始浮点模型,建立与浮点模型对应的量化模型:将需要量化的浮点模型中的各个模块替换为对应的定点模块,在模块内和模块间插入量化节点,并初始化量化参数。
[0030](3)构建图像压缩神经网络,并逐层优化量化模型;对于当前层的优化,主要分为前向传播和反向传播两个过程:
[0031]在前向传播过程中,计算当前层量化输出和原始浮点输出间的量化损失,计算量化模型输出和原始浮点模型输出间的率失真损失,加权量化损失和率失真损失作为损失函数;
[0032]在反向传播过程中,使用上述得到的损失函数计算梯度,通过梯度下降法优化该层权重、偏置、激活值的量化因子和权重、偏置的舍入方式;
[0033](4)当量化模型的所有层优化完毕后,得到最终的量化模型和量化参数。
[0034]所述步骤(1)中,从图片库中随机抽样少量图片(如10张)作为训练集,用于量化模型的优化,在优化过程中生成实时的损失函数Loss与迭代次数T的曲线,在曲线在收敛趋于平缓稳定或超出迭代上限后结束优化。其中训练集、测试集和验证集相互独立不重合。
[0035]所述步骤(2)中,量化模型的结构与原浮点模型保持一致,但需要原模型中的各个模块(如卷积、归一化层)替换为相应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.率失真优化的图像压缩神经网络训练后量化方法,其特征在于,包括如下步骤:S1,获取高清图像数据集,构建模型量化及优化所需的训练集、测试集和交叉验证集;S2,获取训练后的原始浮点模型,建立与原始浮点模型对应的量化模型:将需要量化的原始浮点模型中的各个模块替换为对应的定点模块,在定点模块内和模块间插入量化节点,并初始化量化参数;S3,构建图像压缩神经网络,包括主编码器、主解码器、超编码器和超解码器;从所述主编码器开始依次对超编码器、超解码器和主解码器进行逐层优化所述量化模型;对于当前层的优化,包括前向传播和反向传播两个过程:在前向传播过程中,计算当前层量化输出和原始浮点模型输出间的量化损失,计算量化模型最终输出和原始浮点模型最终输出间的率失真损失,加权量化损失和率失真损失作为损失函数;在反向传播过程中,使用所述损失函数计算梯度,通过梯度下降法优化当前层权重、偏置、激活值的量化因子和权重、偏置的舍入方式;S4,当所述量化模型的所有层优化完毕后,得到最...

【专利技术属性】
技术研发人员:马展石峻奇陆明
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1