FP32、FP16 和 INT8

news2024/11/24 17:16:31

文章目录

  • FP32、FP16 和 INT8
    • 1. FP32
    • 2. FP16
    • 3. INT8

FP32、FP16 和 INT8

当涉及到深度学习和计算任务时,FP32、FP16、INT8 和 INT4 是常用的数据类型,用于表示不同的数值精度和存储需求。

1. FP32

单精度浮点数:提供了较高的精度和动态范围,适用于大多数科学计算和通用计算任务。

位数说明(32 bits)

  • 符号位(sign):1 bit

  • 指数位(exponent):8 bits

  • 尾数位(fraction):24 bits (23 explicitly stored)

计算方式: 参考 维基百科 - Single-precision floating-point format
v a l u e = ( − 1 ) s i g n × 2 ( E − 127 ) × ( 1 + ∑ i = 1 23 b 23 − i 2 − i ) . \mathrm{value}=(-1)^{\mathrm{sign}}\times2^{(E-127)}\times\left(1+\sum_{i=1}^{23}b_{23-i}2^{-i}\right). value=(1)sign×2(E127)×(1+i=123b23i2i).

  • s i g n = b 31 = 0 sign = b_{31} = 0 sign=b31=0
  • E = ( b 30 b 29 … b 23 ) 2 = ∑ i = 0 7 b 23 + i 2 + i = 124 E = (b_{30}b_{29} \ldots b_{23})_{2} = \sum\limits_{i=0}^{7}b_{23+i} 2^{+i} =124 E=(b30b29b23)2=i=07b23+i2+i=124
  • 1. b 22 b 21 … b 0 = 1 + ∑ i = 1 23 b 23 − i 2 − i = 1 + 1 ⋅ 2 − 2 = 1.25 1.b_{22}b_{21} \ldots b_0 = 1 + \sum\limits_{i=1}^{23} b_{23-i} 2^{-i} = 1 + 1 \cdot 2^{-2} = 1.25 1.b22b21b0=1+i=123b23i2i=1+122=1.25

结果:
v a l u e = ( + 1 ) × 2 − 3 × 1.25 = + 0.15625. \mathrm{value}=(+1)\times2^{-3}\times1.25=+0.15625. value=(+1)×23×1.25=+0.15625.
可借助 IEEE-754 Floating Point Converter 自动计算:

2. FP16

半精度浮点数:相对于FP32提供了较低的精度,但可以减少存储空间和计算开销。主要应用于深度学习和机器学习等计算密集型任务。

位数说明(16 bits)

  • 符号位(sign):1 bit

  • 指数位(exponent):5 bits

  • 尾数位(fraction):11 bits (10 explicitly stored)

计算方式: 参考 维基百科 - Half-precision floating-point format

ExponentSignificand = zeroSignificand ≠ \neq = zeroEquation
0000 0 2 00000_2 000002zero, - 0subnormal numbers ( − 1 ) s i g n × 2 − 14 × 0. f r a c t i o n 2 (-1)^{\mathrm{sign}}\times2^{-14}\times0.\mathrm{fraction}_{2} (1)sign×214×0.fraction2
0000 1 2 , . . . , 1111 0 2 00001_2, ..., 11110_2 000012,...,111102normalized valuenormalized value ( − 1 ) s i g n × 2 E − 15 × 1. f r a c t i o n 2 (-1)^{\mathrm{sign}}\times2^{E-15}\times1.\mathrm{fraction}_{2} (1)sign×2E15×1.fraction2
1111 1 2 11111_2 111112± infinityNaN(quiet, signalling)

3. INT8

8 位整数:主要用于对图像、音频等进行量化处理,以减少计算量和存储需求。

使用 8 位(1 字节)内存来存储每个数值,可以表示范围从 -128 到 127 的整数。

位数说明(8 bits)

  • 最高位代表符号位(0 - 正,1 - 负)

Maximum value:
0 1 1 1 1 1 1 1 0 \quad 1 \quad 1 \quad 1 \quad 1 \quad 1 \quad 1 \quad 1 01111111
0 × 2 7 + 1 × 2 6 + 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 127 0 \times 2^7 + 1 \times 2^6 + 1 \times 2^5 + 1 \times 2^4 + 1 \times 2^3 + 1 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 127 0×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20=127

Minimum value:
1 0 0 0 0 0 0 0 1 \quad 0 \quad 0 \quad 0 \quad 0 \quad 0 \quad 0 \quad 0 10000000
1 × 2 7 + 0 × 2 6 + 0 × 2 5 + 0 × 2 4 + 0 × 2 3 + 0 × 2 2 + 0 × 2 1 + 0 × 2 0 = − 128 1 \times 2^7 + 0 \times 2^6 + 0 \times 2^5 + 0 \times 2^4 + 0 \times 2^3 + 0 \times 2^2 + 0 \times 2^1 + 0 \times 2^0 = -128 1×27+0×26+0×25+0×24+0×23+0×22+0×21+0×20=128

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

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

相关文章

彻底解决IJ IDEA 代码运行时中文乱码 | 完美解决方案

前言: 在我们刚接触到IDEA时,想美滋滋的敲一个“hello world”来问候这个世界,但难免会遇到这种问题 乱码!乱码!乱码! 内心的崩溃就在一瞬间,下面我就来分享几个实用的解决方法 1.调整系统语…

Plant Physiology:DAP-seq技术在毛白杨PtoWRKY68等位基因变异调控干旱胁迫响应机制研究中的应用

干旱胁迫限制了树木的生长,并影响其地域性分布。为了应对干旱胁迫,植物进化出了一系列的生理生化反应机制,以保护植物细胞免受损害。因此,研究干旱胁迫下树木生理和光合作用变化的分子机制,将有助于培育耐旱性树木新品…

excel 表格多行自动合并

在现实生活中常常遇到这样的一些需求 使用的是三方的插件来实现的 参考: 慧办公-官网 (hbg666.com) (支持 Office 及 WPS)下载地址: https://www.hbg666.com/ 使用方法系统都有教导

单片机第一季:零基础4——数码管

1,第七章:静态数码管和动态数码管 工作原理: (1)亮灭原理(其实就是内部的照明LED); (2)显示数字(甚至文字)原理:利用内部的LED的亮和灭让外部的组成数字的笔画显示或者不显示&#…

IDEA 错误:找不到或无法加载主类Main 完美解决方法

今天在运行项目的时候 Rebuild Prodject 后突然出了这样一个错误:IDEA 错误 找不到或无法加载主类,相信只要是用过IDEA的朋友都遇到过它吧,把我自己搞的焦头烂额!!csdn翻遍了没解决 1,未能成功编译; 尝试&a…

pycharm的一些常用设置

