神经网络线性量化方法简介

这篇具有很好参考价值的文章主要介绍了神经网络线性量化方法简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

可点此跳转看全篇

神经网络线性量化方法简介,深度学习体系结构,神经网络,人工智能,深度学习

神经网络量化

量化的必要性

Network Model size (MB) GFLOPS
AlexNet 233 0.7
VGG-16 528 15.5
VGG-19 548 19.6
ResNet-50 98 3.9
ResNet-101 170 7.6
ResNet-152 230 11.3
GoogleNet 27 1.6
InceptionV3 89 6
MobileNet 38 0.58
SequeezeNet 30 0.84

随着网络的深度变大,参数变多,神经网络消耗越来越多的算力,占用原来越大的存储资源。
若想在移动设备和嵌入式设备上运行深度学习神经网络,如此庞大的网络参数将对移动设备的运行内存和总线带宽资源造成巨大消耗。目前三个方向:
1)研究新型的轻量网络或者微型网络:设计更高效的新型网络架构,用相对较小的网络模型达到可接受的预测准确度(如MobileNet和SequeezeNet等)。
2)研究现有网络的参数缩减:如网络剪枝,参数量化等;
3)研究新型计算模型、体系结构和计算部件:如内存中计算、忆阻器等

量化方法简介

大多数网络模型都采用32位浮点数(FP32)来存储网络参数。如果改用较低精度的16位浮点数(FP16)来存储网络参数,那么网络模型就可以减小一半。
常用的低精度表示方法有16位定点数(INT16)、8位定点数(INT8)、4位定点数(INT4)、二进制(INT1)等。其中,使用INT1量化的网络称为二元神经网络(Binary Neural Network, BNN)。
根据网络参数到特定位宽定点数的映射类型,可将量化策略可分为线性量化非线性量化两种。线性量化策略将所有的网络参数线性映射到特定量化精度的数据范围中。例如,如果某神经网络的参数值在[0.05, 12]范围内,假设采用INT8的线性量化策略,那么区间[0.05, 12]将被线性映射到[0, 255]非线性策略则根据神经网络的参数密度,在线性量化策略的基础上进行调整。与线性量化策略相比,非线性量化策略能够将网络参数更均匀地映射到定点数区间,因此其量化效果较好,对预测精度的影响较小
此外,根据量化后的网络参数是否关于坐标轴原点对称,可将量化策略分为对称量化和非对称量化两种。对称量化策略将网络参数映射到关于坐标原点对称的区间。例如,假设网络参数的取值范围是[-3, 6],若采用INT8的对称量化策略,则[-3, 6]将被映射到[-127, 127]。非对称量化允许将网络参数映射到不对称的区间。与对称量化策略相比,非对称量化策略能够将网络参数更均匀地映射到定点数区间,因此其量化效果较好,对预测精度的影响较小。

从经验上讲,当量化精度低于INT8时,量化后网络的精度急速下降。因此工业界目前普遍采用INT8的量化精度。

线性对称量化

首先找出每个网络层中参数取值区间端点绝对值的最大值MAX,然后将网络参数所在的[-MAX, MAX]的区间线性映射到[-127, 127]。

[!Note] 举例
假设某个网络层的参数在[-3,6]之间,最大值MAX为6。需要将[-6,6]线性映射到[-127,127],那么6可以用127表示,-3用-63表示。因为原本参数为FP32,而现在是INT8,所以能够将网络参数的大小缩小75%。

