利索能及
我要发布
收藏
专利号: 2019109149353
申请人: 西安闻泰电子科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-11-28
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种神经网络模型加速方法,其特征在于,所述方法包括:

确定第三方引擎与神经网络模型不兼容的节点;

基于所述不兼容的节点对所述神经网络模型进行分割,得到至少两个子模型;

将不包括所述不兼容的节点的子模型转换为所述第三方引擎支持的格式;

通过所述第三方引擎运行所述经过格式转换的子模型。

2.根据权利要求1所述的方法,其特征在于,所述确定第三方引擎与神经网络模型不兼容的节点,包括:通过所述第三方引擎开始转换所述神经网络模型;

当所述第三方引擎转换异常时,获取当前转换的节点,以当前转换的节点作为不兼容节点;以所述不兼容节点的下一节点开始通过所述第三方引擎转换所述神经网络模型,若还存在不兼容节点,则以当前不兼容节点的下一个节点开始继续进行转换步骤,直到转换结束,得到至少两个不兼容节点;或者当所述第三方引擎转换异常时,获取当前转换的节点,以当前转换的节点作为不兼容节点,以所述不兼容节点的下一节点开始通过所述第三方引擎转换所述神经网络模型,若没有出现转换异常,则到转换结束时,得到一个不兼容节点。

3.根据权利要求2所述的方法,其特征在于,所述不兼容节点为一个时,所述基于所述不兼容的节点对所述神经网络模型进行分割,具体为:基于所述不兼容节点对所述神经网络模型进行分割,得到两个子模型,其中,若该不兼容节点靠近所述神经网络模型的起点时,所述神经网络模型的起点及所述不兼容节点属于同一所述子模型;若该不兼容节点靠近所述神经网络模型的终点时,所述神经网络模型的终点及所述不兼容节点属于同一所述子模型。

4.根据权利要求2所述的方法,其特征在于,所述不兼容节点为至少两个,且任一所述不兼容节点不属于所述神经网络模型的起点或终点时,所述基于所述不兼容的节点对所述神经网络模型进行分割,得到至少两个子模型,具体为:基于K个所述不兼容节点将所述神经网络模型分割成K+1个子模型,其中,若第M个不兼容节点与第M‑1个不兼容节点之间的数据长度大于或等于第M个不兼容节点与第M+1个不兼容节点之间的数据长度时,第M个不兼容节点与第M+1个不兼容节点属于同一子模型,第M个不兼容节点与第M‑1个不兼容节点属于不同的子模型;若第M个不兼容节点与第M‑1个不兼容节点之间的数据长度小于第M个不兼容节点与第M+1个不兼容节点之间的数据长度时,第M个不兼容节点与第M‑1个不兼容节点属于同一子模型,第M个不兼容节点与第M+1个不兼容节点属于不同的子模型,其中,所述K为大于2的自然数,M为大于1的自然数,且M小于K。

5.根据权利要求1所述的方法,其特征在于,所述确定第三方引擎与神经网络模型不兼容的节点,包括:通过所述第三方引擎开始转换所述神经网络模型;

当所述第三方引擎转换异常时,获取当前转换的节点,以当前转换的节点作为不兼容节点,获取所述神经网络模型的起点到所述不兼容节点之间的数据长度与所述神经网络模型对应的数据长度的比值;

若所述比值为大于或等于预设值,则转到所述基于所述不兼容的节点对所述神经网络模型进行分割的步骤;

所述基于所述不兼容的节点对所述神经网络模型进行分割具体为:

基于所述不兼容节点对所述神经网络模型进行分割,得到两个子模型,其中,所述神经网络模型的起点与所述不兼容节点处于不同的子模型中。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

若所述比值小于所述预设值,则以所述不兼容节点作为第一个不兼容节点,从所述第一个不兼容节点的下一个节点开始通过所述第三方引擎对所述神经网络模型进行转换;

当所述第三方引擎转换异常时,获取当前转换的节点,以当前转换的节点作为第二个不兼容节点,并获取所述第一不兼容节点到所述第二不兼容节点之间的数据长度与所述神经网络模型对应的数据长度之间的比值,若所述比值小于所述预设值,以所述第二个不兼容节点的下一节点开始通过第三方引擎对所述神经网络模型进行转换,继续获取下一个不兼容节点,直到存在第N个不兼容节点到所述第N‑1个不兼容节点之间的数据长度与所述神经网络模型的数据长度之间的比值大于或等于所述预设值时,停止获取下一个不兼容节点,其中,所述N大于或等于2;

所述基于所述不兼容的节点对所述神经网络模型进行分割,得到至少两个子模型具体为:基于所述第N‑1个不兼容节点及所述第N个不兼容节点对所述神经网络模型进行分割,得到三个子模型,其中,所述神经网络模型的起点至所述第N‑1个不兼容节点属于一子模型,所述第N‑1个不兼容节点的下一节点至所述第N个不兼容节点的上一节点属于另一子模型,所述第N个不兼容节点至所述神经网络模型的终点属于所述三个模型中的另一个子模型。

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

若直至转换结束,均不存在第N个不兼容节点到所述第N‑1个不兼容节点之间的数据长度与所述神经网络模型的数据长度之间的比值大于或等于所述预设值,则获取每一相邻两个不兼容节点之间的数据长度,得到所获取的数据长度中的最大值;

所述基于所述不兼容的节点对所述神经网络模型进行分割,得到至少两个模型具体为:基于所述数据长度的最大值对应的两个目标不兼容节点对所述神经网络模型进行分割,得到对应的三个子模型,其中一个子模型不包括所述两个目标不兼容节点,另外两个子模型分别包括所述两个目标不兼容节点中的其中一个目标不兼容节点。

8.根据权利要求2或5所述的方法,其特征在于,所述通过第三方引擎开始转换所述神经网络模型,具体为:调用所述第三方引擎的转换函数开始对所述神经网络模型进行转换。

9.根据权利要求1至7任意一项所述的方法,其特征在于,所述基于所述不兼容的节点对所述神经网络模型进行分割,得到至少两个子模型之后还包括:在CPU上执行包括不兼容节点的子模型。

10.一种神经网络模型加速装置,其特征在于,包括:

确定模块,用于确定第三方引擎与神经网络模型不兼容的节点;

分割模块,用于基于所述不兼容的节点对所述神经网络模型进行分割,得到至少两个模型;

转换模块,用于将不包括所述不兼容的节点的模型转换为所述第三方引擎支持的格式;

控制模块,用于控制所述第三方引擎运行所述经过格式转换的模型。

11.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9中任一项所述方法的步骤。

12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述方法的步骤。