当前位置: 首页 > 专利查询>南京大学专利>正文

一种浮点数转换方法及装置制造方法及图纸

技术编号:24588731 阅读:30 留言:0更新日期:2020-06-21 02:17
本发明专利技术公开了一种浮点数转换方法及装置,能够将基于IEEE 754规范的单精度浮点数转换为posit数据格式的浮点数,即第二浮点数。在很多神经网络的训练过程中,其运算数据近似服从正态分布,可通过变换使数据集中在0附近,而本发明专利技术中的posit数据格式的浮点数在神经网络训练过程中就可以在0附近保证精度,并且,本发明专利技术中posit数据格式的浮点数的预设总位宽是可以调控的,因此又可以很大程度的减少数据位宽,进而减少存储所需要的资源以及读写过程所消耗的资源,提高神经网络训练的效率。

A floating point conversion method and device

【技术实现步骤摘要】
一种浮点数转换方法及装置
本专利技术涉及计算机
,尤其涉及一种浮点数转换方法及装置。
技术介绍
神经网络一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。近年来,随着深度学习技术的快速发展,神经网络的训练变得普遍并且重要,神经网络训练的速度和资源消耗也成为了对于深度学习评价的重要指标。在以往的神经网络训练过程中,大部分的浮点数使用的都是基于IEEE754规范的规格化单精度浮点数格式,这种数据格式通常包括符号段、指数段和尾数段,并且通常使用32位的位宽来表示,即符号段、指数段和尾数段的总位宽为32位。这种单精度浮点数可以表示一个很大范围的数值,同时也能满足神经网络训练的要求。但是,虽然上述这种基于IEEE754规范的单精度浮点数在精度上能够满足神经网络训练的要求,但是由于其位宽较长,在处理这种数据时需要耗费一定的时间并且消耗一定的资源,进而影响神经网络的训练速度,使神经网络训练的效率降低。
技术实现思路
本专利技术提供了一种浮点数转换方法及装置,以解决目前使用基于IEEE754规范的单精度浮点数造成的神经网络训练的效率低的问题。第一方面,本专利技术提供了一种浮点数转换方法,包括:分别获取第一浮点数中第一符号段的值、第一指数段的值和第一尾数段的值,所述第一浮点数为规格化数据格式的单精度浮点数;利用所述第一指数段的值和预设指数位宽,确定组织段的值和第二指数段的值;利用所述第一符号段的值和所述第一尾数段的值,分别确定第二符号段的值和第二尾数段的值;将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数。结合第一方面,在第一方面的一种可实现方式中,利用所述第一指数段的值和预设指数位宽,确定组织段的值和第二指数段的值的步骤包括:利用所述第一指数段的值和所述预设指数位宽,确定所述组织段的值;利用所述第一指数段的值、所述预设指数位宽和所述组织段的值,确定所述第二指数段的值。结合第一方面,在第一方面的一种可实现方式中,采用如下公式,利用所述第一指数段的值和所述预设指数位宽,确定所述组织段的值:r=[E/2es],其中,r表示组织段的值,并且,当r为非整数时,r值向下取整;E表示第一指数段的值,es表示预设指数位宽。结合第一方面,在第一方面的一种可实现方式中,采用如下公式,利用所述第一指数段的值、所述预设指数位宽和所述组织段的值,确定所述第二指数段的值:e=E-2es*r,其中,e表示第二指数段的值。结合第一方面,在第一方面的一种可实现方式中,将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数的步骤包括:利用所述组织段的值,确定所述组织段的值对应的二进制码;利用所述第二指数段的值和所述预设指数位宽,确定所述第二指数段的值对应的二进制码;将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数。结合第一方面,在第一方面的一种可实现方式中,利用所述组织段的值,确定所述组织段的值对应的二进制码的步骤包括:如果所述组织段的值大于或者等于0,则确定所述组织段的值对应的二进制码由r+1个1和1个0组成,其中,r表示组织段的值;如果所述组织段的值小于0,则确定所述组织段的值对应的二进制码由-r个0和1个1组成。结合第一方面,在第一方面的一种可实现方式中,所述将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数的步骤还包括:将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值对应的二进制码依次拼接,组成拼接数;如果所述拼接数的总位宽大于所述预设总位宽,则依次从所述拼接数的尾端截取二进制码,使得截取后的所述拼接数的总位宽等于所述预设总位宽。结合第一方面,在第一方面的一种可实现方式中,所述利用所述组织段的值,确定所述组织段的值对应的二进制码之后,还包括:如果组织段的位宽等于所述预设总位宽,则舍去所述组织段的值对应的二进制码中最后一位二进制码,使得第二符号段的位宽与所述组织段的位宽之和等于所述预设总位宽。结合第一方面,在第一方面的一种可实现方式中,利用所述第二指数段的值和所述预设指数位宽,确定所述第二指数段的值对应的二进制码之后,还包括:如果所述预设总位宽减去第二符号段的位宽和组织段的位宽后剩余的位宽值大于或者等于预设指数位宽,则将所述第二指数段的值对应的二进制码置于组织段的值对应的二进制码之后;如果所述预设总位宽减去第二符号段的位宽和组织段的位宽后剩余的位宽值小于预设指数位宽,则截取所述第二指数段的值对应的二进制码,使得第二符号段、组织段和第二指数段的总位宽等于预设总位宽;如果所述预设总位宽等于第二符号段的位宽加组织段的位宽之和,则将所述第二指数段的值全部舍去。结合第一方面,在第一方面的一种可实现方式中,利用所述第一符号段的值和所述第一尾数段的值,分别确定第二符号段的值和第二尾数段的值之后,还包括:如果所述预设总位宽减去第二符号段的位宽、组织段的位宽和第二指数段的位宽后剩余的位宽值大于0,则截取所述第二尾数段的值对应的二进制码置于所述第二指数段的值对应的二进制码之后,使得第二符号段、组织段、第二指数段和第二尾数段剩余部分的总位宽等于预设总位宽;如果所述预设总位宽减去第二符号段的位宽、组织段的位宽和第二指数段的位宽后剩余的位宽值等于或者小于0,则舍去所述第二尾数段的值。第二方面,本专利技术实施例提供了一种浮点数转换装置,包括:数据获取模块,用于分别获取第一浮点数中第一符号段的值、第一指数段的值和第一尾数段的值,所述第一浮点数为规格化数据格式的单精度浮点数;第一数据确定模块,用于利用所述第一指数段的值和预设指数位宽,确定组织段的值和第二指数段的值;第二数据确定模块,用于利用所述第一符号段的值和所述第一尾数段的值,分别确定第二符号段的值和第二尾数段的值;第二浮点数生成模块,用于将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数。结合第二方面,在第二方面的一种可实现方式中,所述第一数据确定模块还包括:第一数据确定单元,用于利用所述第一指数段的值和所述预设指数位宽,确定所述组织段的值;第二数据确定单元,用于利用所述第一指数段的值、所述预设指数位宽和所述组织段的值,确定所述第二指数段的值。结合第二方面,在第二方面的一种可实现方式中,所述第一数据确定单元,采用如下公式,利用所述第一指本文档来自技高网...

