机器学习笔记 - 什么是模型量化压缩技术?

一、简述

        我们都知道现实世界是连续的状态,而计算机世界是离散的状态,这是什么意思呢?我们看一下下图,最右边的马力欧(高清)的状态,可以想象现实世界是连续的状态,而电脑世界在图像上呈现的是一格一格子的状态(左图)是离散的状态。

        所以在计算机世界如果想要图片越清晰,最简单的方式就是图的格子的数量要越多越好。

        对于AI模型也同样道理,我们可以将AI模型想成是800万画素的图片,有没有办法将AI模型弄成30万画素,然后人眼还看不出差异呢。

        最简单的方法就是把模型的浮点数换成整数,float转换integer,就是量化概念的核心(不过不光是浮点数转整数,还有单精度转半精度等等,这里用整数,就是为了简化概念说明)。浮点转整数,就是123.456789取整数(或者4舍5入),变成123。

二、AI模型量化的意义

        没有量化的模型和量化后的模型的主要差异在于存储(模型大小)差异、计算差异、功耗差异。

        例如ResNet18的参数就多达3千多万,如果我们用FP32来存储,

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

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

相关文章

51单片机应用从零开始(十)·指针

指针 C语言指针是一种保存变量地址的数据类型。它可以让程序直接访问内存中的数据,而不需要通过变量名来访问。指针变量存储的是一个地址,这个地址指向内存中的某个位置,该位置存储了一个值。 在C语言中,可以使用&运算符取得一…

【计算机网络笔记】物理层——数据通信基础

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

绝地求生在steam叫什么?

绝地求生在Steam的全名是《PlayerUnknowns Battlegrounds》,简称为PUBG。作为一款风靡全球的多人在线游戏,PUBG于2017年3月23日正式上线Steam平台,并迅速成为一部热门游戏。 PUBG以生存竞技为核心玩法,玩家将被投放到一个辽阔的荒…

【Unity入门】脚本生命周期简介及MonoBehaviour常用方法

脚本生命周期简介 脚本作为我们游戏的“灵魂”,往往不单独存在,而是经常作为组件的形式挂载到特定的游戏物体身上,比如: 游戏主角,敌人,Boss,子弹,建筑物…脚本的生命周期,也就是所…

CRM简单小结

思想 对于三层架构,一个模块对应一个controller,controller实际就是Servlet;一张表对应一个domain类对应一个dao接口对应一个mapper文件;service层没有严格规定,如果两张表内容相近,用一个service接口也可以…

集成学习(Ensemble Learning)

集成学习(Ensemble Learning)详解 集成学习是一种机器学习方法,它结合了多个模型的预测结果以提高整体性能。这种方法的基本思想是,多个模型一起工作比单个模型单独工作更有效。 集成学习的核心概念 1. 弱学习器(We…

数据结构:图文详解双向链表的各种操作(头插法,尾插法,任意位置插入,查询节点,删除节点,求链表的长度... ...)

目录 一.双向链表的概念 二.双向链表的数据结构 三.双向链表的实现 节点的插入 头插法 尾插法 任意位置插入 节点的删除 删除链表中第一次出现的目标节点 删除链表中所有与关键字相同的节点 节点的查找 链表的清空 链表的长度 四.模拟实现链表的完整代码 前言&am…

检测下我的饺子皮擀的怎么样(圆度)

😄😊😆😃😄😊😆😃 各位老铁周末愉快。 快乐的时间做充实的事,好久没有吃饺子了,俗话说好吃不过饺子。 我个人觉得会包饺子不算本事,会擀饺子皮…

Linux 上的容器技术

容器实现封闭的环境主要要靠两种技术,一种是看起来是隔离的技术,称为 namespace(命名空间)。在每个 namespace 中的应用看到的,都是不同的 IP 地址、用户空间、进程 ID 等。另一种是用起来是隔离的技术,称为…

C/C++STL学习[1]---顺序容器阐述、对比、选择vector,deque,list,forward_list,array,string

文章目录 前言1. 顺序介绍2. 容器对比说明3. 容器选择总结 前言 STL系列博客开篇,记录一下自己学CSTL相关的心得。 这篇博客主要是写顺序容器的类型以及各个容器之间的异同还有平时对容器使用的选择。 1. 顺序介绍 顺序容器表示这个容器提供了快速顺序访问元素的能…

【csdn默认使用操作详解】

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

芋道源码ruoyi-vue-pro项目前端yarn下载报错

安装了node最新的版本20.10.0,结果yarn下载依赖报错。 D:\code\IdeaProject\ruoyi-vue-pro\yudao-ui\yudao-ui-admin-vue2-master>yarn -install error achrinza/node-ipc9.2.2: The engine "node" is incompatible with this module. Expected versi…

使用PCSS实现的实时阴影效果

PCSS的技术可以使得阴影呈现出近硬远软的效果,并且能够实时实现。 其核心理念是通过模拟光源的面积来产生更自然、更柔和的阴影边缘。 具体步骤: 1、生成shadowmap 2、在进行阴影的比较时候进行平均,并非之前的shadow map 或者之后完全的阴影…

纯代码压缩WordPress前端Html

易于阅读的前端代码对开发而言是无比重要的,但对于浏览器来说就显得无比鸡肋了,毕竟浏览器不是像人眼一样看代码,过多的换行和空格,对前台加载是有一定影响的,对使用大带宽高配置服务器的网站,这么点影响可…

【Arduino库之:FastLED库】

FastLED 是一款功能强大,简单易用的控制WS2812, LPD8806, 等LED光带的Arduino第三方库。 第一:基础显示 led [ 0 ] CRGB::Red; //为第一个灯珠设置红色 FastLED.show(); //这个作用才会显示 示例程序: 此程序展示了FASTLED库控制WS2821…

YOLOv8创新魔改教程(二)如何添加注意力机制

YOLOv8创新魔改教程(二)如何添加注意力机制 (一)找代码 github找各种注意力机制的代码 (二)融合 1.创建文件 在ultralytics/nn/attention.py创建attention.py 文件 将找到的代码粘贴进来 2.修改task…

【计算机组成原理】存储器知识

目录 1、存储器分类 1.1、按存储介质分类 1.2、按存取方式分类 1.3、按信息的可改写性分类 1.4、按信息的可保存性分类 1.5、按功能和存取速度分类 2、存储器技术指标 2.1、存储容量 2.2、存取速度 3、存储系统层次结构 4、主存的基本结构 5、主存中数据的存放 5.…

prometheus|云原生|轻型日志收集系统loki+promtail的部署说明

一, 日志聚合的概念说明 日志------ 每一个程序,服务都应该有保留日志,日志的作用第一是记录程序运行的情况,在出错的时候能够记录错误情况,简单来说就是审计工作,例如nginx服务的日志,kuber…

分享一下docker的使用心得

好的,以下是一篇关于Docker使用心得的博客,希望能够帮助到大家。 Docker是一款开源的容器化平台,它可以让开发者将应用程序以及所有依赖项打包到一个可移植的容器中,然后将其部署到任何Docker环境中。Docker的使用可以带来很多好处…

SpringMVC的基础知识

SpringMVC的简介 MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专门存储业务数据的…