System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及人工智能 ,尤其涉及一种张量处理方法、装置、电子设备、存储介质和程序产品。
技术介绍
1、在深度学习领域,尤其是在nlp(natural language processing,自然语言处理)和图像识别等任务中,mha(multi-head attention,多头注意力机制)已成为一种非常重要的技术。mha通过并行处理多个注意力“头”,允许模型在不同的表示子空间学习信息,从而增强模型的表达能力和泛化能力。在模型推理和训练场景中,mha的应用尤为广泛,特别是在transformer模型中。
2、在mha的实现中,q(query,查询)、k(key,键)、v(value,值)张量通常会被分成多个head(头),每个头独立进行自注意力计算。为了提高计算效率和内存利用率,通常会将q、k、v张量的head_num(头数量)维度自动折叠至batch(批次)维度上。然而,当q、k、v张量的序列长度超出张量维度限制时,如果直接进行维度折叠,会导致数据在batch维度上的顺序出现混乱,使得模型在处理数据时产生与原始顺序不同的预测结果,影响模型的性能和准确性。
技术实现思路
1、本专利技术提供一种张量处理方法、装置、电子设备、存储介质和程序产品,用以解决相关技术中在张量的序列长度超出张量维度限制的情况下,对张量进行维度折叠导致的批次维度顺序混乱的问题。
2、本专利技术提供一种张量处理方法,包括:
3、获取原始张量;
4、基于第一维度转换算
5、其中,所述目标张量的第一维度包括原始第一维度、所述目标子维度和第一子维度,所述目标子维度位于所述原始第一维度和所述第一子维度之间,所述原始第一维度为所述原始张量的第一维度,所述第一子维度基于对所述原始张量的第二维度拆分得到,所述目标子维度基于对所述原始张量的第三维度拆分得到。
6、根据本专利技术提供的一种张量处理方法,所述基于第一维度转换算子,将所述原始张量中待折叠的目标子维度折叠到第一维度上,得到目标张量,包括:
7、将所述原始张量的第二维度拆分为所述第一子维度和第二子维度,并将所述第一子维度折叠到所述原始张量的第一维度上,得到重塑张量的第一形状,所述第一形状基于维度折叠后所述原始张量的各维度大小确定;
8、将所述重塑张量的第三维度拆分为所述目标子维度和第三子维度,并将所述目标子维度折叠到所述重塑张量的第一维度上,得到所述目标张量的第二形状,所述第二形状基于维度折叠后所述重塑张量的各维度大小确定;
9、基于所述第一维度转换算子,应用所述第一形状和所述第二形状,将所述重塑张量中各数据的索引映射到所述第二形状中,以对所述重塑张量中各数据的位置进行重新排列,得到所述目标张量。
10、根据本专利技术提供的一种张量处理方法,所述应用所述第一形状和所述第二形状,将所述重塑张量中各数据的索引映射到所述第二形状中,以对所述重塑张量中各数据的位置进行重新排列,得到所述目标张量,包括:
11、基于所述第一形状,确定所述重塑张量中数据的索引范围;
12、遍历所述索引范围,基于遍历到的任一数据的索引、所述第一形状和所述第二形状,确定所述任一数据的索引在所述第二形状下的对应索引;
13、基于所述重塑张量中各数据的索引在所述第二形状下的对应索引,将所述重塑张量中的各数据映射到所述目标张量的相应位置上,得到所述目标张量。
14、根据本专利技术提供的一种张量处理方法,所述任一数据的索引包括第一维度索引、第二维度索引和第三维度索引,所述基于遍历到的任一数据的索引、所述第一形状和所述第二形状,确定所述任一数据的索引在所述第二形状下的对应索引,包括:
15、基于所述任一数据的第一维度索引和所述第一形状中第一子维度的大小,确定所述任一数据的原始第一维度索引和第一子维度索引;
16、基于所述任一数据的第三维度索引和所述第二形状中第三维度的大小,确定所述任一数据的目标子维度索引和第三子维度索引;
17、基于所述任一数据的原始第一维度索引、目标子维度索引和第一子维度索引,以及所述第一形状中第一子维度的大小和所述第二形状中目标子维度的大小,确定所述任一数据的第一维度索引在所述第二形状下的对应索引;
18、基于所述任一数据的第二维度索引,确定所述第二维度索引在所述第二形状下的对应索引;
19、基于所述任一数据的第三子维度索引,确定所述任一数据的第三维度索引在所述第二形状下的对应索引。
20、根据本专利技术提供的一种张量处理方法,还包括:
21、基于多头注意力算子,对所述目标张量进行计算,得到初始输出张量;
22、基于第二维度转换算子,对所述初始输出张量中的所述目标子维度进行还原,得到目标输出张量。
23、根据本专利技术提供的一种张量处理方法,还包括:
24、将多头注意力算子和第二维度转换算子进行融合,得到融合算子;
25、基于所述融合算子,应用所述张量进行计算,得到初始输出张量,并对所述初始输出张量中的所述目标子维度进行还原,得到目标输出张量。
26、根据本专利技术提供的一种张量处理方法,所述对所述初始输出张量中的所述目标子维度进行还原,得到目标输出张量,包括:
27、基于所述初始输出张量的形状和所述目标输出张量的形状,将所述初始输出张量中各数据的索引映射到所述目标输出张量的形状中,以将所述初始输出张量中的目标子维度从第一维度还原到第三维度上,得到所述目标输出张量。
28、本专利技术还提供一种张量处理装置,包括:
29、获取单元,用于获取原始张量;
30、转换单元,用于基于第一维度转换算子,将所述原始张量中待折叠的目标子维度折叠到第一维度上,得到目标张量;
31、其中,所述目标张量的第一维度包括原始第一维度、所述目标子维度和第一子维度,所述目标子维度位于所述原始第一维度和所述第一子维度之间,所述原始第一维度为所述原始张量的第一维度,所述第一子维度基于对所述原始张量的第二维度拆分得到,所述目标子维度基于对所述原始张量的第三维度拆分得到。
32、本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述张量处理方法。
33、本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述张量处理方法。
34、本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述张量处理方法。
35、本专利技术提供的张量处理方法、装置、电子设备、存储介质和程序产品,通过引入第一维度转换算子,可以将原始张量中的目标子维度折叠到第一维度上,本文档来自技高网...
【技术保护点】
1.一种张量处理方法,其特征在于,包括:
2.根据权利要求1所述的张量处理方法,其特征在于,所述基于第一维度转换算子,将所述原始张量中待折叠的目标子维度折叠到第一维度上,得到目标张量,包括:
3.根据权利要求2所述的张量处理方法,其特征在于,所述应用所述第一形状和所述第二形状,将所述重塑张量中各数据的索引映射到所述第二形状中,以对所述重塑张量中各数据的位置进行重新排列,得到所述目标张量,包括:
4.根据权利要求3所述的张量处理方法,其特征在于,所述任一数据的索引包括第一维度索引、第二维度索引和第三维度索引,所述基于遍历到的任一数据的索引、所述第一形状和所述第二形状,确定所述任一数据的索引在所述第二形状下的对应索引,包括:
5.根据权利要求1所述的张量处理方法,其特征在于,还包括:
6.根据权利要求1所述的张量处理方法,其特征在于,还包括:
7.根据权利要求5或6所述的张量处理方法,其特征在于,所述对所述初始输出张量中的所述目标子维度进行还原,得到目标输出张量,包括:
8.一种电子设备,包括存储器、
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述张量处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述张量处理方法。
...【技术特征摘要】
1.一种张量处理方法,其特征在于,包括:
2.根据权利要求1所述的张量处理方法,其特征在于,所述基于第一维度转换算子,将所述原始张量中待折叠的目标子维度折叠到第一维度上,得到目标张量,包括:
3.根据权利要求2所述的张量处理方法,其特征在于,所述应用所述第一形状和所述第二形状,将所述重塑张量中各数据的索引映射到所述第二形状中,以对所述重塑张量中各数据的位置进行重新排列,得到所述目标张量,包括:
4.根据权利要求3所述的张量处理方法,其特征在于,所述任一数据的索引包括第一维度索引、第二维度索引和第三维度索引,所述基于遍历到的任一数据的索引、所述第一形状和所述第二形状,确定所述任一数据的索引在所述第二形状下的对应索引,包括:
5.根据权利要求1所述的张量处理方法,其...
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,
申请(专利权)人:上海壁仞科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。