量化简介和模式

1.量化简介

量化主要是一种加速推理的技术,量化运算符仅支持前向传递。量化是指使用精度较低的数据进行计算和内存访问的技术,与浮点实现相比,通常是 int8。这可以在几个重要领 (1).域实现性能提升:
(2).模型尺寸缩小 4 倍;
(3).内存带宽减少 2-4 倍;
(4).由于内存带宽的节省和使用 int8 算法的更快计算,推理速度提高了 2-4 倍(确切的加速取决于硬件、运行时和模型)。
  然而,量化并非没有额外代价。从根本上说,量化意味着引入近似值,由此产生的网络精度略低。这些技术试图最小化完整浮点精度和量化精度之间的差距。

2. 三种量化模式

2.1 Dynamic Quantization - 动态量化

PyTorch支持的最简单的量化方法称为动态量化。这不仅涉及将权重转换为int8(正如所有量化变量中所发生的那样),而且还涉及在执行计算之前将激活转换为int 8(因此为“动态”)。因此,将使用高效的int8矩阵乘法和卷积实现来执行计算,从而实现更快的计算。然而,激活是以浮点格式读取和写入内存的。

2.2 Post-Training Static Quantization - 训练后静态量化

通过将网络转换为同时使用整数算术和int8内存访问,可以进一步提高性能(延迟)。静态量化执行额外的步骤,首先通过网络输入数据批,并计算不同激活的结果分布(具体来说,这是通过在记录这些分布的不同点插入“观察者”模块来完成的)。该信息用于确定不同的激活应该在推断时量化的具体程度(一种简单的技术是将整个激活范围简单地划分为256个级别,但我们也支持更复杂的方法)。重要的是,这一附加步骤允许我们在操作之间传递量化值,而不是在每个操作之间将这些值转换为浮点值,然后再转换为整数,从而大大加快了速度。

在PyTorch中,支持几个允许用户优化静态量化的功能:

观察者:可以自定义观察者模块,指定如何在量化之前收集统计信息,以尝试更高级的方法来量化数据。
运算符融合:可以将多个操作融合为一个操作,节省内存访问,同时提高操作的数值精度。
每通道量化:我们可以在卷积/线性层中独立量化每个输出通道的权重,这可以以几乎相同的速度获得更高的精度。

2.3 Quantization Aware Training - 量化感知训练

量化感知训练(QAT)是第三种方法,也是这三种方法中精度最高的一种。使用QAT,所有权重和激活在训练的前向和后向过程中都是“伪量化”的:也就是说,浮点值被舍入为模拟int8值,但所有计算仍然使用浮点数字完成。因此,训练期间的所有权重调整都是在“感知到”模型最终将被量化这一事实的情况下进行的;因此,在量化之后,该方法通常比其他两种方法产生更高的精度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第57天|● 647. 回文子串 ● 516.最长回文子序列 ● 动态规划总结篇

647. 回文子串 中等 相关标签 相关企业 提示 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使…

【Python百宝箱】边缘计算Python库大揭秘:构建高效、智能的IoT系统

连接与计算:深度解析Python库在边缘计算中的角色 前言 随着边缘计算在物联网和分布式系统中的广泛应用,寻找适用于边缘设备的Python库变得愈发重要。本文将探索多个Python库,涵盖了边缘计算的各个方面,从设备管理、分布式计算到…

网络名称解读 -入门5

WAN: Wide Area Network(跨区域),LAN: Local Area NetworkWAN MAC, 用来连接上级网络, LAN MAC, 用于内部网路。 LAN & WAN 3.1,LAN表示子网,通过掩码来筛选子网内主机数量&…

【C++】类和对象详解(类的使用,this指针)

文章目录 前言面向过程和面向对象的初步认识类的引入类的定义类的访问限定符和封装性访问限定符封装性 类的作用域类的实例化类对象模型如何计算类对象的大小类对象的存储方式猜测结构体内存对齐规则 this指针this指针的引出this指针的特性 总结 前言 提示:这里可以…

