【技术实现步骤摘要】
一种基于分段查找表的softmax函数计算方法及硬件系统
本专利技术属于神经网络的硬件加速领域,涉及一种基于分段查找表的softmax函数计算方法及硬件系统。
技术介绍
人工神经网络目前广泛应用于人工智能的应用当中,如图像识别、语音助手等。而随着神经网络规模的逐渐增大,其计算量也急剧上升,传统的通用芯片在处理复杂神经网络时受到了带宽与功耗的限制。因此,专用的神经网络加速硬件开始得到重视,其能耗更低,性能更高。而在传统的人工神经网络中,softmax函数被广泛应用于最后一层用于输出值的计算。因此,softmax函数的硬件实现方法也是神经网络加速硬件的一个重要组成部分。从softmax函数的数学表达式中可以看出,在硬件实现时,其最主要的计算部分就在于e指数的计算。而对于在硬件上实现e指数计算来说,有以下几种方法:1)查找表:这是最简单的一钟实现方法,实现将可能取到的e指数值计算好,保存在查找表中,硬件就用一部分资源比如ROM存储查找表。在实际计算过程中,直接根据输入数据就能查找到相应地址的e指数值。这种方法不消耗 ...
【技术保护点】
1.一种基于分段查找表的softmax函数计算方法,其特征在于,包括如下步骤:/n1)建立计算区间为[-10,0]的分段e指数查找表,所述分段e指数查找表由地址和真实值组成,建立步骤如下:/n1.1)将[-10,0]区间的数据划分为N段,对应N种数据类别:{(-10~-1),(-1~-0.1),…,(-1*10
【技术特征摘要】
1.一种基于分段查找表的softmax函数计算方法,其特征在于,包括如下步骤:
1)建立计算区间为[-10,0]的分段e指数查找表,所述分段e指数查找表由地址和真实值组成,建立步骤如下:
1.1)将[-10,0]区间的数据划分为N段,对应N种数据类别:{(-10~-1),(-1~-0.1),…,(-1*10-(N-2)~-1*10-(N-1))},其中(-1*10-(i-2)~-1*10-(i-1))表示划分后所属的第i种数据类别;每一个数据仅保留三位有效数字;
1.2)将[-10,0]区间的数据定点化为十六位的定点数,定点数前六位的十进制数值对应其所属的数据类别,后十位由0000000000到1110000011从小到大依次表示三位有效数字100-999;
1.3)按照十六位定点数的十进制数值作为地址存储该定点数的真实结果,分段e指数查找表中的地址为1024*i+j(i≥0,0≤j≤1023),当0≤j≤899时对应exp(-(999-j)*10-i-2)的真实值,在900≤j≤1023时对应0;得到分段e指数查找表;
2)数据预处理:筛选待计算数据集中的最大值,将待计算数据集中的每一个数值减去最大值,然后保留三位有效数字,得到非正数数据集;
3)将非正数数据集中的每一个数值定点化为十六...
【专利技术属性】
技术研发人员:朱晓雷,董骁,马德,赵百新,
申请(专利权)人:浙江大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。