浮点数的间隙

Posted lessmore

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浮点数的间隙相关的知识,希望对你有一定的参考价值。

浮点数的间隙

有大佬聊深度学习时,突然问了一个问题,如果一个float从0开始,以一个很小的步长比如0.000001不停做累加,最后会发生什么?
当然是一脸懵逼,对问题本身以及背后的问题一无所知。照着他的提示,间断做个实验,结果贴在这里:

第一列是最后停留的数,第二列是累加次数,第三列是步长

stop: 3.05176e-05 total: 24945431 step: 1e-12
stop: 0.000244141 total: 24945431 step: 8e-12
stop: 0.00195312 total: 24945431 step: 6.4e-11
stop: 0.015625 total: 24945431 step: 5.12e-10
stop: 0.125 total: 24945431 step: 4.096e-09
stop: 1 total: 24945431 step: 3.2768e-08
stop: 8 total: 24945431 step: 2.62144e-07
stop: 64 total: 24945431 step: 2.09715e-06
stop: 512 total: 24945431 step: 1.67772e-05
stop: 4096 total: 24945431 step: 0.000134218
stop: 32768 total: 24945431 step: 0.00107374
stop: 262144 total: 24945431 step: 0.00858993
stop: 2.09715e+06 total: 24945431 step: 0.0687195
stop: 1.67772e+07 total: 24945431 step: 0.549756

浮点数之间的间隙远超过我的想象,比如512.0f下一个浮点数的间隔大于0.00001,这意味这什么,
如果神经网络训练过程中,反向传播中梯度过低,根本不会对参数有任何影响,梯度消失
















以上是关于浮点数的间隙的主要内容,如果未能解决你的问题,请参考以下文章

用脚编码音频:将 32 位浮点数转换为 mp3

什么是浮点数格式?

第04部分:浮点数类型

浮点数

js 双精度浮点数

float_浮点数存储结构