CN115358379B - 神经网络处理、信息处理方法、装置和计算机设备 - Google Patents

神经网络处理、信息处理方法、装置和计算机设备 Download PDF

Info

Publication number
CN115358379B
CN115358379B CN202211283346.8A CN202211283346A CN115358379B CN 115358379 B CN115358379 B CN 115358379B CN 202211283346 A CN202211283346 A CN 202211283346A CN 115358379 B CN115358379 B CN 115358379B
Authority
CN
China
Prior art keywords
operator
node
target
operator node
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211283346.8A
Other languages
English (en)
Other versions
CN115358379A (zh
Inventor
陶淳
张文泰
马子扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211283346.8A priority Critical patent/CN115358379B/zh
Publication of CN115358379A publication Critical patent/CN115358379A/zh
Application granted granted Critical
Publication of CN115358379B publication Critical patent/CN115358379B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种神经网络处理方法、装置、计算机设备、存储介质和计算机程序产品。该方法包括:获取神经网络算子关联图中各个算子节点的节点深度;基于各个算子节点对应的节点深度、依赖信息和设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点;基于算子关联子图和待划分算子节点得到更新的神经网络算子关联图并进行循环迭代,直到各个算子节点划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;将神经网络算子关联图、各个目标算子关联子图和子图设备支持信息关联,并响应神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备进行运算。采用本方法能够提高设备利用率,节省运算资源。

Description

神经网络处理、信息处理方法、装置和计算机设备
技术领域
本申请涉及人工智能技术领域,特别是涉及一种神经网络处理、信息处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着人工智能技术的发展,出现了神经网络技术,通过神经网络技术建立各种神经网络模型对各种信息的处理。目前,可以通过将神经网络模型中的算子进行划分,然后将划分后的算子派发至各类加速硬件设备上进行神经网络模型的运算,从而能够提高神经网络模型处理信息的效率,其中,加速硬件设备可以是各类DSP(digital signal processor,一种独特的微处理器) 、GPU(graphics processing unit,图形处理器)、NPU(Neural-network Processing Unit,嵌入式神经网络处理器)等加速硬件设备。然而,目前在对神经网络模型中的算子进行划分时,通常容易将相邻的算子划分得到不同的硬件设备中,此时,就会产生在不同硬件设备之间传递数据的时间消耗和硬件设备每次启动的时间消耗,从而导致神经网络模型的运行速度变慢,大大降低了设备利用率,浪费了运算资源。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高设备利用率,节省运算资源的神经网络处理、信息处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种神经网络处理方法。所述方法包括:
获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的;
获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点;
将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;
存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,关联关系用于响应于神经网络运算请求,基于神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
第二方面,本申请还提供了一种神经网络处理装置。所述装置包括:
深度获取模块,用于获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的;
划分模块,用于获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点;
迭代模块,用于将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;
关联模块,用于存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,关联关系用于响应于神经网络运算请求,基于神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的;
获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点;
将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;
存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,关联关系用于响应于神经网络运算请求,基于神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的;
获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点;
将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;
存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,关联关系用于响应于神经网络运算请求,基于神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的;
获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点;
将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;
存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,关联关系用于响应于神经网络运算请求,基于神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
上述神经网络处理方法、装置、计算机设备、存储介质和计算机程序产品,通过获取神经网络算子关联图中各个算子节点的节点深度,然后使用各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,然后将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图并进行迭代划分,得到各个目标算子关联子图和对应的子图设备支持信息,由于使用算子节点的节点深度、依赖信息和设备支持信息来对各个算子节点进行划分,从而可以使相邻的且能够被设备支持的算子划分为同一个算子关联子图,从而提高了算子关联子图划分的准确性,进而减少了划分出的各个算子关联子图的数量,然后存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,当进行神经网络运算时,通过该关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算,从而可以节省在不同硬件设备之间传递数据的时间消耗和硬件设备每次启动的时间消耗,从而能够提高神经网络模型的运行速度,并且提高了设备利用率,进而节省了运算资源。
第一方面,本申请提供了一种信息处理方法。所述方法包括:
接收神经网络运算请求,运算请求携带待运算神经网络标识和待运算信息;
基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的;
基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果。
第二方面,本申请还提供了一种信息处理装置。所述装置包括:
请求接收模块,用于接收神经网络运算请求,运算请求携带待运算神经网络标识和待运算信息;
信息获取模块,用于基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的;
运算模块,用于基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收神经网络运算请求,运算请求携带待运算神经网络标识和待运算信息;
基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的;
基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收神经网络运算请求,运算请求携带待运算神经网络标识和待运算信息;
基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的;
基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收神经网络运算请求,运算请求携带待运算神经网络标识和待运算信息;
基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的;
基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果。
上述信息处理方法、装置、计算机设备、存储介质和计算机程序产品,通过接收神经网络运算请求,然后基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,由于各个目标算子关联子图是通过获取神经网络算子关联图中各个算子节点的节点深度,然后使用各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图并进行迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的,从而提高了得到的各个目标算子关联子图的准确性,进而减少了划分出的各个算子关联子图的数量,然后基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果,从而可以在运算时节省在不同硬件设备之间传递数据的时间消耗和硬件设备每次启动的时间消耗,从而能够提高神经网络的运行速度,并提高设备利用率,进而节省了运算资源。
附图说明
图1为一个实施例中神经网络处理方法的应用环境图;
图2为一个实施例中神经网络处理方法的流程示意图;
图3为一个实施例中划分算子关联子图的流程示意图;
图4为一个实施例中得到目标算子节点的流程示意图;
图5为一个实施例中检测目标算子节点的流程示意图;
图6为一个实施例中信息处理方法的流程示意图;
图7为一个具体实施例中信息处理方法的流程示意图;
图8为一个具体实施例中神经网络算子关联图的示意图;
图9为另一个具体实施例中神经网络算子关联图的示意图;
图10为一个实施例中神经网络处理装置的结构框图;
图11为一个实施例中信息处理装置的结构框图;
图12为一个实施例中计算机设备的内部结构图;
图13为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
计算机视觉技术(Computer Vision, CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建、自动驾驶、智慧交通等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
语音技术(Speech Technology)的关键技术有自动语音识别技术和语音合成技术以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
自然语言处理(Nature Language processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
本申请实施例提供的方案涉及人工智能的图像处理、文本处理、语音处理等技术,具体通过如下实施例进行说明:
本申请实施例提供的神经网络处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以向服务器104发送神经网络划分请求,服务器104接收到神经网络划分请求时可以从数据存储系统中获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的;服务器104可以从数据存储系统中 获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点;服务器104将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;服务器104存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,关联关系用于响应于神经网络运算请求,基于神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种神经网络处理方法,以该方法应用于图1中的服务器为例进行说明,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤202,获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的。
其中,神经网络算子关联图是指神经网络对应的算子关联图,算子关联图是指由算子组成的一个计算网络图,算子((Operator,OP))是指计算单元,比如,卷积神经网络层中的卷积运算为一个算子,全连接神经网络层中的权值求和运算为一个算子等。神经网络算子关联图也即神经网络计算图,神经网络算子关联图即是指由神经网络对应的各个计算单元组成的有向无环图。神经网络可以是各种结构的神经网络,比如,可以是树形结构的神经网络,可以是标准结构的神经网络,也可以是循环神经网络,也可以是卷积网络等等。神经网络算子关联图即是指由神经网络对应的各个计算单元组成的有向无环图。算子节点是指神经网络中算子对应的节点,神经网络中有多少计算单元,就相同数量的算子节点。节点深度基于算子节点依赖信息确定的,用于表征算子节点与起始算子节点之间的距离。算子节点依赖信息是指算子节点对应的依赖信息,该依赖信息是指算子节点在运算时所依赖其它算子节点信息,即当前算子节点在运算时需要依赖其它算子节点的运算结果,其它算子节点可以为零个,即当前算子节点在运算时不需要依赖其它算子节点的运算结果,比如,可以是起始算子节点使用输入数据进行运算。其它算子节点也可以为一个或者多个,即当前算子节点在运算时需要依赖一个或者多个算子节点的运算结果。
具体地,服务器可以直接从数据库中获取神经网络算子关联图中各个算子节点的节点深度,该节点深度可以是通过各个算子节点依赖信息确定的。服务器也可以从业务方获取到神经网络算子关联图中各个算子节点的节点深度。服务器也可以获取到终端上传的神经网络算子关联图中各个算子节点的节点深度。
在一个实施例中,服务器也可以从数据库中获取到要进行划分的神经网络算子关联图,服务器也可以是从业务方获取到要进行划分的神经网络算子关联图。服务器也可以获取到终端上传的要进行划分的神经网络算子关联图。然后从数据库中获取到神经网络算子关联图中的各个算子节点对应的依赖信息。并按照各个算子节点对应的依赖信息计算得到各个算子节点对应的节点深度。
步骤204,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点。
其中,设备支持信息用于表征算子节点是否支持在加速硬件设备中进行运算,当算子节点支持在加速硬件设备中进行运算,设备支持信息就为支持加速硬件设备,当算子节点不支持在加速硬件设备中进行运算,则设备支持信息就为未支持加速硬件设备。未支持在加速硬件设备中进行运算的算子节点可以在普通硬件设备中进行运算,比如,可以在CPU(central processing unit,中央处理器)中进行运算。其中,可以根据算子节点的运算类型来预先设置号对应的设备支持信息。算子关联子图是指划分后得到的算子节点形成的子图,即算子关联子图是指划分得到的计算子图。同一个算子关联子图中的所有算子节点被同一硬件设备处理,该硬件设备可以是加速硬件设备,也可以是普通硬件设备。待划分算子节点是指神经网络算子关联图中等待划分的算子节点,即是指神经网络算子关联图中除算子关联子图中算子节点以外的算子节点,是未划分到算子关联子图中算子节点。该带划分算子节点可以包括多个。
具体地,服务器可以从数据库中的设备支持信息数据表中查找各个算子节点对应的设备支持信息。服务器也可以从提高数据服务的服务方获取到各个算子节点对应的设备支持信息。服务器也可以从提高数据服务的服务方获取到各个算子节点对应的设备支持信息。然后服务器使用各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,其中,当需要划分的算子节点满足节点深度条件且满足设备支持条件时,将该算子节点作为算子关联子图中算子节点,当需要划分的算子节点满足节点依赖条件且满足设备支持条件时,将该算子节点作为算子关联子图中算子节点。该节点深度条件是指预先设置好的节点深度连续的条件。该设备支持条件是指预先设置好的硬件设备支持的条件。节点依赖条件是指预先设置好的唯一依赖的条件。此时,根据所有满足条件的算子节点得到算子关联子图,并将神经网络算子关联图中的其它算子节点作为待划分算子节点。
步骤206,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息。
其中,更新的神经网络算子关联图是指将算子关联子图作为神经网络的算子节点,并与待划分算子节点关联得到的。更新的神经网络算子关联图中的算子节点少于神经网络算子关联图。更新的神经网络算子关联图中的存在算子节点为算子关联子图。目标算子关联子图是指最终划分完成的算子关联子图。子图设备支持信息是指目标算子关联子图对应的设备支持信息,用于表征目标算子关联子图是否支持在加速硬件设备中进行运算。即该目标算子关联子图可以是支持在加速硬件设备中进行运算,也可以是支持在普通硬件设备中进行运算。
具体地,服务器将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,即服务器将算子关联子图中的所有算子节点共同作为一个算子节点,然后根据该算子节点和神经网络算子关联图中的其它待划分算子节点共同得到更新的神经网络算子关联图。此时,服务器返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,即神经网络算子关联图中各个算子节点都被划分为算子关联子图时,得到各个目标算子关联子图。同时根据目标算子关联子图中各个算子节点对应的设备支持信息得到目标算子关联子图对应的子图设备支持信息。
步骤208,存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,关联关系用于响应于神经网络运算请求,基于神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
其中,神经网络标识用于唯一标识神经网络算子关联图。目标设备是指目标算子关联子图运算的硬件设备,该目标设备可以是加速硬件设备,也可以是普通硬件设备。服务器可以根据子图设备支持信息确定目标算子关联子图是在加速硬件设备运算,还是在普通硬件设备中运算。不同的目标算子关联子图在不同的目标设备中进行运算。各个目标算子关联子图的运算顺序是根据神经网络算子关联图中各个算子节点的执行顺序确定的。
具体地,服务器将神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息建立关联关系。即服务器将神经网络标识与该神经网络算子关联图对应的所有目标算子关联子图关联,再与目标算子关联子图对应的子图设备支持信息进行关联。然后将关联关系进行存储,可以存储到数据库中。服务器接收到神经网络运算请求,该神经网络运算请求中携带有神经网络标识,响应于神经网络运算请求,使用神经网络标识按照关联关系查找到各个目标算子关联子图和对应的子图设备支持信息,然后按照子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
上述神经网络处理方法,通过获取神经网络算子关联图中各个算子节点的节点深度,然后使用各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,然后将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图并进行迭代划分,得到各个目标算子关联子图和对应的子图设备支持信息,由于使用算子节点的节点深度、依赖信息和设备支持信息来对各个算子节点进行划分,从而可以使相邻的且能够被设备支持的算子划分为同一个算子关联子图,从而提高了算子关联子图划分的准确性,进而减少了划分出的各个算子关联子图的数量,然后存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,当进行神经网络运算时,通过该关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算,从而可以节省在不同硬件设备之间传递数据的时间消耗和硬件设备每次启动的时间消耗,从而能够提高神经网络模型的运行速度,并且提高了设备利用率,进而节省了运算资源。
在一个实施例中,如图3所示,步骤204,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,包括:
步骤302,从各个算子节点中确定当前算子节点,并从各个算子节点中获取当前算子节点对应的目标算子节点。
其中,当前算子节点是指未被划分且满足设备支持条件的算子节点。目标算子节点是指与当前算子节点相邻的算子节点。
具体地,服务器按照各个算子节点的在神经网络中的运算顺序从各个算子节点中选取未被划分过的算子节点,然后对选取的算子节点进行判断,其中,可以判断选取的算子节点是否满足硬件设备支持条件,该硬件设备支持条件是指支持在加速硬件设备中进行运算。然后当满足硬件设备支持条时,将选取的未被划分过的算子节点作为当前算子节点。然后再根据各个算子节点的顺序获取当前算子节点对应的邻居算子节点,得到目标算子节点。
步骤304,获取目标算子节点的目标历史划分信息,从各个算子节点对应的节点深度中确定目标算子节点对应的目标节点深度,从各个算子节点的设备支持信息中确定目标算子节点对应的目标设备支持信息,并从各个算子节点的依赖信息中确定目标算子节点对应的目标依赖信息。
其中,目标历史划分信息是指目标算子节点的历史划分信息,该历史划分信息用于表征该目标算子节点是否被划分过。目标节点深度是指目标算子节点的在神经网络算子关联图中的深度。目标设备支持信息是指目标算子节点的设备支持信息。目标依赖信息是指目标算子节点的依赖信息。
具体地,服务器可以在算子节点被划分完成时,设置已划分标记并保存。当需要对目标算子节点进行划分时,首先需要查找该目标算子节点是否已经被划分过。此时,服务器可以从数据库中获取目标算子节点的目标历史划分信息,其中,服务器可以查找目标算子节点对应的已划分标记,当查找到已划分标记时,得到的目标历史划分信息为已划分完成,当未查找到已划分标记,得到的目标历史划分信息为未划分。同时,服务器从各个算子节点对应的节点深度中查找到与目标算子节点相同的算子节点对应的节点深度,得到目标节点深度。从各个算子节点的设备支持信息中查找到与目标算子节点相同的算子节点对应的设备支持信息,得到目标设备支持信息。并从各个算子节点的依赖信息中查找到与目标算子节点相同的算子节点对应的依赖信息,得到目标依赖信息。
步骤306,基于目标设备支持信息,目标历史划分信息、目标节点深度和目标依赖信息对目标算子节点进行子图算子节点检测。
其中,子图算子节点检测是指检测算子节点是否为算子关联子图中的算子节点。
具体地,服务器使用目标设备支持信息检测目标算子节点是否为算子关联子图中的算子节点,得到检测结果。服务器使用目标节点深度检测目标算子节点是否为算子关联子图中的算子节点,得到检测结果。服务器使用目标依赖信息检测目标算子节点是否为算子关联子图中的算子节点,得到检测结果。服务器使用目标设备支持信息检测目标算子节点是否为算子关联子图中的算子节点,得到检测结果。当所有检测结果中任意一种检测结果说明目标算子节点不是为算子关联子图中的算子节点,则子图算子节点检测未通过。
步骤308,当目标算子节点检测通过时,将当前算子节点和目标算子节点作为更新的当前算子节点,并返回获取当前算子节点对应的目标算子节点的步骤执行,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点。
其中,目标算子节点检测通过是指检测到目标算子节点为算子关联子图中的算子节点。
具体地,当目标算子节点检测通过时,说明目标算子节点为算子关联子图中的算子节点。此时,服务器将当前算子节点和目标算子节点作为更新的当前算子节点,其中,由于当前算子节点和目标算子是相邻的算子节点且都是算子关联子图中的算子节点,此时,可以将当前算子节点和目标算子节点作为同一个算子节点,即得到更新的当前算子节点。然后进行迭代循环,即返回获取当前算子节点对应的目标算子节点的步骤执行,直到更新的当前算子节点未发生变化时,即更新的当前算子节点未发生变化是指更新的当前算子节点与更新前的当前算子节点相同未发生变化时,根据更新的当前算子节点中包括的目标算子节点得到各个检测通过的目标算子节点。
步骤310,基于当前算子节点和各个检测通过的目标算子节点得到算子关联子图,并基于各个算子节点、当前算子节点和各个检测通过的目标算子节点得到待划分算子节点。
具体地,服务器将当前算子节点和各个检测通过的目标算子节点作为同一个算子关联子图中的算子节点,就得到的算子关联子图。然后将各个算子节点中除当前算子节点和各个检测通过的目标算子节点以外的算子节点作为待划分算子节点。
在上述实施例中,通过使用从各个算子节点中确定当前算子节点,并从各个算子节点中获取当前算子节点对应的目标算子节点,然后使用于目标设备支持信息,目标历史划分信息、目标节点深度和目标依赖信息对目标算子节点进行子图算子节点检测,从而能够提高目标算子节点的检测准确性。然后当目标算子节点检测通过时,将当前算子节点和目标算子节点作为更新的当前算子节点并迭代执行,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点,最后根据当前算子节点和各个检测通过的目标算子节点得到算子关联子图,能够将属于一个子图的算子节点划分到同一个算子关联子图中,从而提高了得到的算子关联子图的准确性,进而减少了划分出的各个算子关联子图的数量。然后在进行运算时,能够提高设备利用率,并节省运算资源。
在一个实施例中,如图4所示,步骤302,从各个算子节点中确定当前算子节点,并从各个算子节点中获取当前算子节点对应的目标算子节点,包括:
步骤402,从各个算子节点选取候选算子节点,并获取候选算子节点的候选历史划分信息,从各个算子节点的设备支持信息中确定候选算子节点对应的候选设备支持信息。
其中,候选算子节点是指在确定当前算子节点时各个算子节点中候选的算子节点。候选历史划分信息是指候选算子节点对应的历史划分信息。候选设备支持信息是指候选算子节点对应的设备支持信息。
具体地,服务器可以按照神经网络算子关联图中的算子节点的运算顺序从各个算子节点中依次选取候选算子节点。然后从数据库中获取候选算子节点的候选历史划分信息,并从各个算子节点对应的设备支持信息中查找到与候选算子节点相同的算子节点对应的设备支持信息,得到候选设备支持信息。
步骤402,基于候选历史划分信息和候选设备支持信息对候选算子节点进行子图算子节点检测。
具体地,服务器使用候选历史划分信息和候选设备支持信息对候选算子节点进行检测判断,其中,根据候选历史划分信息判断候选算子节点是否已被划分过。然后根据候选设备支持信息判断候选算子节点是否支持在加速硬件设备中进行运算。
步骤402,当候选算子节点检测通过时,将候选算子节点作为当前算子节点,并从各个算子节点中获取当前算子节点对应的前序算子节点和后继算子节点,将前序算子节点和后继算子节点分别作为目标算子节点。
其中,前序算子节点是指按照神经网络算子关联图中的算子节点的运算顺序确定的在候选算子节点之前进行运算的算子节点。后继算子节点是指按照神经网络算子关联图中的算子节点的运算顺序确定的在候选算子节点之后进行运算的算子节点。
具体地,当候选算子节点检测通过时,即说明候选算子节点未被划分过且候选算子节点支持在加速硬件设备中进行运算,将候选算子节点作为当前算子节点。然后从各个算子节点中获取当前算子节点对应的前序算子节点和后继算子节点,将前序算子节点和后继算子节点分别作为目标算子节点,即将前序算子节点作为目标算子节点,然后执行对目标算子节点进行后续处理的步骤,并且同时将后继算子节点作为目标算子节点,也执行对目标算子节点进行后续处理的步骤。
步骤402,当候选算子节点检测未通过时,将候选算子节点作为算子关联子图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成。
具体地,当候选算子节点检测未通过时,说明候选算子节点被划分过,或者是候选算子节点不支持在加速硬件设备中进行运算,或者是候选算子节点被划分过且候选算子节点不支持在加速硬件设备中进行运算。此时,直接将候选算子节点作为算子关联子图,即将该后续算子节点作为单独的算子关联子图。并将单独的算子关联子图和待划分算子节点得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成。
在一个实施例中,当连续多个候选算子节点检测未通过时,可以将该连续多个候选算子节点作为同一个算子关联子图中的算子节点,从而得到在普通硬件设备中运算的计算子图。
在上述实施例中,通过从各个算子节点选取候选算子节点,并对候选算子节点进行子图算子节点检测,当检测通过时,才从各个算子节点中获取当前算子节点对应的前序算子节点和后继算子节点分别作为目标算子节点,从而提高了得到的目标算子节点的准确性。
在一个实施例中,步骤404,基于候选历史划分信息和候选设备支持信息对候选算子节点进行子图算子节点检测,包括步骤:
基于候选历史划分信息对候选算子节点进行历史划分检测,并基于候选设备支持信息对候选算子节点进行支持设备检测;当候选算子节点的历史划分检测通过且候选算子节点的支持设备检测通过时,确定候选算子节点检测通过;当候选算子节点的历史划分检测未通过或候选算子节点的支持设备检测未通过时,确定候选算子节点检测未通过。
其中,历史划分检测是指检测算子节点是否已被划分。支持设备检测是指检测算子节点是否支持在加速硬件设备中运算。
具体地,服务器使用候选历史划分信息对候选算子节点进行历史划分检测,其中,服务器可以检测候选历史划分信息中是否存在候选算子节点对应的已划分标记,当未存在候选算子节点对应的已划分标记时,说明候选算子节点的历史划分检测通过。当存在候选算子节点对应的已划分标记时,说明候选算子节点的历史划分检测未通过。然后服务器使用候选设备支持信息对候选算子节点进行支持设备检测,其中,服务器可以检测候选设备支持信息是否为候选算子节点支持在加速硬件设备中运算。当检测到候选算子节点支持在加速硬件设备中运算时,说明候选算子节点的支持设备检测通过,当检测到候选算子节点不支持在加速硬件设备中运算时,说明候选算子节点的支持设备检测未通过。
上述实施例中,通过对候选历史划分信息和候选设备支持信息对候选算子节点进行子图算子节点检测,从而能够保证对候选算子节点检测的准确性。
在一个实施例中,如图5所示,步骤306,基于目标设备支持信息,目标历史划分信息、目标节点深度和目标依赖信息对目标算子节点进行子图算子节点检测,包括:
步骤502,基于目标历史划分信息对目标算子节点进行历史划分检测,基于目标设备支持信息对目标算子节点进行支持设备检测,并基于目标节点深度和目标依赖信息对目标算子节点进行连续性检测。
其中,连续性检测是指检测目标算子节点是否当前算子节点之间是否具有连续性,该连续性包括但不限于是指目标算子节点对应的节点深度与当前算子节点对应的节点深度连续或者是指目标算子节点被当前算子节点唯一依赖。
具体地,服务器使用目标历史划分信息对目标算子节点进行历史划分检测,其中,服务器可以检测目标历史划分信息中是否存在目标算子节点对应的已划分标记。当未存在目标算子节点对应的已划分标记时,说明目标算子节点的历史划分检测通过。当存在目标算子节点对应的已划分标记时,说明目标算子节点的历史划分检测未通过。
在一个实施例中,服务器在划分完成算子节点时,就保存到划分完成的算子节点记录信息中,然后可以在已划分完成的算子节点记录信息中查找目标算子节点,当未查找到目标算子节点时,说明目标算子节点是未划分的算子节点,即目标算子节点的历史划分检测通过,当查找到目标算子节点时,说明目标算子节点是划分的算子节点,即目标算子节点的历史划分检测未通过。
并且服务器使用目标设备支持信息对目标算子节点进行支持设备检测,其中,服务器可以检测目标设备支持信息是否为目标算子节点支持在加速硬件设备中运算。当检测到目标算子节点支持在加速硬件设备中运算时,说明目标算子节点的支持设备检测通过,当检测到目标算子节点不支持在加速硬件设备中运算时,说明目标算子节点的支持设备检测未通过。
并且服务器使用目标节点深度和目标依赖信息对目标算子节点进行连续性检测。其中,服务器可以检测目标节点深度是否为当前算子节点对应节点深度的邻居值,同时检测目标依赖信息是否为目标算子节点被当前算子节点唯一依赖。当目标节点深度为当前算子节点对应节点深度的邻居值或者目标依赖信息为目标算子节点被当前算子节点唯一依赖时,说明目标算子节点的连续性检测通过。当目标节点深度并不是当前算子节点对应节点深度的邻居值并且目标依赖信息并不是指目标算子节点被当前算子节点唯一依赖时,说明目标算子节点的连续性检测未通过。
步骤504,当目标算子节点的历史划分检测、目标算子节点的支持设备检测通过和目标算子节点的连续性检测全部通过时,确定目标算子节点检测通过。
步骤506,当目标算子节点的历史划分检测、目标算子节点的支持设备检测通过和目标算子节点的连续性检测中任意一项检测未通过时,确定目标算子节点检测未通过。
具体地,服务器判断目标算子节点的历史划分检测、目标算子节点的支持设备检测通过和目标算子节点的连续性检测全部通过时,说明目标算子节点是以当前算子节点形成的算子关联子图中的算子节点,即目标算子节点检测通过。当目标算子节点的历史划分检测、目标算子节点的支持设备检测通过和目标算子节点的连续性检测中任意一项检测未通过时, 说明目标算子节点并不是以当前算子节点形成的算子关联子图中的算子节点,即确定目标算子节点检测未通过。
在上述实施例中,通过使用目标历史划分信息对目标算子节点进行历史划分检测,使用目标设备支持信息对目标算子节点进行支持设备检测,并使用目标节点深度和目标依赖信息对目标算子节点进行连续性检测。然后根据历史划分检测、支持设备检测和连续性检测来确定目标算子节点是否检测通过,从而确保目标算子节点检测的准确性。
在一个实施例中,在步骤306之后,即基于目标设备支持信息,目标历史划分信息和目标节点深度对目标算子节点进行子图算子节点检测之后,还包括步骤:
当目标算子节点检测未通过时,基于当前算子节点得到算子关联子图,并基于各个算子节点和当前算子节点得到待划分算子节点。
具体地,当目标算子节点检测未通过时,说明该目标算子节点并不是以当前算子节点形成的算子关联子图中的算子节点。此时,直接将当前算子节点单独作为算子关联子图。同时将各个算子节点中出当前算子节点以外的算子节点作为待划分算子节点,避免将能被加速硬件支持的算子节点和不能被加速硬件支持的算子节点划分到同一个计算子图中,从而保证得到的算子关联子图的准确性。
在一个实施例中,步骤202,获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,包括步骤:
将神经网络算子关联图中各个算子节点进行拓扑排序,得到算子节点序列;基于各个算子节点的依赖信息和算子节点序列计算各个算子节点对应的节点深度。
其中,拓扑排序可以将一个有向无环图进行排序进而得到一个有序的线性序列。算子节点序列是指将神经网络算子关联图中各个算子节点进行排序得到的有序的线性序列,该算子节点序列用于表征算子节点在运算时的先后顺序。
具体地,服务器使用拓扑排序算法对将神经网络算子关联图中各个算子节点进行拓扑排序,得到算子节点序列。然后服务器使用各个算子节点的依赖信息和算子节点序列计算得到各个算子节点对应的节点深度。其中,根据可以按照算子节点序列的顺序来确定当前要进行计算的算子节点,同时使用当前算子节点的依赖信息确定当前算子节点的依赖节点,根据依赖节点的节点深度来计算当前算子节点的节点深度。最后遍历算子节点序列中的各个算子节点,得到各个算子节点对应的节点深度。
在上述实施例中,通过先将各个算子节点进行拓扑排序,得到算子节点序列,然后使用各个算子节点的依赖信息和算子节点序列计算各个算子节点对应的节点深度,从而提高了得到的节点深度的准确性。
在一个实施例中,基于各个算子节点的依赖信息和算子节点序列计算各个算子节点对应的节点深度,包括步骤:
按照算子节点序列的序列顺序从各个算子节点中确定待计算节点,并基于各个算子节点的依赖信息检测待计算节点是否存在对应的依赖节点;当待计算节点存在对应的依赖节点时,获取依赖节点对应的节点深度,基于依赖节点对应的节点深度计算得到待计算节点对应的节点深度。
其中,待计算节点是指当前需要计算节点深度的算子节点。依赖节点是指待计算节点依赖的算子节点。即待计算节点在进行运算时需要依赖节点的运算结果才能进行运算。该依赖节点的节点深度是在待计算节点进行节点深度计算之前就计算得到的。
具体地,服务器按照算子节点序列的序列顺序从各个算子节点中确定待计算节点,然后根据各个算子节点的依赖信息检测待计算节点是否存在对应的依赖节点。当待计算节点存在对应的依赖节点时,服务器直接从数据库中获取到依赖节点对应的节点深度,然后根据依赖节点对应的节点深度计算得到待计算节点对应的节点深度,可以是计算依赖节点对应的节点深度与预设第一目标值的和,得到待计算节点对应的节点深度。其中,预设第一目标值是预先设置好的,可以是一。
在上述实施例中,通过检测待计算节点是否存在对应的依赖节点,当待计算节点存在对应的依赖节点时,使用依赖节点对应的节点深度计算得到待计算节点对应的节点深度,提高了计算节点深度的准确性和效率。
在一个实施例中,依赖节点存在至少两个;获取依赖节点对应的节点深度,基于依赖节点对应的节点深度计算得到待计算节点对应的节点深度,包括步骤:
获取至少两个依赖节点分别对应的节点深度,从至少两个依赖节点分别对应的节点深度中确定最大节点深度;计算最大节点深度和预设第一目标值的和,得到待计算节点对应的节点深度。
其中,预设第一目标值是指预先设置好的需要进行节点深度计算时使用的值,可以设置为一。
具体地,服务器检测到待计算节点存在对应的至少两个依赖节点时。此时,从数据库中获取到每个依赖节点对应的节点深度,然后比较每个依赖节点对应的节点深度的大小,从每个依赖节点对应的节点深度确定最大节点深度。然后计算最大节点深度和预设第一目标值的和,得到待计算节点对应的节点深度。
在一个具体的实施例中,待计算节点V1依赖的节点集合为
Figure 432785DEST_PATH_IMAGE002
,其中,n表示依赖节点的数量,V表示算子节点,
Figure DEST_PATH_IMAGE003_42A
表示第一个依赖节点,
Figure 846143DEST_PATH_IMAGE005
表示最后一个依赖节点。然后可以使用如下所示的公式(1)计算待计算节点对应的节点深度。
Figure 241352DEST_PATH_IMAGE007
公式(1)
其中,
Figure 258987DEST_PATH_IMAGE009
表示待计算节点V1的节点深度。
Figure 815870DEST_PATH_IMAGE011
表示依赖节点
Figure DEST_PATH_IMAGE003_43A
的节点深度。
Figure 20587DEST_PATH_IMAGE013
表示依赖节点
Figure 422749DEST_PATH_IMAGE005
的节点深度。
在上述实施例中,当待计算节点存在多个依赖节点时,从至少两个依赖节点分别对应的节点深度中确定最大节点深度,然后计算最大节点深度和预设第一目标值的和,得到待计算节点对应的节点深度,从而保证得到的待计算节点对应节点深度的准确性。
在一个实施例中,基于各个算子节点的依赖信息检测待计算节点是否存在对应的依赖节点之后,还包括步骤:
当待计算节点未存在对应的依赖节点时,确定待计算节点对应的节点深度为预设第二目标值。
其中,预设第二目标值是指预先设置好的待计算节点为起始算子节点时的值,可以设置为零。
具体地,服务器判断待计算节点未存在对应的依赖节点时,说明该待计算节点是神经网络算子关联图中的起始算子节点,即该待计算节点不依赖其他算子节点的运算结果进行运算。此时,直接确定待计算节点对应的节点深度为预设第二目标值,从而保证得到待计算节点的节点深度的准确性。
在一个实施例中,如图6所示,提供了一种信息处理方法,以该方法应用于图1中的服务器为例进行说明,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤602,接收神经网络运算请求,运算请求携带待运算神经网络标识和待运算信息。
其中,待运算神经网络标识用于唯一标识需要对待运算信息进行运算的神经网络算子关联图,即神经网络模型。待运算信息是指需要使用待运算神经网络标识对应的神经网络算子关联图进行运算的信息,该待运算信息可以是各种类型的信息,包括但不限于文本、图像、语音、动画、视频等类型的信息。
具体地,服务器通过终端接收到接收神经网络运算请求,解析该运算请求,得到携带的待运算神经网络标识和待运算信息。
步骤604,基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的。
具体地,服务器根据运算请求从保存到关联关系中查找待运算神经网络标识关联的各个目标算子关联子图和每个目标算子关联子图对应的子图设备支持信息。该关联关系可以是通过上述神经网络处理方法实施例中任意一实施例进行神经网络处理得到的。通过关联关系获取到的各个目标算子关联子图和对应的子图设备支持信息也可以是通过上述神经网络处理方法实施例中任意一实施例进行神经网络算子关联图划分得到的。
步骤606,基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果。
其中,神经网络运算结果是指对待运行信息通过神经网络算子关联图中的算子节点进行运算后得到的结果。
具体地,服务器按照神经网络算子关联图中的算子节点的运算顺序确定各个目标算子关联子图的运算顺序,然后根据子图设备支持信息确定每个目标算子关联子图对应的目标设备。然后再根据各个目标算子关联子图的运算顺序将待运算信息和目标算子关联子图发送至对应的目标设备中并依次进行运算,其中,将待运算信息和起始的目标算子关联子图发送至起始的目标设备中,得到起始的目标设备输出的起始运算结果,然后起始运算结果和下一个目标算子关联子图发送至该子图对应的目标设备中,得到该子图的运算结果,并一直进行运算,直到最后的目标算子关联子图通过对应的目标设备进行运算,得到待运算信息对应的神经网络运算结果。
在一个具体的实施例中,待运算信息可以是文本信息,则神经网络算子关联图可以是文本处理模型,比如,文本识别模型、文本分类模型或者文本预测模型等等。然后服务器在接收运算请求后,基于关联关系获取文本处理模型关联的各个目标算子关联子图和对应的子图设备支持信息,并基于文本信息和子图设备支持信息将各个算子关联子图发送至对应的目标设备中依次进行运算,得到文本信息对应的文本运算结果。
在一个具体的实施例中,待运算信息可以是图像信息,则神经网络算子关联图可以是图像处理模型,比如,图像识别模型、图像分类模型或者图像预测模型等等。然后服务器在接收运算请求后,基于关联关系获取图像处理模型关联的各个目标算子关联子图和对应的子图设备支持信息,并基于图像信息和子图设备支持信息将各个算子关联子图发送至对应的目标设备中依次进行运算,得到图像信息对应的图像运算结果。
在一个具体的实施例中,待运算信息可以是语音信息,则神经网络算子关联图可以是语音处理模型,比如,语音识别模型、语音分类模型或者语音预测模型等等。然后服务器在接收运算请求后,基于关联关系获取语音处理模型关联的各个目标算子关联子图和对应的子图设备支持信息,并基于语音信息和子图设备支持信息将各个算子关联子图发送至对应的目标设备中依次进行运算,得到语音信息对应的语音运算结果。
在一个具体的实施例中,待运算信息可以是视频信息,则神经网络算子关联图可以是视频处理模型,比如,视频识别模型、视频分类模型或者视频预测模型等等。然后服务器在接收运算请求后,基于关联关系获取视频处理模型关联的各个目标算子关联子图和对应的子图设备支持信息,并基于视频信息和子图设备支持信息将各个算子关联子图发送至对应的目标设备中依次进行运算,得到视频信息对应的视频运算结果。
在一个实施例中,服务器得到各个算子关联子图时,可以预先将各个算子关联子图部署到对应的目标设备上,当接收到运算请求时,将待运算信息发送到起始的算子关联子图对应的目标设备中,通过目标设备中的算子关联子图进行运算,得到运算结果,然后将运算结果输入到下一个目标设备中进行运算,并按照运算顺序通过算子关联子图对应的目标设备进行运算,直到经过所有目标设备中算子关联子图的运算,得到待运算信息对应的神经网络运行结果。
该信息处理方法和神经网络处理方法适用于在异构计算设备上部署神经网络的各种场景。
上述信息处理方法,通过接收神经网络运算请求,然后基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,由于各个目标算子关联子图是通过获取神经网络算子关联图中各个算子节点的节点深度,然后使用各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图并进行迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的,从而提高了得到的各个目标算子关联子图的准确性,进而减少了划分出的各个算子关联子图的数量,然后基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果,从而可以在运算时节省在不同硬件设备之间传递数据的时间消耗和硬件设备每次启动的时间消耗,从而能够提高神经网络的运行速度,并提高设备利用率,进而节省了运算资源。
在一个具体的实施例中,如图7所示,为信息处理方法的流程示意图,具体来说:
步骤702,将神经网络算子关联图中各个算子节点进行拓扑排序,得到算子节点序列;基于各个算子节点的依赖信息和算子节点序列计算各个算子节点对应的节点深度。获取各个算子节点的设备支持信息,从各个算子节点选取候选算子节点,并获取候选算子节点的候选历史划分信息,从各个算子节点的设备支持信息中确定候选算子节点对应的候选设备支持信息。
步骤704,基于候选历史划分信息对候选算子节点进行历史划分检测,并基于候选设备支持信息对候选算子节点进行支持设备检测。当候选算子节点检测未通过时,将候选算子节点作为算子关联子图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成。
步骤706,当候选算子节点检测通过时,将候选算子节点作为当前算子节点,并从各个算子节点中获取当前算子节点对应的前序算子节点和后继算子节点,将前序算子节点和后继算子节点分别作为目标算子节点。
步骤708,获取目标算子节点的目标历史划分信息,从各个算子节点对应的节点深度中确定目标算子节点对应的目标节点深度,从各个算子节点的设备支持信息中确定目标算子节点对应的目标设备支持信息,并从各个算子节点的依赖信息中确定目标算子节点对应的目标依赖信息。
步骤710,基于目标历史划分信息对目标算子节点进行历史划分检测,基于目标设备支持信息对目标算子节点进行支持设备检测,并基于目标节点深度和目标依赖信息对目标算子节点进行连续性检测。
步骤712,当目标算子节点的历史划分检测、目标算子节点的支持设备检测通过和目标算子节点的连续性检测中任意一项检测未通过时,确定目标算子节点检测未通过。当目标算子节点的历史划分检测、目标算子节点的支持设备检测通过和目标算子节点的连续性检测全部通过时,确定目标算子节点检测通过。
步骤714,当目标算子节点检测通过时,将当前算子节点和目标算子节点作为更新的当前算子节点,并返回获取当前算子节点对应的目标算子节点的步骤执行,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点;基于当前算子节点和各个检测通过的目标算子节点得到算子关联子图,并基于各个算子节点、当前算子节点和各个检测通过的目标算子节点得到待划分算子节点。
步骤716,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;建立神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系并保存。
步骤718,接收神经网络运算请求,运算请求携带待运算神经网络标识和待运算信息。基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息。基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果。
在一个具体的实施例中,如图8所示,为神经网络算子关联图的示意图,该神经网络算子关联图由5个算子节点组成。其中,算子节点B不支持在加速硬件设备中运算。算子节点ACDE支持在加速硬件设备中运行。具体来说:服务器获取到神经网络算子关联图,即神经网络计算图,然后计算神经网络算子关联图的拓扑排序,得到拓扑序列,然后根据神经网络算子关联图的依赖信息和拓扑序列来计算每个算子节点深度,得到Depth(A) = 0,Depth(E) = 0,Depth(B) = 1,Depth(C) = 2,Depth(D) = 3。此时,建立算子节点ABCDE的访问记录,可以通过0和1来表示访问记录,其中,0表示未被访问过,1表示被访问过,此时访问记录就全为0。然后获取到算子节点A,根据访问记录确定算子节点A未被访问过,然后根据算子节点A支持在加速硬件设备中运行确定算子节点A为当前算子节点,此时修改算子节点A的访问记录从0到1。并根据当前算子节点A对应的前序算子节点(未存在)和后继算子节点(B),将后继算子节点B作为目标算子节点,并进行以下判断:
(1)判断目标算子节点是否已被访问过。
(2)判断目标算子节点是否支持在加速硬件设备运算。
(3)判断目标算子节点的节点深度是否为当前算子节点的节点深度加一或者目标算子节点的节点深度是否为当前算子节点的节点深度减一或者目标算子节点是否被当前算子节点唯一依赖或者当前算子节点是否为目标算子的唯一依赖
此时,该后继算子节点B未支持在加速硬件设备中运算,即该后继算子节点B未满足支持设备检测条件,说明后继算子节点B并不是以当前算子节点A形成的子图中的算子节点。此时,直接将当前算子节点A作为目标算子关联子图{A}。此时进行递归。即根据目标算子关联子图{A}和待划分算子节点BCDE得到更新的神经网络算子关联图。并返回计算神经网络算子关联图的拓扑排序,得到拓扑序列,然后根据神经网络算子关联图的依赖信息和拓扑序列来计算每个算子节点深度的步骤执行,此时,第二次计算得到的节点深度与第一次的相同。并且由于算子节点A已被访问过,此时,就获取到未被访问过的算子节点B。判断算子节点B是否支持在加速硬件设备,由于算子节点B未支持在加速硬件设备中运算,检测未通过,并修改算子节点A的访问记录从0到1。此时,直接将算子节点B作为目标算子关联子图{B},并重新进行递归迭代。
此时,进行第三次递归迭代,即进行拓扑排序后进行节点深度的计算,该第三次节点计算得到的节点深度与第一次的节点深度相同。并且由于算子节点AB已被访问过,此时,就获取到未被访问过的算子节点C。判断算子节点C是否支持在加速硬件设备,由于算子节点C支持在加速硬件设备中运算,检测通过,就得到当前算子节点C,然后获取到当前算子节点C的前序算子节点B和后续算子节点D,并分别作为目标算子节点,并且由于前序算子节点B已经被访问过,此时,前序算子节点B检测未通过,说明该前序算子节点B并不是以当前算子节点C形成的子图中的算子节点。然后判断后续算子节点D满足上述三个判断条件,则将后续算子节点D与当前算子节点C作为更新的当前算子节点,并返回获取当前算子节点对应的目标算子节点的步骤执行,此时获取到更新的当前算子节点的前序算子节点B和后续算子节点E。判断前序算子节点B并不是以当前算子节点C形成的子图中的算子节点。然后判断后续算子节点E满足上述三个判断条件,则将当前算子节点C、算子节点D与算子节点E作为更新的当前算子节点,并迭代执行,此时,由于更新的当前算子节点的前序算子节点B并不是以当前算子节点C形成的子图中的算子节点,并且未存在后继算子节点。则当前算子节点未发生变化,此时,迭代完成,将当前算子节点C、算子节点D与算子节点E作为目标算子关联子图{C,D,E}。此时,所有算子节点划分完成,就得到了三个子图{A},{B}和{C,D,E},并得到子图对应的设备支持信息,即可以对复杂的神经网络算子关联图生成更少的计算子图,减少计算开销,节省运算资源,提高资源利用率。然后,在运算时,子图{A}和子图{C ,D ,E}在加速硬件设备中,比如,在DSP / GPU / NPU等中进行运算,子图{B}在普通硬件设备中运算,比如,在CPU中运算。
在一个具体的实施例中,如图9所示,为另一个神经网络算子关联图的示意图,该神经网络算子关联图由3个算子节点组成。其中,算子节点Q不支持在加速硬件设备中运行。算子节点MN支持在加速硬件设备中运算。具体来说:获取到神经网络算子关联图,然后计算拓扑序列,并根据拓扑训练和依赖信息确定算子节点的节点深度Depth(M) = 0,Depth(Q)= 0,Depth(N) = 1,然后获取到算子节点M,该算子节点M未被访问且支持在加速硬件设备中运算 。此时,获取到算子节点M对应的目标算子节点N,该目标算子节点N满足上述三个判断条件,则将算子节点M和算子节点N作为更新的当前算子节点,并返回获取当前算子节点对应的目标算子节点的步骤执行,此时,获取到的目标算子节点为B,由于B未支持在加速硬件设备中运算。此时算子节点M和算子节点N形成的当前算子节点未发生变化,得到算子关联子图{M,N}。然后根据算子关联子图{M,N}和算子节点Q得到更新的神经网络算子关联图,并重新进行拓扑排序和节点深度计算,得到Depth(Q) = 0,Depth(MN) = 1,此时,获取到算子节点Q,该算子节点Q未支持在加速硬件设备中运算,则得到算子关联子图{Q}。此时,所有的算子节点都划分完成,即得到最终的目标算子关联子图{Q}和{M,N},并得到对应的子图设备支持信息,然后将该目标算子关联子图{Q}和{M,N},对应的子图设备支持信息与该神经网络算子关联图关联保存。目前,现有的技术通常是将该神经网络算子关联图划分为三个子图{Q},{M}和{ N},此时,就需要三个硬件设备来进行运算,浪费了运算资源,降低了设备利用率。明显,本申请中可以划分出更少的子图,避免将相邻的算子划分得到不同的硬件设备中,提高了设备利用率,节省了运算资源。
在一个具体的实施例中,该信息处理方法可以应用到人脸图像识别平台中。具体来说:使用者可以通过人脸图像识别平台进行人脸图像识别。使用者通过终端上传人脸图像到人脸图像识别平台并进行人脸识别,此时,人脸图像识别平台服务器接收人脸识别请求,人脸识请求携带人脸识别模型名称和待识别人脸图像。然后,服务器使用人脸识别模型名称按照关联关系获取到关联的各个目标人脸识别子图和对应的子图设备支持信息,各个目标人脸识别子图和对应的子图设备支持信息是通过获取人脸识别模型中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到人脸识别子图和待划分算子节点,将人脸识别子图和待划分算子节点分别作为人脸识别模型对应的算子节点,得到更新的人脸识别模型,并返回获取人脸识别模型中各个算子节点的节点深度的步骤迭代执行,直到人脸识别模型中各个算子节点都划分完成时得到的。然后服务器使用待识别图像和子图设备支持信息将各个人脸识别子图发送至对应的目标设备中依次进行运算,得到待识别人脸图像对应的人脸识别结果。
在一个具体的实施例中,该信息处理方法可以应用到文本分类平台中。具体来说:使用者可以通过文本分类平台进行文本分类。使用者通过终端上传文本到文本分类平台并进行文本分类,此时,人脸图像识别平台服务器接收文本分类请求,文本分类请求携带文本分类模型名称和待分类文本。然后,服务器使用文本分类模型名称按照关联关系获取到关联的各个文本分类神经网络子图和对应的子图设备支持信息,比如,可以包括由卷积节点组成的卷积节点子图和对应的卷积节点子图加速运算设备名称、由全连接节点组成的全连接节点子图和对应的全连接节点子图加速运算设备名称、由输入节点组成的输入节点子图和对应的普通运算设备名称以及由输出节点组成输出节点子图和对应的普通运算设备名称。然后服务器使用待分类文本和子图设备支持信息将各个文本分类神经网络子图发送至对应的目标设备中依次进行运算,得到待分类文本对应的文本分类结果,从而能够提高文本分类模型的文本分类运算效率,提高了设备利用率,节省了运算资源。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的神经网络处理方法的神经网络处理装置以及信息处理方法的信息处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个神经网络处理装置或者信息处理装置实施例中的具体限定可以参见上文中对于神经网络处理方法或者信息处理方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种神经网络处理装置1000,包括:深度获取模块1002、划分模块1004、迭代模块1006和关联模块1008,其中:
深度获取模块1002,用于获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的;
划分模块1004,用于获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点;
迭代模块1006,用于将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;
关联模块1008,用于存储神经网络算子关联图对应的神经网络标识、各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,关联关系用于响应于神经网络运算请求,基于神经网络运算请求按照关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
在一个实施例中,划分模块1004,包括:
目标获取单元,用于从各个算子节点中确定当前算子节点,并从各个算子节点中获取当前算子节点对应的目标算子节点;
信息确定单元,用于获取目标算子节点的目标历史划分信息,从各个算子节点对应的节点深度中确定目标算子节点对应的目标节点深度,从各个算子节点的设备支持信息中确定目标算子节点对应的目标设备支持信息,并从各个算子节点的依赖信息中确定目标算子节点对应的目标依赖信息;
检测单元,用于基于目标设备支持信息,目标历史划分信息、目标节点深度和目标依赖信息对目标算子节点进行子图算子节点检测;
算子迭代单元,用于当目标算子节点检测通过时,将当前算子节点和目标算子节点作为更新的当前算子节点,并返回获取当前算子节点对应的目标算子节点的步骤执行,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点;
子图得到单元,用于基于当前算子节点和各个检测通过的目标算子节点得到算子关联子图,并基于各个算子节点、当前算子节点和各个检测通过的目标算子节点得到待划分算子节点。
在一个实施例中,目标获取单元还用于从各个算子节点选取候选算子节点,并获取候选算子节点的候选历史划分信息,从各个算子节点的设备支持信息中确定候选算子节点对应的候选设备支持信息;基于候选历史划分信息和候选设备支持信息对候选算子节点进行子图算子节点检测;当候选算子节点检测通过时,将候选算子节点作为当前算子节点,并从各个算子节点中获取当前算子节点对应的前序算子节点和后继算子节点,将前序算子节点和后继算子节点分别作为目标算子节点;当候选算子节点检测未通过时,将候选算子节点作为算子关联子图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成。
在一个实施例中,目标获取单元还用于基于候选历史划分信息对候选算子节点进行历史划分检测,并基于候选设备支持信息对候选算子节点进行支持设备检测;当候选算子节点的历史划分检测通过且候选算子节点的支持设备检测通过时,确定候选算子节点检测通过;当候选算子节点的历史划分检测未通过或候选算子节点的支持设备检测未通过时,确定候选算子节点检测未通过。
在一个实施例中,检测单元还用于基于目标历史划分信息对目标算子节点进行历史划分检测,基于目标设备支持信息对目标算子节点进行支持设备检测,并基于目标节点深度和目标依赖信息对目标算子节点进行连续性检测;当目标算子节点的历史划分检测、目标算子节点的支持设备检测通过和目标算子节点的连续性检测全部通过时,确定目标算子节点检测通过;当目标算子节点的历史划分检测、目标算子节点的支持设备检测通过和目标算子节点的连续性检测中任意一项检测未通过时,确定目标算子节点检测未通过。
在一个实施例中,神经网络处理装置1000,还包括:
子图得到模块,用于当目标算子节点检测未通过时,基于当前算子节点得到算子关联子图,并基于各个算子节点和当前算子节点得到待划分算子节点。
在一个实施例中,深度获取模块1002还用于将神经网络算子关联图中各个算子节点进行拓扑排序,得到算子节点序列;基于各个算子节点的依赖信息和算子节点序列计算各个算子节点对应的节点深度。
在一个实施例中,深度获取模块1002还用于按照算子节点序列的序列顺序从各个算子节点中确定待计算节点,并基于各个算子节点的依赖信息检测待计算节点是否存在对应的依赖节点;当待计算节点存在对应的依赖节点时,获取依赖节点对应的节点深度,基于依赖节点对应的节点深度计算得到待计算节点对应的节点深度。
在一个实施例中,依赖节点存在至少两个;深度获取模块1002还用于获取至少两个依赖节点分别对应的节点深度,从至少两个依赖节点分别对应的节点深度中确定最大节点深度;计算最大节点深度和预设第一目标值的和,得到待计算节点对应的节点深度。
在一个实施例中,深度获取模块1002还用于当待计算节点未存在对应的依赖节点时,确定待计算节点对应的节点深度为预设第二目标值。
在一个实施例中,如图11所示,提供了一种信息处理装置1100,包括:请求接收模块1102、信息获取模块1104和运算模块1106,其中:
请求接收模块1102,用于接收神经网络运算请求,运算请求携带待运算神经网络标识和待运算信息;
信息获取模块1104,用于基于关联关系获取待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,节点深度是基于各个算子节点依赖信息确定的,获取各个算子节点的设备支持信息,基于各个算子节点对应的节点深度、各个算子节点的依赖信息和各个算子节点的设备支持信息对各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的;
运算模块1106,用于基于待运算信息和子图设备支持信息将各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到待运算信息对应的神经网络运算结果。
上述神经网络处理装置或者信息处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储神经网络算子关联图、各个算子节点的节点深度、各个算子节点依赖信息、各个算子节点的设备支持信息以及关联关系等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种神经网络处理方法或者信息处理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种神经网络处理方法或者信息处理方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12或者图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (24)

1.一种神经网络处理方法,其特征在于,所述方法包括:
获取神经网络算子关联图中各个算子节点的节点深度,所述节点深度是基于各个算子节点依赖信息确定的,用于表征算子节点与起始算子节点之间的距离;
获取所述各个算子节点的设备支持信息,基于所述各个算子节点对应的节点深度、所述各个算子节点的依赖信息和所述各个算子节点的设备支持信息对所述各个算子节点进行划分,得到算子关联子图和待划分算子节点,包括:从所述各个算子节点中确定当前算子节点对应的目标算子节点,根据所述目标算子节点的目标设备支持信息、所述目标算子节点的目标历史划分信息、所述目标算子节点的目标节点深度和所述目标算子节点的目标依赖信息对所述目标算子节点进行子图算子节点检测,当检测通过时,将所述当前算子节点和所述目标算子节点作为更新的当前算子节点并进行循环迭代,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点,并基于所述当前算子节点和所述各个检测通过的目标算子节点得到所述算子关联子图;
将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;
存储所述神经网络算子关联图对应的神经网络标识、所述各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,所述关联关系用于响应于神经网络运算请求,基于所述神经网络运算请求按照所述关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
2.根据权利要求1所述的方法,其特征在于,所述基于所述各个算子节点对应的节点深度、所述各个算子节点的依赖信息和所述各个算子节点的设备支持信息对所述各个算子节点进行划分,得到算子关联子图和待划分算子节点,包括:
从所述各个算子节点中确定当前算子节点,并从各个算子节点中获取所述当前算子节点对应的目标算子节点;
获取所述目标算子节点的目标历史划分信息,从所述各个算子节点对应的节点深度中确定所述目标算子节点对应的目标节点深度,从所述各个算子节点的设备支持信息中确定所述目标算子节点对应的目标设备支持信息,并从所述各个算子节点的依赖信息中确定所述目标算子节点对应的目标依赖信息;
基于所述目标设备支持信息、所述目标历史划分信息、所述目标节点深度和所述目标依赖信息对所述目标算子节点进行子图算子节点检测;
当所述目标算子节点检测通过时,将所述当前算子节点和所述目标算子节点作为更新的当前算子节点,并返回获取当前算子节点对应的目标算子节点的步骤执行,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点;
基于所述当前算子节点和所述各个检测通过的目标算子节点得到算子关联子图,并基于所述各个算子节点、所述当前算子节点和所述各个检测通过的目标算子节点得到待划分算子节点。
3.根据权利要求2所述的方法,其特征在于,所述从所述各个算子节点中确定当前算子节点,并从各个算子节点中获取所述当前算子节点对应的目标算子节点,包括:
从所述各个算子节点选取候选算子节点,并获取所述候选算子节点的候选历史划分信息,从所述各个算子节点的设备支持信息中确定所述候选算子节点对应的候选设备支持信息;
基于所述候选历史划分信息和所述候选设备支持信息对所述候选算子节点进行子图算子节点检测;
当所述候选算子节点检测通过时,将所述候选算子节点作为所述当前算子节点,并从各个算子节点中获取所述当前算子节点对应的前序算子节点和后继算子节点,将所述前序算子节点和所述后继算子节点分别作为目标算子节点;
当所述候选算子节点检测未通过时,将所述候选算子节点作为算子关联子图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成。
4.根据权利要求3所述的方法,其特征在于,所述基于所述候选历史划分信息和所述候选设备支持信息对所述候选算子节点进行子图算子节点检测,包括:
基于所述候选历史划分信息对所述候选算子节点进行历史划分检测,并基于所述候选设备支持信息对所述候选算子节点进行支持设备检测;
当所述候选算子节点的历史划分检测通过且所述候选算子节点的支持设备检测通过时,确定所述候选算子节点检测通过;
当所述候选算子节点的历史划分检测未通过或所述候选算子节点的支持设备检测未通过时,确定所述候选算子节点检测未通过。
5.根据权利要求2所述的方法,其特征在于,所述基于所述目标设备支持信息,所述目标历史划分信息、所述目标节点深度和所述目标依赖信息对所述目标算子节点进行子图算子节点检测,包括:
基于所述目标历史划分信息对所述目标算子节点进行历史划分检测,基于所述目标设备支持信息对所述目标算子节点进行支持设备检测,并基于所述目标节点深度和所述目标依赖信息对所述目标算子节点进行连续性检测;
当所述目标算子节点的历史划分检测、所述目标算子节点的支持设备检测通过和所述目标算子节点的连续性检测全部通过时,确定所述目标算子节点检测通过;
当所述目标算子节点的历史划分检测、所述目标算子节点的支持设备检测通过和所述目标算子节点的连续性检测中任意一项检测未通过时,确定所述目标算子节点检测未通过。
6.根据权利要求2所述的方法,其特征在于,所述基于所述目标设备支持信息,所述目标历史划分信息和所述目标节点深度对所述目标算子节点进行子图算子节点检测之后,还包括:
当所述目标算子节点检测未通过时,基于所述当前算子节点得到算子关联子图,并基于所述各个算子节点和所述当前算子节点得到待划分算子节点。
7.根据权利要求1所述的方法,其特征在于,获取神经网络算子关联图中各个算子节点的节点深度,所述节点深度是基于各个算子节点依赖信息确定的,包括:
将所述神经网络算子关联图中各个算子节点进行拓扑排序,得到算子节点序列;
基于所述各个算子节点的依赖信息和所述算子节点序列计算所述各个算子节点对应的节点深度。
8.根据权利要求7所述的方法,其特征在于,所述基于所述各个算子节点的依赖信息和所述算子节点序列计算所述各个算子节点对应的节点深度,包括:
按照所述算子节点序列的序列顺序从所述各个算子节点中确定待计算节点,并基于所述各个算子节点的依赖信息检测所述待计算节点是否存在对应的依赖节点;
当所述待计算节点存在对应的依赖节点时,获取所述依赖节点对应的节点深度,基于所述依赖节点对应的节点深度计算得到所述待计算节点对应的节点深度。
9.根据权利要求8所述的方法,其特征在于,所述依赖节点存在至少两个;
所述获取所述依赖节点对应的节点深度,基于所述依赖节点对应的节点深度计算得到所述待计算节点对应的节点深度,包括:
获取所述至少两个依赖节点分别对应的节点深度,从所述至少两个依赖节点分别对应的节点深度中确定最大节点深度;
计算所述最大节点深度和预设第一目标值的和,得到所述待计算节点对应的节点深度。
10.根据权利要求8所述的方法,其特征在于,所述基于所述各个算子节点的依赖信息检测所述待计算节点是否存在对应的依赖节点之后,还包括:
当所述待计算节点未存在对应的依赖节点时,确定所述待计算节点对应的节点深度为预设第二目标值。
11.一种信息处理方法,其特征在于,所述方法包括:
接收神经网络运算请求,所述运算请求携带待运算神经网络标识和待运算信息;
基于关联关系获取所述待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,所述各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,所述节点深度是基于各个算子节点依赖信息确定的,用于表征算子节点与起始算子节点之间的距离,获取所述各个算子节点的设备支持信息,基于所述各个算子节点对应的节点深度、所述各个算子节点的依赖信息和所述各个算子节点的设备支持信息对所述各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的,其中,从所述各个算子节点中确定当前算子节点对应的目标算子节点,根据所述目标算子节点的目标设备支持信息、所述目标算子节点的目标历史划分信息、所述目标算子节点的目标节点深度和所述目标算子节点的目标依赖信息对所述目标算子节点进行子图算子节点检测,当检测通过时,将所述当前算子节点和所述目标算子节点作为更新的当前算子节点并进行循环迭代,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点,并基于所述当前算子节点和所述各个检测通过的目标算子节点得到所述算子关联子图;
基于所述待运算信息和所述子图设备支持信息将所述各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到所述待运算信息对应的神经网络运算结果。
12.一种神经网络处理装置,其特征在于,所述装置包括:
深度获取模块,用于获取神经网络算子关联图中各个算子节点的节点深度,所述节点深度是基于各个算子节点依赖信息确定的,用于表征算子节点与起始算子节点之间的距离;
划分模块,用于获取所述各个算子节点的设备支持信息,基于所述各个算子节点对应的节点深度、所述各个算子节点的依赖信息和所述各个算子节点的设备支持信息对所述各个算子节点进行划分,得到算子关联子图和待划分算子节点,包括:从所述各个算子节点中确定当前算子节点对应的目标算子节点,根据所述目标算子节点的目标设备支持信息、所述目标算子节点的目标历史划分信息、所述目标算子节点的目标节点深度和所述目标算子节点的目标依赖信息对所述目标算子节点进行子图算子节点检测,当检测通过时,将所述当前算子节点和所述目标算子节点作为更新的当前算子节点并进行循环迭代,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点,并基于所述当前算子节点和所述各个检测通过的目标算子节点得到所述算子关联子图;
迭代模块,用于将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时,得到各个目标算子关联子图和对应的子图设备支持信息;
关联模块,用于存储所述神经网络算子关联图对应的神经网络标识、所述各个目标算子关联子图和对应的子图设备支持信息之间的关联关系,所述关联关系用于响应于神经网络运算请求,基于所述神经网络运算请求按照所述关联关系将各个目标算子关联子图发送至对应的目标设备中依次进行运算。
13.根据权利要求12所述的装置,其特征在于,所述划分模块,包括:
目标获取单元,用于从所述各个算子节点中确定当前算子节点,并从各个算子节点中获取所述当前算子节点对应的目标算子节点;
信息确定单元,用于获取所述目标算子节点的目标历史划分信息,从所述各个算子节点对应的节点深度中确定所述目标算子节点对应的目标节点深度,从所述各个算子节点的设备支持信息中确定所述目标算子节点对应的目标设备支持信息,并从所述各个算子节点的依赖信息中确定所述目标算子节点对应的目标依赖信息;
检测单元,用于基于所述目标设备支持信息、所述目标历史划分信息、所述目标节点深度和所述目标依赖信息对所述目标算子节点进行子图算子节点检测;
算子迭代单元,用于当所述目标算子节点检测通过时,将所述当前算子节点和所述目标算子节点作为更新的当前算子节点,并返回获取当前算子节点对应的目标算子节点的步骤执行,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点;
子图得到单元,用于基于所述当前算子节点和所述各个检测通过的目标算子节点得到算子关联子图,并基于所述各个算子节点、所述当前算子节点和所述各个检测通过的目标算子节点得到待划分算子节点。
14.根据权利要求13所述的装置,其特征在于,所述目标获取单元还用于从所述各个算子节点选取候选算子节点,并获取所述候选算子节点的候选历史划分信息,从所述各个算子节点的设备支持信息中确定所述候选算子节点对应的候选设备支持信息;基于所述候选历史划分信息和所述候选设备支持信息对所述候选算子节点进行子图算子节点检测;当所述候选算子节点检测通过时,将所述候选算子节点作为所述当前算子节点,并从各个算子节点中获取所述当前算子节点对应的前序算子节点和后继算子节点,将所述前序算子节点和所述后继算子节点分别作为目标算子节点;当所述候选算子节点检测未通过时,将所述候选算子节点作为算子关联子图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成。
15.根据权利要求14所述的装置,其特征在于,所述目标获取单元还用于基于所述候选历史划分信息对所述候选算子节点进行历史划分检测,并基于所述候选设备支持信息对所述候选算子节点进行支持设备检测;当所述候选算子节点的历史划分检测通过且所述候选算子节点的支持设备检测通过时,确定所述候选算子节点检测通过;当所述候选算子节点的历史划分检测未通过或所述候选算子节点的支持设备检测未通过时,确定所述候选算子节点检测未通过。
16.根据权利要求13所述的装置,其特征在于,所述检测单元还用于基于所述目标历史划分信息对所述目标算子节点进行历史划分检测,基于所述目标设备支持信息对所述目标算子节点进行支持设备检测,并基于所述目标节点深度和所述目标依赖信息对所述目标算子节点进行连续性检测;当所述目标算子节点的历史划分检测、所述目标算子节点的支持设备检测通过和所述目标算子节点的连续性检测全部通过时,确定所述目标算子节点检测通过;当所述目标算子节点的历史划分检测、所述目标算子节点的支持设备检测通过和所述目标算子节点的连续性检测中任意一项检测未通过时,确定所述目标算子节点检测未通过。
17.根据权利要求13所述的装置,其特征在于,所述装置,还包括:
子图得到模块,用于当所述目标算子节点检测未通过时,基于所述当前算子节点得到算子关联子图,并基于所述各个算子节点和所述当前算子节点得到待划分算子节点。
18.根据权利要求12所述的装置,其特征在于,所述深度获取模块还用于将所述神经网络算子关联图中各个算子节点进行拓扑排序,得到算子节点序列;基于所述各个算子节点的依赖信息和所述算子节点序列计算所述各个算子节点对应的节点深度。
19.根据权利要求18所述的装置,其特征在于,所述深度获取模块还用于按照所述算子节点序列的序列顺序从所述各个算子节点中确定待计算节点,并基于所述各个算子节点的依赖信息检测所述待计算节点是否存在对应的依赖节点;当所述待计算节点存在对应的依赖节点时,获取所述依赖节点对应的节点深度,基于所述依赖节点对应的节点深度计算得到所述待计算节点对应的节点深度。
20.根据权利要求19所述的装置,其特征在于,所述依赖节点存在至少两个;所述深度获取模块还用于获取所述至少两个依赖节点分别对应的节点深度,从所述至少两个依赖节点分别对应的节点深度中确定最大节点深度;计算所述最大节点深度和预设第一目标值的和,得到所述待计算节点对应的节点深度。
21.根据权利要求19所述的装置,其特征在于,所述深度获取模块还用于当所述待计算节点未存在对应的依赖节点时,确定所述待计算节点对应的节点深度为预设第二目标值。
22.一种信息处理装置,其特征在于,所述装置包括:
请求接收模块,用于接收神经网络运算请求,所述运算请求携带待运算神经网络标识和待运算信息;
信息获取模块,用于基于关联关系获取所述待运算神经网络标识关联的各个目标算子关联子图和对应的子图设备支持信息,所述各个目标算子关联子图和对应的子图设备支持信息是通过获取神经网络算子关联图中各个算子节点的节点深度,所述节点深度是基于各个算子节点依赖信息确定的,用于表征算子节点与起始算子节点之间的距离,获取所述各个算子节点的设备支持信息,基于所述各个算子节点对应的节点深度、所述各个算子节点的依赖信息和所述各个算子节点的设备支持信息对所述各个算子节点进行划分,得到算子关联子图和待划分算子节点,将算子关联子图和待划分算子节点分别作为神经网络对应的算子节点,得到更新的神经网络算子关联图,并返回获取神经网络算子关联图中各个算子节点的节点深度的步骤迭代执行,直到神经网络算子关联图中各个算子节点都划分完成时得到的,其中,从所述各个算子节点中确定当前算子节点对应的目标算子节点,根据所述目标算子节点的目标设备支持信息、所述目标算子节点的目标历史划分信息、所述目标算子节点的目标节点深度和所述目标算子节点的目标依赖信息对所述目标算子节点进行子图算子节点检测,当检测通过时,将所述当前算子节点和所述目标算子节点作为更新的当前算子节点并进行循环迭代,直到更新的当前算子节点未发生变化时,得到各个检测通过的目标算子节点,并基于所述当前算子节点和所述各个检测通过的目标算子节点得到所述算子关联子图;
运算模块,用于基于所述待运算信息和所述子图设备支持信息将所述各个目标算子关联子图发送至对应的目标设备中依次进行运算,得到所述待运算信息对应的神经网络运算结果。
23.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
CN202211283346.8A 2022-10-20 2022-10-20 神经网络处理、信息处理方法、装置和计算机设备 Active CN115358379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211283346.8A CN115358379B (zh) 2022-10-20 2022-10-20 神经网络处理、信息处理方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211283346.8A CN115358379B (zh) 2022-10-20 2022-10-20 神经网络处理、信息处理方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN115358379A CN115358379A (zh) 2022-11-18
CN115358379B true CN115358379B (zh) 2023-01-10

Family

ID=84008389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211283346.8A Active CN115358379B (zh) 2022-10-20 2022-10-20 神经网络处理、信息处理方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN115358379B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378413A (zh) * 2019-07-17 2019-10-25 Oppo广东移动通信有限公司 神经网络模型处理方法、装置以及电子设备
CN111340237A (zh) * 2020-03-05 2020-06-26 腾讯科技(深圳)有限公司 数据处理和模型运行方法、装置和计算机设备
CN111860820A (zh) * 2020-07-31 2020-10-30 北京灵汐科技有限公司 神经网络算子的划分方法、装置及划分设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113435565A (zh) * 2020-03-23 2021-09-24 算丰科技(北京)有限公司 神经网络模型的处理方法、推理方法及其装置和电子设备
CN114330699A (zh) * 2020-09-28 2022-04-12 华为技术有限公司 神经网络结构搜索方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378413A (zh) * 2019-07-17 2019-10-25 Oppo广东移动通信有限公司 神经网络模型处理方法、装置以及电子设备
CN111340237A (zh) * 2020-03-05 2020-06-26 腾讯科技(深圳)有限公司 数据处理和模型运行方法、装置和计算机设备
CN111860820A (zh) * 2020-07-31 2020-10-30 北京灵汐科技有限公司 神经网络算子的划分方法、装置及划分设备

Also Published As

Publication number Publication date
CN115358379A (zh) 2022-11-18

Similar Documents

Publication Publication Date Title
US11983269B2 (en) Deep neural network system for similarity-based graph representations
CN112434721B (zh) 一种基于小样本学习的图像分类方法、系统、存储介质及终端
CN111340237B (zh) 数据处理和模型运行方法、装置和计算机设备
CN113011282A (zh) 图数据处理方法、装置、电子设备及计算机存储介质
US8243988B1 (en) Clustering images using an image region graph
Cheng et al. A data-driven point cloud simplification framework for city-scale image-based localization
CN112463976B (zh) 一种以群智感知任务为中心的知识图谱构建方法
CN110795527B (zh) 候选实体排序方法、训练方法及相关装置
CN110162637B (zh) 信息图谱构建方法、装置及设备
CN111507285A (zh) 人脸属性识别方法、装置、计算机设备和存储介质
WO2022040972A1 (zh) 产品信息可视化处理方法、装置、计算机设备
CN114550053A (zh) 一种交通事故定责方法、装置、计算机设备及存储介质
CN111507137A (zh) 动作理解方法、装置、计算机设备及存储介质
CN114579882A (zh) 地址查询方法、获取地理编码预测模型的方法及对应装置
CN112711645B (zh) 一种位置点信息扩展方法、装置、存储介质和电子设备
CN114329004A (zh) 数字指纹生成、数据推送方法、装置和存储介质
CN111985616B (zh) 一种图像特征提取方法、图像检索方法、装置及设备
CN115358379B (zh) 神经网络处理、信息处理方法、装置和计算机设备
CN113780532B (zh) 语义分割网络的训练方法、装置、设备及存储介质
CN115438719A (zh) 数据处理方法、装置、服务器及存储介质
CN115758271A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112015937B (zh) 一种图片地理定位方法及系统
CN114003674A (zh) 双录地址确定方法、装置、设备及存储介质
CN114299295A (zh) 一种数据处理方法及相关装置
CN113674152A (zh) 图像处理方法、装置、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant