[发明专利]神经网络的运行优化及数据处理方法、设备及存储介质有效
申请号: | 201910378838.7 | 申请日: | 2019-05-08 |
公开(公告)号: | CN110187965B | 公开(公告)日: | 2021-02-12 |
发明(设计)人: | 解为成;刘源;张喜;沈琳琳 | 申请(专利权)人: | 深圳大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06N3/04;G06N3/08 |
代理公司: | 深圳青年人专利商标代理有限公司 44350 | 代理人: | 吴桂华 |
地址: | 518060 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 神经网络 运行 优化 数据处理 方法 设备 存储 介质 | ||
1.一种神经网络的运行优化方法,其特征在于,所述神经网络的前向图对应由位于输入与输出之间的至少两条通路构成的集合,每条所述通路以特征图作为节点、以计算子作为边,所述计算子对应至少一个网络层,所述运行优化方法用于实现在神经网络的层级结构上的多核并行加速优化,所述运行优化方法在所述神经网络的前向计算过程中执行如下内容:
获得节点入度统计数据并从所述集合中确定关键通路,所述集合中的其他所述通路为非关键通路;
根据所述节点入度统计数据,当所述关键通路的关键边满足并行处理条件时,确定可与所述关键边并行处理的、位于所述非关键通路上的非关键边;当所述关键边不满足并行处理条件时,确定可并行处理的至少两条所述非关键边,以形成可供并行处理线程进行处理的计算子线程分配模型;
所述运行优化方法还包括:
将所述计算子线程分配模型和所述神经网络部署到多核计算设备中;
从所述集合中确定关键通路,具体包括:
采用拓扑排序算法,将所述前向图转换得到拓扑序列;
根据所述拓扑序列,从所述集合中确定所述关键通路;
根据所述拓扑序列,从所述集合中确定所述关键通路,具体包括:
根据所述网络层的浮点计算量,确定所述通路的活动持续时间;
根据所述活动持续时间,按照所述拓扑序列对应的拓扑次序和逆拓扑次序,确定所述节点的最早开始时间和最晚开始时间;
以所述最早开始时间与所述最晚开始时间相同的所述节点构建所述关键通路;
所述并行处理线程被预设为N条,N取大于1的自然数,当所述关键通路的关键边满足并行处理条件时,确定可与所述关键边并行处理的、位于所述非关键通路上的非关键边;当所述关键边不满足并行处理条件时,确定可并行处理的至少两条所述非关键边,具体为:
当所述关键边起始位置的所述节点的实时入度数据为零时,确定可与所述关键边并行处理的、位于至多N-1条所述非关键通路上的非关键边;当所述关键边起始位置的所述节点的实时入度数据不为零时,确定可并行处理的、位于至少两条且至多N条所述非关键通路上的所述非关键边,所述实时入度数据为基于所述节点入度统计数据变化而得到。
2.如权利要求1所述的运行优化方法,其特征在于,获得节点入度统计数据,具体为:
采用深度优先搜索算法,对所述节点的入度进行统计,得到所述节点入度统计数据。
3.如权利要求1所述的运行优化方法,其特征在于,确定可与所述关键边并行处理的、位于至多N-1条所述非关键通路上的非关键边,或者,确定可并行处理的、位于至少两条且至多N条所述非关键通路上的所述非关键边,具体采用二分查找算法实现。
4.如权利要求1所述的运行优化方法,其特征在于,所述运行优化方法还包括:
获得节点出度统计数据;
在所述前向计算过程中,根据所述节点出度统计数据,当所述节点的实时出度数据为零时,释放所述实时出度数据为零的所述节点所占用的资源,所述实时出度数据为基于所述节点出度统计数据变化而得到。
5.一种基于神经网络的数据处理方法,其特征在于,所述数据处理方法基于如权利要求1至4任一项所述的运行优化方法所得的所述计算子线程分配模型以及所述神经网络,所述数据处理方法包括:
按照所述计算子线程分配模型,使用多线程并行执行所述计算子,以进行所述神经网络的前向计算。
6.一种计算设备,包括存储器及处理器,其特征在于,所述处理器执行所述存储器中存储的计算机程序时实现如权利要求1至5任一项所述方法中的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法中的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳大学,未经深圳大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910378838.7/1.html,转载请声明来源钻瓜专利网。