System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,特别涉及一种布尔型数据编码方法、装置、设备及存储介质。
技术介绍
1、当前,涉及布尔型张量计算的应用十分广泛,例如逻辑门电路、加解密算法、信息检索、图论算法、随机计算等。然而,目前常用的张量加速库pytorch和tensorflow都不支持布尔类型甚至定点数据类型的gemm(general matrix-matrix multiplication,通用矩阵的矩阵乘法)等常用张量函数,并且上述应用在实现时,只能这些张量函数布尔类型或定点数据类型存储为浮点类型参与计算,这会占用大量的存储空间和算力,造成严重的内存瓶颈和计算资源浪费。
2、因此,如何基于现有的pytorch框架和cudnn(cuda deep neural network,cuda深度神经网络)等算子库,使能对布尔型张量进行针对性的支持,从而优化上述各种应用的存储和计算效率是本领域技术人员目前有待解决的。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种布尔型数据编码方法、装置、设备及存储介质,能够减少存储空间,并能够使得布尔型张量直接参与张量常用计算。其具体方案如下:
2、第一方面,本专利技术公开了一种布尔型数据编码方法,包括:
3、接收外部输入的布尔型张量数据,并将所述布尔型张量数据转码为位运算压缩编码格式数据;
4、按照预设张量计算操作对所述位运算压缩编码格式数据进行计算得到相应的计算结果;
5、将所述计算结果转码为布尔型得到
6、可选的,所述将所述布尔型张量数据转码为位运算压缩编码格式数据,包括:
7、确定所述布尔型张量数据是否满足预设条件;
8、如果所述布尔型张量数据满足所述预设条件,则按照预设稀疏编码方式将所述布尔型张量数据转码为稀疏位运算压缩编码格式数据;
9、如果所述布尔型张量数据不满足所述预设条件,则按照第一预设转码公式将所述布尔型张量数据转码为非稀疏位运算压缩编码格式数据。
10、可选的,所述第一预设转码公式为:
11、其中,input[i]表示所述布尔型张量数据中的第i位元素,n表示将所述布尔型张量数据中的元素个数减一得到的数值,bcc表示所述位运算压缩编码格式数据。
12、可选的,所述确定所述布尔型张量数据是否满足预设条件,包括:
13、基于所述布尔型张量数据的尺寸确定所述布尔型张量数据的总规模和宽度,并确定所述布尔型张量数据的边数;其中,边数表示所述布尔型张量数据中的非零项数量;
14、基于预设计算公式对总规模、宽度以及边数进行计算得到相应的结果;预设计算公式为:总规模-边数×log2宽度;
15、判断所述结果是否不小于零得到相应的判断结果,并基于所述判断结果确定所述布尔型张量数据是否满足预设条件。
16、可选的,所述基于所述判断结果确定所述布尔型张量数据是否满足预设条件,包括:
17、如果所述判断结果表明所述结果不小于零,则判定所述布尔型张量数据满足所述预设条件;
18、如果所述判断结果表明所述结果小于零,则判定所述布尔型张量数据不满足所述预设条件。
19、可选的,所述按照预设张量计算操作对所述位运算压缩编码格式数据进行计算得到相应的计算结果,包括:
20、按照位逻辑与的计算操作对所述位运算压缩编码格式数据对应的二进制数进行计算得到相应的计算结果;所述位逻辑与的计算操作为:
21、in1×in2=bitwise_and(b1bin,b2bin);
22、其中,in1表示第一布尔型张量数据,in2表示第二布尔型张量数据,bitwise_and表示按位逻辑与计算操作,b1bin表示第一布尔型张量数据对应的位运算压缩编码格式数据的二进制数,b2bin表示第二布尔型张量数据对应的位运算压缩编码格式数据的二进制数。
23、可选的,所述将所述计算结果转码为布尔型得到布尔型计算结果,包括:
24、按照第二预设转码公式将所述计算结果转码为布尔型得到布尔型计算结果;所述第二预设转码公式为:
25、output[i]=bitwise_and(bcc,2i)÷2i;
26、其中,output[i]表示所述布尔型计算结果中第i位元素,bitwise_and表示所述按位逻辑与计算操作,bcc表示所述计算结果。
27、第二方面,本专利技术公开了一种布尔型数据编码装置,包括:
28、数据接收模块,用于接收外部输入的布尔型张量数据;
29、数据转码模块,用于将所述布尔型张量数据转码为位运算压缩编码格式数据;
30、张量计算模块,用于按照预设张量计算操作对所述位运算压缩编码格式数据进行计算得到相应的计算结果;
31、结果转码模块,用于将所述计算结果转码为布尔型得到布尔型计算结果;
32、结果输出模块,用于输出所述布尔型计算结果至外部。
33、第三方面,本专利技术公开了一种电子设备,包括:
34、存储器,用于保存计算机程序;
35、处理器,用于执行所述计算机程序,以实现前述公开的布尔型数据编码方法的步骤。
36、第四方面,本专利技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的布尔型数据编码方法的步骤。
37、可见,本专利技术提供了一种布尔型数据编码方法,包括:接收外部输入的布尔型张量数据,并将所述布尔型张量数据转码为位运算压缩编码格式数据;按照预设张量计算操作对所述位运算压缩编码格式数据进行计算得到相应的计算结果;将所述计算结果转码为布尔型得到布尔型计算结果,并输出所述布尔型计算结果至外部。由此可见,本专利技术通过将接收到的布尔型张量数据转码为位运算压缩编码格式数据,然后按照预设张量计算操作对位运算压缩编码格式数据进行计算,从而能够减少存储空间,并能够使得布尔型张量直接参与张量常用计算。
本文档来自技高网...【技术保护点】
1.一种布尔型数据编码方法,其特征在于,包括:
2.根据权利要求1所述的布尔型数据编码方法,其特征在于,所述将所述布尔型张量数据转码为位运算压缩编码格式数据,包括:
3.根据权利要求2所述的布尔型数据编码方法,其特征在于,所述第一预设转码公式为:
4.根据权利要求2所述的布尔型数据编码方法,其特征在于,所述确定所述布尔型张量数据是否满足预设条件,包括:
5.根据权利要求4所述的布尔型数据编码方法,其特征在于,所述基于所述判断结果确定所述布尔型张量数据是否满足预设条件,包括:
6.根据权利要求1至5任一项所述的布尔型数据编码方法,其特征在于,所述按照预设张量计算操作对所述位运算压缩编码格式数据进行计算得到相应的计算结果,包括:
7.根据权利要求6所述的布尔型数据编码方法,其特征在于,所述将所述计算结果转码为布尔型得到布尔型计算结果,包括:
8.一种布尔型数据编码装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于存储计
...【技术特征摘要】
1.一种布尔型数据编码方法,其特征在于,包括:
2.根据权利要求1所述的布尔型数据编码方法,其特征在于,所述将所述布尔型张量数据转码为位运算压缩编码格式数据,包括:
3.根据权利要求2所述的布尔型数据编码方法,其特征在于,所述第一预设转码公式为:
4.根据权利要求2所述的布尔型数据编码方法,其特征在于,所述确定所述布尔型张量数据是否满足预设条件,包括:
5.根据权利要求4所述的布尔型数据编码方法,其特征在于,所述基于所述判断结果确定所述布尔型张量数据是否满足预设条件,包括:
6.根据...
【专利技术属性】
技术研发人员:符永铨,王子奇,苏华友,姜晶菲,杨希,许金伟,高蕾,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。