一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种神经网络编译阶段优化置换代价的方法与流程

2022-05-06 10:40:50 来源:中国专利 TAG:


1.本发明涉及神经网络技术领域,具体涉及一种神经网络编译阶段优化置换代价的方法。


背景技术:

2.神经网络近年来在越来越多的领域体现了其不可替代的价值,对于不同计算架构而言,执行神经网络的推理过程千差万别,因此,需要对神经网络进行编译,来将神经网络模型转化成相应计算架构上的指令,从而实现神经网络模型在该计算架构上的推理。
3.对于不同深度学习框架和不同硬件训练的神经网络模型,其默认模型维度顺序或者模型输入维度会存在差异,所以,在对神经网络进行编译时,需要通过数据置换,来实现神经网络的维度对齐和维度转换。
4.而由于神经网络模型的推理,其推理速度与数据存取带宽以及指令顺序息息相关,因此,在神经网络的编译过程中,对神经网络的进行计算优化具有重要的实际意义。


技术实现要素:

5.为了解决上述背景技术中提到的至少一个问题,本发明提出了一种神经网络编译阶段优化置换代价的方法。
6.一种神经网络编译阶段优化置换代价的方法,包括步骤:步骤s1,对于需要进行编译的深度神经网络,标记出该深度神经网络所有的置换操作;步骤s2,将所有的置换操作定义为维度内置换与维度间置换,具体地,维度内置换公式为:其中,f表示维度内置换操作,(1,2,3,

,n)为同一维度内的元素,为置换后结果,维度间置换公式为:其中,g表示维度间置换操作,表示维度。
7.步骤s3,对所有标记出的置换操作进行循环遍历,通过移动置换,将连续且属于同一类的置换标记为同一组,进一步地,对同一组的置换操作进行合并,具体包括步骤:步骤s301,对所有标记出的置换操作进行循环遍历,步骤s302,判断规则z1是否成立,如果满足规则z1,则执行动作d1;其中,规则z1包括规则z101和规则z102,分别表示判断能否移动维度内置换和判断能否移动维度间置换,具体规则为:规则z101,如果是维度内置换,置换操作前一层和置换操作后一层的计算函数计
算单个输出时输入的数据坐标,在被置换的维度是否相等;规则z102,如果是维度间置换,置换操作前一层和置换操作后一层的计算函数计算单个输出时输入的数据坐标,在所有被置换的维度是否相等,动作d1是指移动置换操作,包括移动维度内置换操作和移动维度间置换操作,具体地,如果满足规则z101,则执行移动维度内置换操作,具体计算公式为:其中,表示神经网络中的网络层,f表示维度内置换操作,

表示神经网络中数据流向;如果满足规则z101,则移动维度间置换操作,具体计算公式为:其中,表示神经网络中的网络层,g表示维度间置换操作,

表示神经网络中数据流动。
8.步骤s303,判断规则z2是否成立,如果满足规则z2,则执行动作d2;其中,规则z2用于判断置换操作能否标记为同一组,包括规则z201和规则z202,分别表示能否标记连续多个的维度内置换操作为同一组和能否标记连续多个的维度间置换操作为同一组,具体规则为:规则z201,移动后的多个置换是否连续且同属于维度内置换;规则z202,移动后的多个置换是否连续且同属于维度间置换,动作d2是指合并同一组置换操作,包括合并同一组维度内置换操作和合并同一组维度间置换操作,具体地,如果满足规则z201,则执行合并同一组维度内置换操作,具体计算公式为:其中,n表示连续且类别相同的置换个数,表示维度内置换,表示置换合并操作;如果满足规则z202,则执行合并同一组维度间置换操作,具体计算公式为:步骤s4,选择合并后置换所处位置,逐一对比各个可选位置的执行代价,并根据对比的结果选择合并后的置换所处位置,具体地,执行代价为置换数据量。
9.本发明提出了一种神经网络编译阶段优化置换代价的方法,与现有的技术相比,具有以下有益效果:本发明通过移动、合并置换操作等手段来降低对神经网络编译阶段中的置换代价,显著地减小了神经网络推理过程的数据计算量,提高了神经网络处理器推理相关神经网络的执行效率。
附图说明
10.图1是本发明的一种神经网络编译阶段优化置换代价的流程图。
11.图2是本发明实施例中置换移动操作和置换合并操作示意图。
具体实施方式
12.为了使本发明的目的、特征能够更加的明显和易懂,下面通过实施例并结合附图对本技术方案进行详细说明。
13.如图1所示,一种神经网络编译阶段优化置换代价的方法,包括步骤:步骤s1,对于需要进行编译的深度神经网络,标记出该深度神经网络所有的置换操作。
14.步骤s2,将所有的置换操作定义为维度内置换与维度间置换,具体地,维度内置换公式为:其中,f表示维度内置换操作,(1,2,3,

,n)为同一维度内的元素,为置换后结果。
15.维度间置换公式为:其中,g表示维度间置换操作,表示维度。
16.步骤s3,对所有标记出的置换操作进行循环遍历,通过移动置换,将连续且属于同一类的置换标记为同一组,进一步地,对同一组的置换操作进行合并,具体过程如下:首先,对所有标记出的置换操作进行循环遍历。
17.然后,分别判断能否移动维度内置换和能否移动维度间置换。
18.如果是维度内置换,置换操作前一层和置换操作后一层的计算函数计算单个输出时输入的数据坐标,在被置换的维度是否相等。
19.如果是维度间置换,置换操作前一层和置换操作后一层的计算函数计算单个输出时输入的数据坐标,在所有被置换的维度是否相等。
20.进一步地,根据规则的判断结果,对置换进行移动。
21.如果满足移动维度内置换的条件,则执行移动维度内置换操作,移动维度内置换的计算公式为:其中,表示神经网络中的网络层,f表示维度内置换操作,

表示神经网络中数据流向。
22.如果满足移动维度间置换的条件,则执行移动维度间置换操作,移动维度间置换的计算公式为:其中,表示神经网络中的网络层,g表示维度间置换操作,

表示神经网络中数据流动。
23.接着,分别判断移动后的置换能否标记为同一组置换。
24.如果移动后的多个置换是否连续且同属于维度内置换,则标记为同一组维度内置换。
25.如果移动后的多个置换是否连续且同属于维度间置换,则标记为同一组维度间置换。
26.最后,根据标记置换的结果进行对同一组置换进行合并。
27.如果是同一组维度内置换,则合并该组的维度内置换,合并同一组维度内置换的计算公式为:其中,n表示连续且类别相同的置换个数,表示维度内置换,表示置换合并操作。
28.如果是同一组维度间置换,则合并该组的维度间置换,合并同一组维度间置换的计算公式为:其中,n表示连续且类别相同的置换个数,表示维度间置换,表示置换合并操作。
29.步骤s4,选择合并后置换所处位置,逐一对比各个可选位置的执行代价,并根据对比的结果选择合并后的置换所处位置,具体地,执行代价为置换数据量。
30.如图2所示,在本实施例中,由于分层卷积不影响原维度排列,所以维度置换b可移动到分层卷积之前,移动后的维度置换b和维度置换a连续且属于同一类置换,可标记为同一组并进行合并置换,进一步地,合并后的置换根据分层卷积前后数据量的大小,选择将合并后置换置于数据量较小的分层卷积之后。
31.至此,按照本发明公开的方法,已实施完一次本发明的工作过程。
32.虽然,本说明书中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献