神经网络切分方法、预测方法及相关装置制造方法及图纸

技术编号:27777592 阅读:20 留言:0更新日期:2021-03-23 13:24
一种神经网络切分方法、预测方法及相关装置,该神经网络切分方法包括:获得神经网络图,所述神经网络图用于表征一个神经网络;将所述神经网络图进行切分以得到深度子图;所述深度子图包括的多个节点中各节点间通过读写片内缓冲器进行数据交互,所述深度子图用于对由第一输入数据拆分得到的至少两组数据先后进行处理以得到第一输出数据,所述第一输入数据为所述深度子图的输入数据。该方法中,神经网络切分装置切分神经网络图得到一个或多个深度子图,以便于根据该一个或多个深度子图生成一个或多个深度子网络,使用这些深度子网络来执行神经网络的处理任务可以大大减少访问外部存储器的次数。

【技术实现步骤摘要】
【国外来华专利技术】神经网络切分方法、预测方法及相关装置
本申请涉及人工智能领域,尤其涉及神经网络切分方法、预测方法及相关装置。
技术介绍
人工智能(ArtificialIntelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。机器学习是目前实现人工智能最主要的方式。在机器学习和认知科学领域,神经网络(neuralnetwork,缩写NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。目前,计算神经网络的方法主要有以下两个途径:1)图形处理器(GraphicsProcessingUnit,GPU);2)专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)。但是,不论GPU还是ASIC,利用神经网络执行处理任务的常规技术方案是以神经网络单节点(即神经元)为基本单元逐层计算,由于神经网络单节点计算结果数据往往较大,无法存放于片内存储,需要将计算结果导到片外存储中。因此,需要通过访问片外存储来保存神经网络单节点的输出结果。由于神经网络节点数目往往较大,这会导致神经网络的计算过程中需要频繁访问片外存储。频繁访问片外存储会导致计算性能在一定程度上受限于片外存储带宽以及系统功耗高。
技术实现思路
本申请实施例提供了一种神经网络切分方法、预测方法及相关装置,切分神经网络图得到深度子图,以便于生成深度子网络,深度子网络在执行处理操作的过程中不需要访问外部存储器,可以有效减少访问外部存储器的次数甚至避免访问外部存储器。第一方面,本申请实施例提供了一种神经网络切分方法,该方法可包括:获得神经网络图,所述神经网络图用于表征一个神经网络,所述神经网络图中包括多个节点,每个节点表征所述神经网络中的一个计算单元;将所述神经网络图进行切分以得到深度子图;所述深度子图用于表征深度子网络,所述深度子网络包括的多个节点中各节点间通过读写片内缓冲器进行数据交互,所述深度子网络用于对由第一输入数据拆分得到的至少两组数据先后进行处理以得到第一输出数据,所述第一输入数据为所述深度子网络的输入数据,所述第一输入数据包括一个或多个计算机可处理的信号。该方法的执行主体为神经网络切分装置,该神经网络切分装置可以是服务器、手机等终端以及其他计算机设备。在实际应用中,神经网络切分装置可以切分神经网络图以得到一个或多个深度子图,以便于根据该一个或多个深度子图生成一个或多个深度子网络。神经网络图表征一个神经网络,切分神经网络图的实质是切分神经网络,这些深度子网络可以理解为切分该神经网络得到的子网络,即每个深度子网络包括该神经网络中的一部分节点。这里所说的切分神经网络仅是一种逻辑上的切分,即仅调整该神经网络中各节点处理其输入数据的流程以及数据读写流程,并不是将神经网络切分为几个部分。切分后的神经网络(即这些深度子网络)包括的节点也就是神经网络中的各节点,并各节点实现的处理操作不会改变。神经网络用于执行目标任务,每个深度子网络用于执行该目标任务包括的一个子任务。可以理解,这些深度子网络可以实现该目标任务。举例来说,将参考输入数据输入至神经网络进行预测处理可以得到参考预测结果;将该参考输入数据输入至切分该神经网络得到的一个或多个深度子网络进行处理也会得到该参考预测结果。也就是说,利用切分神经网络得到的深度子网络实现的处理操作与该神经网络实现的处理操作相同。由于深度子网络在对其输入数据进行处理的过程中,不需要访问外部存储器,因此使用切分神经网络得到的深度子网络执行目标任务,可以减少访问外部存储器的次数甚至避免访问外部存储器。外部存储器是指除片内缓冲器之外的存储器。由于减少了访问外部存储器的次数,使用切分后的神经网络执行处理任务还能降低功耗。本申请实施例中,神经网络切分装置切分神经网络图得到一个或多个深度子图,以便于根据该一个或多个深度子图生成一个或多个深度子网络,使用这些深度子网络来执行神经网络的处理任务可以大大减少访问外部存储器的次数,并降低功耗。在一个可选的方式中,所述方法还包括:将所述神经网络图进行切分以得到直接子图;所述直接子图用于表征直接子网络,所述直接子网络包括的多个节点中各节点间通过读写所述片内缓冲器进行数据交互;所述直接子网络用于将第二输入数据作为一个整体进行处理以得到第二输出数据,所述第二输入数据为所述直接子网络的输入数据。神经网络切分装置切分神经网络图可以得到深度子图和直接子图,由深度子图生成的深度子网络可将其输入数据拆分为至少两组数据先后进行处理,由直接子图生成的直接子网络可将其输入数据作为一个整体进行处理。由于直接子网络将其输入数据作为一个整体进行处理,该直接子网络中的各节点仅需执行一次处理操作,花费时间短。在该实现方式中,神经网络切分装置切分神经网络图得到直接子图,以便于根据该直接子图生成直接子网络,直接子网络可将其输入数据作为一个整体进行处理,可以有效节省处理时间。在一个可选的方式中,所述第一输入数据所需占用的存储空间大于所述片内缓冲器可用的存储空间,所述至少两组数据中每组数据所需占用的存储空间均不大于所述片内缓冲器可用的存储空间,所述第二输入数据所需占用的存储空间不大于所述片内缓冲器可用的存储空间。在该实现方式中,一方面,当输入数据所需占用的存储空间大于片内缓冲器的可用存储空间时,将输入数据拆分为至少两组数据先后进行处理,以便于每组数据所需占用的存储空间均不大于该片内缓冲器的可用存储空间,可以避免访问外部存储器;另一方面,当输入数据所需占用的存储空间不大于片内缓冲器的可用存储空间时,将该输入数据作为一个整体进行处理,在不访问外部存储器的同时,还能节省处理时间。在一个可选的方式中,所述深度子网络包括的多个节点中各节点在处理所述第一输入数据的过程中均至少执行两次处理操作,所述直接子网络中至少一个节点在处理所述第二输入数据的过程中执行一次处理操作。在该实现方式中,通过将第一输入数据拆分为至少两组先后进行处理,可以避免访问外部存储器。在一个可选的方式中,所述将所述神经网络图进行切分以得到深度子图包括:获得第一基准子图,所述第一基准子图包括第一节点和第二节点,所述第一节点为当前所述神经网络图中待分配的节点,所述第二节点为所述神经网络图中所述第一节点的下一节点;将第三节点添加至所述第一基准子图以得到第二基准子图,所述第三节点为所述神经网络图中所述第二节点的下一节点,所述第二基准子图用于对第三输入数据进行处理;在所述第二基准子图对所述第三输入数本文档来自技高网
...

