本技术涉及计算机,具体地涉及一种计算受限平台实现softmax函数量化的方法、装置、设备、存储介质及产品。
背景技术:
1、softmax函数是一种常用的归一化方法,广泛应用于机器学习和深度学习中的分类任务。softmax函数的定义如下:
2、
3、其中,xi表示输入向量中的第i个元素,n表示输入向量的维度。
4、softmax函数的计算需要涉及指数运算和除法运算,这些运算在计算受限的平台(例如嵌入式设备、移动端等)上会消耗较多的资源和时间,影响深度学习模型的性能和效率。因此,如何在计算受限的平台上实现softmax函数的高效计算是一个亟待解决的问题。
5、量化是一种减少深度学习模型大小的技术,通过减少模型中参数的位数来降低模型的存储需求和计算复杂性,例如从32位浮点数到8位整数。虽然模型量化往往会带来精度损失,但量化在加速模型推理、减少硬件平台(例如计算机)功耗和存储空间方面具有重要意义。
6、现有的量化方案大多数对softmax函数这种非线性操作不进行量化,即保持浮点类型的计算,因为这种算子难以直接实现量化,强行量化会导致较大的精度损失。无法对softmax函数这种非线性算子进行量化,不仅会导致计算效率降低,而且会使深度学习模型无法在计算受限平台(例如仅支持定点数计算的平台)上部署。
7、本背景技术描述的内容仅为了便于了解本领域的相关技术,不视作对现有技术的承认。
技术实现思路
1、本发明意图提供一种计算受限平台实现softmax函数量化的方法、装置、设备、存储介质及产品,以解决在计算受限平台无法量化softmax算子,导致计算效率降低以及深度学习模型无法在计算受限平台部署的问题。
2、在第一方面,本发明提供了一种计算受限平台实现softmax函数量化的方法,包括以下步骤;
3、根据目标平台的计算资源对softmax函数进行转换,得到转换后的softmax数学模型;
4、基于转换后的softmax数学模型,构建相关映射表;
5、将转换后的softmax数学模型部署至所述目标平台,并将构建的相关映射表存储至所述目标平台的存储器;
6、将输入向量加载至所述目标平台,并根据所述目标平台的转换后的softmax数学模型确定中间输入向量;
7、根据所述中间输入向量和相关映射表得到与所述中间输入向量匹配的输出结果;
8、根据所述输出结果确定与转换后的softmax数学模型对应的目标输出结果。
9、进一步地,对于无硬件除法单元的目标平台,转换后的softmax数学模型的表达式为:
10、
11、其中,xi表示输入向量x中的第i个元素,mul()表示乘法算子,exp()表示指数算子,sub()表示减法算子,表示取输入向量x中的最大元素,reciprocal()表示求倒数算子,sum()表示求和算子,n表示输入向量x的维度。
12、进一步地,所述转换后的softmax数学模型的表达式中的max算子采用一个核大小等于输入向量x的最大池化maxpool替换;sub()采用加法算子替换;sum()采用卷积核大小等于求和输入量大小的depthwise conv替换。
13、进一步地,所述相关映射表包括指数运算映射表和求倒数运算映射表。
14、进一步地,所述指数运算映射表的具体构建过程为:
15、确定转换后的softmax数学模型的输入向量的数据类型;
16、根据所述数据类型确定第一取值范围;
17、将所述第一取值范围内的每个取值乘以第一输入缩放因子,得到量化前的第一取值范围;
18、对量化前的第一取值范围内的每个取值进行指数运算,得到指数运算后的第一取值范围;
19、将指数运算后的第一取值范围内的每个取值除以第一输出缩放因子,得到量化后的第一定点取值范围,进而得到指数运算映射表。
20、进一步地,所述求倒数运算映射表的具体构建过程为:
21、确定转换后的softmax数学模型的输入向量的数据类型;
22、根据所述数据类型确定需第二取值范围;
23、将所述第二取值范围内的每个取值乘以第二输入缩放因子,得到量化前的第二取值范围;
24、对量化前的第二取值范围内的每个取值进行求倒数运算,得到求倒数运算后的第二取值范围;
25、将求倒数运算后的第二取值范围内的每个取值除以第二输出缩放因子,得到量化后的第二定点取值范围,进而得到求倒数运算映射表。
26、在第二方面,本发明提供了一种计算受限平台实现softmax函数量化的装置,包括:
27、转换单元,被配置为根据目标平台的计算资源对softmax函数进行转换,得到转换后的softmax数学模型;
28、表构建单元,被配置为基于转换后的softmax数学模型,构建相关映射表;
29、部署与存储单元,被配置为将转换后的softmax数学模型部署至所述目标平台,并将构建的相关映射表存储至所述目标平台的存储器;
30、加载与确定单元,被配置为将输入向量加载至所述目标平台,并根据所述目标平台的转换后的softmax数学模型确定中间输入向量;
31、结果获取单元,被配置为根据所述中间输入向量和相关映射表得到与所述中间输入向量匹配的输出结果;
32、目标结果确定单元,被配置为根据所述输出结果确定与转换后的softmax数学模型对应的目标输出结果。
33、在第三方面,本发明还提供一种终端设备,包括存储器、处理器以及存储在存储器上的计算机程序/指令,所述处理器执行所述计算机程序/指令以实现如上所述计算受限平台实现softmax函数量化的方法。
34、在第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如上所述计算受限平台实现softmax函数量化的方法。
35、在第五方面,本发明还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上所述计算受限平台实现softmax函数量化的方法。
36、本发明提供的计算受限平台实现softmax函数量化的方法中,首先根据计算受限平台的计算资源将softmax函数拆分为多个算子,得到softmax数学模型,然后再根据拆分得到的softmax数学模型构建相关映射表,实现softmax数学模型中各算子的量化,减少了非线性运算(例如指数和除法)的复杂度,实现了将softmax函数部署到仅支持定点数计算的计算受限平台,实现了softmax函数的全定点计算,加速了softmax函数的计算,减少了计算受限平台的功耗和存储空间,且精度损失较小,解决了现有softmax函数量化方案难以在计算受限平台部署的问题。
37、在对softmax函数进行拆分或转换时,对于所有指数运算的输入都减去输入向量中的最大元素,避免了直接量化后易导致数值溢出的问题。
38、本发明实施例的其他可选特征和技术效果一部分在下文描述,一部分可通过阅读本文而明白。
1.一种计算受限平台实现softmax函数量化的方法,其特征在于,所述方法包括以下步骤;
2.根据权利要求1所述的计算受限平台实现softmax函数量化的方法,其特征在于,对于无硬件除法单元的目标平台,转换后的softmax数学模型的表达式为:
3.根据权利要求2所述的计算受限平台实现softmax函数量化的方法,其特征在于,所述转换后的softmax数学模型的表达式中的max算子采用一个核大小等于输入向量x的最大池化maxpool替换;sub()采用加法算子替换;sum()采用卷积核大小等于求和输入量大小的depthwise conv替换。
4.根据权利要求2所述的计算受限平台实现softmax函数量化的方法,其特征在于,所述相关映射表包括指数运算映射表和求倒数运算映射表。
5.根据权利要求4所述的计算受限平台实现softmax函数量化的方法,其特征在于,所述指数运算映射表的具体构建过程为:
6.根据权利要求4所述的计算受限平台实现softmax函数量化的方法,其特征在于,所述求倒数运算映射表的具体构建过程为:
7.一种计算受限平台实现softmax函数量化的装置,其特征在于,所述装置包括:
8.一种终端设备,包括存储器、处理器以及存储在存储器上的计算机程序/指令,其特征在于,所述处理器执行所述计算机程序/指令以实现权利要求1~6中任一项所述计算受限平台实现softmax函数量化的方法。
9.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1~6中任一项所述计算受限平台实现softmax函数量化的方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1~6中任一项所述计算受限平台实现softmax函数量化的方法。