【技术保护点】
1.一种浮点数转换方法,其特征在于,包括:/n分别获取第一浮点数中第一符号段的值、第一指数段的值和第一尾数段的值,所述第一浮点数为规格化数据格式的单精度浮点数;/n利用所述第一指数段的值和预设指数位宽,确定组织段的值和第二指数段的值;/n利用所述第一符号段的值和所述第一尾数段的值,分别确定第二符号段的值和第二尾数段的值;/n将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数。/n

【技术特征摘要】
1.一种浮点数转换方法,其特征在于,包括:
分别获取第一浮点数中第一符号段的值、第一指数段的值和第一尾数段的值,所述第一浮点数为规格化数据格式的单精度浮点数;
利用所述第一指数段的值和预设指数位宽,确定组织段的值和第二指数段的值;
利用所述第一符号段的值和所述第一尾数段的值,分别确定第二符号段的值和第二尾数段的值;
将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数。


2.根据权利要求1所述的方法,其特征在于,利用所述第一指数段的值和预设指数位宽,确定组织段的值和第二指数段的值的步骤包括:
利用所述第一指数段的值和所述预设指数位宽,确定所述组织段的值;
利用所述第一指数段的值、所述预设指数位宽和所述组织段的值,确定所述第二指数段的值。


3.根据权利要求2所述的方法,其特征在于,采用如下公式,利用所述第一指数段的值和所述预设指数位宽,确定所述组织段的值:
r=[E/2es],
其中,r表示组织段的值,并且,当r为非整数时,r值向下取整;E表示第一指数段的值,es表示预设指数位宽。