【技术保护点】
一种神经网络切分方法,其特征在于,/n获得神经网络图,所述神经网络图用于表征一个神经网络,所述神经网络图中包括多个节点,每个节点表征所述神经网络中的一个计算单元;/n将所述神经网络图进行切分以得到深度子图;所述深度子图用于表征深度子网络,所述深度子网络包括的多个节点中各节点间通过读写片内缓冲器进行数据交互,所述深度子网络用于对由第一输入数据拆分得到的至少两组数据先后进行处理以得到第一输出数据,所述第一输入数据为所述深度子网络的输入数据,所述第一输入数据包括一个或多个计算机可处理的信号。/n

【技术特征摘要】
【国外来华专利技术】20190724 CN PCT/CN2019/097501一种神经网络切分方法,其特征在于,
获得神经网络图,所述神经网络图用于表征一个神经网络,所述神经网络图中包括多个节点,每个节点表征所述神经网络中的一个计算单元;
将所述神经网络图进行切分以得到深度子图;所述深度子图用于表征深度子网络,所述深度子网络包括的多个节点中各节点间通过读写片内缓冲器进行数据交互,所述深度子网络用于对由第一输入数据拆分得到的至少两组数据先后进行处理以得到第一输出数据,所述第一输入数据为所述深度子网络的输入数据,所述第一输入数据包括一个或多个计算机可处理的信号。


