关键词:
【中文标题】减少尾数位宽【英文标题】:Reduce mantissa bit-width 【发布时间】:2013-10-17 15:38:52 【问题描述】:好吧,我很尴尬,我自己不能得到这个,但是..我怎样才能减少尾数(和指数)位-with 表示浮点数?
我正在训练一个(卷积)人工神经网络(我正在 FPGA 上实现它),我想研究尾数(和指数)位宽与测试(和训练)精度之间的关系CPU(和 GPU)。下一步是将我的浮点数转换为定点表示(这就是我在 FPGA 上使用的),然后看看情况如何。
其他人已经做过类似的研究([Tong, Rutenbar and Nagle (1998)] 和 [Leeser and Zhao (2003)]),所以应该有一种方法可以做到这一点,尽管“如何”我还不清楚。
最后一点,我正在使用 Lua 进行编程,但我可以轻松地将 C 内容包含在 LuaJIT 的 ffi
中。
【问题讨论】:
【参考方案1】:要从二进制浮点数 x 的有效位中删除 s 位并舍入剩余位,请使用 Veltkamp 算法:
Let factor = 2**s + 1.
Let c = factor * x.
Let y = c - (c-x).
上面的每个操作都应该用浮点算法计算,包括以与 x 相同的精度舍入到最近。那么y就是想要的结果。
请注意,这会将单个数字四舍五入为较短的有效位。它通常不会重现具有较短有效位的计算结果。例如,给定 a 和 b,以更高的精度计算 a•b 然后四舍五入到更小的精度不会总是与以最终精度计算 a•b 的结果相同。
要减小指数范围,您只需将一个值与新指数范围的阈值进行比较,并根据需要声明下溢或上溢。
【讨论】:
非常感谢。这将是很好的考虑,因为现在我只是在点之后的特定位截断我的浮点数 (number:mul(2^b):floor():div(2^b))因为我们仍在使用静态定点数。明年我们可能会切换到动态定点,然后我将处理尾数:)jvm之浮点数(float)表示
1.浮点数的组成:符号位、指数位、尾数位。 1.1符号位:占1位,表示正负数; 1.2指数位:占8位; 1.3尾数位:占23位。 2. 浮点数的表示: 2.1取值:sflag*m*2(e-127) 2.1.1sflag:符号... 查看详情
bzoj4513[sdoi2016]储能表数位dp
...储存的总能量是,随着时间的推移,格子中的能量会渐渐减少。一个时间单位,每个格子中的能量都会减少1。显然,一个格子的能量减少到0之后就不会再减少了。也就是说,k 查看详情
numpy数据类型(代码片段)
...loat64类型的简写 float16半精度包括:1个符号位,5个指数位,10个尾数位float32 单精度浮点数,包括:1个符号位,8个指数位,23个尾数位float64 双精度浮点数,包括:1个符号位,11个指数位,52个尾数位complex_ 128位的... 查看详情
浮点数的存储与表达(代码片段)
...法如下(以单精度为例):单精度(32位)=1位符号位+8位指数位+23位尾数位,见下图。其中,符号位用来表示数值的符号。关于指数位和尾数位,需要先了解计算机表示浮点数的原理。计 查看详情
float和double类型在java各是多少位啊
...。float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位)8bits(指数位)23bits(尾数位)double:1bit(符号位)11bits(指数位)52bits(尾数位)于是,float的指数范... 查看详情
float与double的范围和精度
...double的范围是由指数的位数来决定的。 float的指数位有8位,而double的指数位有11位,分布如下: float: 1bit(符号位)8bits(指数位)23bits(尾数位) double: 1bit(符号位)11bits(指数位... 查看详情
arc102drevengeofbbubbblesort!(代码片段)
...不合法的。注意到对原排列进行一次操作,会让逆序对数减少(3)。我们把奇数位和偶数位分成两个排列,那么对原排列进行一次操作,会让这两个排列中的某个排列的逆序对数减少(1)。因此第二个必要条件是原排列的逆序对数为... 查看详情
浮点数存储方式(代码片段)
...么存储在计算机中 浮点型变量是由符号位+阶码位+尾数位组成。 float型数据二进制为32位,符号位1位,阶码8位,尾数23位 double型数据二进制为64位,符号位1位,阶码11位,尾数52位|--单精度32位存储 1bit 8bit 23bit|--... 查看详情
c++中float,double到底保留几位有效数字
...后在输出语句之前插入cout<<setprecision(20);强制输出小数位。拓展资料float与double的范围和精度1、范围float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位)8bi... 查看详情
在金融服务计算中,必须要使用bigdecimal(代码片段)
...还款金额、代收本金、代收收益等的计算,都会涉及到小数位精度问题。 首先,我们理解小数位数据类型为浮点类型。 字节:一个英文字符,占一个字节,即8位(bite),计算机中的最小储存单元是位(bite),即存的是... 查看详情
java-保留x个小数位(代码片段)
...或除以十的适当次幂来确定,以维护其总值。如果该操作减少标度,则非标度值必须被除(而不是乘),并且该值可以更改;在这种情况下,将指定的舍入模式应用到除法中。参数: 查看详情
处理长尾问题:class-balancedlossbasedoneffectivenumberofsamples
...B二分类问题,数据集中,A、B数据量比例为999:1,为了减少损失值,网络很自然的将所有图片都分到A类,这样准确率为99.9%,但是明显这个网络不能用。为了解决长尾问题,前人也提出了不少办法,比如 查看详情
动手动脑
...结果如下这个结果很意外,原因是java的浮点度符号位S_指数位E_尾数位M例如,一个float类型的数据占用4个字节共32位 查看详情
float和double的区别
...242、表达指数不同float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位)double的表达式为1bit(符号位)+11bits(指数位)+52bits(尾数位)3、有效位数不同Float只能提供七位有效数字。Double可以提供16位有效数字。4、占用... 查看详情
小技巧一种简单的办法在verilog中处理小数运算
...0c;B1B2B3B4B5B6B7B8为小数。做加法减法的时候,不考虑整数位位宽不够用的情况,那么可以直接相加:A1A2A3A4B1B2B3B4B5B6B7B8.+A1A2A3A4B1B2B3B4B5B6B7B8.这个就维持了加减法小数位不增加的原则。如果是乘法,不考虑整数位... 查看详情
如何使用 JavaScript 减少视频的长度? [关闭]
】如何使用JavaScript减少视频的长度?[关闭]【英文标题】:HowtoreducethelengthofavideousingJavaScript?[closed]【发布时间】:2016-12-1221:25:20【问题描述】:我正在尝试从头或尾修剪浏览器中视频的长度。我目前拥有的是一个使用MediaRecorderA... 查看详情
java基础部分笔记(学习流程)
...35Long:float取值范围比long大Float:32位:1个符号位,8个指数位,23个尾数位Double:64 :1 & 查看详情
数位dp套路模板(代码片段)
...DP因为会出现重复出现的状态,使用记忆化搜索可以减少重复的搜索,减少复杂度。一.记忆化搜索的过程从起点向下搜索,搜索的途中累加每一位的答案,最后在起点得到答案。二.区间转化为[0,X]对于[L,R]的... 查看详情