CN109558937A - 神经网络系统和神经网络系统的操作方法 - Google Patents

神经网络系统和神经网络系统的操作方法 Download PDF

Info

Publication number
CN109558937A
CN109558937A CN201811132770.6A CN201811132770A CN109558937A CN 109558937 A CN109558937 A CN 109558937A CN 201811132770 A CN201811132770 A CN 201811132770A CN 109558937 A CN109558937 A CN 109558937A
Authority
CN
China
Prior art keywords
neural network
input
network system
network model
calculating
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
CN201811132770.6A
Other languages
English (en)
Other versions
CN109558937B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109558937A publication Critical patent/CN109558937A/zh
Application granted granted Critical
Publication of CN109558937B publication Critical patent/CN109558937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Neurology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供一种神经网络系统和操作神经网络系统的方法,其中所述神经网络系统被构造为执行并行处理操作。所述神经网络系统包括:第一处理器,其被构造为通过基于第一算法对输入数据执行第一计算来产生多个第一输出;存储器,其存储第一程序,所述第一程序被构造为基于神经网络系统的计算负载和计算能力中的至少一个按照自适应方式确定计算参数;以及第二处理器,其被构造为基于计算参数执行并行处理操作,以基于第二算法对所述多个第一输出中的至少两个第一输出执行第二计算。

Description