根据权利要求1所述的神经网络切分方法,其特征在于,所述方法还包括:
将所述神经网络图进行切分以得到直接子图;所述直接子图用于表征直接子网络,所述直接子网络包括的多个节点中各节点间通过读写所述片内缓冲器进行数据交互;所述直接子网络用于将第二输入数据作为一个整体进行处理以得到第二输出数据,所述第二输入数据为所述直接子网络的输入数据。


根据权利要求2所述的神经网络切分方法,其特征在于,所述第一输入数据所需占用的存储空间大于所述片内缓冲器可用的存储空间,所述至少两组数据中每组数据所需占用的存储空间均不大于所述片内缓冲器可用的存储空间,所述第二输入数据所需占用的存储空间不大于所述片内缓冲器可用的存储空间。


根据权利要求2或3所述的神经网络切分方法,其特征在于,所述深度子网络包括的多个节点中各节点在处理所述第一输入数据的过程中均至少执行两次处理操作,所述直接子网络中至少一个节点在处理所述第二输入数据的过程中执行一次处理操作。


根据权利要求2至4任一项所述的神经网络切分方法,其特征在于,所述将所述神经网络图进行切分以得到深度子图包括:
获得第一基准子图,所述第一基准子图包括第一节点和第二节点,所述第一节点为当前所述神经网络图中待分配的节点,所述第二节点为所述神经网络图中所述第一节点的下一节点;
将第三节点添加至所述第一基准子图以得到第二基准子图,所述第三节点为所述神经网络图中所述第二节点的下一节点,所述第二基准子图用于对第三输入数据进行处理;
判断在所述第二基准子图对所述第三输入数据进行处理的过程中是否成功为所述第二基准子图分配所述片内缓冲器的地址;
在成功为所述第二基准子图分配所述片内缓冲器的地址且所述第三节点属于终止节点的情况下,将所述第二基准子图作为所述深度子图。


根据权利要求5所述的神经网络切分方法,其特征在于,所述为所述第二基准子图分配所述片内缓冲器的地址之后,所述方法还包括:
在未成功为所述第二基准子图分配所述片内缓冲器的地址的情况下,将所述第一基准子图作为所述直接子图。


根据权利要求5或6所述的神经网络切分方法,其特征在于,所述第二基准子图分配所述片内缓冲器的地址包括:
在所述第二基准子图将所述第三输入数据作为一个整体进行处理的过程中,为所述第二基准子图分配所述片内缓冲器的地址;
在未成功为所述第二基准子图分配所述片内缓冲器的地址的情况下,在所述第二基准子图对由所述第三输入数据拆分得到的至少两组数据先后进行处理的过程中,为所述第二基准子图分配所述片内缓冲器的地址。


根据权利要求1至7任一项所述的神经网络切分方法,其特征在于,所述将所述神经网络图进行切分以得到深度子图之后,所述方法还包括:
在所述深度子图包括的节点的数量不小于第一阈值的情况下,将所述深度子图进行切分以得到第一二阶子图和第二二阶子图;所述第一二阶子图用于表征第一二阶子网络,所述第二二阶子图用于表征第二二阶子网络,所述第一二阶子网络和所述第二二阶子网络均包含于所述深度子网络,所述第一二阶子网络和所述第二二阶子网络包含的节点均不同。


根据权利要求8所述的神经网络切分方法,其特征在于,所述第一二阶子网络包括的多个节点中各节点间通过读写所述片内缓冲器进行数据交互,所述第二二阶子网络包括的多个节点中各节点间通过读写所述片内缓冲器进行数据交互。


根据权利要求8或9所述的神经网络切分方法,其特征在于,所述第一二阶子网络的输入数据为所述第一输入数据,所述第二二阶子网络的输出数据为所述第一输出数据,所述第一二阶子网络用于将对所述第一输入数据进行处理得到的第一中间数据存储至中间缓冲器,所述第二二阶子网络用于对从所述中间缓冲器获取的所述第一中间数据进行处理,所述中间缓冲器不为所述片内缓冲器。


根据权利要求10所述的神经网络切分方法,其特征在于,所述中间缓冲器为一个读写速度低于所述片内缓冲器的片外缓冲器。


