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

news2024/12/22 20:23:09

可点此跳转看全篇

目录

  • 神经网络量化
    • 量化的必要性
    • 量化方法简介
      • 线性对称量化
      • 线性非对称量化方法

在这里插入图片描述

神经网络量化

量化的必要性

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线性对称量化步骤如下:

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

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

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

相关文章

【机器学习300问】34、决策树对于数值型特征如果确定阈值?

还是用之前的猫狗二分类任务举例(这个例子出现在【机器学习300问】第33问中),我们新增一个数值型特征(体重),下表是数据集的详情。如果想了解更多决策树的知识可以看看我之前的两篇文章: 【机器…

spring启动时如何自定义日志实现

一、现象 最近在编写传统的springmvc项目时,遇到了一个问题:虽然在项目的web.xml中指定了log4j的日志启动监听器Log4jServletContextListener,且开启了日志写入文件,但是日志文件中只记录业务代码中我们声明了日志记录器的日志&a…

CPU设计实战-协处理器访问指令的实现

目录 一 协处理器的作用与功能 1.计数寄存器和比较寄存器 2.Status寄存器 3.Cause寄存器(标号为13) 4.EPC寄存器(标号为14) 5.PRId寄存器(标号为15) 6.Config 寄存器(标号为16)-配置寄存器 二 协处理器的实现 三 协处理器访问指令说明 四 具体实现 1.译码阶段 2.执行…

3/12/24交换排序、插入排序、选择排序、归并排序

目录 交换排序 冒泡排序 快速排序 插入排序 直接插入排序 选择排序 简单选择排序 堆排序 归并排序 各种排序的时间复杂度、空间复杂度、稳定性和复杂度 快排真题2016 选排真题2022 排序算法分为交换类排序、插入类排序、选择类排序、归并类排序。 交换排序 交换排…

【智能算法】哈里斯鹰算法(HHO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.代码实现4.参考文献 1.背景 2019年,Heidari 等人受到哈里斯鹰捕食行为启发,提出了哈里斯鹰算法(Harris Hawk Optimization, HHO)。 2.算法原理 2.1算法思想 根据哈里斯鹰特性,HHO分为探索-…

新智元 | Stable Diffusion 3技术报告流出,Sora构架再立大功!生图圈开源暴打Midjourney和DALL·E 3?

本文来源公众号“新智元”,仅用于学术分享,侵权删,干货满满。 原文链接:Stable Diffusion 3技术报告流出,Sora构架再立大功!生图圈开源暴打Midjourney和DALLE 3? 【新智元导读】Stability AI放…

chrome浏览器插件content.js和background.js还有popup都是什么,怎么通讯

popup 在用户点击扩展程序图标时(下图中的下载图标),都可以设置弹出一个popup页面。而这个页面中自然是可以包含运行的js脚本的(比如就叫popup.js)。它会在每次点击插件图标——popup页面弹出时,重新载入。…

如何阅读“计算机界三大神书”之一 ——SICP

《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,简记为SICP)是MIT的基础课教材,出版后引起计算机教育界的广泛关注,对推动全世界大学计算机科学技术教育的发展和成熟产生了很大影响。…

plantUML使用指南之序列图

文章目录 前言一、序列图1.1 语法规则1.1.1 参与者1.1.2 生命线1.1.3 消息1.1.4 自动编号1.1.5 注释1.1.6 其它1.1.7 例子 1.2 如何画好 参考 前言 在软件开发、系统设计和架构文档编写过程中,图形化建模工具扮演着重要的角色。而 PlantUML 作为一种强大且简洁的开…

springboot265基于Spring Boot的库存管理系统

基于Spring Boot库存管理系统 Inventory Meanagement System based on Spring Boot 摘 要 当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档,很容易受潮…

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (3 / 5)

3.8 演员几何 我们已经看到了光照属性如何控制演员的外观,以及相机如何结合变换矩阵将演员投影到图像平面上。剩下的是定义演员的几何形状,以及如何将其定位在世界坐标系中。 建模 计算机图形学研究中的一个重要主题是建模或表示物体的几何形状。…

二分查找【详解】

本期介绍🍖 主要介绍:二分查找的简单思路,为什么必须在有序的前提下才能使用二分查找,该怎么用C程序来实现二分查找,二分查找的局限性👀。 文章目录 1. 题目2. 思路3. 前提条件4. 编写程序 1. 题目 在一个有…

Android Studio开发项目——记账簿应用

项目资源: 百度网盘链接:https://pan.baidu.com/s/1zN9lrIypi1t_QpuoBcdBNQ?pwdxj5h 提取码:xj5h 项目设计内容 1.基本功能描述 电子记账本是一种在线财务管理工具,用于帮助用户记录和管理他们的收入与支出。以下是电…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的水果新鲜程度检测系统(深度学习模型+UI界面代码+训练数据集)

摘要:开发水果新鲜程度检测系统对于提高农业产量和食品加工效率具有重大意义。本篇博客详细介绍了如何利用深度学习构建一个水果新鲜程度检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并结合了YOLOv7、YOLOv6、YOLOv5的对比…

ChatGPT 结合实际地图实现问答式地图检索功能基于Function calling

ChatGPT 结合实际地图实现问答式地图检索功能基于Function calling ChatGPT结合实际业务,主要是研发多函数调用(Function Calling)功能模块,将自定义函数通过ChatGPT 问答结果,实现对应函数执行,再次将结果…

打卡学习kubernetes——了解kubernetes组成及架构

目录 1 什么是kubernetes 2 kubernetes组件 3 kubernetes架构 1 什么是kubernetes kubernetes是一个旨在自动部署、扩展和运行应用容器的开源平台。目标是构建一个生态系统,提供组件和工具以减轻在公共和私有云中运行应用程序的负担。 kubernetes是&#xff1a…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的跌倒检测系统详解(深度学习模型+UI界面代码+训练数据集)

摘要:本研究介绍了一个基于深度学习和YOLOv8算法的跌倒检测系统,并对比分析了包括YOLOv7、YOLOv6、YOLOv5在内的早期版本性能。该系统可在多种媒介如图像、视频文件、实时视频流中准确识别跌倒事件。文内详解了YOLOv8的工作机制,并提供了相应…

一套plm系统大约多少钱?彩虹PLM系统

一套PLM(产品生命周期管理)系统的价格因多个因素而异,包括企业规模、需求复杂性、系统功能、技术支持和厂商选择等。一般来说,面向小型和微型企业的PLM产品,其价位在5万元~15万元左右;面向中型企业的中端PL…

STM32---通用定时器(二)相关实验

写在前面:前面我们学习了基本定时器、通用定时器的相关理论部分,了解到通用定时器的结构框图,总共包含六大模块:时钟源、控制器、时基单元、输入捕获、公共部分以及输出捕获。对相关模块的使用也做详细的讲解。本节我们主要是对上…

力扣刷题日记——L724. 寻找数组的中心下标

1. 前言 今天是力扣刷题日记的第二天,今天依旧是一道简单题啊,慢慢来,先看看题目是什么吧。 2. 题目描述 给你一个整数数组 nums ,请计算数组的 中心下标。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和…