4.根据权利要求3所述的方法,其特征在于,采用如下公式,利用所述第一指数段的值、所述预设指数位宽和所述组织段的值,确定所述第二指数段的值:
e=E-2es*r,
其中,e表示第二指数段的值。


5.根据权利要求1所述的方法,其特征在于,将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数的步骤包括:
利用所述组织段的值,确定所述组织段的值对应的二进制码;
利用所述第二指数段的值和所述预设指数位宽,确定所述第二指数段的值对应的二进制码;
将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数。


6.根据权利要求5所述的方法,其特征在于,利用所述组织段的值,确定所述组织段的值对应的二进制码的步骤包括:
如果所述组织段的值大于或者等于0,则确定所述组织段的值对应的二进制码由r+1个1和1个0组成,其中,r表示组织段的值;
如果所述组织段的值小于0,则确定所述组织段的值对应的二进制码由-r个0和1个1组成。


7.根据权利要求1-6任一项所述的方法,其特征在于,所述将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值以二进制码的形式按照预设总位宽组成第二浮点数的步骤还包括:
将所述第二符号段的值、所述组织段的值、所述第二指数段的值和所述第二尾数段的值对应的二进制码依次拼接,组成拼接数;
如果所述拼接数的总位宽大于所述预设总位宽,则依次从所述拼接数的尾端截取二进制码,使得截取后的所述拼接数的总位宽等于所述预设总位宽。


8.根据权利要求6所述的方法,其特征在于,所述利用所述组织段的值,确定所述组织段的值对应的二进制码之后,还包括:
如果组织段的位宽等于所述预设总位宽,则舍去所述组织段的值对应的二进制码中最后一位二进制码,使得第二符号段的位宽与所述组织段的位宽之和等于所述预设总位宽。


9.根据权利要求5所述的方法,其特征在于,利用所述第二指数段的值和所述预设指数位宽,确定所述第二指数段的值对应的二进制码之后,还包括:
如果所述预设总位宽减去第二符号段的位宽和组织段的位宽后剩余的位宽值大于或者等于预设指数位宽,则将所述第二指数段的值对应的二进制码置于组织段的值对应的二进制码之后;
如果所述预设总位宽减去第二符号段的位宽和组织段的位宽后剩余的位宽值小于预设指数位宽,则截取所述第二指数段的值对应的二进制码,使得第二符号段、组织段和第二指数段的总位宽等于预设总位宽;
如果所述预设总位宽等于第二符号段的位宽加组织段的位宽之和,则将所述第二指数段的值全部舍去。


10.根据权利要求1所述的方法,其特征在于,利用所述第一符号段的值和所述第一尾数段的值,分别确定第二符号段的值和第二尾数段的值之后,还包括:
如果所述预设总位宽减去第二符号段的位宽、组织段的位宽和第二指数段的位宽后剩余的位宽值大于0,则截取所述第二尾数段的值对应的二进制码置于所述第二指数段的值对应的二进制码之后,使得第二符号段、组织段、第二指数段和第二尾数段剩余部分的总位宽等于预设总位宽;
如果所述预设总位宽减去第二符号段的...

【专利技术属性】
技术研发人员:王中风徐铭阳方超林军
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术