神经网络系统和神经网络系统的操作方法
相关申请的交叉引用
本申请要求于2017年9月27日在韩国知识产权局提交的韩国专利申请No.10-2017-0125410的优先权,该申请的公开以引用方式全文并入本文中。
技术领域
本发明构思涉及一种神经网络,并且更具体地,涉及一种处理混合算法的神经网络系统以及神经网络系统的操作方法。
背景技术
神经网络是指基于生物大脑建模的计算科学架构。由于神经网络技术的最新发展,在各种类型的电子系统中,活跃地执行研究以通过使用利用一个或多个神经网络模型的神经网络装置来分析输入数据并提取有效信息。
神经网络模型可包括深度学习算法。神经网络模型可在神经网络系统中执行。神经网络系统可基于神经网络模型执行计算。然而,当前神经网络系统的处理速度相当慢。因此,需要提高神经网络系统的处理速度。
发明内容
本发明构思的至少一个实施例提供一种能够提高混合算法的处理速度的神经网络系统,以及一种神经网络系统的操作方法。因此,当神经网络系统在计算机上实现,以执行一个或多个其操作时,本发明构思的至少一个实施例可改善计算机的功能。
根据本发明构思的示例性实施例,提供一种操作神经网络系统的方法,所述神经网络系统包括用于执行混合计算的计算装置。所述方法包括以下步骤:计算装置对第一输入执行第一计算以产生多个第一输出;计算装置基于神经网络系统的计算信息确定计算参数;计算装置基于计算参数从多个第一输出中确定N个备选(即,N≥2);以及计算装置通过利用神经网络模型对N个备选执行并行处理操作来对N个备选执行第二计算。
根据本发明构思的示例性实施例,提供一种操作神经网络系统的方法,所述神经网络系统包括用于执行混合计算的计算装置。所述方法包括以下步骤:计算装置通过对接收到的输入信息进行预处理来产生多个计算输入;计算装置周期性地确定神经网络系统的计算信息;计算装置基于计算信息按照自适应方式确定神经网络模型的批处理模式;计算装置基于批处理模式从多个计算输入中确定N个备选(即,N≥2);以及计算装置利用神经网络模型对N个备选执行并行处理操作。
根据本发明构思的示例性实施例,提供一种用于执行并行处理操作的神经网络系统。所述神经网络系统包括:第一处理器,其被构造为通过基于第一算法对输入数据执行第一计算来产生多个第一输出;存储器,其存储第一程序,所述第一程序被构造为基于神经网络系统的计算负载和计算能力中的至少一个按照自适应方式确定计算参数;以及第二处理器,其被构造为基于计算参数执行并行处理操作,以基于第二算法对所述多个第一输出中的至少两个第一输出执行第二计算。
根据本发明构思的示例性实施例,提供一种用于处理图像数据以确定对象的神经网络系统。所述系统包括:图像传感器,其被构造为捕获图像;视频识别加速器,其从图像中提取感兴趣的区,以产生多个备选图像;以及处理器,其利用神经网络模型对多个备选图像的子集执行并行处理操作,以产生指示是否存在对象的计算结果。
附图说明
从下面结合附图的详细描述中将更清楚地理解本发明构思的实施例,在附图中:
图1是根据本发明构思的示例性实施例的电子系统的框图;
图2A示出了根据本发明构思的示例性实施例的混合计算,并且图2B示出了第二计算的输入/输出;
图3A和图3B是示出根据本发明构思的示例性实施例的混合计算模块的示例的框图;
图4示出了根据本发明构思的示例性实施例的混合计算模块的操作的示例;
图5是根据本发明构思的示例性实施例的神经网络系统的操作方法的流程图;
图6A示出了根据本发明构思的示例性实施例的应用于混合计算的神经网络模型,并且图6B示出了图6A的神经网络模型的示例;
图7示出了根据本发明构思的示例性实施例的根据神经网络装置的操作方法的神经网络计算的输入和输出以及比较例;
图8A和图8B示出了根据本发明构思的实施例的其中神经网络模型的输入大小在基于并行处理的神经网络计算中改变的示例;
图9示出了当神经网络模型的输入的大小改变时神经网络输入与第二输入之间的关系;
图10A和图10B示出了根据本发明构思的示例性实施例的其中神经网络模型的实例的数量在基于并行处理的神经网络计算中改变的示例;
图11A和图11B示出了根据本发明构思的示例性实施例的其中批处理模式在基于并行处理的神经网络计算中改变的示例;
图12是用于描述基于批处理模式的神经网络计算的图;
图13是执行神经网络模型的处理器的框图;
图14示出了根据本发明构思的示例性实施例的神经网络系统的示例;
图15是用于描述在图14的神经网络系统中执行的混合计算的图;
图16是根据本发明构思的示例性实施例的图14的神经网络系统的操作方法的流程图;
图17是图16的流程图中的操作S24、S25和S26的示例实施例的流程图;
图18是根据本发明构思的示例性实施例的实施为软件的混合计算模块的框图;以及
图19是根据本发明构思的示例性实施例的自动驾驶系统的框图。
具体实施方式
现在,将在下文中结合附图详细描述本发明构思的示例性实施例。
图1是根据本发明构思的示例性实施例的电子系统100的框图。图2A示出了根据本发明构思的示例性实施例的混合计算,并且图2B示出第二计算的输入/输出。
图1的电子系统100可基于神经网络通过实时地分析输入数据提取有效信息。电子系统100可分析有效信息,以确定状态信息。此外,电子系统100可基于确定的状态信息控制安装在电子系统100中的电子装置的元件。
在实施例中,图1的电子系统100是位于移动装置中的应用处理器(AP)。可替换地,图1的电子系统100可对应于计算系统,或者可对应于无人机和诸如高级驾驶员辅助系统(ADAS)、智能电视(TV)、智能电话、医疗设备、移动装置、图像显示设备、测量装置、物联网(IoT)装置等的自动装置。下文中,假设图1的电子系统100对应于AP。
参照图1,电子系统100包括处理器110、混合计算模块120、计算装置130、随机存取存储器(RAM)140、存储器150和传感器160。处理器110、混合计算模块120、计算装置130、RAM140、存储器150和传感器160可经总线彼此交换数据。在当前实施例中,电子系统100的元件中的至少一些元件可安装在半导体芯片上。
可将电子系统100定义为包括神经网络系统NNS,因为电子系统100执行神经网络计算功能。神经网络系统NNS可包括被包括在电子系统100中的元件中的与神经网络操作相关联的至少一些元件。在当前实施例中,参照图1,神经网络系统NNS包括处理器110、混合计算模块120和计算装置130,但是本发明构思不限于此。例如,可将与神经网络操作关联的其它各种类型的元件布置在神经网络系统NNS中。
处理器110控制电子系统100的整体操作。处理器110可包括单核处理器或多核处理器。处理器110可处理或执行存储在存储器150中的程序和/或数据。在当前实施例中,处理器110可通过执行存储在存储器150中的程序来控制混合计算模块120和计算装置130的功能。
在实施例中,混合计算模块120通过基于混合算法对输入数据执行混合计算操作来产生信息信号。在实施例中,混合算法包括基于硬件的第一算法(或第一操作)和基于软件的第二算法(或第二操作)。在实施例中,第二算法是包括深度学习算法的神经网络模型(或神经网络操作)。神经网络模型可包括(但不限于)诸如卷积神经网络(CNN)、递归神经网络(RNN)、深度信念网络和受限玻尔兹曼机的各种模型。第一算法可为其他数据处理算法,例如,在基于神经网络模型的计算(下文中,称作神经网络计算)的预处理阶段中执行的预处理算法。
可将混合计算模块120定义为基于混合算法对输入数据执行混合计算的基于神经网络的混合计算平台。在实施例中,在计算装置130中执行第一算法和第二算法,并且混合计算模块120控制计算装置130或者将计算参数(或操作参数)提供至计算装置130,以允许计算装置130顺利地执行第一算法和第二算法。在示例性实施例中,混合计算模块120包括第一算法和/或第二算法,并且将第一算法和/或第二算法提供至计算装置130。
信息信号可包括包含语音识别信号、对象识别信号、视频识别信号或生物信息识别信号的各种识别信号之一。在实施例中,混合计算模块120基于包括在位流(例如,位的流)中的帧数据执行混合计算,从而相对于包括在帧数据中的对象产生识别信号。例如,帧数据可包括将在显示装置上呈现的多帧图像数据。然而,本发明构思不限于此。因此,根据其中安装了电子系统100的电子装置的类型或功能,混合计算模块120可基于神经网络模型相对于各种输入数据产生信息信号。
参照图2A,混合计算可包括第一计算和第二计算。可基于第一算法(或第一操作,即,预处理算法)执行第一计算,并且可基于第二算法(或第二操作,即,包括深度学习算法的神经网络模型)执行第二计算。第一计算可被称作预处理,第二计算可被称作神经网络计算。如上所述,在计算装置130中执行第一算法和第二算法,以执行第一计算和第二计算。
对第一输入(即,输入数据)执行第一计算,以产生多个第一输出OUT1并相对于第二计算提供所述多个第一输出OUT1作为多个输入(例如,多个第二输入(参照图2B的IN2_1至IN2_8))。可对所述多个第二输入执行第二计算(即,神经网络计算),以输出至少一个第二输出OUT2。至少一个第二输出OUT2可为信息信号或者用于导出信息信号的值。
参照图2B,当对所述多个第二输入(参照图2B的IN2_1至IN2_8)执行第二计算时,对所述多个第二输入中的至少两个并行地执行第二计算。例如,如图2B所示,四个第二输入IN2_1至IN2_4和IN2_5至IN2_8可被并行处理。参照图2B,并行地处理第二输入IN2_1至IN2_4,以产生一个第二输出OUT2_1,并且并行地处理第二输入IN2_5至IN2_8,以产生一个第二输出OUT2_2,但是本发明构思不限于此,因此,可产生四个第二输出。在实施例中,计算装置130包括使得计算装置130能够按照并行方式处理数据的多个核。例如,所述核中的第一核可执行产生输入IN2_1至IN2_4的第一计算,并且分离的总线可从第一核连接至第二核、第三核、第四核和第五核,以使得第一核可同时将输入IN2_1输出至第二核,将输入IN2_2输出至第三核,将输入IN2_3输出至第四核并将输入IN2_4输出至第五核,并且随后第二核至第五核可针对它们各自的输入并行地操作以产生中间输出,并且这些核之一或另一核可根据所述中间输出产生单个第二输出OUT2_1。
返回参照图1,混合计算模块120可包括混合计算管理器122。混合计算管理器122可将计算参数提供至计算装置130以使得第一算法和第二算法能够顺利执行,或者其可控制计算装置130。
在示例性实施例中,混合计算管理器122基于计算信息确定计算环境,并且基于第二算法(即,神经网络计算)相对于计算环境按照自适应方式确定用于计算的计算参数。也就是说,计算参数可根据计算环境动态地改变。例如,计算信息可包括电子系统100(或神经网络系统NNS)的计算负载和计算能力。计算参数可包括神经网络模型的输入的大小(例如,特定数量的字节)、输入的数量、神经网络模型的实例数量或者神经网络模型的批处理模式。可基于计算参数确定在第二计算中被并行处理的第二输入的数量。例如,当神经网络模型的输入大小、输入的数量、实例数量和批处理模式的输入数量中的任一个增加时,被并行处理的第二输入的数量可增加。
混合计算模块120可按照各种形式实施。根据示例性实施例,混合计算模块120实施为软件。然而,混合计算模块120不限于此,因此,混合计算模块120可实现为硬件或硬件和软件的组合。例如,混合计算模块120可实施为包括存储器的微处理器或者处理器,所述存储器存储由微处理器的处理器执行以执行混合计算模块120和/或混合计算管理器122的功能的程序。
在示例性实施例中,混合计算模块120在操作系统(OS)或其下方的层中实施为软件,并且通过被处理器110和/或计算装置130执行来产生信息信号。也就是说,处理器110和/或计算装置130可执行混合计算模块120,以便执行基于混合算法的计算,以从输入数据中产生信息信号。可将操作系统的示例修改为包括混合计算模块120,其包括MicrosoftWindowsTM、macOS TM、Linux、AndroidTM、iOSTM和TizenTM。运行该经修改的操作系统的计算机可比常规计算机更快地执行操作。
计算装置130可在混合计算模块120的控制下基于第一算法对接收到的输入数据执行第一计算并基于第二算法执行第二计算。如上所述,第一算法可为预处理算法,第二算法可为神经网络模型。
可使用预处理算法去除无关信息或噪声和不可靠数据。例如,预处理算法可包括数据清理、实例选择、归一化、变换和特征选择的步骤。
数据清理可包括从记录集、表或数据库中检测和校正损坏或不准确的记录。例如,数据清理可以识别数据的不完整、不正确、不准确或无关的部分,然后替换、修改或删除脏数据或粗数据。
在应用学习算法之前,可以应用实例选择来去除数据中的噪声实例。例如,实例选择的最优输出将是最小的数据子集,与使用全部可用数据执行任务时所获得的性能相比,其可在无性能损失的前提下实现相同任务。
将数据缩减为任何种类的规范形式可被称作数据归一化。例如,可以在预处理期间对数据应用数据归一化,以提供有限范围的值,从而可顺利进行范围可预期的处理。
数据变换是将数据从一种格式或结构转换为另一种格式或结构的处理。例如,在预处理期间,可以将特定数据变换应用于数据,以将数据转换为要对变换的数据进行操作的处理所理解的格式。
特征提取从测量数据的初始集合开始,并构建旨在提供信息并且非冗余的导出值(特征),从而有利于后续学习。例如,当算法的输入数据太大而不能处理,并且怀疑它是冗余数据时,可将其变换成特征的简化集合(特征矢量)。确定初始特征的子集被称为特征选择。期望子集包含来自输入数据的相关信息,从而可以使用这种简化表示而不用完整的初始数据来执行后续处理。
计算装置130可包括至少一个处理器,并且第一算法和第二算法可以由同构或异构处理器执行。包括异构处理器的系统包括不止一种处理器或核。计算装置130可包括中央处理单元(CPU)、图形处理单元(GPU)、数字处理单元(NPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)。例如,NPU可为执行浮点算术运算、图形操作、信号处理操作等的协处理器。在示例性实施例中,第一算法由专用处理器执行。可替换地,第一算法可实现为作为计算装置130中包含的处理器之一的硬件。
计算装置130可基于计算结果产生信息信号。计算装置130可包括用于基于混合算法执行混合计算的一个或多个处理器(例如,专用处理器)。此外,计算装置130可包括用于存储对应于神经网络模型的可执行程序或数据结构的单独存储器(未示出)。
RAM 140可暂时存储程序、数据或指令。例如,存储在存储器150中的程序和/或数据可通过处理器110或启动代码的控制被暂时存储在RAM 140中。RAM 140可实现为诸如动态RAM(DRAM)或静态RAM(SRAM)的存储器。
存储器150可存储用于控制电子系统100的控制指令代码、控制数据或用户数据。存储器150可包括易失性存储器和非易失性存储器中的至少一个。
传感器160可感测电子系统100的内部信号或外部信号,并可向计算装置130提供由于感测而产生的数据作为混合计算的输入数据。传感器160可包括图像传感器、红外传感器、相机、触摸传感器、照明传感器、声学传感器、加速度传感器、转向传感器或生物传感器。然而,传感器160不限于此,而是可为用于产生根据电子系统100的功能请求的输入数据的各种传感器之一。
如上所述,在根据示例性实施例的电子系统100中,混合计算模块120的混合计算管理器122基于随时间变化的计算负载和计算能力动态地改变计算参数。
在实施例中,计算能力是指CPU的处理能力、存储器的存储容量或数据传输的带宽中的至少一个。在实施例中,计算能力包括可用功率量、可用硬件资源量(例如,50兆字节的可用存储器、可供使用的2个核等)、系统功率状态(例如,省电模式、待机模式、正常模式)和电池剩余电量(例如,剩余20%电量)。
在实施例中,计算负载是CPU负载、存储器负载或带宽负载。在实施例中,计算负载指示系统的过载情况(例如,由于一定数量的进程平均需要等待单个CPU而过载73%)、系统的空闲情况(例如,CPU平均空闲40%的时间)或者正常运行时间(系统可用于执行工作的时间度量)。例如,表示计算负载的变量可在进程正使用或等待CPU时递增,然后在进程终止使用或等待CPU时递减。计算负载可基于提供给神经网络模型的多个输入、这些输入的大小、基于神经网络模型的处理所需的存储器的容量和功率以及神经网络模型所需的数据处理速度中的至少一个。计算装置130可基于神经网络模型相对于计算环境按照自适应方式执行并行处理,从而提高神经网络计算速度。因此,可增强电子系统100或神经网络系统NNS的性能。
图3A和图3B是示出根据本发明构思的实施例的混合计算模块的示例的框图。图4示出了根据本发明构思的示例性实施例的混合计算模块的操作的示例。为了详细描述,图3A和图3B还分别示出了计算装置130a和130b。图3A和图3B的混合计算模块120a和120b是图1的混合计算模块120的示例,因此,以上参照图1至图2B提供的描述可应用于当前实施例。
参照图3A,混合计算模块120a包括应用121、混合计算管理器122、神经网络框架123、上下文管理器124和计算资源管理器125。
应用121可为执行需要包括神经网络计算的混合计算的函数的应用程序。例如,应用121可为相机专用应用程序,其跟踪包含在捕获的图像中的对象(例如,面部、道路、线路等)。然而,应用121不限于此,并且可为各种应用程序。
混合计算管理器122可控制混合计算处理。如上所述,混合计算管理器122可基于神经网络模型确定用于计算的计算参数(参照图4的CPM)。
参照图4,混合计算管理器122可基于关于计算环境的动态信息DIF和静态信息SIF和第一计算的结果(即,第一输出信息IF_OUT1)实时地确定计算负载和计算能力,可基于计算负载和/或计算能力相对于计算环境按照自适应方式确定计算参数CPM,或者可改变先前确定的计算参数CPM。计算参数CPM可包括神经网络模型的输入的大小、输入的数量、神经网络模型的实例数量或神经网络模型的批处理模式(例如,批处理模式的输入的数量)。
静态信息SIF可包括电子系统100中的各个元件的多条基本信息。例如,静态信息SIF可包括关于执行神经网络模型(或神经网络算法)的硬件的功能和特性的计算资源信息。动态信息DIF包括在执行神经网络模型时可发生的多条信息。例如,所述信息可包括在运行处理中的计算上下文信息。第一输出信息IF_OUT1可包括第一输出的大小或第一输出的数量。
在示例性实施例中,混合计算管理器122包括确定使用计算负载和计算能力作为输入的函数或算法,并基于变化的计算负载和计算能力产生可变确定值Y。混合计算管理器122可基于确定值Y来确定或改变计算参数CPM。在示例性实施例中,混合计算管理器122包括其中计算参数CPM基于计算负载和计算能力的可变值而不同地设置的查找表,并且通过访问查找表确定计算参数CPM。
混合计算管理器122可将计算参数CPM提供至包括在计算装置130a中的处理器中的执行神经网络计算的处理器。可替换地,混合计算管理器122可基于计算参数CPM控制执行神经网络计算的处理器。
神经网络框架123包括包含深度学习算法的神经网络模型。例如,神经网络模型可包括卷积神经网络(CNN)、具有卷积神经网络的区(R-CNN)、递归神经网络(RNN)、基于堆叠的深度神经网络(S-DNN)、Exynos DNN、状态空间动态神经网络(S-SDNN)、Caffe或张量流。神经网络框架123可包括各种信息,其包括诸如神经网络模型的深度和分支的层拓扑、关于压缩方法的信息、关于各个层的计算的信息(例如,包括输入和输出的大小、内核/过滤器、权重、格式、安全、填充、步长等的数据属性信息)或者数据压缩方法。由神经网络框架123提供的神经网络模型可以由计算装置130a执行。在示例性实施例中,神经网络系统(参照图1的神经网络系统NNS)不执行再训练。因此,神经网络模型可保持其相同性。
上下文管理器124可管理在执行混合算法的过程中产生的动态信息,并且可以向混合计算管理器122提供动态信息。与在运行期间执行神经网络计算有关的各种状态或信息可由上下文管理器124管理,例如,可将关于输出精度、延迟和每秒帧数(FPS)的信息或关于由应用121管理的允许精度损失的信息通过上下文管理器124提供至混合计算管理器122。例如,可将与资源相关的动态信息(例如,包括计算资源状态的改变、功率/温度信息、总线/存储器/存储状态、应用类型或应用的生命周期的各种信息)和与运行相关的动态信息通过上下文管理器124提供至混合计算管理器122。
计算资源管理器125可确定各种静态信息。例如,计算资源管理器125可确定关于硬件的性能和功耗的容量信息、关于不支持的数据类型的硬件限制信息、数据布局、压缩或量化算法。另外,计算资源管理器125可确定诸如卷积/相加/最大值的计算方法信息、内核结构信息、数据流信息或数据再用方案信息的各种信息作为关于硬件(例如,专用硬件)的各种信息,以更好地加速。
参照图3A,计算装置130a包括CPU 131、GPU 132、DSP 133、NPU 134和FPGA 135,但是计算装置130a可包括FPGA 135和CPU 131、GPU 132、NPU 134和DSP 133中的至少一个处理器。可替换地,计算装置130a还可包括另一类型的处理器。
在示例性实施例中,第一算法实现为FPGA 135中的硬件。可将通过FPGA 135基于第一算法对输入数据执行第一计算而产生的多个第一输出提供至另一处理器,例如,CPU131、GPU 132、NPU 134和DSP 133之一。例如,如果假设GPU 132执行神经网络计算,则FPGA135的第一输出可被发送至GPU 132。GPU 132可基于混合计算管理器122提供的计算参数或者在混合计算管理器122的控制下并行地执行神经网络计算。根据本发明构思的示例性实施例,由至少两个合适的硬件执行混合算法(即,第一算法和第二算法),从而提高关于混合算法的处理速度。
参照图3B,混合计算模块120b包括应用121、混合计算管理器122、神经网络框架123、上下文管理器124、计算资源管理器125和预处理算法126。与图3A的混合计算模块120a相比,混合计算模块120b还包括预处理算法126。
预处理算法126可为用于在第一计算之前预处理输入数据的第一算法(例如,执行神经网络计算),并且其可实施为软件。可通过计算装置130b的处理器之一(例如,CPU 131、GPU 132、NPU 134和DSP 133之一)执行预处理算法126。在当前实施例中,可通过同构或异构处理器执行预处理算法和神经网络模型。
图5是根据本发明构思的示例性实施例的神经网络系统的操作方法的流程图。可通过图1的神经网络系统NNS执行图5的操作方法。
参照图5,接收第一输入(S11)。第一输入可为输入数据,并且其可从传感器160(参照图1)提供。第一输入可包括至少一帧视频数据、语音数据或触摸数据(例如,触摸坐标)。例如,计算装置130可接收第一输入。
通过对第一输入执行第一计算来产生多个第一输出(S12)。例如,计算装置130可基于实施为硬件或软件的第一算法对第一输入执行第一计算,从而产生所述多个第一输出。所述多个第一输出可互相具有相同大小。所述多个第一输出可包括二维(2D)或三维(3D)数据。可提供所述多个第一输出中的每一个作为用于第二计算(即,神经网络计算)的输入。因此,各个第一输出可被称作第二输入或计算输入。
检查计算负载和计算能力(S13)。混合计算管理器122可基于静态信息、动态信息和第一输出信息检查计算负载和计算能力。计算负载和计算能力可实时地变化。另外,每当执行第一计算(即,S12)时,关于第一输出的信息可改变。例如,可提供多个第一输出的数量作为第一输出信息。每当执行第一计算时可改变所述多个第一输出的数量。因此,混合计算管理器122可按照周期方式或者在执行第一计算之后检查计算负载和计算能力。
基于计算负载和/或计算能力确定计算参数(S14)。在当前实施例中,混合计算管理器122适应性地确定计算参数,以使得神经网络系统NNS能够基于计算负载和计算能力在计算环境中具有最佳性能。响应于计算负载和计算能力的改变,可动态地确定(即,改变)计算参数。如上所述,计算参数可包括神经网络模型的输入的大小、输入的数量、神经网络模型的实例数量或者神经网络模型的批处理模式。在示例性实施例中,基于计算负载和计算能力之一(即,基于指示计算负载和计算能力的指标中的至少一个指标)确定计算参数。
对基于计算参数确定的N个第一输出(其中N是等于或大于2的整数)并行地执行第二计算(S15)。可基于计算参数确定待并行处理的第一输出的数量N。因此,当改变计算参数时,也可改变第一输出的数量N。例如,可基于神经网络模型的输入大小、输入数量、神经网络模型的实例数量和神经网络模型的批处理模式确定待并行处理的第一输出的数量N。计算装置130可对基于计算参数(即,N个第二输入)确定的N个第一输出并行地执行第二计算。
在示例性实施例中,可通过包括在计算装置130中的多个处理器中的同构或异构处理器执行第一计算和第二计算。当通过异构处理器执行第一计算和第二计算时,将所述多个第一输出发送至处理器,以执行第二计算。
在示例性实施例中,通过处理器110执行第一计算,并且处理器110(参照图1)将所述多个第一输出发送至计算装置130(即,包括在计算装置130中的处理器中的将执行第二计算的处理器)。
图6A示出根据示例性实施例的应用于混合计算的神经网络模型,并且图6B示出图6A的神经网络模型的示例。
参照图6A,神经网络模型是包括多个层L1、L2和L3(也称作第一层L1、第二层L2和第三层L3)的深度神经网络。虽然图6A中示出了三层L1、L2和L3,但是本发明构思不限于此,因此层的数量和类型可根据实施的神经网络模型而变化。所述多个层L1、L2和L3中的除输入层(例如,第一层L1)和输出层(例如,第三层L3)之外的诸如第二层L2的其它层可被称作隐藏层。
可在所述多个层L1、L2和L3执行同构或异构计算。当将神经网络模型的输入NNI(下文中,称作神经网络输入NNI)提供至第一层L1时,可在第一层L1对神经网络输入NNI执行根据第一层L1的至少一个子操作(或者至少一个子计算),并且可将来自第一层L1的输出提供至第二层L2。可在第二层L2对来自第一层L1的输出执行根据第二层L2的至少一个子操作,并且可将来自第二层L2的输出提供至第三层L3。可在第三层L3对来自第二层L2的输出执行根据第三层L3的至少一个子操作,并且可输出来自第三层L3的输出作为神经网络模型的输出NNO(下文中,称作神经网络输出NNO)。
参照图6B,第一层L1可为卷积层,第二层L2可为池化层,第三层L3可为输出层。输出层可为全连接层。神经网络模型还可包括活动(active)层,并且除图6B所示的层之外,还可包括另一卷积层、另一池化层或另一全连接层。神经网络输入NNI和来自所述多个层L1、L2和L3的输出各自可被称作特征图或特征矩阵。
所述多个层L1、L2和L3中的每一个可接收神经网络输入NNI或在先前层中产生的特征图作为输入特征图,可计算输入特征图,因此可产生输出特征图或识别信号REC。关于这一点,特征图指其中表达了神经网络输入NNI的各种特征的数据。特征图FM1、FM2和FM3(也称作第一特征图FM1、第二特征图FM2和第三特征图FM3)可具有2D矩阵或3D矩阵(或者称作张量)的形式。特征图FM1、FM2和FM3可具有宽度W(也称作列)和高度H(也称作行),并且可额外具有深度。这些可分别对应于坐标上的x轴、y轴和z轴。关于这一点,深度可被称作通道数量。
在第一层L1,将第一特征图FM1与权重图WM进行卷积,从而产生第二特征图FM2。在实施例中,权重图WM过滤第一特征图FM1,并且可被称作过滤器或内核。在第二层L2,可基于池化窗PW减小第二特征图FM2的大小,从而产生第三特征图FM3。池化可被称作采样或下采样。
在第三层L3,可组合第三特征图FM3的特征以对神经网络输入NNI的类CL进行分类。另外,产生对应于类CL的识别信号REC。在示例性实施例中,当输入数据是包括在视频流中的帧图像时,在第三层L3提取对应于包括在帧图像中的对象的类。然后,可产生对应于识别的对象的识别信号REC。
图7示出根据示例性实施例的根据神经网络装置的操作方法的神经网络计算的输入和输出以及比较例。图7的部分(a)示出根据本发明构思的示例性实施例的基于并行处理的神经网络计算的输入和输出,图7的部分(b)示出基于依序处理的神经网络计算的输入和输出。
参照图7的部分(a),基于神经网络模型并行计算多个第二输入IN2_1至IN2_6中的至少两个第二输入(例如,第二输入IN2_1和IN2_2、第二输入IN2_2至IN2_4)。并行处理的第二输入的数量可基于神经网络系统的计算环境(例如,计算负载和计算能力)变化。在并行处理至少两个第二输入因此产生一个第二输出的情况中的第二输出的大小可大于在处理一个第二输入并且随后产生一个第二输出的情况中的第二输出的大小。
参照图7的部分(b),当按次序处理所述多个第二输入IN2_1至IN2_6时,处理所述多个第二输入IN2_1至IN2_6所需的时间比根据图7的部分(a)所示的示例性实施例的并行处理所述至少两个第二输入所需的时间更长。
因此,根据本发明构思的示例性实施例的根据神经网络装置的操作方法(即,根据基于并行处理的神经网络计算),可增大神经网络装置的处理速度并且可提高神经网络装置的性能。
下文中,现在将描述其中计算参数(例如,神经网络模型的输入大小、神经网络的实例数量和批处理模式)基于并行处理相对于神经网络计算改变的各种情况。
图8A和图8B示出了根据本发明构思的实施例的其中神经网络模型的输入的大小基于并行处理在神经网络计算中改变的示例。
在图8A和图8B中,第二输入IN2_1至IN2_8指示响应于第一计算的输出,即,混合计算中的第一输出。第二输入IN2_1至IN2_8可被称作计算输入。神经网络输入NNI_1至NNI_4指示基于神经网络模型计算的神经网络模型的输入。也就是说,神经网络输入NNI_1至NNI_4指示第二计算的输入。神经网络输出NNO_1至NNO_4指示响应于相对于神经网络输入NNI_1至NNI_4的第二计算(即,神经网络计算)的计算结果。参照图8A和图8B,按次序计算神经网络输入NNI_1至NNI_4,但是本发明构思不限于此,并且如下面参照图11A和11B的描述,可并行地计算神经网络输入NNI_1至NNI_4中的至少两个输入。
参照图8A和图8B,神经网络输入NNI_1至NNI_4中的每一个的大小可为第二输入IN2_1至IN2_8(即,第一输出)中的每一个的大小的K倍(其中K是等于或大于2的整数),并且神经网络输入NNI_1至NNI_4的大小可改变。
参照图8A,神经网络输入NNI_1至NNI_4中的每一个的大小可为第二输入IN2_1至IN2_8中的每一个的大小的两倍大。因此,可提供两个第二输入作为一个神经网络输入。神经网络输出NNO_1至NNO_4中的每一个的大小可与神经网络输入NNI_1至NNI_4中的每一个的大小成比例地改变。当神经网络输入NNI_1至NNI_4中的每一个的大小等于第二输入IN2_1至IN2_8中的每一个的大小时,图8A的神经网络输出NNO_至NNO_4中的每一个的大小可为神经网络输出NNO_1至NNO_4中的每一个的大小的两倍大。
参照图8B,神经网络输入NNI_1至NNI_2中的每一个的大小可为第二输入IN2_1至IN2_8中的每一个的大小的四倍大。因此,可提供四个第二输入作为一个神经网络输入。例如,参照图8B,当神经网络输入NNI_1至NNI_2中的每一个的大小等于第二输入IN2_1至IN2_8中的每一个的大小时,图8B的神经网络输出NNO_1至NNO_2中的每一个的大小是神经网络输出NNO_1至NNO_2中的每一个的大小的四倍大,并且可为图8A的神经网络输出NNO_1至NNO_4中的每一个的大小的两倍大。
如上所述,神经网络输入NNI_1至NNI_4或NNI_2中的每一个的大小可基于计算负载和/或计算能力改变。例如,如果计算负载增大并且计算能力足够,则神经网络输入NNI_1至NNI_4中的每一个的大小可增大。可替换地,如果计算负载减小,则考虑到瞬时功耗,神经网络输入NNI_1至NNI_4或NNI_2中的每一个的大小可减小。
图9示出了当神经网络模型的输入的大小改变时神经网络输入与第二输入之间的关系。
参照图9,第二输入IN2_1至IN2_4是8×8的2D数据。如图所示,神经网络输入NNI的大小设为第二输入IN2_1至IN2_4中的每一个的大小的四倍大。神经网络输入NNI的大小可设为16×16。因此,提供四个第二输入IN2_1至IN2_4作为神经网络输入NNI,随后可基于神经网络模型对该四个第二输入IN2_1至IN2_4进行计算。因此,可并行处理四个第二输入IN2_1至IN2_4。图9示出其中第二输入IN2_1至IN2_4各自为2D数据的示例,但是本发明构思不限于此,因为第二输入IN2_1至IN2_4各自可为3D数据或多维数据。
参照图8A至图9,描述了其中神经网络的输入和输出的大小改变的实施例。以上描述是示例性实施例。因此,可不同地改变神经网络的输入和输出的大小。
图10A和图10B示出了根据本发明构思的示例性实施例的其中神经网络模型的实例数量在基于并行处理的神经网络计算中改变的示例。在图10A和图10B中,假设神经网络输入NNI1_1至NNI1_4和NNI2_1至NNI2_4(也称作第一神经网络输入NNI1_1至NNI1_4和第二神经网络输入NNI2_1至NNI2_4)中的每一个的大小等于第二输入(即,响应于混合计算中第一计算的输出)的大小。也就是说,假设将第二输入中的每一个提供至神经网络输入NNI1_1至NNI1_4和NNI2_1至NNI2_4之一。
参照图10A和图10B,可并行地执行至少两个神经网络模型。换句话说,神经网络模型的实例数量可设为多个。神经网络模型的实例数量可改变。
当存在一个实例时,执行一个神经网络模型,当存在两个实例时,可执行例如第一神经网络模型和第二神经网络模型的两个神经网络模型。关于这一点,第一神经网络模型和第二神经网络模型相同。也就是说,第一神经网络模型和第二神经网络模型的内容(例如,将应用于神经网络模型的操作、权重或权重图、激活功能等)相同。
在图10A中,第一神经网络输入NNI1_1至NNI1_4指示第一神经网络模型的输入,第二神经网络输入NNI2_1至NNI2_4指示第二神经网络模型的输入,第一神经网络输出NNO1_1至NNO1_4指示第一神经网络模型的输出,第二神经网络输出NNO2_1至NNO2_4指示第二神经网络模型的输出。当神经网络模型的实例数量设为2时,可同时执行两个神经网络模型。因此,并行处理第一神经网络输入和第二神经网络输入(即,两个第二输入)NNI1_1和NNI2_1、NNI1_2和NNI2_2、NNI1_3和NNI2_3以及NNI1_4和NNI2_4,以可产生第一神经网络输出和第二神经网络输出NNO1_1和NNO2_1、NNO1_2和NNO2_2、NNO1_3和NNO2_3、以及NNO1_4和NNO2_4。
参照图10B,当神经网络模型的实例数量设为4时,可同时执行四个神经网络模型。因此,可并行处理第一神经网络输入至第四神经网络输入(即,四个第二输入)NNI1_1至NNI4_1以及NNI1_2至NNI4_2,以可产生第一神经网络输出至第四神经网络输出NNO1_1至NNO4_1以及NNO1_2至NNO4_2。
神经网络模型的实例数量可基于计算负载和/或计算能力改变。例如,如果计算负载增大并且计算能力足够,则神经网络模型的实例的数量可增大。可替换地,如果计算负载减小或计算能力减小,神经网络模型的实例数量可减小。
参照图10A和图10B,描述了其中神经网络模型的实例数量改变的实施例。以上描述是示例性实施例。因此,神经网络模型的实例数量可不同地改变。
图11A和图11B示出了根据本发明构思的示例性实施例的其中批处理模式在基于并行处理的神经网络计算中改变的示例。图12是用于描述基于批处理模式的神经网络计算的图。在图11A和图11B中,神经网络输入NNI_1至NNI_8中的每一个的大小等于第二输入(即,响应于混合计算中的第一计算的输出)中的每一个的大小。也就是说,假设将第二输入中的每一个提供至神经网络输入NNI1_1至NNI1_8之一。
在当前实施例中,批处理模式(例如,批处理模式的设置值)指示当执行一个神经网络模型时被并行处理的神经网络输入的数量。当批处理模式设为1时,计算一个神经网络输入,而当批处理模式设为2时,计算两个神经网络输入。
参照图11A,批处理模式设为2,随后并行处理两个神经网络输入(例如,神经网络输入NNI_1和NNI_2),从而产生两个神经网络输出(例如,神经网络输出NNO_1和NNO_2)。参照图11B,批处理模式设为4,随后并行处理四个神经网络输入(例如,神经网络输入NNI_1至NNI_4),从而产生四个神经网络输出(例如,神经网络输出NNO_1至NNO_4)。
参照图12,如以上参照图6A和图6B的描述,神经网络模型可包括多个层,例如,第一层L1和第二层L2。当执行基于批处理模式的神经网络计算时,对神经网络输入NNI1或NNI2执行(即,计算)基于第一层L1的第一子操作,随后对第一层输出L1O1和L1O2执行基于第二层L2的第二子操作。
例如,在第一层L1对神经网络输入NNI_1执行第一子操作,从而产生第一层输出L1O1,随后在第一层L1对神经网络输入NNI_2执行第一子操作,从而产生第一层输出L1O2。
然后,在第二层L2对第一层输出L1O1执行第二子操作,从而产生第二层输出L2O1,随后在第二层L2对第一层输出L1O2执行第二子操作,从而产生第二层输出L2O2。在对应的层按次序执行相对于输入的子操作的同时,在神经网络计算的整个处理中,并行处理神经网络输入NNI1或NNI2。批处理模式与神经网络输入的数量有关。例如,如果批处理模式高,则神经网络输入的数量可较大,而如果批处理模式低,则神经网络输入的数量可较小。批处理模式可根据计算负载和/或计算能力而改变。例如,如果计算负载增大并且计算能力足够,批处理模式可设为高。如果计算负载减小或计算能力减小,批处理模式可设为低。
图13是执行神经网络模型的处理器200的框图。
处理器200可为图3A的CPU 131、GPU 132、DSP 133、NPU 134和FPGA 135之一。
处理器200包括处理单元210和处理器存储器220。为了便于描述,图13示出了一个处理单元210,但是处理器200可包括多个处理单元。
处理单元210可为基于多个层中的层(例如,图12的第一层L1和第二层L2)执行计算的单元电路。因此,处理单元210可按次序执行分别对应于第一层L1和第二层L2的第一子操作和第二子操作。处理单元210对神经网络输入NNI执行(即,计算)第一子操作以产生计算结果,存储计算结果,接收计算结果作为输入,随后对计算结果执行第二计算。计算结果可存储在处理器存储器220中。
关于这一点,可将第一子操作和第二子操作分别需要的第一子操作信息(或参数)和第二子操作信息(例如,权重、权重图或函数值)存储在处理器存储器220中。与处理器存储器220的容量相比,内部存储器211的容量可相对小。因此,当处理单元210执行第一子操作时,可将第一子操作信息加载至内部存储器211,而当处理单元210执行第二子操作时,可将第二子操作信息加载至内部存储器211。处理单元210可基于加载至内部存储器211的子操作信息执行子操作。
参照图12和图13,如果处理单元210对一个神经网络输入(例如,神经网络输入NNI_1)执行第一子操作和第二子操作,然后对另一神经网络输入(例如,神经网络输入NNI_2)执行第一子操作和第二子操作,则需要将第一子操作信息和第二子操作信息两次加载至内部存储器211。
然而,如以上参照图12的描述,如果基于批处理模式对神经网络输入NNI_1和NNI_2执行第一子操作,接着对来自第一计算的输出执行第二子操作,则仅需将第一子操作信息和第二子操作信息一次加载至内部存储器211。因此,当基于批处理模式执行神经网络计算时,将对应的层的子操作需要的多条信息加载至内部存储器211所需的时间可减少。
参照图8A至图13,描述了其中神经网络模型的输入大小、实例数量和批处理模式各自改变的情况。然而,本发明构思不限于此,并且根据计算环境,神经网络模型的输入大小和实例数量可改变,神经网络模型的输入大小和批处理模式可改变,或者实例数量和批处理模式可改变。可替换地,神经网络模型的输入大小、实例数量和批处理模式可全都改变。计算参数可相对于计算环境按照自适应方式不同地改变。
图14示出根据示例性实施例的神经网络系统300的示例,并且图15是用于描述在图14的神经网络系统300中执行的混合计算的图。基于神经网络计算,图14的神经网络系统300可安装在感测或跟踪图像中的对象的电子装置中。例如,神经网络系统300可(但不限于)安装在无人机、自动驾驶装置、智能电话、相机、一副智能眼镜或监视相机中。
参照图14,神经网络系统300包括AP 310、混合计算模块320、视频识别加速器(VRA)330(例如,视频加速器)、神经网络装置(NND)340、图像传感器350和显示器360。在实施例中,视频加速器是图形处理器或图形处理单元。
混合计算模块320可感测从图像传感器350提供的至少一帧图像中的对象,并且可基于神经网络计算来跟踪所述对象。
混合计算模块320包括相机应用311、混合计算管理器312、深度神经网络(DNN)框架313、上下文管理器314和计算资源管理器315。相机应用311、混合计算管理器312、深度神经网络框架313、上下文管理器314和计算资源管理器315与上面参照图3A描述的应用121、混合计算管理器122、神经网络框架123、上下文管理器124和计算资源管理器125相似。因此,这里省略对它们的重复描述。
在示例性实施例中,通过AP 310执行相机应用311、混合计算管理器312、上下文管理器314和计算资源管理器315,并且通过神经网络装置340执行从深度神经网络框架313提供的深度神经网络模型。然而,本发明构思不限于此,可通过分离的处理器执行相机应用311、混合计算管理器312、上下文管理器314和计算资源管理器315。
参照图14和图15,可将由图像传感器350产生的图像IMG作为输入数据提供至VRA330。VRA 330是用于对图像IMG执行第一算法的硬件。第一算法可从图像IMG中提取期望包括感测目标对象(例如,人脸、道路等)的感兴趣的区ROI1、ROI2和ROI3。VRA 330可对接收到的图像IMG执行第一计算。感兴趣的区ROI1、ROI2和ROI3的大小可彼此不同。VRA 330可对感兴趣的区ROI1、ROI2和ROI3执行预处理(例如,图像卷绕),从而产生大小相同的多个备选图像CI1、CI2和CI3。可将所述多个备选图像CI1、CI2和CI3提供至神经网络装置340。
神经网络装置340是基于第二算法(即,神经网络模型)执行计算的处理器。神经网络装置340可对从VRA 330接收到的所述多个备选图像CI1、CI2和CI3执行第二计算。神经网络装置340可为CPU、GPU、NPU和DSP之一,或者可为用于神经网络计算的专用处理器。
神经网络装置340可基于第二算法(即,深度神经网络模型)对所述多个备选图像CI1、CI2和CI3执行计算,以产生和输出计算结果(例如,对象感测结果DT1、DT2和DT3)。例如,对象感测结果DT1、DT2和DT3可分别指示在对应的感兴趣的区ROI1、ROI2和ROI3中是否包括感测目标对象,或者可分别指示包括在对应的感兴趣的区ROI1、ROI2和ROI3中的对象。
如上所述,混合计算管理器312可基于从上下文管理器314和计算资源管理器315提供的静态信息和动态信息和从VRA 330提供的第一输出信息来检查神经网络系统300的计算负载和计算能力,并且可基于计算负载和/或计算能力来确定计算参数(例如,深度神经网络模型的输入大小、输入数量、深度神经网络模型的实例数量或深度神经网络模型的批处理模式)。混合计算管理器312可基于计算环境动态地改变计算参数。
例如,混合计算管理器312可基于第一输出的数量(即,多个备选图像CI1、CI2和CI3的数量)确定深度神经网络模型的输入大小。例如,当多个备选图像CI1、CI2和CI3的数量增加时,计算负载增加。因此,深度神经网络模型的输入的大小可增大。当多个备选图像CI1、CI2和CI3的数量减小时,计算负载减小。因此,深度神经网络模型的输入的大小可减小。在示例性实施例中,将多个备选图像CI1、CI2和CI3的数量与一个或多个参考值进行比较,并且根据比较结果确定深度神经网络模型的输入的大小。
神经网络装置340可并行地计算多个备选图像CI1、CI2和CI3的至少一部分,并且可基于计算参数确定并行处理的备选图像的数量,如以上参照图8A至图13的描述。
相机应用311可基于对象感测结果DT1、DT2和DT3执行功能。在示例性实施例中,AP310在显示器360上显示基于相机应用311的功能产生的图像。
图16是根据本发明构思的示例性实施例的图14的神经网络系统300的操作方法的流程图。
参照图14和图16,VRA 330从图像传感器350接收图像(S21)。VRA 330基于第一算法对接收到的图像执行第一计算。VRA 330从接收到的图像中提取多个感兴趣的区,并且对所述多个提取的感兴趣的区执行预处理操作(S22)。VRA 330可经预处理产生对应于所述多个提取的感兴趣的区的多个备选图像。通过这样做,完成了基于第一算法的计算。VRA 330将所述多个备选图像发送至神经网络装置340(S23)。
混合计算管理器312检查计算信息(S24)。计算信息可包括计算负载和计算能力。混合计算管理器312可基于从上下文管理器314和计算资源管理器315提供的静态信息和动态信息检查计算信息。在示例性实施例中,混合计算管理器312在完成基于第一算法的计算之后检查计算信息,或者周期性地检查计算信息。因此,混合计算管理器312可更新计算信息。
混合计算管理器312基于更新的计算信息确定或改变多个计算参数(例如,深度神经网络模型的输入的大小、输入的数量、批处理模式和实例数量)中的至少一个(S25)。
神经网络装置340基于第二算法(即,深度神经网络模型)对基于计算参数确定的N个备选图像按照并行方式执行计算(S26)。也就是说,神经网络装置340基于深度神经网络模型通过以N个备选图像为单位的并行处理对所述多个备选图像执行计算,以产生计算结果。然后,神经网络装置340基于计算结果检测所述多个备选图像指示的对象(S27)。
图17是图16的流程图中操作S24、S25和S26的示例实施例的流程图。
参照图17,混合计算管理器312检查多个备选图像的数量(S24a)。混合计算管理器312可基于多个备选图像的数量确定计算负载。混合计算管理器312可基于多个备选图像的数量确定神经网络模型的批处理模式(S25a)。当多个备选图像的数量大时,混合计算管理器312可将批处理模式设为高,而当所述多个备选图像的数量小时,混合计算管理器312可将批处理模式设为低。在示例性实施例中,混合计算管理器312通过考虑所述多个备选图像的数量和计算能力来设置批处理模式。
神经网络装置340基于批处理模式并行处理其数量对应于批处理模式的输入数量的备选图像(S26a)。如以上参照图12的描述,神经网络装置340可基于一层对多个备选图像执行计算,以产生输出结果,并且可基于下一层对输出结果执行计算。
图18是根据本发明构思的示例性实施例的实施为软件的混合计算模块的框图。图18所示的系统可为AP 400,并且AP 400可实现为作为半导体芯片的片上系统(SoC)。
AP 400包括处理器410和操作存储器420。虽然图18中未示出,AP 400还可包括连接至系统总线的一个或多个知识产权(IP)模块、核或块。IP核是可再用锁单元或集成电路。操作存储器420可存储诸如与其中使用AP 400的系统的操作关联的各种程序和指令的软件。例如,操作存储器420可包括OS 421和混合计算模块422。混合计算模块422可基于异构算法执行混合计算。例如,混合计算可包括执行作为预处理算法的第一算法和作为深度神经网络模型的第二算法。混合计算模块422可包括混合计算管理器。根据上述实施例,混合计算管理器可基于计算负载和计算能力确定计算参数。因此,当执行第二算法时,可并行处理输入。
根据示例性实施例,在OS 421中实施混合计算模块422。
虽然图18示出一个处理器410,但是AP 400可包括多个处理器。关于这一点,所述多个处理器之一可为专用处理器,以执行第一算法。
图19是根据本发明构思的示例性实施例的自动驾驶系统500的框图。自动驾驶系统500包括传感器模块510、导航模块520、自动驾驶模块530和CPU 540。自动驾驶模块530包括神经网络(NN)装置531和混合计算模块532。
神经网络装置531可利用各种视频信息和语音信息执行神经网络操作,并且可基于执行结果产生诸如视频识别结果或语音识别结果的信息信号。例如,传感器模块510可包括能够捕获各种视频信息和语音信息的诸如相机或麦克风的装置,并且可将所述各种视频信息和语音信息提供至自动驾驶模块530。导航模块520可将关于车辆驾驶的各种信息(例如,位置信息、速度信息、中断信息等)提供至自动驾驶模块530。神经网络装置531可从传感器模块510和/或导航模块520接收信息的输入,并且随后可执行各种神经网络模型,从而产生信息信号。
混合计算模块532可基于异构算法执行混合计算。混合计算可包括作为预处理算法的第一算法和作为深度神经网络模型的第二算法。混合计算模块532可包括混合计算管理器。根据前述实施例,混合计算管理器可基于计算负载和计算能力确定计算参数。因此,当执行第二算法时,可并行处理输入。
传统系统在执行神经网络操作时顺序地处理输入(即,基于预处理算法输出第一操作),同时处理包括神经网络操作的混合算法。因此,传统系统的延迟增加了。
相反,根据本发明构思的实施例的构造为执行包括预处理算法和神经网络算法的混合算法的神经网络系统在执行神经网络操作时,并行地处理输入(即,基于预处理算法输出第一操作)。该神经网络系统基于计算负载、计算能力等动态地确定神经网络操作的操作参数的数量,即,要并行处理的第一操作的输出的数量。
因此,根据该神经网络系统及其操作方法(即,根据本发明构思的实施例的基于并行处理的神经网络操作),可以减少神经网络系统的延迟并且可以增加神经网络系统的处理速度。因此,神经网络系统的计算功能和性能可以相对于传统系统得到改善。
虽然通过利用特定术语参照本发明构思的示例性实施例具体地示出和描述了本发明构思,但是本领域普通技术人员应该理解,在不脱离本发明构思的精神和范围的情况下,可在其中作出各种形式和细节上的改变。

