float最大表示位数为6位的解释

一般我们在构建 CNN 的时候都是以 32 位浮点数为主,这样在网络规模很大的情况下就会占用非常大的内存资源。然后我们这里来理解一下浮点数的构成,一个 float32 类型的浮点数由一个符号位,8 个指数位(表示小数点后的有效位数)以及 23 个尾数为构成,即:

1个符号位[ ] + 8个指数位[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] + 23个尾数[ ]

在这里插入图片描述

十进制数字v可以通过下面的公式算出:
v = ( − 1 ) s M 2 E 其 中 E = e x p − B i a s s . t . B i a s = 127 v=(-1)^sM2^E \\ 其中E=exp-Bias\\ s.t. Bias = 127 v=(1)sM2EE=expBiass.t.Bias=127
其中s为符号位,M=1.x,其中x为尾数部分数据,exp为指数部分,可以看出E的范围为[-128, 127]之间.所以v的范围最大属于2^127, 约为1e37范围.
在这里插入图片描述

对于frac,我们有 1 0 6 < 2 23 < 1 0 8 10^6 <2^{23}<10^8 106<223<108, 即,小数点后有效位数十进制下有6位有效数字.
参考资料:https://www.zhihu.com/question/67299995

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值