一种提高Swish查找表精度的方法与流程

摘要: 本发明属于神经网络优化,特别涉及一种提高swish查找表精度的方法。背景技术:1、现有技术中,swish是一种被广泛应用于深度学习模型的激活函数,由google...
一种提高Swish查找表精度的方法与流程

本发明属于神经网络优化,特别涉及一种提高swish查找表精度的方法。

背景技术:

1、现有技术中,swish是一种被广泛应用于深度学习模型的激活函数,由google在2017年提出。它在某些任务中表现优于relu及其变体(如leaky relu),尤其在深层神经网络中。swish的数学表达式为:

2、swish(x)=x*δ(βx)  (公式1)

3、其中:

4、δ(·)就是sigmoid函数:

5、由于指数函数的复杂运算,会导致含有swish激活的模型运行效率低,因此为了使模型快速高效落地,通常会对swish进行查表操作,来近似复杂的float指数运算,然而由于表项数量的限制,查表的精度不尽如人意。

6、也就是说,现有技术中存在以下缺点:

7、在模型优化领域,目前还没有一种针对swish激活查找表提升精度的方法。

技术实现思路

1、为了解决上述问题,本申请的目的在于:提出一种提高swish查找表精度的方法,针对swish的查找表原理和提高其精度的方法进行说明,旨在提高模型的量化精度,提高模型的运行效率。

2、具体地,本发明提供一种提高swish查找表精度的方法,所述方法包括以下步骤:

3、s1.查找表实现:

4、确定查找表的主要参数,包括表项数目、输入x的定点化位宽lbit以及表项存储的定点化位宽tbit;

5、将x轴平均分为32个采样点,计算每个采样点对应的y值;

6、存储量化后的输出值y0_uint8和dy_uint8;

7、查表时,计算系数_ceof和索引i,其中i为整数部分,_ceof为小数部分;输入x_uint8通过公式进行量化处理;

8、s2.提高swish查找表精度:

9、针对swish函数的输入特性,在统计量化参数前,对输入在-5处进行截断处理;

10、遍历计算图,为swish的输入设置标志位is_swish_input;

11、当is_swish_input为true时,在-5处截断当前层的输出,以提高查找表的利用率及精度。

12、所述步骤s1进一步包括:

13、s1.1.输入参数处理:接收输入数据x_new和查找表参数lut_param,计算浮点位宽float_bitwidth,并生成用于提取输入数据小数部分的掩码mask_float;

14、s1.2.输入数据预处理:将输入数据x_new转换为int32类型并重塑为二维张量,通过右移操作计算索引x_new_indices;

15、s1.3.查找表查询:从查找表参数lut_param中提取差值表lut_dy和基值表lut_y0,使用x_new_indices作为索引获取对应的dy和y0值,并将其转换为float32类型;

16、s1.4.插值计算:提取输入数据x_new的小数部分ceof,通过线性插值公式计算插值结果y_new,并进行定点化处理;

17、s1.5.返回结果:输出插值后的结果y_new,其形状与输入数据x_new一致。

18、所述查找表的表项数目为32个采样点。

19、所述查表过程中,索引i的计算公式为:

20、

21、其中,table_num为表项数目。

22、所述输入x_uint8的量化处理中,将输入位宽in_bit分为table_bit和float_bitwidth两部分。

23、所述swish函数的输入截断操作用于提高查找表的利用率及精度。

24、所述方法适用于含有swish激活的模型以对swish的查找表精度进行提升,包括但不限于计算机视觉中的图像分类、目标检测,自然语言处理中的transformer模型、机器翻译与文本生成模型。

25、由此,本方案具有以下优势:

26、针对swish的查找表原理和提高其精度的方法作出阐述,旨在提高模型的量化精度,提高模型的运行效率,有助于模型的快速落地。

1.一种提高swish查找表精度的方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的一种提高swish查找表精度的方法,其特征在于,所述步骤s1进一步包括:

3.根据权利要求1所述的一种提高swish查找表精度的方法,其特征在于,所述查找表的表项数目为32个采样点。

4.根据权利要求1所述的一种提高swish查找表精度的方法,其特征在于,所述查表过程中,索引i的计算公式为:

5.根据权利要求1所述的一种提高swish查找表精度的方法,其特征在于,所述输入x_uint8的量化处理中,将输入位宽in_bit分为table_bit和float_bitwidth两部分。

6.根据权利要求1所述的一种提高swish查找表精度的方法,其特征在于,所述swish函数的输入截断操作用于提高查找表的利用率及精度。

7.根据权利要求1所述的一种提高swish查找表精度的方法,其特征在于,所述方法适用于含有swish激活的模型以对swish的查找表精度进行提升,包括但不限于计算机视觉中的图像分类、目标检测,自然语言处理中的transformer模型、机器翻译与文本生成模型。