根据权利要求8至11任一项所述的神经网络切分方法,其特征在于,所述将所述深度子图进行切分以得到第一二阶子图和第二二阶子图之后,所述方法还包括:
在所述第二二阶子网络用于将所述第一中间数据作为一个整体进行处理的情况下,合并所述第二二阶子图和第一直接子图以得到第二直接子图,所述第一直接子图用于表征第一直接子网络,所述第一直接子网络的输入数据为所述第二二阶子网络输出的所述第一输出数据,所述第一直接子网络用于将所述第一输出数据作为一个整体进行处理以得到第三输出数据,所述第二直接子图用于表征第二直接子网络,所述第二直接子网络用于将所述第一中间数据作为一个整体进行处理以得到所述第三输出数据。


根据权利要求1至12任一项所述的神经网络切分方法,其特征在于,所述将所述神经网络图进行切分以得到深度子图之后,所述方法还包括:
生成所述深度子图对应的目标指令,所述目标指令用于执行目标子任务,所述神经网络用于执行目标任务,所述目标子任务为所述目标任务的一部分。


一种基于神经网络的预测方法,其特征在于,包括:
获取原始输入数据,所述原始输入数据包括一个或多个计算机可处理的信号;
将所述原始输入数据输入至神经网络进行预测处理,得到预测结果;所述预测处理包括:将由第一输入数据拆分得到的至少两组数据先后输入至深度子网络进行处理,所述深度子网络包含于所述神经网络且包括所述神经网络中的部分节点,每个节点表征所述神经网络中的一个计算单元,所述深度子网络包括的多个节点中各节点间通过读写片内缓冲器进行数据交互;所述第一输入数据为在将所述原始输入数据输入至所述神经网络进行预测处理过程中得到的;
输出所述预测结果。


根据权利要求14所述的方法,其特征在于,所述预测处理还包括:直接子网络将第二输入数据作为一个整体进行处理,所述直接子网络包含于所述神经网络且包括所述神经网络中的部分节点,所述第二输入数据为在将所述原始输入数据输入至所述神经网络进行预测处理过程中得到的。


根据权利要求15所述的方法,其特征在于,所述第二输入数据所需占用的存储空间不大于所述片内缓冲器可用的存储空间。


根据权利要求15所述的方法,其特征在于,所述直接子网络中至少一个节点在处理所述第二输入数据的过程中执行一次处理操作。


根据权利要求14至17任一项所述的方法,其特征在于,所述第一输入数据所需占用的存储空间大于所述片内缓冲器可用的存储空间,所述至少两组数据中每组数据所需占用的存储空间均不大于所述片内缓冲器可用的存储空间。


根据权利要求18所述的方法,其特征在于,所述深度子网络包括的多个节点中各节点在处理所述第一输入数据的过程中均至少执行两次处理操作。


根据权利要求19所述的方法,其特征在于,所述深度子网络包括的多个节点的数量小于第一阈值。


根据权利要求18所述的方法,其特征在于,在将所述原始输入数据输入至所述神经网络进行预测处理,得到所述预测结果的过程中,不需要访问片外存储器。


根据权利要求14至20任一项所述的方法,其特征在于,所述预测处理还包括:第三二阶子网络对第四输入数据进行处理,得到第二中间数据;将所述第二中间数据存储至中间缓冲器,所述中间缓冲器不为所述片内缓冲器;第四二阶子网络对从所述中间缓冲器获取的所述第二中间数据进行处理,得到第四输出数据;所述第三二阶子网络和所述第四二阶子网络均包含于所述神经网络,所述第三二阶子网络包括的节点和所述第四二阶子网络包括的节点均不同,所述第四输入数据为在将所述原始输入数据输入至所述神经网络进行预测处理过程中得到的。


根据权利要求22所述的方法,其特征在于,所述第三二阶子网络包括的多个节点中各节点间通过读写所述片内缓冲器进行数据交互,所述第四二阶子网络包括的多个节点中各节点间通过读写所述片内缓冲器进行数据交互。


根据权利要求22或23所述的方法,其特征在于,所述第三二阶子网络包括的节点数量和所述第四二阶子网络包括的节点的数量均小于第一阈值。


根据权利要求24所述的方法,其特征在于,所述中间缓冲器为一个读写速度低于所述片内缓冲器的片外缓冲器。


根据权利要求14至25任一项所述的方法,其特征在于,所述多个计算机可处理的信号包括:语音信号、文本信号或图像信号中的至少一项。


一种...

【专利技术属性】
技术研发人员:储洁宇叶德周胡雨舟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1