INT8线性对称量化步骤如下:文章来源地址https://www.toymoban.com/news/detail-837985.html

  1. 计算参数所在区间的端点 [ a , b ] [a,b] [a,b]绝对值的最大值 M A X = m a x { ∣ a ∣ , ∣ b ∣ } MAX=max\{|a|,|b|\} MAX=max{

到了这里,关于神经网络线性量化方法简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 动手学深度学习(二)线性神经网络

    推荐课程:跟李沐学AI的个人空间-跟李沐学AI个人主页-哔哩哔哩视频 目录 一、线性回归 1.1 线性模型 1.2 损失函数(衡量预估质量) 二、基础优化算法(梯度下降算法) 2.1 梯度下降公式 2.2 选择学习率 2.3 小批量随机梯度下降 三、线性回归的从零开始实现(代码实现) 3.1

    2024年02月14日
    浏览(49)
  • Pytorch深度学习-----神经网络之线性层用法

    PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Compose,RandomCrop) Pytorch深度学习------torchvision中dataset数据集的使用(CIFAR10) Pytorch深度学习--

    2024年02月14日
    浏览(37)
  • 动手学深度学习-pytorch版本(二):线性神经网络

    参考引用 动手学深度学习 神经网络的整个训练过程,包括: 定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型 。经典统计学习技术中的 线性回归 和 softmax 回归 可以视为线性神经网络 1.1 线性回归 回归 (regression) 是能为一个或多个自变量与因变量之间关系建

    2024年02月12日
    浏览(52)
  • 1、动手学深度学习——线性神经网络:线性回归的实现(从零实现+内置函数实现)

    回归(regression)是能为一个或多个自变量与因变量之间关系建模的一类方法。 在自然科学和社会科学领域, 回归经常用来表示输入和输出之间的关系 。 给定一个数据集,我们的目标是 寻找模型的权重和偏置 , 使得根据模型做出的预测大体符合数据里的真实价格。 输出的

    2024年02月11日
    浏览(50)
  • 深度神经网络的数学原理:基于超平面、半空间与线性区域的表示

    以前的文章主要描述了神经网络,即多层感知机、全连接模型的运行原理,还是以实验为主,数学描述为辅的方式,这篇文章以纯数学的视角来描述神经网络的运行原理,主要以前馈过程为主(反向传播的动力学过程还是比较复杂,正向过程还未完全研究清楚,暂时还未考虑

    2024年02月06日
    浏览(45)
  • 深度学习 GNN图神经网络(四)线性回归之ESOL数据集水溶性预测

    本文旨在使用化合物分子的SMILES字符串进行数据模型训练,对其水溶性的值进行预测。 之前的文章《深度学习 GNN图神经网络(三)模型思想及文献分类案例实战》引用的Cora数据集只有一张图,属于图神经网络的节点分类问题。本文介绍的是多图批量训练的线性回归问题,在

    2024年02月02日
    浏览(48)
  • 基于深度神经网络的分类--实现与方法说明

    采用神经网络进行分类需要考虑以下几个步骤: 数据预处理: 将数据特征参数和目标数据整理成合适的输入和输出形式,可以使用过去一段时间的数据作为特征,然后将未来的数据作为输出标签,进行分类问题的预测。 神经网络架构: 本文是一个简化的多层神经网络架构:

    2024年02月11日
    浏览(44)
  • 神经网络基础-神经网络补充概念-11-向量化逻辑回归

    通过使用 NumPy 数组来进行矩阵运算,将循环操作向量化。 向量化的好处在于它可以同时处理多个样本,从而加速计算过程。在实际应用中,尤其是处理大规模数据集时,向量化可以显著提高代码的效率。

    2024年02月12日
    浏览(36)
  • 【深度学习】基于卷积神经网络的铁路信号灯识别方法

    目前中国货运铁路和既有线铁路采用的仍是司机通过瞭望铁路沿线信号灯来指导行驶。本文介绍了一种基于卷积神经网络(CNN)的铁路信号“三显示”通过信号机识别方法,为司机二次甄别信号灯颜色。本文制作“三显示”信号灯数据集,在 TensorFlow 平台搭建卷积神经网络,

    2024年02月09日
    浏览(58)
  • 神经网络基础-神经网络补充概念-18-多个样本的向量化

    多个样本的向量化通常涉及将一组样本数据组织成矩阵形式,其中每一行代表一个样本,每一列代表样本的特征。这种向量化可以使你更有效地处理和操作多个样本,特别是在机器学习和数据分析中。

    2024年02月12日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包