zoukankan      html  css  js  c++  java
  • 浮点数的间隙

    浮点数的间隙

    有大佬聊深度学习时,突然问了一个问题,如果一个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,这意味这什么,
    如果神经网络训练过程中,反向传播中梯度过低,根本不会对参数有任何影响,梯度消失

  • 相关阅读:
    James 3.1服务器的安装与搭建
    Mybaits整合Spring
    动态sql
    Mybatis核心配置文件SqlMapConfig.xml
    Mapper动态代理方式
    WPF DatePicker
    UITableView(修改单元格)
    UITableView
    UIImageView
    UILabel
  • 原文地址:https://www.cnblogs.com/lessmore/p/9651479.html
Copyright © 2011-2022 走看看