Java教程

FP16与INT8

本文主要是介绍FP16与INT8,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

AI计算中的两种数据格式

FP16和INT8同为端侧AI计算深度学习模型中的常用数据格式,在不同的AI应用中具有独特优势

什么是FP16呢?
在计算机语言中,FP32表示单精度浮点数,相应的FP16就是半精度浮点数。与FP32相比,FP16的访存消耗仅为1/2,也因此FP16是更适合在移动终端侧进行AI计算的数据格式。
在这里插入图片描述
相比INT8,FP16浮点计算在终端侧的体验优势非常明显,尤其在需要更高精度图像处理的场景,能够实现更高精度的“抠图”。如今,AI拍照、AI视频等已经成为人们记录生活的智慧助手,高精度带来的高成像效果就显得尤为重要。比如在灯光熠熠的城市夜晚,明暗差更高,这种情况下如果使用INT8计算,位宽不足会导致量化噪声,让画面变“糊”。FP16则能够更好的发挥优势,无论是高亮部分还是暗角部分都能呈现丰富的细节。
但值得注意的是,INT8和FP16之间并不是非此即彼的关系。INT8是一种定点计算方式,代表整数运算,一般是由浮点运算量化而来。在二进制中一个“0”或者“1”为一bit,INT8则意味着用8bit来表示一个数字。因此,虽然INT8比FP16精度低,但是数据量小、能耗低,计算速度相对更快,更符合端侧运算的特点。因此,客观来讲FP16与INT8没有完全的优劣之分,只不过在不同的场景有不同的需求。
在这里插入图片描述

这篇关于FP16与INT8的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!