pycharm的一些常用设置 1、最新安装pycharm ,怎么设置解释器如图: 2、可通过鼠标放大缩小配置: 进入setting>Editor>File and Code Templates,点击python script,进行设置: """Author : A Tim…

【C语言初阶】带你轻松掌握指针基础知识完结篇——野指针,指针运算,指针和数组,二级指针

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,这里是君兮_,今天继续给大家更新0基础入门C语言的内容,我们这次主要更新的依然是初阶指针的基础知识 废话不多说咱们直接开始吧!! 指针基础 一. 野指针1.…

运输层:TCP报文段的首部格式

1.运输层:TCP报文段的首部格式 笔记来源: 湖科大教书匠:TCP报文段的首部格式 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 为了实现可靠传输,TCP采用了面向字节流的方式。 但TCP在发送数据时&#…

CSS:选择器的各种类型和用法(含有例子和部分动态效果)

目录 css 基本语法一、基本选择器元素选择器 E{}特殊的 * 所有元素选择器属性选址器 E[attr]{}# id选择器. class选择器也可以结合着用selector1 selector2 包含选择器> 子选择器~兄弟选择器选择器组合 二、伪元素选择器第一个字加样式:第一行加样式:…

基于深度学习的高精度猴子检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度猴子检测识别系统可用于日常生活中或野外来检测与定位猴子目标,利用深度学习算法可实现图片、视频、摄像头等方式的猴子目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

改进 Elastic Stack 中的信息检索:对段落检索进行基准测试

作者:Grgoire Corbire, Quentin Herreros, Thomas Veasey 在之前的博客文章中,我们讨论了信息检索的常见方法,并介绍了模型和训练阶段的概念。 在这里,我们将检查基准解决方案,以公平的方式比较各种方法。 请注意&…

基于高精度三维机器视觉的螺丝锁付系统应用

Part.1 行业背景 随着社会经济的发展、科技的进步及工业水平的提高,智能工业发展模式在全球范围内备受关注。螺丝锁付作为最常用的装配连接方式,在加工制造的各个环节得到了广泛应用,如:玩具、电子产品、塑胶、汽车零部件、通讯设…

freemark生成pdf

freemark生成pdf 字体库 simsun.ttc 解决中文问题 /*** 生成pdf* param params* param templPath* param ftlName* param htmlPath* param pdfPath* param fontPath* return*/public String processPdf(Map<String, Object> params, String templPath, String ftlName,…

CodeMirror 对 XML 文档熟悉及元素控制自定义

CodeMirror 是一个网络代码编辑器组件。它可以在网站中用于实现支持多种编辑功能的文本输入字段&#xff0c;并具有丰富的编程接口以允许进一步扩展。 本文为 xml 格式的代码提示约束格式规范的自定义示例内容。 先看效果&#xff0c;如下&#xff1a; 官方 Demo 的完整代码如…

【MATLAB第52期】#源码分享 | 基于MATLAB的高斯过程GPR超参数(sigma)自动优化算法 时间序列预测模型 五折交叉验证

【MATLAB第52期】#源码分享 | 基于MATLAB的高斯过程GPR超参数&#xff08;sigma&#xff09;自动优化算法 时间序列预测模型 五折交叉验证 后台私信回复“52期”即可免费获取数据及代码。 一、效果展示 二、优化思路 1.数据 一列时间序列数据 &#xff0c;滑动窗口尺寸为15。…

《前端开发 实践之 Webstorm 学习》

目录 Webstorm 简介官方下载地址安装记录-教程下载其他版本方法 是否推送数据统计许可证激活插件功能版本控制查看代码责任人插件(annotate) Webstorm 简介 作为 jetbrains 公司旗下一款 JavaScript 开发工具&#xff0c;Web前端开发神器之一 个人博客地址&#xff1a; 官方下载…

网络安全自学黑客入门(超详细)

前言 前几天发布了一篇 网络安全&#xff08;黑客&#xff09;自学 没想到收到了许多人的私信想要学习网安黑客技术&#xff01; 却不知道从哪里开始学起&#xff01;怎么学&#xff1f;如何学&#xff1f; 今天给大家分享一下&#xff0c;很多人上来就说想学习黑客&#xf…

银河麒麟服务器V10 SP1 .Net6.0 开机自动启动

开机自动启动&#xff0c;折腾了一小天&#xff0c;设置/etc/init.d/ 、update-rc.d&#xff0c;可能刚开始用&#xff0c;经验不多吧&#xff0c;尝试多种方式我的服务怎么都启动不起来&#xff0c;根据之前nginx和redis的自动启动经验&#xff0c;使用systemd管理服务&#x…

【EXCEL】给数据添加图表(数据条、柱状图、折线图等),快速分析功能图文详解

目录 0.环境 1.背景简介 2.具体实现 2.1 给数据添加数据条 实现效果&#xff1a; 具体操作&#xff1a; 2.2 给数据添加柱状图图表 实现效果&#xff1a; 具体操作&#xff1a; 2.3 给数据添加迷你图&#xff08;在表格中的折线图&#xff09; 实现效果&#xff1a; …

基于PyQt5的桌面图像调试仿真平台开发(13)图像边缘显示

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…