Claims (19)

1.一种神经网络系统,其被构造为执行并行处理操作,所述神经网络系统包括:
第一处理器,其被构造为通过基于第一算法对输入数据执行第一计算来产生多个第一输出;
存储器,其存储第一程序,所述第一程序被构造为基于所述神经网络系统的计算负载和计算能力中的至少一个按照自适应方式确定计算参数;以及
第二处理器,其被构造为基于所述计算参数执行所述并行处理操作,以基于第二算法对所述多个第一输出中的至少两个第一输出执行第二计算。
2.根据权利要求1所述的神经网络系统,其中,所述第二算法包括神经网络模型。
3.根据权利要求1所述的神经网络系统,其中,所述计算参数包括所述神经网络模型的输入的大小、输入的数量、所述神经网络模型的实例的数量和所述神经网络模型的批处理模式中的至少一个。
4.根据权利要求2所述的神经网络系统,其中,所述第一处理器是被设计为执行所述第一算法的专用处理器。
5.根据权利要求2所述的神经网络系统,其中,所述存储器存储执行所述第二算法的第二程序。
6.一种操作神经网络系统的方法,所述神经网络系统包括用于执行混合计算的计算装置,所述方法包括步骤:
由所述计算装置对第一输入执行第一计算以产生多个第一输出;
由所述计算装置基于所述神经网络系统的计算信息确定计算参数;
由所述计算装置基于所述计算参数从所述多个第一输出中确定N个备选,其中N≥2;以及
由所述计算装置通过利用神经网络模型对所述N个备选执行并行处理操作来对所述N个备选执行第二计算。
7.根据权利要求6所述的方法,其中,所述计算参数包括所述神经网络模型的输入的大小、输入的数量、所述神经网络模型的实例的数量和所述神经网络模型的批处理模式中的至少一个。
8.根据权利要求7所述的方法,其中,所述多个第一输出中的每一个具有第一大小,并且确定所述计算参数的步骤包括:确定所述输入的大小为所述第一大小的K倍,其中K≥1。
9.根据权利要求8所述的方法,其中,所述神经网络模型的输出的大小为当所述输入的大小等于所述第一大小时的输出的大小的K倍。
10.根据权利要求7所述的方法,其中,确定所述计算参数的步骤包括:确定所述神经网络模型的输入的大小等于所述多个第一输出的大小,并且确定所述神经网络模型的实例的数量为多个。
11.根据权利要求7所述的方法,其中,确定所述计算参数的步骤包括:基于所述计算信息确定所述批处理模式,并且基于所述批处理模式确定所述输入的数量。
12.根据权利要求7所述的方法,其中,所述神经网络模型包括多个层,并且执行所述第二计算的步骤包括:
通过对所述N个备选执行第一子操作来产生N个第一计算输出,所述第一子操作对应于所述多个层中的第一层;以及
通过对所述N个第一计算输出执行第二子操作来产生N个第二计算输出,所述第二子操作对应于所述多个层中的第二层。
13.根据权利要求6所述的方法,其中,确定所述计算参数的步骤包括:基于所述神经网络系统的计算负载和计算能力中的至少一个确定所述计算参数。
14.根据权利要求13所述的方法,其中,
所述计算负载包括所述多个第一输出的数量、所述多个第一输出中的每一个的大小、基于所述神经网络模型的处理所需的存储器的容量和功率以及所述神经网络系统所需的数据处理速度中的至少一个,并且
所述计算能力包括与所述神经网络系统相关的可用功率、可用硬件资源、可用存储器容量、系统功率状态和电池剩余电量中的至少一个。
15.根据权利要求6所述的方法,其中,所述计算装置包括异构的第一处理器和第二处理器,并且由所述第一处理器执行所述第一计算,并由所述第二处理器执行所述第二计算。
16.一种神经网络系统,其用于处理图像数据以确定对象,所述神经网络系统包括:
图像传感器,其被构造为捕获图像;
视频识别加速器,其从所述图像中提取感兴趣的区,以产生多个备选图像;以及
处理器,其利用神经网络模型对所述多个备选图像的子集执行并行处理操作,以产生指示是否存在对象的计算结果。
17.根据权利要求16所述的神经网络系统,其中,所述神经网络模型的输入的大小与所述多个备选图像的数量成比例。
18.根据权利要求16所述的神经网络系统,其中,所述神经网络系统基于所述神经网络系统的计算负载确定所述子集。
19.根据权利要求16所述的神经网络系统,其中,所述神经网络系统基于所述神经网络系统的计算能力确定所述子集。
CN201811132770.6A 2017-09-27 2018-09-27 神经网络系统和神经网络系统的操作方法 Active CN109558937B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0125410 2017-09-27
KR1020170125410A KR102610820B1 (ko) 2017-09-27 2017-09-27 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법

