CN111381979A - 神经网络的开发验证方法、装置、系统及存储介质 - Google Patents

神经网络的开发验证方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN111381979A
CN111381979A CN201811641941.8A CN201811641941A CN111381979A CN 111381979 A CN111381979 A CN 111381979A CN 201811641941 A CN201811641941 A CN 201811641941A CN 111381979 A CN111381979 A CN 111381979A
Authority
CN
China
Prior art keywords
neural network
network layer
target neural
verification
message
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.)
Granted
Application number
CN201811641941.8A
Other languages
English (en)
Other versions
CN111381979B (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201811641941.8A priority Critical patent/CN111381979B/zh
Publication of CN111381979A publication Critical patent/CN111381979A/zh
Application granted granted Critical
Publication of CN111381979B publication Critical patent/CN111381979B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种神经网络的开发验证方法、装置、系统及存储介质,属于数据处理技术领域。所述方法应用于异构系统的主处理器中,该异构系统还包括异构硬件和共享内存,共享内存用于主处理器与异构硬件之间进行核间通信,该方法包括:向该异构硬件发送任务执行消息,该任务执行消息携带该异构硬件执行神经网络中目标神经网络层的运算任务时所需的执行数据;当获取到用于对该异构硬件进行验证的验证任务消息时,从该共享内存中获取该异构硬件发送的执行结果数据,基于执行结果数据对目标神经网络层进行验证。本发明解决了由于异构硬件无法自行验证运行结果以及无法存储运行结果导致无法对神经网络的开发进行验证的问题。

Description

神经网络的开发验证方法、装置、系统及存储介质
技术领域
本发明实施例涉及数据处理技术领域,特别涉及一种神经网络的开发验证方法、装置、系统及存储介质。
背景技术
目前,神经网络在诸如图像识别、语音识别、自然语言处理等领域得到广泛的应用,因此,神经网络的开发尤为重要。
通常情况下,神经网络的开发可以采用异构系统来实现,该异构系统一般包括主处理器和异构硬件,该主处理器和异构硬件之间可以通过串行总线互联。该主处理器具有调度、分配任务、接口通信等功能,譬如,将神经网络中计算密集型运算任务调度至异构硬件中,比如该计算密集型运算任务包括每个神经网络层的执行任务等。该异构硬件可以用于执行各类运算任务。
然而,在上述实现方式中,由于异构硬件无法自行验证运行结果,也无法存储运行结果,因此,如何对神经网络的开发进行验证成为本领域研究的热点。
发明内容
本发明实施例提供了一种神经网络的开发验证方法、装置、系统及存储介质,可以解决异构硬件无法自动对神经网络的开发进行验证的问题。所述技术方案如下:
第一方面,提供了一种神经网络的开发验证方法,应用于异构系统的主处理器中,所述异构系统还包括异构硬件,和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信,所述方法包括:
向所述异构硬件发送任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中目标神经网络层的运算任务时所需的执行数据;
当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,所述执行结果数据是由所述异构硬件执行完所述神经网络中的目标神经网络层对应的执行数据后确定的;
基于所述执行结果数据对所述目标神经网络层进行验证。
可选地,所述共享内存还用于存储消息队列,所述当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,包括:
当检测到所述消息队列中有所述验证任务消息到来时,从所述消息队列中读取所述验证任务消息,所述验证任务消息是由所述异构硬件执行完所述目标神经网络层的运算任务后发送至所述消息队列中的,所述验证任务消息携带所述目标神经网络层的层标识;
基于所述目标神经网络层的层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
可选地,所述当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,包括:
当接收到所述异构硬件向所述主处理器发送的所述验证任务消息时,从所述验证任务消息中获取携带的所述目标神经网络层的层标识;
基于所述层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
可选地,所述基于所述执行结果数据对所述目标神经网络层进行验证之后,还包括:
当对所述目标神经网络层验证完成时,向所述异构硬件发送验证完成消息,所述验证完成消息用于指示所述目标神经网络层的验证成功消息或验证失败消息。
可选地,所述基于所述执行结果数据对所述目标神经网络层进行验证,包括:
获取所述目标神经网络层对应的数据验证样本;
当所述目标神经网络层对应的数据验证样本与执行结果数据相同时,确定所述目标神经网络层验证通过。
第二方面,提供了一种神经网络的开发验证方法,应用于异构系统的异构硬件中,所述异构系统还包括主处理器和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信,所述方法包括:
接收所述主处理器发送的任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息,所述验证任务消息用于指示所述主处理器基于所述共享内存内接收的执行结果数据对所述目标神经网络层进行验证。
可选地,所述任务执行消息还携带所述神经网络包括的层数,所述共享内存还用于存储消息队列,所述基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送所述至共享内存中,并发送验证任务消息,包括:
令i=1;将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
若i小于所述层数,则令所述i=i+1,返回所述将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若i大于所述层数,则结束操作。
可选地,所述基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息,包括:
令j=1;将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
当接收到所述主处理器发送的对所述第j个神经网络层的验证成功消息时,若所述j小于所述层数,则令j=j+1,返回所述将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若j大于所述层数,则结束操作。
第三方面,提供了一种神经网络的开发验证异构系统,所述异构系统包括主处理器、异构硬件和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信:
所述主处理器,用于向所述异构硬件发送任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
所述异构硬件,用于接收所述主处理器发送的任务执行消息,基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息;
所述主处理器,用于当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,所述执行结果数据是由所述异构硬件执行完所述神经网络中的目标神经网络层对应的执行数据后确定的;基于所述执行结果数据对所述目标神经网络层进行验证。
第四方面,提供了一种神经网络的开发验证装置,配置于异构系统的主处理器中,所述异构系统还包括异构硬件和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信,所述装置包括:
发送模块,用于向所述异构硬件发送任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
获取模块,用于当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,所述执行结果数据是由所述异构硬件执行完所述神经网络中的目标神经网络层对应的执行数据后确定的;
验证模块,用于基于所述执行结果数据对所述目标神经网络层进行验证。
可选地,所述获取模块用于:
所述共享内存还用于存储消息队列,当检测到所述消息队列中有所述验证任务消息到来时,从所述消息队列中读取所述验证任务消息,所述验证任务消息是由所述异构硬件执行完所述目标神经网络层的运算任务后发送至所述消息队列中的,所述验证任务消息携带所述目标神经网络层的层标识;
基于所述目标神经网络层的层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
可选地,所述获取模块用于:
当接收到所述异构硬件向所述主处理器发送的所述验证任务消息时,从所述所述验证任务消息中获取携带的所述目标神经网络层的层标识;
基于所述层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
可选地,所述发送模块还用于:
当对所述目标神经网络层验证完成时,向所述异构硬件发送验证完成消息,所述验证完成消息用于指示所述目标神经网络层的验证成功消息或验证失败消息。
可选地,所述验证模块用于:
获取所述目标神经网络层对应的数据验证样本;
当所述目标神经网络层对应的数据验证样本与执行结果数据相同时,确定所述目标神经网络层验证通过。
第五方面,提供了一种神经网络的开发验证装置,配置于异构系统的异构硬件中,所述异构系统还包括主处理器和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信,所述装置包括:
接收模块,用于接收所述主处理器发送的任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
执行模块,用于基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息,所述验证任务消息用于指示所述主处理器基于所述共享内存内接收的执行结果数据对所述目标神经网络层进行验证。
可选地,所述执行模块用于:
所述任务执行消息还携带所述神经网络包括的层数,所述共享内存还用于存储消息队列,令i=1;将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
若i小于所述层数,则令所述i=i+1,返回所述将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若i大于所述层数,则结束操作。
可选地,所述执行模块用于:
令j=1;将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
当接收到所述主处理器发送的对所述第j个神经网络层的验证成功消息时,若所述j小于所述层数,则令j=j+1,返回所述将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若j大于所述层数,则结束操作。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的神经网络的开发验证方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第二方面所述的神经网络的开发验证方法。
第八方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的神经网络的开发验证方法。
第九方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面所述的神经网络的开发验证方法。
本发明实施例提供的技术方案带来的有益效果是:
在通过异构系统开发神经网络过程中,主处理器向异构硬件发送任务执行消息,该任务执行消息中携带异构硬件执行神经网络中目标神经网络层的运算任务时所需的执行数据。异构硬件基于任务执行消息中携带的执行数据执行目标神经网络层的运算任务,将执行运算任务后的确定的目标神经网络层对应的执行结果数据发送至共享内存中,并发送验证任务消息。当该主处理器获取到该验证任务消息时,基于共享内存中的执行结果数据对目标神经网络层进行验证,解决了由于异构硬件无法自行验证运行结果以及无法存储运行结果导致无法对神经网络的开发进行验证的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种神经网络的开发框架示意图;
图2是根据一示例性实施例示出的一种实施环境的框架示意图;
图3是根据一示例性实施例示出的一种神经网络的开发验证方法流程图;
图4是另根据一示例性实施例示出的一种神经网络的开发验证方法流程图;
图5是另根据一示例性实施例示出的一种神经网络的开发验证方法流程图;
图6是根据一示例性实施例示出的一种消息队列的示意图;
图7是另根据一示例性实施例示出的一种神经网络的开发验证方法流程图;
图8是根据另一示例性实施例示出的一种神经网络的开发验证方法流程图;
图9是另根据一示例性实施例示出的一种神经网络的开发验证方法流程图;
图10是另根据一示例性实施例示出的一种神经网络的开发验证方法流程图;
图11是根据一示例性实施例示出的一种神经网络的开发验证装置的结构示意图;
图12是根据另一示例性实施例示出的一种神经网络的开发验证装置的结构示意图;
图13是根据一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例提供的神经网络的开发验证方法进行详细介绍之前,先对本发明实施例涉及的名词、应用场景和实施环境进行简单介绍。
首先,对本发明实施例涉及的名词进行简单介绍。
神经网络:指人工神经网络,是机器学习和深度学习的基础,目前常用的神经网络包括CNN(Convolutional Neural Network,卷积神经网络)、RNN(Recurrent NeuralNetwork,递归神经网络)、DNN(Deep Neural Networks,深度神经网络)等。在实施中,可以通过端到端的样本训练使得神经网络具备某种算法的功能。
异构系统:指内部集成了不同指令集和体系架构的多个处理器核心的芯片平台,主要包括主处理器、异构硬件和共享内存。
异构硬件:集成有多个相同或不同类型的硬件,譬如,该硬件包括DSP(DigitalSignal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)等。
核间通信:两个处理器核心间实现的数据通信方式,一般可以使用共享内存的方式来实现。
中间结果:神经网络由多个神经网络层组成,中间结果是指其中某一个神经网络层的运算结果。
其次,对本发明实施例涉及的应用场景进行简单介绍。
如图1所示,在通过异构系统开发神经网络过程中,一般包括三个阶段:组件框架搭建、基础组件开发和组件联调验证。其中,组件框架搭建包括对输入的神经网络模型进行解析、配置神经网络模型的参数、组件初始化和对神经网络层进行任务调度等,一般由主处理器实现;基础组件开发包括对各个神经网络层的开发和测试,一般由异构硬件实现;另外,组件联调验证是指对每个神经网络层的执行能力进行验证。通常情况下,由于异构硬件无法自行验证运行结果,也无法存储运行结果,使得异构系统无法自动完成神经网络的开发验证。为此,本发明实施例提供了一种神经网络的开发验证方法,该方法由异构硬件将对每一个神经网络层的运行结果通过核间通信方式发送给主处理器,由主处理器来完成开发验证。其具体实现请参见如下所示的实施例。
接下来,对本发明实施例涉及的实施环境进行简单介绍。
本发明实施例提供的神经网络的开发验证方法应用于异构系统中,请参考图2,该图2是根据一示例性实施例示出的一种异构系统的架构示意图。该实施环境中包括主处理器210、至少一个异构硬件220和共享内存230。
其中,共享内存230与主处理器210可以为集成器件,或者共享内存230与主处理器210也可以为相互独立的器件。进一步地,该主处理器210可以与该共享内存230可以配置于同一个计算机设备中,该共享内存230可以由该主处理器210根据实际需求预先在计算机设备中分配,该共享内存230用于主处理器210与该至少一个异构硬件220之间进行核间通信。另外,该主处理器210与该至少一个异构硬件220之间可以通过串行总线互联。
另外,在实施中,该至少一个异构硬件220可以包括诸如DSP、FPGA之类的硬件,本发明实施例对此不做限定。
在介绍完本发明实施例涉及的应用场景和实施环境后,接下来将结合附图对本发明实施例提供的神经网络的开发验证方法进行详细介绍,该神经网络的开发验证方法可以应用于上述图2所述的实施环境中。
需要说明的是,由于在实施过程中主处理器和异构硬件之间可以采用异步通信方式(比如异构系统的内存资源充足的情况下),当然,也可以采用同步通信方式(比如异构系统的内存资源有限使得需要内存资源复用的情况下)。因此,接下来将结合附图3和附图8分别针对上述两种通信方式,对神经网络的开发验证方法进行详细介绍。
请参考图3,图3是根据一示例性实施例示出的一种神经网络的开发验证方法流程图,这里以主处理器和异构硬件之间采用异步通信方式为例进行介绍,该方法可以包括如下几个实现步骤:
步骤301:该主处理器向该异构硬件发送任务执行消息,该任务执行消息携带该异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据。
在神经网络开发过程中,主处理器获取输入的神经网络模型,并解析神经网络模型的参数。进一步地,为了提高开发效率,主处理器将计算量较大的任务分配到异构硬件中完成,譬如,将关于神经网络层的开发任务调度到异构硬件中执行,如图4所示。为此,主处理器向异构硬件发送任务执行消息,即该任务执行消息用于指示异构硬件执行对每个神经网络层的开发任务。
其中,该任务执行消息中携带的执行数据包括多组执行数据,每组执行数据与神经网络包括的每个神经网络层一一对应,即每组执行数据为异构硬件执行对应的神经网络层所需,比如该每组执行数据可以包括每个神经网络层的参数等。
譬如,假设该神经网络包括输入层、卷积层、池化层和输出层,则该任务执行消息中携带的执行数据包括四组执行数据,分别与上述四个神经网络层一一对应,比如与输入层对应的执行数据可以包括输入层的输入数据、输入层的参数等。
需要说明的是,在一些实施例中,上述任务执行消息除了包括执行数据外,还可以包括该神经网络的层数,以便于异构硬件获知所要执行的神经网络包括多少个神经网络层。
进一步地,该任务执行消息还可以包括该神经网络的拓扑信息,该拓扑信息可以用于指示异构硬件对每个神经网络层的执行顺序。
此外,该任务执行消息中还可以包括共享内存的地址信息,以便于后续异构硬件基于该地址信息向共享内存内存储数据。其中,该共享内存用于主处理器与该异构硬件之间进行核间通信,在一些实施例中,主处理器可以为异构硬件分配共享内存,该共享内存可以用于存储异构硬件的运行结果。进一步地,该主处理器记录每个神经网络层的层标识与地址信息之间的映射关系,其中,该层标识可以用于唯一标识一个神经网络层,该地址信息用于指示共享内存中数据的存储位置。
步骤302:该异构硬件接收主处理器发送的任务执行消息,基于该神经网络中的目标神经网络层所需的执行数据,执行该目标神经网络层的运算任务,将执行后得到的执行结果数据发送至共享内存中,并发送验证任务消息,该验证任务消息用于指示主处理器基于共享内存内接收的执行结果数据对目标神经网络模型进行验证。
异构硬件接收到主处理器发送的任务执行消息后,从该任务执行消息中获取所携带的执行数据,之后基于该执行数据顺序执行每个神经网络层的运算任务,并将执行后得到的该每个神经网络层的执行结果数据发送至共享内存中。另外,异构硬件每执行完一个神经网络层的运算任务后还向共享内存发送验证任务消息,以便于主处理器根据该验证任务消息从共享内存读取执行结果数据。其中,该共享内存还可以用于存储消息队列,该消息队列用于存储异构硬件反馈的验证任务消息。在该种情况下,该步骤302的实现过程可以包括:
令i=1;将该神经网络的第i个神经网络层确定为该目标神经网络层,基于该目标神经网络层所需的执行数据,执行该目标神经网络层的运算任务,将该目标神经网络层的执行结果数据发送至该共享内存中,向该共享内存的消息队列中发送该验证任务消息,该验证任务消息携带该目标神经网络层的层标识;若i小于该层数,则令该i=i+1,返回该将该神经网络的第i个神经网络层确定为该目标神经网络层,基于该目标神经网络层所需的执行数据,执行该目标神经网络层的运算任务,将该目标神经网络层的执行结果数据发送至该共享内存中,向该共享内存的消息队列中发送该验证任务消息,该验证任务消息携带该目标神经网络层的层标识的操作;若i大于该层数,则结束操作。
在该种实现方式中,主处理器和异构硬件之间独立执行各自的操作。请参考图5,对于异构硬件来说,当接收到主处理器发送的任务执行消息后,从网络计算任务中获取一神经网络层任务并执行。在当前神经网络层计算任务执行完成后,封装当前层信息发送到共享内存中,该当前层信息可以包括执行结果数据,还包括当前层输入输出地址、参数信息等。异构硬件判断网络任务是否执行完成,如果未完成继续执行下一个神经网络层的运算任务,直到执行完成。
也就是说,异构硬件顺序执行每个神经网络层的运算任务,并且,每执行完一个神经网络层的运算任务后,确定该神经网络层对应的执行结果数据,将该执行结果数据发送至主处理器分配的共享内存中,并且,异构硬件向共享内存的消息队列中发送验证任务消息,该验证任务消息用于通知主处理器当前的执行状态,其中携带了当前执行完的神经网络层的层标识。
譬如,该第i个神经网络层为输入层,该异构硬件基于输入层对应的执行数据执行输入层的运算任务,得到输入层对应的执行结果数据,异构硬件将得到的执行结果数据发送给共享内存中,并向共享内存的消息队列发送验证任务消息,此时,该验证任务消息携带该输入层的层标识。之后,异构硬件判断是否执行完所有神经网络层的运算任务,即判断i是否小于神经网络包括的层数。当i小于该层数时,说明没有执行完所有神经网络层的运算任务,此时异构硬件继续基于输入层的下一个神经网络层对应的执行数据,执行输入层的下一个神经网络层的运算任务,并将执行后确定的执行结果数据发送至共享内存中,以及向共享内存的消息队列发送验证任务消息,此时验证任务消息携带该下一个神经网络层的层标识。依次类推,直到异构硬件检测到执行完神经网络的最后一个神经网络层时,结束执行操作。
需要说明的是,该执行结果数据还可以包括目标神经网络层的输入数据和/或参数。
步骤303:该主处理器当获取到用于对异构硬件进行验证的验证任务消息时,从该共享内存中获取该异构硬件发送的执行结果数据,该执行结果数据是由该异构硬件执行完该神经网络中的目标神经网络层对应的执行数据后确定的。
在一些实施例中,该步骤303的具体实现可以包括:当检测到该消息队列中有验证任务消息到来时,从该消息队列中读取该验证任务消息,该验证任务消息是由该异构硬件执行完目标神经网络层的运算任务后发送至该消息队列中的,该验证任务消息携带该目标神经网络层对应的层标识;基于该目标神经网络层的层标识,从该共享内存中获取该目标神经网络层对应的执行结果数据。
当检测到消息队列中有验证任务消息到来时,说明异构硬件已经执行完一个神经网络层的运算任务,并将执行后确定的执行结果数据发送至共享内存中,此时该主处理器从消息队列中获取验证任务消息,解析该验证任务消息,得到该验证任务消息所携带的层标识,之后,确定该层标识对应的地址信息,并基于该地址信息从共享内存中获取该层标识对应的执行结果数据。
请参考图6,该图6是根据一示例性实施例示出的主处理器、异构硬件及共享内存之间的数据流关系,该过程主要涉及三个部分,主处理器和异构硬件以及实现两个核心通信的共享内存。主处理器等待共享内存中消息队列消息,一旦接收到消息从消息队列中提取并解析消息信息,获取目标神经网络层的层标识后,从共享内存中读取目标神经网络层的中间结果。另外,异构硬件2在神经网络中某一层执行完成后,将执行结果数据存储在该共享内存中,并发送验证任务消息到消息队列,通知主处理器网络执行状态。
步骤304:基于该执行结果数据对该目标神经网络层进行验证。
主处理器获取到执行结果数据后,即可基于该执行结果数据对该目标神经网络层进行验证。请参考图4,也就是说,主处理器将任务调度到异构硬件后,查询消息队列中是否有异构硬件发送的验证任务消息,如果消息队列中没有验证任务消息,则继续等待。如果查询到消息队列中有验证任务消息,则从消息队列中取出到来的该验证任务消息,并解析出层标识等信息,根据该层标识从共享内存中读取相应的网络层的执行结果数据,对该网络层进行验证。之后,判断网络验证是否完成,如果完成则执行结束,否则返回继续查询消息队列中是否有新的消息到来。
在一种可能的实现方式中,基于该执行结果数据对该目标神经网络层进行验证的具体实现可以包括:获取该目标神经网络层对应的数据验证样本,当该目标神经网络层对应的数据验证样本与执行结果数据相同时,确定该目标神经网络层验证通过。
其中,该数据验证样本可以是由PC端验证工程预先生成的,是在与异构系统运行相同神经网络模型的参数和相同输入数据情况下存储的目标神经网络层的中间结果。
在一种可能的实现方式中,主处理器可以以二进制对比方式来判断该目标神经网络层对应的数据验证样本与执行结果数据是否相同。当该目标神经网络层对应的数据验证样本与执行结果数据相同时,说明该目标神经网络层的运算能力符合预期要求,因此,确定验证通过。进一步地,该主处理器返回验证通过消息。
当然,如果目标神经网络层对应的数据验证样本与执行结果数据不相同的话,则确定该目标神经网络层验证未通过,在该种情况下,该主处理器可以在本地记录验证未通过的神经网络层的层标识和执行结果数据,以便于后续定位该神经网络层。进一步地,该主处理器返回验证未通过消息。
主处理器验证完一个神经网络层后,从消息队列中获取下一条验证任务消息,并按照上述过程进行操作,直到该消息队列中不再有验证任务消息为止。
请参考图7,对于主处理器来说,主处理器解析出验证任务消息携带的层标识后,可以根据该层标识读取该目标神经网络层对应的对比数据,将该目标神经网络层的执行结果数据与该对比数据进行一致性验证,数据验证失败,返回该层数据验证失败消息;数据验证成功,返回该层数据验证成功消息;判断网络是否执行完成,未完成则继续查询消息队列消息,执行完成则结束。
在本发明实施例中,在通过异构系统开发神经网络过程中,主处理器向异构硬件发送任务执行消息,该任务执行消息中携带异构硬件执行神经网络中目标神经网络层的运算任务时所需的执行数据。异构硬件基于任务执行消息中携带的执行数据执行目标神经网络层的运算任务,将执行运算任务后的确定的目标神经网络层对应的执行结果数据发送至共享内存中,并发送验证任务消息。当该主处理器获取到该验证任务消息时,基于共享内存中的执行结果数据对目标神经网络层进行验证,解决了由于异构硬件无法自行验证运行结果以及无法存储运行结果导致无法对神经网络的开发进行验证的问题。
请参考图8,图8是根据另一示例性实施例示出的一种神经网络的开发验证方法流程图,这里以主处理器和异构硬件之间采用同步通信方式为例进行介绍,该方法可以包括如下几个实现步骤:
步骤801:主处理器向该异构硬件发送任务执行消息,该任务执行消息携带该异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据。
在神经网络开发过程中,主处理器获取输入的神经网络模型,并解析神经网络模型的参数。进一步地,为了提高开发效率,主处理器将计算量较大的任务分配到异构硬件中完成。譬如,将关于神经网络层的开发任务调度到异构硬件中执行,为此,主处理器向异构硬件发送任务执行消息,即该任务执行消息用于指示异构硬件执行对每个神经网络层的开发任务。
其中,该任务执行消息中携带的执行数据包括多组执行数据,每组执行数据与神经网络包括的每个神经网络层一一对应,即每组执行数据为异构硬件执行对应的神经网络层所需,比如该每组执行数据可以包括每个神经网络层的参数等。
譬如,假设该神经网络包括输入层、卷积层、池化层和输出层,则该任务执行消息中携带的执行数据包括四组执行数据,分别与上述四个神经网络层一一对应,比如与输入层对应的执行数据可以包括输入层的输入数据、输入层的参数等。
需要说明的是,在一些实施例中,上述任务执行消息除了包括执行数据外,还可以包括该神经网络的层数,以便于异构硬件获知所要执行的神经网络包括多少个神经网络层。
进一步地,该任务执行消息还可以包括该神经网络的拓扑信息,该拓扑信息可以用于指示异构硬件对每个神经网络层的执行顺序。
此外,该任务执行消息中还可以包括共享内存的地址信息,以便于后续异构硬件基于该地址信息向共享内存内存储数据。其中,该共享内存用于主处理器与该异构硬件之间进行核间通信,在一些实施例中,主处理器可以为异构硬件分配共享内存,该共享内存可以用于存储异构硬件的运行结果。进一步地,该主处理器记录每个神经网络层的层标识与地址信息之间的映射关系,其中,该层标识可以用于唯一标识一个神经网络层,该地址信息用于指示共享内存中数据的存储位置。
步骤802:令j=1;将该神经网络的第j个神经网络层确定为该目标神经网络层,基于该目标神经网络层所需的执行数据,执行该目标神经网络层的运算任务,将该目标神经网络层的执行结果数据发送至该共享内存中,向该主处理器发送该验证任务消息,该验证任务消息携带该目标神经网络层的层标识。
在本实施例中,主处理器和异构硬件之间的执行操作是相互同步的,异构硬件从第一个神经网络层开始,顺序执行每个神经网络层的运算任务,并且,每执行完一个神经网络层的运算任务后,确定该神经网络层对应的执行结果数据,将该执行结果数据发送至主处理器分配的共享内存中,并且,异构硬件向该主处理器发送验证任务消息,该验证任务消息用于通知主处理器当前的执行状态,其中携带了当前执行完的神经网络层的层标识。之后,异构硬件等待主处理器的验证成功消息。
譬如,该第j个神经网络层为输入层,该异构硬件基于输入层对应的执行数据执行输入层的运算任务,得到输入层对应的执行结果数据,异构硬件将得到的执行结果数据发送给共享内存中,并向该主处理器发送验证任务消息,此时,该验证任务消息携带该输入层的层标识。
步骤803:当主处理器接收到该异构硬件向该主处理器发送的验证任务消息时,从该验证任务消息中获取携带的该目标神经网络层的层标识。
主处理器接收到异构硬件发送的验证任务消息后,对该验证任务消息进行解析,从中获取所携带层标识。
步骤804:主处理器基于该层标识,从该共享内存中获取该目标神经网络层的执行结果数据。
在一些实施例中,该主处理器基于该层标识,从层标识与地址信息之间的对应关系中确定对应的地址信息,之后,该主处理器基于所确定的地址信息,从共享内存中获取该层标识对应的目标神经网络层的执行结果数据。
步骤805:主处理器基于该执行结果数据对该目标神经网络层进行验证。
在一种可能的实现方式中,该主处理器基于获取的执行结果数据对该目标神经网络层进行验证的具体实现可以包括:获取该目标神经网络层对应的数据验证样本,当该目标神经网络层对应的数据验证样本与执行结果数据相同时,确定该目标神经网络层验证通过。
其中,该数据验证样本可以是由PC端验证工程预先生成的,是在与异构系统运行相同神经网络模型的参数和相同输入数据情况下存储的目标神经网络层的中间结果。
在一种可能的实现方式中,主处理器可以以二进制对比方式来判断目标神经网络层对应的数据验证样本与执行结果数据是否相同。当该目标神经网络层对应的数据验证样本与执行结果数据相同时,说明该目标神经网络层的运算能力符合预期要求,因此,确定验证通过。
当然,如果该目标神经网络层对应的数据验证样本与执行结果数据不相同的话,则确定该目标神经网络层验证未通过,在该种情况下,该主处理器可以在本地记录验证未通过的神经网络层的层标识和执行结果数据,以便于后续定位该神经网络层。
步骤806:当主处理器对该目标神经网络层验证完成时,向该异构硬件发送验证完成消息,该验证完成消息用于指示该目标神经网络层的验证成功消息或验证失败消息。
主处理器对该目标神经网络层验证完成后,需要通知异构硬件继续执行下一个神经网络层的运算任务,为此,向该异构硬件发送验证完成消息。
请参考图9,对于主处理器来说,将任务调度到异构硬件后,等待异构硬件发送的验证任务消息。如果未接收到该验证任务消息,则继续等待。一旦接收到该验证任务消息,则解析出携带的层标识,根据该层标识从共享内存中读取相应的网络层的执行结果数据,对该网络层进行验证。之后,向异构硬件发送验证完成消息。数据验证失败,返回该层数据验证失败消息;数据验证成功,返回该层数据验证成功消息;主处理器判断网络是否执行完成,未完成则继续等待异构硬件发送的验证任务消息,执行完成则结束。
步骤807:当异构硬件接收到该主处理器发送的对该目标神经网络层的验证成功消息时,若该j小于该层数,则令j=j+1,返回将该神经网络的第j个神经网络层确定为该目标神经网络层,基于该目标神经网络层所需的执行数据,执行该目标神经网络层的运算任务,将该目标神经网络层的执行结果数据发送至该共享内存中,向该主处理器发送该验证任务消息,该验证任务消息携带该目标神经网络层的层标识的操作。
异构硬件接收到主处理器发送的对该第j个神经网络层的验证成功消息时,判断是否执行完所有神经网络层的运算任务,即判断j是否小于神经网络包括的层数。当j小于该层数时,说明没有执行完所有神经网络层的运算任务,此时异构硬件继续基于下一个神经网络层对应的执行数据,执行下一个神经网络层的运算任务,并将执行后确定的执行结果数据发送至共享内存中,向主处理器发送验证任务消息,此时验证任务消息携带该下一个神经网络层的层标识。
相应地,主处理器接收到验证任务消息后,继续重复执行上述步骤803至步骤806,直到异构硬件检测到执行完神经网络的最后一个神经网络层时,结束所有操作。
请参考图10,对于异构硬件来说,接收到主处理器调度的计算任务后,执行目标神经网络模型的运算任务,并将该目标神经网络层的执行结果数据发送至共享内存,以及向主处理器发送验证任务消息。异构硬件判断神经网络是否执行完成,如果完成则结束执行操作,反之,如果没有完成,则等待主处理器的验证完成消息,如果接收到该验证完成消息,则返回继续执行下一个神经网络层的运算任务,直到执行完神经网络的所有层后结束;如果未接收到该验证完成消息,则继续等待。
在本发明实施例中,在通过异构系统开发神经网络过程中,主处理器向异构硬件发送任务执行消息,该任务执行消息中携带异构硬件执行神经网络中目标神经网络层的运算任务时所需的执行数据。异构硬件基于任务执行消息中携带的执行数据执行目标神经网络层的运算任务,将执行运算任务后的确定的目标神经网络层对应的执行结果数据发送至共享内存中,并发送验证任务消息。当该主处理器获取到该验证任务消息时,基于共享内存中的执行结果数据对目标神经网络层进行验证,解决了由于异构硬件无法自行验证运行结果以及无法存储运行结果导致无法对神经网络的开发进行验证的问题。
图11是根据一示例性实施例示出的一种神经网络的开发验证装置的结构示意图,该神经网络的开发验证装置可以由软件、硬件或者两者的结合实现。该神经网络的开发验证装置可以包括:
发送模块1110,用于向所述异构硬件发送任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
获取模块1120,用于当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,所述执行结果数据是由所述异构硬件执行完所述神经网络中的目标神经网络层对应的执行数据后确定的;
验证模块1130,用于基于所述执行结果数据对所述目标神经网络层进行验证。
可选地,所述获取模块1120用于:
所述共享内存还用于存储消息队列,当检测到所述消息队列中有所述验证任务消息到来时,从所述消息队列中读取所述验证任务消息,所述验证任务消息是由所述异构硬件执行完所述目标神经网络层的运算任务后发送至所述消息队列中的,所述验证任务消息携带所述目标神经网络层的层标识;
基于所述目标神经网络层的层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
可选地,所述获取模块1120用于:
当接收到所述异构硬件向所述主处理器发送的所述验证任务消息时,从所述所述验证任务消息中获取携带的所述目标神经网络层的层标识;
基于所述层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
可选地,所述发送模块1110还用于:
当对所述目标神经网络层验证完成时,向所述异构硬件发送验证完成消息,所述验证完成消息用于指示所述目标神经网络层的验证成功消息或验证失败消息。
可选地,所述验证模块1130用于:
获取所述目标神经网络层对应的数据验证样本;
当所述目标神经网络层对应的数据验证样本与执行结果数据相同时,确定所述目标神经网络层验证通过。
在本发明实施例中,在通过异构系统开发神经网络过程中,主处理器向异构硬件发送任务执行消息,该任务执行消息中携带异构硬件执行神经网络中目标神经网络层的运算任务时所需的执行数据。异构硬件基于任务执行消息中携带的执行数据执行目标神经网络层的运算任务,将执行运算任务后的确定的目标神经网络层对应的执行结果数据发送至共享内存中,并发送验证任务消息。当该主处理器获取到该验证任务消息时,基于共享内存中的执行结果数据对目标神经网络层进行验证,解决了由于异构硬件无法自行验证运行结果以及无法存储运行结果导致无法对神经网络的开发进行验证的问题。
图12是根据一示例性实施例示出的一种神经网络的开发验证装置的结构示意图,该神经网络的开发验证装置可以由软件、硬件或者两者的结合实现。该神经网络的开发验证装置可以包括:
接收模块1210,用于接收所述主处理器发送的任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
执行模块1220,用于基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息,所述验证任务消息用于指示所述主处理器基于所述共享内存内接收的执行结果数据对所述目标神经网络层进行验证。
可选地,所述执行模块1220用于:
所述任务执行消息还携带所述神经网络包括的层数,所述共享内存还用于存储消息队列,令i=1;将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
若i小于所述层数,则令所述i=i+1,返回所述将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若i大于所述层数,则结束操作。
可选地,所述执行模块1220用于:
令j=1;将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
当接收到所述主处理器发送的对所述第j个神经网络层的验证成功消息时,若所述j小于所述层数,则令j=j+1,返回所述将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若j大于所述层数,则结束操作。
在本发明实施例中,在通过异构系统开发神经网络过程中,主处理器向异构硬件发送任务执行消息,该任务执行消息中携带异构硬件执行神经网络中目标神经网络层的运算任务时所需的执行数据。异构硬件基于任务执行消息中携带的执行数据执行目标神经网络层的运算任务,将执行运算任务后的确定的目标神经网络层对应的执行结果数据发送至共享内存中,并发送验证任务消息。当该主处理器获取到该验证任务消息时,基于共享内存中的执行结果数据对目标神经网络层进行验证,解决了由于异构硬件无法自行验证运行结果以及无法存储运行结果导致无法对神经网络的开发进行验证的问题。
需要说明的是:上述实施例提供的神经网络的开发验证装置在实现神经网络的开发验证方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的神经网络的开发验证装置与神经网络的开发验证方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图13示出了本发明一个示例性实施例提供的计算机设备1300的结构框图。该计算机设备1300可以是:笔记本电脑或台式电脑。计算机设备1300还可能被称为用户设备、便携式计算机设备、膝上型计算机设备、台式计算机设备等其他名称。
通常,计算机设备1300包括有:处理器1301和存储器1302。
处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行以实现本申请中方法实施例提供的神经网络的开发验证方法。
在一些实施例中,计算机设备1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、触摸显示屏1305、摄像头1306、音频电路1307、定位组件1308和电源1309中的至少一种。
外围设备接口1303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和外围设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1304包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1304可以通过至少一种无线通信协议来与其它计算机设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1305是触摸显示屏时,显示屏1305还具有采集在显示屏1305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1301进行处理。此时,显示屏1305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1305可以为一个,设置计算机设备1300的前面板;在另一些实施例中,显示屏1305可以为至少两个,分别设置在计算机设备1300的不同表面或呈折叠设计;在再一些实施例中,显示屏1305可以是柔性显示屏,设置在计算机设备1300的弯曲表面上或折叠面上。甚至,显示屏1305还可以设置成非矩形的不规则图形,也即异形屏。显示屏1305可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1306用于采集图像或视频。可选地,摄像头组件1306包括前置摄像头和后置摄像头。通常,前置摄像头设置在计算机设备的前面板,后置摄像头设置在计算机设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1306还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1307可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1301进行处理,或者输入至射频电路1304以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1300的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1301或射频电路1304的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1307还可以包括耳机插孔。
定位组件1308用于定位计算机设备1300的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1308可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1309用于为计算机设备1300中的各个组件进行供电。电源1309可以是交流电、直流电、一次性电池或可充电电池。当电源1309包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感器1314、光学传感器1315以及接近传感器1316。
加速度传感器1311可以检测以计算机设备1300建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1311可以用于检测重力加速度在三个坐标轴上的分量。处理器1301可以根据加速度传感器1311采集的重力加速度信号,控制触摸显示屏1305以横向视图或纵向视图进行用户界面的显示。加速度传感器1311还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1312可以检测计算机设备1300的机体方向及转动角度,陀螺仪传感器1312可以与加速度传感器1311协同采集用户对计算机设备1300的3D动作。处理器1301根据陀螺仪传感器1312采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1313可以设置在计算机设备1300的侧边框和/或触摸显示屏1305的下层。当压力传感器1313设置在计算机设备1300的侧边框时,可以检测用户对计算机设备1300的握持信号,由处理器1301根据压力传感器1313采集的握持信号进行左右手识别或快捷操作。当压力传感器1313设置在触摸显示屏1305的下层时,由处理器1301根据用户对触摸显示屏1305的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1314用于采集用户的指纹,由处理器1301根据指纹传感器1314采集到的指纹识别用户的身份,或者,由指纹传感器1314根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1301授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1314可以被设置计算机设备1300的正面、背面或侧面。当计算机设备1300上设置有物理按键或厂商Logo时,指纹传感器1314可以与物理按键或厂商Logo集成在一起。
光学传感器1315用于采集环境光强度。在一个实施例中,处理器1301可以根据光学传感器1315采集的环境光强度,控制触摸显示屏1305的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1305的显示亮度;当环境光强度较低时,调低触摸显示屏1305的显示亮度。在另一个实施例中,处理器1301还可以根据光学传感器1315采集的环境光强度,动态调整摄像头组件1306的拍摄参数。
接近传感器1316,也称距离传感器,通常设置在计算机设备1300的前面板。接近传感器1316用于采集用户与计算机设备1300的正面之间的距离。在一个实施例中,当接近传感器1316检测到用户与计算机设备1300的正面之间的距离逐渐变小时,由处理器1301控制触摸显示屏1305从亮屏状态切换为息屏状态;当接近传感器1316检测到用户与计算机设备1300的正面之间的距离逐渐变大时,由处理器1301控制触摸显示屏1305从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图13中示出的结构并不构成对计算机设备1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动计算机设备的处理器执行时,使得移动计算机设备能够执行上述实施例提供的神经网络的开发验证方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所示实施例提供的神经网络的开发验证方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种神经网络的开发验证方法,其特征在于,应用于异构系统的主处理器中,所述异构系统还包括异构硬件和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信,所述方法包括:
向所述异构硬件发送任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中目标神经网络层的运算任务时所需的执行数据;
当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,所述执行结果数据是由所述异构硬件执行完所述神经网络中的目标神经网络层对应的执行数据后确定的;
基于所述执行结果数据对所述目标神经网络层进行验证。
2.如权利要求1所述的方法,其特征在于,所述共享内存还用于存储消息队列,所述当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,包括:
当检测到所述消息队列中有所述验证任务消息到来时,从所述消息队列中读取所述验证任务消息,所述验证任务消息是由所述异构硬件执行完所述目标神经网络层的运算任务后发送至所述消息队列中的,所述验证任务消息携带所述目标神经网络层的层标识;
基于所述目标神经网络层的层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
3.如权利要求1所述的方法,其特征在于,
所述当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,包括:
当接收到所述异构硬件向所述主处理器发送的所述验证任务消息时,从所述验证任务消息中获取携带的所述目标神经网络层的层标识;
基于所述层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
4.如权利要求3所述的方法,其特征在于,所述基于所述执行结果数据对所述目标神经网络层进行验证之后,还包括:
当对所述目标神经网络层验证完成时,向所述异构硬件发送验证完成消息,所述验证完成消息用于指示所述目标神经网络层的验证成功消息或验证失败消息。
5.如权利要求1-4任一项所述的方法,其特征在于,所述基于所述执行结果数据对所述目标神经网络层进行验证,包括:
获取所述目标神经网络层对应的数据验证样本;
当所述目标神经网络层对应的数据验证样本与执行结果数据相同时,确定所述目标神经网络层验证通过。
6.一种神经网络的开发验证方法,其特征在于,应用于异构系统的异构硬件中,所述异构系统还包括主处理器和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信,所述方法包括:
接收所述主处理器发送的任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息,所述验证任务消息用于指示所述主处理器基于所述共享内存内接收的执行结果数据对所述目标神经网络层进行验证。
7.如权利要求6所述的方法,其特征在于,所述任务执行消息还携带所述神经网络包括的层数,所述共享内存还用于存储消息队列,所述基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送所述至共享内存中,并发送验证任务消息,包括:
令i=1;将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
若i小于所述层数,则令所述i=i+1,返回所述将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若i大于所述层数,则结束操作。
8.如权利要求6所述的方法,其特征在于,所述基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息,包括:
令j=1;将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
当接收到所述主处理器发送的对所述第j个神经网络层的验证成功消息时,若所述j小于所述层数,则令j=j+1,返回所述将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若j大于所述层数,则结束操作。
9.一种神经网络的开发验证异构系统,其特征在于,所述异构系统包括主处理器、异构硬件和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信:
所述主处理器,用于向所述异构硬件发送任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
所述异构硬件,用于接收所述主处理器发送的任务执行消息,基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息;
所述主处理器,用于当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,所述执行结果数据是由所述异构硬件执行完所述神经网络中的目标神经网络层对应的执行数据后确定的;基于所述执行结果数据对所述目标神经网络层进行验证。
10.一种神经网络的开发验证装置,其特征在于,配置于异构系统的主处理器中,所述异构系统还包括异构硬件和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信,所述装置包括:
发送模块,用于向所述异构硬件发送任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
获取模块,用于当获取到用于对所述异构硬件进行验证的验证任务消息时,从所述共享内存中获取所述异构硬件发送的执行结果数据,所述执行结果数据是由所述异构硬件执行完所述神经网络中的目标神经网络层对应的执行数据后确定的;
验证模块,用于基于所述执行结果数据对所述目标神经网络层进行验证。
11.如权利要求10所述的装置,其特征在于,所述获取模块用于:
所述共享内存还用于存储消息队列,当检测到所述消息队列中有所述验证任务消息到来时,从所述消息队列中读取所述验证任务消息,所述验证任务消息是由所述异构硬件执行完所述目标神经网络层的运算任务后发送至所述消息队列中的,所述验证任务消息携带所述目标神经网络层的层标识;
基于所述目标神经网络层的层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
12.如权利要求10所述的装置,其特征在于,所述获取模块用于:
当接收到所述异构硬件向所述主处理器发送的所述验证任务消息时,从所述所述验证任务消息中获取携带的所述目标神经网络层的层标识;
基于所述层标识,从所述共享内存中获取所述目标神经网络层对应的执行结果数据。
13.如权利要求12所述的装置,其特征在于,所述发送模块还用于:
当对所述目标神经网络层验证完成时,向所述异构硬件发送验证完成消息,所述验证完成消息用于指示所述目标神经网络层的验证成功消息息或验证失败消息。
14.如权利要求10-13中的任一项所述的装置,其特征在于,所述验证模块用于:
获取所述目标神经网络层对应的数据验证样本;
当所述目标神经网络层对应的数据验证样本与执行结果数据相同时,确定所述目标神经网络层验证通过。
15.一种神经网络的开发验证装置,其特征在于,配置于异构系统的异构硬件中,所述异构系统还包括主处理器和共享内存,所述共享内存与所述主处理器为集成器件,或者所述共享内存与所述主处理器为相互独立的器件,所述共享内存用于所述主处理器与所述异构硬件之间进行核间通信,所述装置包括:
接收模块,用于接收所述主处理器发送的任务执行消息,所述任务执行消息携带所述异构硬件执行神经网络中的目标神经网络层的运算任务时所需的执行数据;
执行模块,用于基于所述神经网络中的目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将执行后得到的执行结果数据发送至所述共享内存中,并发送验证任务消息,所述验证任务消息用于指示所述主处理器基于所述共享内存内接收的执行结果数据对所述目标神经网络层进行验证。
16.如权利要求15所述的装置,其特征在于,所述执行模块用于:
所述任务执行消息还携带所述神经网络包括的层数,所述共享内存还用于存储消息队列,令i=1;将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
若i小于所述层数,则令所述i=i+1,返回所述将所述神经网络的第i个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述共享内存的消息队列中发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若i大于所述层数,则结束操作。
17.如权利要求15所述的装置,其特征在于,所述执行模块用于:
令j=1;将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识;
当接收到所述主处理器发送的对所述第j个神经网络层的验证成功消息时,若所述j小于所述层数,则令j=j+1,返回所述将所述神经网络的第j个神经网络层确定为所述目标神经网络层,基于所述目标神经网络层所需的执行数据,执行所述目标神经网络层的运算任务,将所述目标神经网络层的执行结果数据发送至所述共享内存中,向所述主处理器发送所述验证任务消息,所述验证任务消息携带所述目标神经网络层的层标识的操作;若j大于所述层数,则结束操作。
18.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-5所述的任一项方法的步骤。
19.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求6-8所述的任一项方法的步骤。
CN201811641941.8A 2018-12-29 2018-12-29 神经网络的开发验证方法、装置、系统及存储介质 Active CN111381979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811641941.8A CN111381979B (zh) 2018-12-29 2018-12-29 神经网络的开发验证方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811641941.8A CN111381979B (zh) 2018-12-29 2018-12-29 神经网络的开发验证方法、装置、系统及存储介质

Publications (2)

Publication Number Publication Date
CN111381979A true CN111381979A (zh) 2020-07-07
CN111381979B CN111381979B (zh) 2023-05-23

Family

ID=71218379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811641941.8A Active CN111381979B (zh) 2018-12-29 2018-12-29 神经网络的开发验证方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN111381979B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945165A (zh) * 2012-10-31 2013-02-27 中国运载火箭技术研究院 虚拟试验支撑平台
CN103150264A (zh) * 2013-01-18 2013-06-12 浪潮电子信息产业股份有限公司 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法
CN106354015A (zh) * 2016-10-27 2017-01-25 福州大学 对角递归神经网络控制系统的远程监控与在线调试方法
CN107016175A (zh) * 2017-03-23 2017-08-04 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
US20180322387A1 (en) * 2017-05-05 2018-11-08 Intel Corporation Hardware implemented point to point communication primitives for machine learning
CN108805798A (zh) * 2017-05-05 2018-11-13 英特尔公司 用于深度学习框架的细粒度计算通信执行
CN109063752A (zh) * 2018-07-17 2018-12-21 华北水利水电大学 基于神经网络的多源高维多尺度实时数据流的分拣方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945165A (zh) * 2012-10-31 2013-02-27 中国运载火箭技术研究院 虚拟试验支撑平台
CN103150264A (zh) * 2013-01-18 2013-06-12 浪潮电子信息产业股份有限公司 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法
CN106354015A (zh) * 2016-10-27 2017-01-25 福州大学 对角递归神经网络控制系统的远程监控与在线调试方法
CN107016175A (zh) * 2017-03-23 2017-08-04 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
US20180322387A1 (en) * 2017-05-05 2018-11-08 Intel Corporation Hardware implemented point to point communication primitives for machine learning
CN108805798A (zh) * 2017-05-05 2018-11-13 英特尔公司 用于深度学习框架的细粒度计算通信执行
CN109063752A (zh) * 2018-07-17 2018-12-21 华北水利水电大学 基于神经网络的多源高维多尺度实时数据流的分拣方法

Also Published As

Publication number Publication date
CN111381979B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN108304265B (zh) 内存管理方法、装置及存储介质
CN110841285B (zh) 界面元素的显示方法、装置、计算机设备及存储介质
CN110659127A (zh) 一种处理任务的方法、装置及系统
CN108132790B (zh) 检测无用代码的方法、装置及计算机存储介质
CN113064823B (zh) 汽车的零部件功能测试方法、装置及计算机存储介质
CN108920606B (zh) 地图数据处理方法、装置、终端设备及存储介质
CN113190362B (zh) 服务调用方法、装置、计算机设备及存储介质
CN110673944B (zh) 执行任务的方法和装置
CN111858382A (zh) 应用程序测试方法、装置、服务器、系统及存储介质
CN111159604A (zh) 图片资源加载方法及装置
CN111400002B (zh) 应用进程与处理器核绑定方法及终端
CN110784370B (zh) 设备测试的方法、装置、电子设备及介质
CN110290191B (zh) 资源转移结果处理方法、装置、服务器、终端及存储介质
CN107943484B (zh) 执行业务功能的方法和装置
CN111813322A (zh) 存储池的创建方法、装置、设备及存储介质
CN112612539A (zh) 数据模型卸载方法、装置、电子设备及存储介质
CN113469360A (zh) 推理方法及装置
CN112181915A (zh) 执行业务的方法、装置、终端和存储介质
CN112905328B (zh) 任务处理方法、装置及计算机可读存储介质
CN113935427A (zh) 训练任务的执行方法、装置、电子设备及存储介质
CN110851435B (zh) 一种存储数据的方法及装置
CN113843814A (zh) 机械臂设备的控制系统、方法、装置和存储介质
CN111381979B (zh) 神经网络的开发验证方法、装置、系统及存储介质
CN111914985B (zh) 深度学习网络模型的配置方法、装置及存储介质
CN113448692A (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