计算机毕业设计选题分享-SSM律师事务所业务管理系统01664(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等

SSM律师事务所业务管理系统 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,律师事务所业务管理系统当然也不能排除在外。律师事务所业务管理系统是以实际运用为开发背景…

静态网页设计——电影推荐网(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1NK411x7oK/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…

【亚马逊云科技】使用Helm 3为Amazon EKS部署Prometheus+Grafana监控平台

文章目录 1. 创建Kubernetes命名空间2. 添加Prometheus社区helm chart3. 安装prometheus4. 检查Prometheus Pod运行状况5. 检查Prometheus Service部署情况6. 修改服务访问端口类型7. 访问Prometheus数据收集情况8. 访问Grafana9. 设置数据源10. 查看Kubernetes各类性能可视化参…

c/c++运算符优先级【一文搞懂】【大白讲解】

C运算符优先级教程 我们知道,在数学运算中,有 “先乘除后加减” 的运算规则,在我们程序语言中一样有运算符的优先级问题,来决定我们运算的顺序问题,这就是运算符的优先级。 即所谓运算符的优先级,指的是在…

【linux笔记】top、ps

【linux笔记】top命令 top(Table of process)是动态变化的。而ps是静态的。 PID — 进程id USER — 进程所有者 PR — 进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT — 进程使用的虚拟内存总量,单位kb。VI…

2023年全国职业院校技能大赛软件测试—测试计划模板参考文档

ERP(资源协同)管理平台测试计划 目录 ERP(资源协同)管理平台测试计划 1. 概述

DevOps|产研运协作工具链上的皇冠-项目管理工具

项目管理工具可以说是产研运工具链上最耀眼的明星,也是产研工作最重要的一环(没有之一)。为什么这样说?对于我们每个角色(产品、研发、测试、运维、运营、客服等)我们都可以有各自的专业工具来支撑&#xf…

C语言实例_string.h库函数功能及其用法详解

一、前言 在计算机编程中,字符串处理是一项常见而重要的任务。C语言的string.h头文件提供了一系列函数和工具,用于对字符串进行操作和处理。这些函数包括字符串复制、连接、比较、查找等功能,为开发人员提供了强大的字符串处理能力。本文将对…

Python实现大数据量对比

Python实现大数据量对比有以下几种方法: 并行计算:利用多线程或多进程并行处理数据,加快对比速度。Python中可以使用multiprocessing模块实现多进程,并发地对数据进行处理。 分布式计算:将数据分布到多台机器上进行计…

计算机中的数据运算

放上计算机中的数据的表示方法 计算机中的数据表示方法-CSDN博客 补码的运算: 连同符号位一起相加,符号位产生的进位自然丢掉,这里要特别注意机器数的位数,计算数的位数决定了可以存放的数据的大小,加减产生的数据的…

电商数据api接口商品详情API接口及代码展示案例

电商平台API接口中的商品详情API接口在电商平台中扮演着非常重要的角色。其主要作用及重要性包括以下几点: 实现商品信息的动态更新:通过商品详情API,电商平台上的商品信息可以实现实时的更新。这样能够保证用户看到的信息是准确的&#xff…

Spring boot封装rocket mq 教程

1、rocket mq版本 5.1.3 2、pom引入rocket mq依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client-java</artifactId><version>5.0.4</version></dependency> 3、发送MQ消息工具类 impor…

1002 写出这个数

读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10100。 输出格式&#xff1a; 在一行内输出 n 的各位数字之和的每一…

ATTCK视角下的信息收集:主机发现

目录 1、利用协议主动探测主机存活 利用ICMP发现主机 利用ARP发现主机 利用NetBIOS协议发现主机 利用TCP/UDP发现主机 利用DNS协议发现主机 利用PRC协议发现主机程序 2、被动主机存活检测 利用Browser主机探测存活主机 利用ip段探测主机存活 利用net命令探测主机存活…

【软件测试】学习笔记-测试覆盖率

测试覆盖率通常被用来衡量测试的充分性和完整性&#xff0c;从广义的角度来讲&#xff0c;测试覆盖率主要分为两大类&#xff0c;一类是面向项目的需求覆盖率&#xff0c;另一类是更偏向技术的代码覆盖率。 需求覆盖率 需求覆盖率是指测试对需求的覆盖程度&#xff0c;通常的做…

UAV | 多算法在多场景下的无人机路径规划(Matlab)

近年来&#xff0c;无人机(unmanned aerial vehicle&#xff0c;UAV)由于其灵活度高、机动性强、安全风险系数小、成本低等特点&#xff0c;被广泛应用于搜索巡逻、侦察监视、抢险救灾、物流配送、电力巡检、农业灌溉等军用或民用任务。路径规划是无人机执行任务的关键&#xf…