Publications (2)

Publication Number Publication Date
CN109558937A true CN109558937A (zh) 2019-04-02
CN109558937B CN109558937B (zh) 2023-11-28

Family

ID=65809130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811132770.6A Active CN109558937B (zh) 2017-09-27 2018-09-27 神经网络系统和神经网络系统的操作方法

Country Status (4)

Country Link
US (1) US20190095212A1 (zh)
KR (1) KR102610820B1 (zh)
CN (1) CN109558937B (zh)
SG (1) SG10201805974UA (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782402A (zh) * 2020-07-17 2020-10-16 Oppo广东移动通信有限公司 数据处理方法、装置以及电子设备
WO2022089512A1 (zh) * 2020-10-29 2022-05-05 华为技术有限公司 一种控制负载的方法、装置及设备

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11468338B2 (en) * 2018-09-11 2022-10-11 Apple Inc. Compiling models for dedicated hardware
CN109376594A (zh) * 2018-09-11 2019-02-22 百度在线网络技术(北京)有限公司 基于自动驾驶车辆的视觉感知方法、装置、设备以及介质
KR102425909B1 (ko) * 2019-07-30 2022-07-29 한국과학기술원 뉴럴 네트워크 가속기 시스템 및 그것의 동작 방법
KR20210062485A (ko) 2019-11-21 2021-05-31 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20210108749A (ko) 2020-02-26 2021-09-03 삼성전자주식회사 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
CN112087649B (zh) * 2020-08-05 2022-04-15 华为技术有限公司 一种设备搜寻方法以及电子设备
KR20220118047A (ko) * 2021-02-18 2022-08-25 삼성전자주식회사 어플리케이션의 모델 파일을 초기화하는 프로세서 및 이를 포함하는 전자 장치
US11693692B2 (en) 2021-06-17 2023-07-04 International Business Machines Corporation Program event recording storage alteration processing for a neural network accelerator instruction
US11269632B1 (en) 2021-06-17 2022-03-08 International Business Machines Corporation Data conversion to/from selected data type with implied rounding mode
US11797270B2 (en) 2021-06-17 2023-10-24 International Business Machines Corporation Single function to perform multiple operations with distinct operation parameter validation
US11669331B2 (en) 2021-06-17 2023-06-06 International Business Machines Corporation Neural network processing assist instruction
US11734013B2 (en) 2021-06-17 2023-08-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution
US11675592B2 (en) 2021-06-17 2023-06-13 International Business Machines Corporation Instruction to query for model-dependent information
KR102625839B1 (ko) * 2023-08-30 2024-01-16 주식회사 시원금속 뉴럴 네트워크를 이용하여 3차원 가상 공간에 인테리어와 관련된 금속 제품을 배치하는 방법 및 장치

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943663A (en) * 1994-11-28 1999-08-24 Mouradian; Gary C. Data processing method and system utilizing parallel processing
JP2009099008A (ja) * 2007-10-18 2009-05-07 Seiko Epson Corp 並列演算装置および並列演算方法
WO2013038566A1 (ja) * 2011-09-16 2013-03-21 富士通株式会社 コンピュータシステム
WO2015003436A1 (en) * 2013-07-10 2015-01-15 Tencent Technology (Shenzhen) Company Limited Method and device for parallel processing in model training
CN106022245A (zh) * 2016-05-16 2016-10-12 中国资源卫星应用中心 一种基于算法分类的多源遥感卫星数据并行处理系统及方法
US20160379112A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Training and operation of computational models
KR20170023708A (ko) * 2015-08-24 2017-03-06 (주)뉴로컴즈 콘볼루션 신경망 컴퓨팅 장치
US20170154262A1 (en) * 2015-11-30 2017-06-01 Google Inc. Resizing neural networks
US20170193361A1 (en) * 2015-12-31 2017-07-06 Microsoft Technology Licensing, Llc Neural network training performance optimization framework

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010513B2 (en) * 2003-04-14 2006-03-07 Tamura Raymond M Software engine for multiple, parallel processing with neural networks
US9477925B2 (en) * 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition
US9418334B2 (en) * 2012-12-06 2016-08-16 Nuance Communications, Inc. Hybrid pre-training of deep belief networks
US20150324688A1 (en) * 2014-05-12 2015-11-12 Qualcomm Incorporated Customized classifier over common features
US20160335119A1 (en) * 2015-05-12 2016-11-17 minds.ai inc Batch-based neural network system
US10482380B2 (en) * 2015-12-30 2019-11-19 Amazon Technologies, Inc. Conditional parallel processing in fully-connected neural networks
JP2018018451A (ja) * 2016-07-29 2018-02-01 富士通株式会社 機械学習方法、機械学習プログラム及び情報処理装置
US11062203B2 (en) * 2016-12-30 2021-07-13 Intel Corporation Neuromorphic computer with reconfigurable memory mapping for various neural network topologies

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943663A (en) * 1994-11-28 1999-08-24 Mouradian; Gary C. Data processing method and system utilizing parallel processing
JP2009099008A (ja) * 2007-10-18 2009-05-07 Seiko Epson Corp 並列演算装置および並列演算方法
WO2013038566A1 (ja) * 2011-09-16 2013-03-21 富士通株式会社 コンピュータシステム
WO2015003436A1 (en) * 2013-07-10 2015-01-15 Tencent Technology (Shenzhen) Company Limited Method and device for parallel processing in model training
US20160379112A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Training and operation of computational models
KR20170023708A (ko) * 2015-08-24 2017-03-06 (주)뉴로컴즈 콘볼루션 신경망 컴퓨팅 장치
US20170154262A1 (en) * 2015-11-30 2017-06-01 Google Inc. Resizing neural networks
US20170193361A1 (en) * 2015-12-31 2017-07-06 Microsoft Technology Licensing, Llc Neural network training performance optimization framework
CN106022245A (zh) * 2016-05-16 2016-10-12 中国资源卫星应用中心 一种基于算法分类的多源遥感卫星数据并行处理系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782402A (zh) * 2020-07-17 2020-10-16 Oppo广东移动通信有限公司 数据处理方法、装置以及电子设备
WO2022089512A1 (zh) * 2020-10-29 2022-05-05 华为技术有限公司 一种控制负载的方法、装置及设备

Also Published As

Publication number Publication date
US20190095212A1 (en) 2019-03-28
KR102610820B1 (ko) 2023-12-06
KR20190036317A (ko) 2019-04-04
SG10201805974UA (en) 2019-04-29
CN109558937B (zh) 2023-11-28

Similar Documents

Publication Publication Date Title
CN109558937A (zh) 神经网络系统和神经网络系统的操作方法
TWI759361B (zh) 用於稀疏神經網路加速的架構、方法、電腦可讀取媒體和裝備
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
CN112862874B (zh) 点云数据匹配方法、装置、电子设备及计算机存储介质
CN110383340A (zh) 使用稀疏体积数据进行路径规划
US20190212981A1 (en) Neural network processing unit including approximate multiplier and system on chip including the same
CN111797983A (zh) 一种神经网络构建方法以及装置
WO2017223009A1 (en) Multi-domain joint semantic frame parsing
CN108764466A (zh) 基于现场可编程门阵列的卷积神经网络硬件及其加速方法
CN108012156A (zh) 一种视频处理方法及控制平台
EP4318313A1 (en) Data processing method, training method for neural network model, and apparatus
CN111931901A (zh) 一种神经网络构建方法以及装置
US20190050370A1 (en) Hardware accelerator for online estimation
TW202138999A (zh) 用於卷積運算的資料劃分方法及處理器
WO2022156475A1 (zh) 神经网络模型的训练方法、数据处理方法及装置
CN112528108A (zh) 一种模型训练系统、模型训练中梯度聚合的方法及装置
CN114202454A (zh) 图优化方法、系统、计算机程序产品以及存储介质
CN115511779B (zh) 图像检测方法、装置、电子设备和存储介质
CN111797986A (zh) 数据处理方法、装置、存储介质及电子设备
CN116710974A (zh) 在合成数据系统和应用程序中使用域对抗学习的域适应
CN116802646A (zh) 数据处理的方法和装置
WO2020207294A1 (zh) 服务处理方法、装置、存储介质及电子设备
TW202117609A (zh) 具有快速逐點迴旋的高效推斷
CN114332800B (zh) 一种用于自动驾驶的街道场景解析语义分割方法
JP7189000B2 (ja) 情報処理装置、車載制御装置、車両制御システム

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