深度探究深度学习常见数据类型INT8 FP32 FP16的区别即优缺点

定点和浮点都是数值的表示 (representation),它们区别在于,将整数(integer)部分和小数(fractional)部分分开的点,点在哪里。定点保留特定位数整数和小数,而浮点保留特定位数的有效数字(significand)和指数(exponent)。

1.FP与INT

FP代表浮点运算数据格式,包括双精度FP64 单精度FP32 半精度FP16和FP8

INT代表整数数据格式,包括INT8和INT4

后面的数字越高意味着精度越高能够支持的运算复杂度也就越高 适配场景也就越广,同样对推理端的计算资源要求也就越高;

2.FP64、FP32、FP8 和INT8、INT4

双精度FP64 :浮点数使用64位表示,提供更好的精度和动态范围。通常应用在高精度计算的场景中,对存储空间以及计算资源要求较多 通常较少使用

单精度FP32:浮点数使用32位表示,适用于大多数科学计算和通用计算任务。通常我们训练神经网络模型的时候默认使用的数据类型为单精度FP32

半精度FP16:浮点数使用16位表示。相对于FP32提供了较低的精度,按照理论来说可以跑机器学习这些任务,但是FP16会出现精度溢出和舍入误差,所以很多应用都是使用混合精度计算的也就是FP16+FP32模式

浮点数在高精度图像处理有较大优势能够使图片中更多颜色、对比度、质感和清晰度得以保留。

但INT类型速度更快

  • 第一部分为 sign 符号位 s,占 1 bit,用来表示正负号;
  • 第二部分为 exponent 指数偏移值 k,占 5 bits,用来表示其是 2 的多少次幂;
  • 第三部分是 fraction 分数值(有效数字) M,占 10 bits,用来表示该浮点数的数值大小。

固定点数INT8:固定点数使用固定的小数点位置来表示数值,可以使用定点数算法进行计算。相对于浮点数计算,算力和内存资源要求更低。

相关推荐
TomEval4 分钟前
【测AI】第11篇:深度学习基础 —— 神经网络是怎么工作的
人工智能·python·深度学习·神经网络·机器学习·aigc
老金带你玩AI10 分钟前
Gemini 4上线!又回到御三家了?
人工智能
独立开发者阿乐12 分钟前
问答聚合页设计:让 AI 直接引用你的答案
人工智能·结构化数据·geo优化·ai收录·悬赏问答·问答聚合页
深圳市益普科技有限公司15 分钟前
半导体封测的 “大脑“ 保卫战:国产 MES 是怎么一步步啃下来的?
人工智能
康实训17 分钟前
高校中医康复实训室功能分区规划方案
人工智能·实训室·实训室建设
桃西西呀19 分钟前
LangGraph4j之四:运行引擎与流式
人工智能·llm·ai编程
桃西西呀21 分钟前
LangGraph4j之五:持久化与断点续跑
人工智能·llm·ai编程
一木 之林22 分钟前
微信小程序开发全攻略·文章版|00 总览:74集学习路径与知识地图
人工智能·学习·计算机视觉·微信小程序·小程序
深圳市益普科技有限公司24 分钟前
中小封装厂上 MES,为什么十个项目九个坑?
大数据·数据库·人工智能
努力写A题的小菜鸡31 分钟前
OpenCV cv2.threshold 图像阈值处理详
人工智能·计算机视觉