CN113657584B - 神经网络模型计算方法、数据处理方法、电子设备及介质 - Google Patents
神经网络模型计算方法、数据处理方法、电子设备及介质 Download PDFInfo
- Publication number
- CN113657584B CN113657584B CN202111011683.7A CN202111011683A CN113657584B CN 113657584 B CN113657584 B CN 113657584B CN 202111011683 A CN202111011683 A CN 202111011683A CN 113657584 B CN113657584 B CN 113657584B
- Authority
- CN
- China
- Prior art keywords
- calculation
- sub
- node
- branches
- nodes
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 245
- 238000003062 neural network model Methods 0.000 title claims abstract description 75
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 230000015654 memory Effects 0.000 claims abstract description 235
- 230000004927 fusion Effects 0.000 claims description 53
- 238000000034 method Methods 0.000 claims description 22
- 238000007499 fusion processing Methods 0.000 claims description 20
- 238000013528 artificial neural network Methods 0.000 abstract description 18
- 238000005457 optimization Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000007500 overflow downdraw method Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及模型优化技术领域,公开了一种神经网络模型计算方法、数据处理方法、电子设备及介质。其中,神经网络模型计算方法包括:获取神经网络模型中两个相邻结点之间的多个计算分支;确定多个计算分支的多个计算序列,其中计算序列表示在执行两个相邻结点之间的计算中多个计算分支的执行顺序;计算以各计算序列执行多个计算分支所占用的存储空间;将占用的存储空间满足计算条件的计算序列作为执行两个相邻结点之间的计算中多个计算分支的计算序列。上述技术方案能够有效降低任意两个结点间的内存占用,进而能够降低整个神经网络模型的内存占用,使得神经网络能够更好的应用于多种内存较小的电子设备中。
Description
技术领域
本申请涉及模型优化技术领域,特别涉及一种神经网络模型计算方法、数据处理方法、电子设备及介质。
背景技术
随着人工智能(Artificial Intelligence,AI)技术的高速发展,各种AI算法模型,例如神经网络模型已经广泛应用于各种电子设备,如智能音箱,智能耳机,无人机,智能家居等。然而,有很多电子设备,例如智能音箱等具有很小的内存,而神经网络模型的计算内存一般较大,因此,在上述内存较小的电子设备中难以部署更多的神经网络模型且难以运行计算内存较大的神经网络模型。另外,在电子设备的内存不足的时候,可能会造成电子设备的运行卡顿,影响用户体验。
现有技术中,一些方案中采用直接在上述电子设备中增加内存块的方式使得电子设备有足够的内存运行所需的神经网络模型,但是此种方案会增加电子设备的体积和成本。还有一些实施方案中,通过裁剪神经网络模型使得神经网络模型占用的内存变小,但该种方案或使得神经网络模型的计算精度显著降低。
发明内容
为解决上述技术问题,本申请实施例提供了一种神经网络模型计算方法、数据处理方法、电子设备及介质。
第一方面,本申请实施例提供了一种神经网络模型计算方法,包括:
获取神经网络模型中两个相邻结点之间的多个计算分支;
确定所述多个计算分支的多个计算序列,其中所述计算序列表示在执行所述两个相邻结点之间的计算中所述多个计算分支的执行顺序;
计算以各所述计算序列执行所述多个计算分支所占用的存储空间;
将占用的存储空间满足计算条件的计算序列作为执行所述两个相邻结点之间的计算中所述多个计算分支的计算序列。
可以理解,本申请实施例中提及的两个相邻结点之间的多个计算分支与后文中提及的两个相邻结点之间的分支是同一概念。本申请实施例中提及的占用的存储空间与后文中提及的占用内存也为相同概念。
在上述第一方面的一种可能的实现中,所述计算条件为占用的存储空间最小。
可以理解,本申请实施例中,可以将占用存储空间最小的计算序列作为执行所述两个相邻结点之间的计算中所述多个计算分支的计算序列。在一些实施例中,若占用存储空间最小的计算序列有多个,则可以选择其中任意一个。在一些实施例中,若存在其他因素影响,也可以选择占用存储空间较小的其他计算序列,例如,有些计算序列虽然占用存储空间最小,但是该计算序列可能会存在影响数据输出结果的情况,所以可以选择占用存储空间倒数第二的计算序列。
在上述第一方面的一种可能的实现中,所述计算以各所述计算序列执行所述多个计算分支所占用的存储空间;包括:
获取以各所述计算序列执行所述多个计算分支时每个计算分支上各子结点占用的存储空间;
确定出以各所述计算序列执行所述多个计算分支时占用存储空间最大的子结点;
将以各所述计算序列执行所述多个计算分支时占用存储空间最大的子结点在计算时所需占用的存储空间作为以对应的计算序列执行所述多个计算分支所占用的存储空间。
在上述第一方面的一种可能的实现中,以各所述计算序列执行所述多个计算分支时每个计算分支上各子结点占用的存储空间包括输入数据所需占用的存储空间和输出数据所需占用的存储空间。占用存储空间最大的子结点在计算时所需占用的存储空间除了包括输入数据所需占用的存储空间和输出数据所需占用的存储空间还包括需要保留给其他分支或输出结点进行计算的数据所占用的存储空间。
在上述第一方面的一种可能的实现中,所述获取神经网络模型中两个相邻结点之间的多个计算分支步骤之后,还包括:
对所述两个相邻结点之间的多个计算分支中大于等于两个子结点的计算分支进行算子融合处理。
在上述第一方面的一种可能的实现中,对所述两个相邻结点之间的多个计算分支中大于两个子结点的计算分支进行算子融合处理的方法,包括:
获取所述大于等于两个子结点的计算分支上的占用存储空间最大的第一子结点;
将所述第一子结点向两端延伸的各子结点中符合占用存储空间大小降序排序的子结点与所述第一子结点进行算子融合处理,获取第一融合子结点;
将所述融合子结点占用的存储空间与所述大于等于两个子结点的计算分支上的未与第一子结点融合的其他各子结点占用的存储空间进行对比,获取占用存储空间最大的第二子结点;
将所述第二子结点向两端延伸的各子结点中符合占用存储空间大小降序排序的子结点与所述第二子结点进行算子融合处理,获取第二融合子结点。
可以理解,本申请实施例提供的神经网络模型计算方法,能够对神经网络的所有相邻结点间的多种计算序列的占用内存进行计算,从而将占用内存最小的计算序列作为相邻结点间的计算系列。该方案能够有效降低任意两个结点间的内存占用,进而能够降低整个神经网络模型的内存占用,使得神经网络能够更好的应用于多种内存较小的电子设备中。
另外,若相邻结点间的某些分支上具有大于等于两个的子结点,本申请实施例提供的模型优化方法在对上述相邻结点间的计算内存进行各分支间的计算顺序进行排序之前,还可以对每个分支的各个子结点进行算子融合以降低该分支的计算内存。
本申请实施例第二方面提供一种数据处理方法,包括:
将第一数据输入神经网络模型中两个相邻结点中的输入结点,其中,所述两个相邻结点之间存在多个计算分支;
按照所述多个计算分支的第一计算序列,通过所述多个计算分支对所述第一数据进行计算,得到第二数据,其中,所述多个计算分支具有多个计算序列,所述计算序列表示在执行所述两个相邻结点之间的计算中所述多个计算分支的执行顺序,并且所述第一计算序列为所述多个计算序列中满足计算条件的计算序列;通过所述两个相邻结点中的输出结点输出所述第二数据。
在上述第二方面一种可能的实现中,所述计算条件为占用的存储空间最小。
本申请实施例第三方面提供一种电子设备,包括:
存储器,用于存储由所述电子设备的一个或多个处理器执行的指令和数据;
处理器,是所述电子设备的所述一个或多个处理器之一,用于执行所述神经网络模型计算方法。
本申请实施例第四方面提供一种计算机存储介质,所述计算机存储介质上存储有指令,所述指令在执行时使计算机执行所述神经网络模型计算方法。
附图说明
图1根据本申请的一些实施例,示出了一种神经网络模型的应用场景图;
图2根据本申请的一些实施例,示出了一种神经网络模型中两个相邻结点间的分支示意图;
图3根据本申请的一些实施例,示出了一种电子设备的结构示意图;
图4根据本申请一些实施例,示出了一种神经网络模型计算方法的流程示意图;
图5根据本申请一些实施例,示出了一种神经网络模型计算方法的流程示意图;
图6根据本申请的一些实施例,示出了一种对神经网络模型中两个相邻结点间的分支进行算子融合的示意图;
图7根据本申请的一些实施例,示出了一种对神经网络模型中两个相邻结点间的分支进行算子融合的示意图。
具体实施方式
如前所述,现有技术中的神经网络模型一般计算内存占用都较大,难以应用于内存较小的电子设备中。
例如,如图1所示的智能音箱30,能够按照用户的语音指令播放对应的音乐。其中,在智能音箱30内部一般需要多个神经网络模型20,例如,对用户进行语音识别的语音识别模型和对用户进行人脸识别的人脸模型等,上述模型占用内存一般都较大,而智能音箱30的内存一般较小,因此在很多情况下难以在智能音箱30中正常运行。
为解决上述问题,本申请实施例提供了一种神经网络模型计算方法,能够对神经网络的所有相邻结点间的多种计算序列的占用内存进行计算,从而将占用内存最小的计算序列作为相邻结点间的计算系列。该方案能够有效降低任意两个结点间的内存占用,进而能够降低整个神经网络模型的内存占用,使得神经网络能够更好的应用于多种内存较小的电子设备中。
在一些实施例中,如图1所示,上述神经网络模型计算方法可以由服务器10执行,即可以通过服务器10对神经网络进行优化,并将优化后的神经网络模型发送至电子设备中,例如图1中所示的智能音箱30中。
在一些实施例中,上述神经网络模型计算方法可以由电子设备的处理器执行,例如智能音箱30的处理器执行。例如,若上述语音识别模型在首次部署到智能音箱30的时候,智能音箱30的处理器将执行上述神经网络模型计算方法以实现对语音识别模型进行优化。从而,在后续可采用优化后的语音识别模型进行语音识别,能够有效降低语音识别模型在智能音箱30中的占用内存。
在一些实施例中,若上述语音识别模型进行了升级和更新,获取了新的语音识别模型,则智能音箱30的处理器与也会执行上述神经网络模型计算方法以实现对新的语音识别模型进行优化。
本申请实施例中,上述获取神经网络中任意两个结点间的多个计算序列中占用内存最小的计算序列的方法可以为:对神经网络中任意两个结点间多个分支进行计算顺序的排序,可以获取多个计算序列,然后获取每个计算序列所需占用的内存,从而确定出占用内存最小的计算序列。
例如,如图2所示,结点A和结点B分别为神经网络中的其中两个相邻的结点,其中,如图2所示,结点A和结点B之间具有分支i和分支k两个分支,分支i上具有两个子结点i1和i2,分支k上具有两个子结点k1和k2。本申请实施例中提供的计算方法可以首先获取结点A和结点B之间的所有可实施的计算序列,具体的,结点A和结点B之间的所有可实施的计算序列包括两种,一种是先计算分支k再计算分支i;另一种是先计算分支i再计算分支k。然后对这两种可实施的计算序列所需占用的内存进行对比,从而确定出占用内存最小的计算序列作为结点A和结点B间的计算序列。
具体的,如图2中所示,如果先计算分支k,然后再计算分支i,那么最大内存占用将出现在计算k2时。此时,子结点k2内存占用情况为:输入占用1MB,输出占用1MB,共2MB;另外考虑到在计算分支k的时候,结点A的输出占用需要一直保留给分支i计算,因此,计算最大内存占用的子结点k1需要分配的内存为子结点k2的本身占用内存2MB和需要一直保留给分支i计算的结点A的占用内存0.5MB,共2.5MB。即该计算序列需要分配的最大内存为2.5MB。
而如果先计算分支i,然后再计算分支k,那么最大内存占用将出现在计算完分支i后计算分支k的子结点k1时。此时,子结点k2内存占用情况为:输入占用1MB,输出占用1MB,共2MB;另外考虑到在计算分支k的时候,子结点i2的输出占用0.125MB需要保存给结点B,因此,在计算最大内存占用的子结点k2需要分配的内存为子结点k2的本身占用内存2MB和需要一直保留给结点B计算的子结点i2的占用内存0.125MB,共2.125MB。即该计算序列需要分配的最大内存为2.125MB。
根据上述对比,可以确定出占用内存最小的计算序列为先计算分支i然后再计算分支k。如此,可以将先计算分支i然后再计算分支k的计算序列作为结点A和结点B之间的最终计算序列。
可以理解,现有电子设备中应用的神经网络模型一般都如图1中所示的神经网络20模型一样,存在多个结点。其中,本申请实施例提供的神经网络模型计算方法可以用于神经网络中任意两个相互连接的相邻结点中。
下面在详细介绍本申请实施例提供的神经网络模型计算方法之前,首先对本申请实施例提供的电子设备进行介绍。可以理解,本申请实施例提供的电子设备可以执行本申请实施例提及的神经网络模型计算方法。
可以理解,本申请实施例提及的电子设备可以为智能耳机,智能音箱30,无人机等计算内存较小的设备,当然也可以为为膝上型计算机、台式计算机、平板计算机及智能手机等内存相对较大的设备。
为了便于介绍,现在以电子设备为智能音箱30为例进行说明。
如图3所示,智能音箱30可以包括处理器110、电源模块140、存储器180、无线通信模块120、传感器模块190、音频模块150、摄像头170、接口模块160、按键101以及显示屏102等。
可以理解的是,本发明实施例示意的结构并不构成对智能音箱30的具体限定。在本申请另一些实施例中,智能音箱30可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP、微处理器MCU(Micro-programmed Control Unit)、AI(ArtificialIntelligence,人工智能)处理器或可编程逻辑器件FPGA(Field Programmable GateArray)等的处理模块或处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器110中可以设置存储单元,用于存储指令和数据。在一些实施例中,处理器110中的存储单元为高速缓冲存储器180。可以理解,本申请实施例中,处理器110可以用于执行本申请实施例提及的神经网络模型计算方法。
电源模块140可以包括电源、电源管理部件等。电源可以为电池。电源管理部件用于管理电源的充电和电源向其他模块的供电。在一些实施例中,电源管理部件包括充电管理模块和电源管理模块。充电管理模块用于从充电器接收充电输入;电源管理模块用于连接电源,充电管理模块与处理器110。电源管理模块接收电源和/或充电管理模块的输入,为处理器110,显示屏102,摄像头170,及无线通信模块120等供电。
无线通信模块120可以包括天线,并经由天线实现对电磁波的收发。无线通信模块120可以提供应用在手机10上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。手机10可以通过无线通信技术与网络以及其他设备进行通信。
显示屏102用于显示电量、播方的歌曲名称等。显示屏102包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlight emitting diodes,QLED)等。
传感器模块190可以包括接近光传感器、压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
音频模块150用于将数字音频信息转换成模拟音频信号输出,或者将模拟音频输入转换为数字音频信号。音频模块150还可以用于对音频信号编码和解码。在一些实施例中,音频模块150可以设置于处理器110中,或将音频模块150的部分功能模块设置于处理器110中。在一些实施例中,音频模块150可以包括扬声器、听筒、麦克风以及耳机接口。
摄像头170用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP(Image SignalProcessing,图像信号处理)转换成数字图像信号。手机10可以通过ISP,摄像头170,视频编解码器,GPU(Graphic Processing Unit,图形处理器),显示屏102以及应用处理器等实现拍摄功能。
接口模块160包括外部存储器接口、通用串行总线(universal serial bus,USB)接口等。
在一些实施例中,智能音箱30还包括按键101、马达以及指示器等。其中,按键101可以包括音量键、开/关机键等。马达用于使手机10产生振动效果,例如在用户的手机10被呼叫的时候产生振动,以提示用户接听手机10来电。指示器可以包括激光指示器、射频指示器、LED指示器等。
下面结合上述智能音箱30对本申请实施例一种神经网络模型计算方法进行详细叙述。
图4以神经网络中的其中两个相邻的结点间的计算序列优化为例,示出了本申请实施例提供的神经模型优化方法的流程示意图。其中,本申请实施例提供的神经模型优化方法可以智能音箱30的处理器执行,如图4所示,本申请实施例提供的神经网络模型计算方法包括:
401:获取A结点和结点B之间的所有分支。
可以理解,本申请实施例中只是以神经网络模型中的两个相邻的结点A和结点B举例说明本申请实施例提供的神经网络模型计算方法,本申请实施例提供的神经网络模型计算方法包括对神经网络模型中每两个相邻的结点之间的计算序列均进行优化。
其中,神经网络模型中每两个结点间均具有至少一个分支,每个分支上均设有至少一个子结点,每个子结点可以认为是包括至少一个数据处理步骤。
可以理解,当神经网络模型部署到智能音箱30等电子设备时,智能音箱30等电子设备的处理器可以获取神经网络模型中每两个相邻结点间的分支。
例如,如图2中所示,当神经网络模型部署到智能音箱30等电子设备时,智能音箱30等电子设备的处理器可以获取到结点A和结点B之间具有两个分支,分别为i分支和k分支。
402:基于所有分支获取第一结点和第二结点之间的计算序列集合。
可以理解,本申请实施例中提及的计算序列集合包括第一结点和第二结点之间的所有计算序列。
例如,如上述图2中所示,结点A和结点B之间具有两个分支,分别为分支i和分支k。结点A和结点B之间的所有的计算序列包括两种,一种是先计算分支k再计算分支i,另一种是先计算分支i再计算分支k。即结点A和结点B之间的计算序列集合包括先计算分支k再计算分支i和先计算分支i再计算分支k。
可以理解,本申请实施例中,若两个相邻结点间具有三个分支,则计算序列结合中应该有六个计算序列。例如,两个相邻结点间的三个分支分别为a分支,b分支和c分支,则两个相邻结点间的计算序列集合包括a-b-c,a-c-b,b-a-c,b-c-a,c-a-b,c-b-a,其中a-b-c表示,先计算a分支,再计算b分支,后计算c分支。其中五种计算序列的解释与a-b-c的解释一致,此处不再赘述。
可以理解,本申请实施例中,若两个相邻结点间只有一个分支,则计算序列集合中也只有一个计算序列。
403:将计算序列集合中占用内存最小的计算序列作为第一结点和第二结点间的计算序列。
本申请实施例中,确定计算序列集合中每个计算序列所需的内存的方法可以为:
通过处理器读取每个结点的占用内存,其中每个结点的占用内存可以包括输入占用内存和输出占用内存,然后确定出每个计算序列在计算过程中占用内存最大的结点在计算时所需分配的内存,将占用内存最大的结点在计算时所需分配的内存作为该计算序列所需占用的或所需分配的内存。随后将多个计算序列的所需占用的内存进行对比,确定出占用内存最小的计算序列,并将占用内存最小的计算序列作为第一结点和第二结点间的计算序列。
例如,如图2所示,结点A和结点B之间具有两个分支,分别为分支i和分支k,分支i上具有两个子结点i1和i2,分支k上具有两个子结点k1和k2;当神经网络安装入智能音箱30等电子设备时,音响等电子设备的处理器可以读取每个分支上子结点在计算过程中的内存占用情况。其中子结点i1的占用内存情况包括:输入占用0.5MB,输出占用0.5MB;子结点i2的占用内存情况包括:输入占用0.5MB,输出占用0.125MB;子结点k1的占用内存情况包括:输入占用0.5MB,输出占用1MB;子结点k2的占用内存情况包括:输入占用1MB,输出占用1MB。
如前所述,结点A和结点B之间的所有的计算序列包括两种,一种是先计算k分支,再计算i分支,另一种是先计算i分支再计算k分支。
其中,如果先计算分支k,然后再计算分支i,那么最大内存占用将出现在计算k2时。此时,子结点k2内存占用情况为:输入占用1MB,输出占用1MB,共2MB;另外考虑到在分支k的时候,结点A的输出占用需要一直保留给分支i计算,因此,在计算最大内存占用的子结点k2时需要分配的内存为子结点k2的本身占用内存2MB和需要一直保留给分支i计算的结点A的占用内存0.5MB,共2.5MB。即该计算序列需要分配的最大内存为2.5MB。
而如果先计算分支i,然后再计算分支k,那么最大内存占用将出现在计算完分支i后计算分支k的子结点k2时。此时,子结点k2内存占用情况为:输入占用1MB,输出占用1MB,共2MB;另外考虑到在分支k的时候,子结点i2的输出占用0.125MB需要保存给结点B,因此,在计算最大内存占用的子结点k2时需要分配内存为子结点k2的本身占用内存2MB和需要一直保留给结点B计算的子结点i2的占用内存0.125MB,共2.125MB。即该计算序列需要分配的最大内存为2.125MB。
根据上述对比,可以确定出占用内存最小的计算序列为先计算分支i,然后再计算分支k。如此,可以将先计算分支i,然后再计算分支k的计算序列作为结点A和结点B之间的最终计算序列。
同理,神经网络模型中每两个结点间的计算序列都可以通过本申请实施例提供的神经网络模型计算方法进行调整,因此,本申请实施例提供的神经网络模型优化能够降低神经网络模型中所有相邻结点间的计算内存,进而能够降低整个神经网络的计算内存。
在一些实施例中,若相邻结点间的某些分支上具有大于等于两个的子结点,本申请实施例提供的模型优化方法在对上述相邻结点间的计算内存进行各分支间的计算顺序进行排序之前,还可以对每个分支的各个子结点进行算子融合以降低该分支的计算内存。其中,算子融合可以将占用内存较大的子结点与两端占用内存较小的子结点进行融合计算以获取占用内存较小的新的子结点,从而降低整个分支的计算内存。例如,若相邻两结点间的某分支具有三个子结点,第二字子结点的占用内存较大,将第二个子结点与输入端的第一个子结点以及输出端的第二个子结点融合获取新的子结点后,新的子结点的输入内存将是第一个子结点的输入内存,新的子结点的输出内存将是第三个子结点的输出内存,因此,新的子结点的占用内存远小于第二个子结点的占用内存。具体的,如图5所示,神经网络模型计算方法可以包括:
501:获取第一结点和第二结点之间的每个分支。
其中,该步骤与前述步骤401一致,此处不再赘述。
502:判断是否存在都具有大于等于两个子结点的分支;若存在,证明存在有些分支上的子结点可以进行算子融合以降低该分支的内存,则转至503:对该分支上的子结点进行算子融合。若不存在,则证明没有需要算子融合处理的分支,则转至504,直接获取第一结点和第二结点之间的计算序列集合。
503:对所有分支中大于等于两个子结点的分支进行算子融合,其余分支保持原始状态。
其中,将所有分支中具有大于等于两个子结点的分支进行算子融合的方法可以包括:首先,获取每个分支上的占用内存最大的子结点,然后将占用内存最大的子结点向两端延伸符合占用内存大小降序排序的子结点与该占用内存最大的子结点进行算子融合。然后将融合后的算子作为一个新的子结点,例如,可以定义为融合子结点,该融合子结点具有新的占用内存,即融合后的占用内存。
然后将该融合子结点与其他未融合的子结点重新进行对比,再次获取占用内存最大的子结点,并将再次获取的占用内存最大的子结点向两端延伸符合占用内存大小降序排序的子结点与该再次获取的占用内存最大的子结点进行算子融合,将融合后的算子作为一个新的子结点,重复上述步骤,直至将所有的算子进行融合完毕。即将该分支上的多个子结点可以最终融合为一个子结点。
例如,在一些实施例中,若两个相邻的结点间的某分支具有五个子结点依次为L1,L2,L3,L4,L5;若第三个子结点的L3占用内存最大,第二个子结点L2的占用内存小于第三个子结点的L3的占用内存,第四个子结点L4的占用内存小于第三个子结点的L3的占用内存,第一个子结点L1的占用内存大于第二个子结点的L2的占用内存,第五个子结点L5的占用内存大于第四个子结点的L4的占用内存。
其中,第四个子结点L4和第二个子结点L2满足与第三个子结点的L3向两端延伸降序排序的要求,则可以将第四个子结点L4和第二个子结点L2与第三个子结点的L3进行算子融合获取融合子结点L0。因第一个子结点L1的占用内存大于第二个子结点的L2占用内存,第五个子结点L5的占用内存小于第四个子结点的L4的占用内存,第五个子结点L5和第一个子结点L1已经不满足最大子结点向两端延伸占用内存逐渐降低的规律,因此,不将第一个子结点L1与第五个子结点L5与第四个子结点L4和第二个子结点L2以及第三个子结点的L3进行融合。在第四个子结点L4和第二个子结点L2与第三个子结点的L3进行算子融合获取融合子结点L0后,将第一个子结点L1与第五个子结点L5以及融合子结点L0重新进行占用内存的大小对比,重新按照上述步骤进行算子融合。
其中,若上述占用内存最大的子结点的数量由不止一个,例如两个,则可以任选其中一个作为占用内存最大的子结点。
为了更充分的理解上述算子融合的方法,下面举例说明:
例如,一个分支上具有三个子结点,第二个子结点的占用内存较大,则可以直接将第二个子结点之前的子结点与之后的子结点进行算子融合。
例如,如图6所示,结点A和结点B之间包括两个分支,分别为分支m和分支n。其中,分支n包括两个子结点,分支m包括三个子结点,可以分别对分支m和分支n进行算子融合。
如图6所示,m分支的三个子结点的内存占用情况分别为:子结点m1的占用内存情况包括:输入占用0.5MB,输出占用1MB;子结点m2的占用内存情况包括:输入占用1MB,输出占用1MB;子结点m3的占用内存情况包括:输入占用1MB,输出占用0.125MB。
其中占用内存最大的结点为子结点m2,共需占用2MB,此时若将子结点m2前的子结点m1和子结点m2后的子结点m3进行融合,则融合后的融合子结点m0的占用内存为输入需要占用0.5MB,输出占用0.125MB,共0.625MB。此时,若再考虑保留结点A的输出结果作为结点B的一个输入,需要占用0.5MB,则分支m所需占用的内存为融合子结点m0的占用内存0.625MB和保留结点A的输出结果需要占用的内存0.5MB,共1.125MB。
而如果不通过神经网络算子的融合,直接计算m分支,那么最大内存占用将出现在计算子结点m2。此时,子结点m2的输入需要占用1MB,输出占用1MB;此时,若再考虑保留结点A的输出结果作为结点B的一个输入,需要占用0.5MB,则分支m所需占用的内存为子结点m2的占用内存2MB和保留结点A的输出结果需要占用的内存0.5MB,共2.5MB。
从上述对比可以看出,采用算子融合的方法能够有效降低神经网络模型中两个相邻结点间的一些分支的内存占用。
如图6所示,n分支的两个子结点的内存占用情况分别为:子结点n1的占用内存情况包括:输入占用0.5MB,输出占用0.5MB;子结点n2的占用内存情况包括:输入占用0.5MB,输出占用1MB。
可以理解,在一些实施例中,n分支可以采用上述m分支的融合方法,例如,先找出占用内存最大的结点,然后将内存最大的子结点与两端的子结点进行融合。在一些实施例中,具有两个子结点的分支也可以直接进行算子融合,如图6所示,将子结点n1和子结点n2直接进行算子融合后获取融合子结点n0,融合后的子结点n0的本身占用内存为输入需要占用0.5MB,输出占用1MB,共1.5MB。
而n分支若不进行算子融合处理,直接计算n分支,那么最大内存占用将出现在计算子结点n2。此时,子结点n2的输入需要占用0.5MB,输出占用1MB。
从上述对比可以看出,n分支在进行算子融合后所需占用的最大内存与进行算子融合前一致,因此,上述n分支的两个子结点也可以不用进行算子融和。
可以理解,在一些实施例中,具有多个子结点的分支在一些情况下也可以不需进行算子融合,例如,在上述进行算子融合后所占用内存不会减小的情形下。可以理解,在一些实施例中,若某分支上的子结点存在难以融合的情形,上述分支上的子结点也可以根据实际情况不进行算子融合。
可以理解,本申请实施例中,在步骤602中进行过算子融合的分支可以获取只有一个融合子结点的新分支。
在一些实施例中,若神经网络模型中其中两个相邻结点间只有一个分支,则可以直接采用算子融合方法对该分支进行算子融合,降低该分支的计算内存。无需进行后续获取计算序列集合以及确定占用内存最小的计算序列的相关步骤。
例如,如图7中所示,若结点A和结点B之间的分支只包括上述分支m,不包括分支n,则可以直接采用上述算子融合方法对分支m进行算子融合,如上所示,融合后计算分支m所需占用的内存为0.625MB,而不进行算子融合分支m所需占用的内存为2MB,对比可知,该算子融合方法能够有效降低神经网络模型中两个相邻结点间分支的内存占用。
504:获取第一结点和第二结点之间的计算序列集合。
本申请实施例中,第一结点间和第二结点间的计算序列集合的获取与步骤402中基本相同,此处不再赘述。其不同在于,此步骤中用于获取计算序列集合的某些分支可能进行过算子融合。
例如,如图6中所示,此时结点A和结点B之间的所有的计算序列仍然包括两种,一种是先计算n分支,再计算m分支,另一种是先计算m分支再计算n分支。此时的m分支为进行过算子融合的分支,m分支上只有一个融合子结点m0。
505:将计算序列集合中占用内存最小的计算序列作为第一结点和第二结点间的计算序列。
本申请实施例中,确定计算序列集合中每个计算序列所需的内存的方法与步骤403中一致,可以为:
通过处理器读取每个结点的占用内存,其中每个结点的占用内存可以包括输入占用内存和输出占用内存,然后确定出每个计算序列在计算过程中占用内存最大的结点在计算时所需分配的内存,将占用内存最大的结点在计算时所需分配的内存作为该计算序列所需占用的或所需分配的内存。随后将多个计算序列的所需占用的内存进行对比,确定出占用内存最小的计算序列,并将占用内存最小的计算序列作为第一结点和第二结点间的计算序列。
例如,如前所述,如图6中所示结点A和结点B之间的所有的计算序列包括两种,一种是先计算n分支,再计算m分支,另一种是先计算m分支再计算n分支。
其中,如果先计算分支n,然后再计算分支m,那么最大内存占用将出现在计算n2时。此时,子结点n2内存占用情况为:输入占用0.5MB,输出占用1MB,共1.5MB;另外考虑到在分支n的时候,结点A的输出占用需要一直保留给分支m计算,因此,在计算最大内存占用的子结点n2时所需要分配的内存为子结点n2的本身占用内存1.5MB和需要一直保留给分支m计算的结点A的占用内存0.5MB,共2MB。即该计算序列需要分配的最大内存为2MB。
而如果先计算分支m,然后再计算分支n,那么最大内存占用将出现在计算完分支m后计算分支n的子结点n2时。此时,子结点n2内存占用情况为:输入占用0.5MB,输出占用1MB,共1.5MB;另外考虑到在分支n的时候,融合子结点m0的输出占用0.125MB需要保存给结点B,因此,在计算最大内存占用的子结点n2需要分配的内存为子结点n2的本身占用内存1.5MB和需要一直保留给结点B计算的融合点m0的占用内存0.125MB,共1.625MB。即该计算序列需要分配的最大内存为1.625MB。
根据上述对比,可以确定出占用内存最小的计算序列为先计算分支m,然后计算分支n。如此,可以将先计算分支m然后再计算分支n的计算序列作为结点A和结点B之间的最终计算序列,该计算序列所需占用的内存为1.625MB。
相反,若事先不进行算子融合,则确定出结点A和结点B之间的计算序列的方式和所需占用内存如下:
如果先计算分支n,然后再计算分支m,那么最大内存占用将出现在计算完分支n后计算分支m的子结点m2时。此时,子结点m2内存占用情况为:输入占用1MB,输出占用1MB,共2MB;另外考虑到在分支m的时候,子结点n2的输出占用1MB需要一直保留给结点B计算,因此,在计算最大内存占用的子结点m2时所需要分配的内存为子结点n1的本身占用内存2MB和需要一直保留给结点B计算的子结点n2的输出占用内存1MB,共3MB。即该计算序列需要分配的最大内存为3MB。
而如果先计算分支m,然后再计算分支n,那么最大内存占用将出现在计算分支m的子结点m2时。此时,子结点m2内存占用情况为:输入占用1MB,输出占用1MB,共2MB;另外考虑到在分支m的时候,结点A的输出占用0.5MB需要保存给结点n进行计算,因此,在n计算最大内存占用的子结点m2时需要分配的内存为子结点m2的本身占用内存2MB和需要保留给结点n进行计算的结点A的输出占用0.5MB,共2.5MB。即该计算序列需要分配的最大内存为2.5MB。
根据上述对比,可以确定出占用内存最小的计算序列为先计算分支m,然后计算分支n。如此,可以将先计算分支m然后再计算分支n的计算序列作为结点A和结点B之间的最终计算序列。
根据上述对比,若事先不进行算子融合,可以确定出占用内存最小的计算序列为先计算分支m,然后计算分支n,该计算序列所需占用的内存为2.5MB。
因此,根据对分支进行算子融合处理和不进行算子融合处理的对比情况来看,进行算子融合处理再进行计算序列的确能够有效降低神经网络模型中相邻结点间的计算内存占用。
本申请实施例提供了一种神经网络模型计算方法,能够对神经网络的所有相邻结点间的多种计算序列的占用内存进行计算,从而将占用内存最小的计算序列作为相邻结点间的计算系列。且对神经网络的相邻结点间的多种计算序列的占用内存进行计算之前还可以对具有两个及以上计算结点的分支进行算子融合。上述方案能够有效降低任意两个结点间的内存占用,进而能够降低整个神经网络模型的内存占用,使得神经网络能够更好的应用于多种内存较小的电子设备中。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
本申请实施例还提供了一种计算机程序或包括计算机程序的一种计算机程序产品,该计算机程序在某一计算机上执行时,将会使所述计算机实现上述语音指令执行方法。可实施的,计算机程序产品可以包括指令,所述指令用于实现上述神经网络模型计算方法。
本申请实施例还提供一种片上系统,片上系统可以包括:通信接口,用于输入和/或输出信息;处理器,用于执行计算机可执行程序,使得安装有所述片上系统的设备执行上述神经网络模型计算方法。其中片上系统还可以包括互连单元,其被耦合至应用处理器;系统代理单元;集成存储器控制器单元;一组或一个或多个协处理器,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元;直接存储器存取(DMA)单元。在一个实施例中,协处理器包括专用处理器,诸如例如网络或通信处理器、压缩引擎、高吞吐量MIC处理器、或嵌入式处理器等等。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
Claims (8)
1.一种神经网络模型计算方法,其特征在于,包括:
获取神经网络模型中两个相邻结点之间的多个计算分支;
对所述两个相邻结点之间的多个计算分支中大于等于两个子结点的计算分支进行算子融合处理;
确定经过算子融合处理后的多个计算分支的多个计算序列,其中所述计算序列表示在执行所述两个相邻结点之间的计算中所述多个计算分支的执行顺序;
计算以各所述计算序列执行所述多个计算分支所占用的存储空间;
将占用的存储空间满足计算条件的计算序列作为执行所述两个相邻结点之间的计算中所述多个计算分支的计算序列;
执行以下步骤对所述两个相邻结点之间的多个计算分支中大于等于两个子结点的计算分支进行算子融合处理:
获取所述大于等于两个子结点的计算分支上的占用存储空间最大的第一子结点;
将所述第一子结点向两端延伸的各子结点中符合占用存储空间大小降序排序的子结点与所述第一子结点进行算子融合处理,获取第一融合子结点;
将所述融合子结点占用的存储空间与所述大于等于两个子结点的计算分支上的未与第一子结点融合的其他各子结点占用的存储空间进行对比,获取占用存储空间最大的第二子结点;
将所述第二子结点向两端延伸的各子结点中符合占用存储空间大小降序排序的子结点与所述第二子结点进行算子融合处理,获取第二融合子结点。
2.根据权利要求1所述的神经网络模型计算方法,其特征在于,所述计算条件为占用的存储空间最小。
3.根据权利要求1所述的神经网络模型计算方法,其特征在于,
所述计算以各所述计算序列执行所述多个计算分支所占用的存储空间;包括:
获取以各所述计算序列执行所述多个计算分支时每个计算分支上各子结点占用的存储空间;
确定出以各所述计算序列执行所述多个计算分支时占用存储空间最大的子
结点;
将以各所述计算序列执行所述多个计算分支时占用存储空间最大的子结点在计算时所需占用的存储空间作为以对应的计算序列执行所述多个计算分支所占用的存储空间。
4.根据权利要求2所述的神经网络模型计算方法,其特征在于,
以各所述计算序列执行所述多个计算分支时每个计算分支上各子结点占用
的存储空间包括输入数据所需占用的存储空间和输出数据所需占用的存储空间。
5.一种数据处理方法,其特征在于,包括:
将第一数据输入神经网络模型中两个相邻结点中的输入结点,其中,所述两个相邻结点之间存在多个计算分支,所述两个相邻结点之间的多个计算分支中大于等于两个子结点的计算分支为进行算子融合处理的计算分支;
其中,对所述两个相邻结点之间的多个计算分支中大于等于两个子结点的计算分支进行算子融合处理是执行以下步骤得到的:
获取所述大于等于两个子结点的计算分支上的占用存储空间最大的第一子结点;
将所述第一子结点向两端延伸的各子结点中符合占用存储空间大小降序排序的子结点与所述第一子结点进行算子融合处理,获取第一融合子结点;
将所述融合子结点占用的存储空间与所述大于等于两个子结点的计算分支上的未与第一子结点融合的其他各子结点占用的存储空间进行对比,获取占用存储空间最大的第二子结点;
将所述第二子结点向两端延伸的各子结点中符合占用存储空间大小降序排序的子结点与所述第二子结点进行算子融合处理,获取第二融合子结点;按照经过算子融合处理后的多个计算分支的第一计算序列,通过所述多个计算分支对所述第一数据进行计算,得到第二数据,其中,所述多个计算分支具有多个计算序列,所述计算序列表示在执行所述两个相邻结点之间的计算中所述多个计算分支的执行顺序,并且所述第一计算序列为所述多个计算序列中满足计算条件的计算序列;
通过所述两个相邻结点中的输出结点输出所述第二数据。
6.根据权利要求5所述的数据处理方法,其特征在于,所述计算条件为占用的存储空间最小。
7.一种电子设备,其特征在于,包括:
存储器,用于存储由所述电子设备的一个或多个处理器执行的指令和数据;
处理器,是所述电子设备的所述一个或多个处理器之一,用于执行权利要求1-4中任一项所述神经网络模型计算方法。
8.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有指令,所述指令在执行时使计算机执行权利要求1至4中任一项所述神经网络模型计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111011683.7A CN113657584B (zh) | 2021-08-31 | 2021-08-31 | 神经网络模型计算方法、数据处理方法、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111011683.7A CN113657584B (zh) | 2021-08-31 | 2021-08-31 | 神经网络模型计算方法、数据处理方法、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113657584A CN113657584A (zh) | 2021-11-16 |
CN113657584B true CN113657584B (zh) | 2024-04-09 |
Family
ID=78493351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111011683.7A Active CN113657584B (zh) | 2021-08-31 | 2021-08-31 | 神经网络模型计算方法、数据处理方法、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113657584B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835900B (zh) * | 2021-11-26 | 2022-02-22 | 山东产研鲲云人工智能研究院有限公司 | 神经网络计算方法、装置、设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014203431A (ja) * | 2013-04-10 | 2014-10-27 | 日本電信電話株式会社 | 部分木併合装置、部分木併合方法および部分木併合プログラム |
CN109754073A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
CN109902819A (zh) * | 2019-02-12 | 2019-06-18 | Oppo广东移动通信有限公司 | 神经网络计算方法、装置、移动终端及存储介质 |
CN110321998A (zh) * | 2018-03-31 | 2019-10-11 | 北京深鉴智能科技有限公司 | 卷积神经网络实现方法、装置、加速设备、存储介质 |
CN110378413A (zh) * | 2019-07-17 | 2019-10-25 | Oppo广东移动通信有限公司 | 神经网络模型处理方法、装置以及电子设备 |
CN112711422A (zh) * | 2020-12-31 | 2021-04-27 | 北京清微智能科技有限公司 | 一种神经网络编译的优化方法及系统 |
CN112990421A (zh) * | 2019-12-02 | 2021-06-18 | 杭州海康威视数字技术股份有限公司 | 优化深度学习网络的运行过程的方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8270691B2 (en) * | 2007-10-09 | 2012-09-18 | Siemens Aktiengesellschaft | Method for fusing images acquired from a plurality of different image acquiring modalities |
US20190392296A1 (en) * | 2019-06-28 | 2019-12-26 | John Brady | Hardware agnostic deep neural network compiler |
KR20210043295A (ko) * | 2019-10-11 | 2021-04-21 | 삼성전자주식회사 | 뉴럴 네트워크의 데이터를 양자화하는 방법 및 장치 |
US20210182036A1 (en) * | 2019-12-12 | 2021-06-17 | Huawei Technologies Co., Ltd. | Hardware platform specific operator fusion in machine learning |
-
2021
- 2021-08-31 CN CN202111011683.7A patent/CN113657584B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014203431A (ja) * | 2013-04-10 | 2014-10-27 | 日本電信電話株式会社 | 部分木併合装置、部分木併合方法および部分木併合プログラム |
CN110321998A (zh) * | 2018-03-31 | 2019-10-11 | 北京深鉴智能科技有限公司 | 卷积神经网络实现方法、装置、加速设备、存储介质 |
CN109754073A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
CN109902819A (zh) * | 2019-02-12 | 2019-06-18 | Oppo广东移动通信有限公司 | 神经网络计算方法、装置、移动终端及存储介质 |
CN110378413A (zh) * | 2019-07-17 | 2019-10-25 | Oppo广东移动通信有限公司 | 神经网络模型处理方法、装置以及电子设备 |
CN112990421A (zh) * | 2019-12-02 | 2021-06-18 | 杭州海康威视数字技术股份有限公司 | 优化深度学习网络的运行过程的方法、装置及存储介质 |
CN112711422A (zh) * | 2020-12-31 | 2021-04-27 | 北京清微智能科技有限公司 | 一种神经网络编译的优化方法及系统 |
Non-Patent Citations (3)
Title |
---|
Glow: Graph Lowering Compiler Techniques for Neural Networks;Nadav Rotem 等;《Glow: Graph Lowering Compiler Techniques for Neural Networks》;全文 * |
Research on semi-supervised multi-graph classification algorithm based on MR- MGSSL for sensor network;Yang Gang 等;《https://doi.org/10.1186/s13638-020-01745-x》;全文 * |
基于快速神经网络架构搜索的鲁棒图像水印网络算法;王小超 等;《浙江大学学报(理学版)》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113657584A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111114554B (zh) | 行驶轨迹预测方法、装置、终端及存储介质 | |
CN113657584B (zh) | 神经网络模型计算方法、数据处理方法、电子设备及介质 | |
CN116775915A (zh) | 资源推荐方法、推荐预测模型训练方法、装置及设备 | |
CN112416294B (zh) | 处理器及其二进制累加方法和计算机可读介质 | |
CN113569705B (zh) | 场景分割点判断方法、系统、存储介质及电子设备 | |
CN111915689B (zh) | 用于生成目标函数的方法、装置、电子设备和计算机可读介质 | |
CN112673367A (zh) | 用于预测用户意图的电子设备和方法 | |
CN115098262B (zh) | 一种多神经网络任务处理方法及装置 | |
CN113419702B (zh) | 一种数据累加方法、处理器、电子设备及可读介质 | |
CN114510911B (zh) | 文本处理方法、装置、计算机设备及存储介质 | |
CN116340632A (zh) | 对象推荐方法、装置、介质及电子设备 | |
CN117793361A (zh) | 数据编码和数据解码的方法、装置、设备 | |
CN115357230A (zh) | 用于寄存器溢出的编译方法、电子设备和介质 | |
CN113760380B (zh) | 网络模型的运行代码的确定方法、装置、设备及存储介质 | |
CN114881221A (zh) | 映射方案优化方法及装置、电子设备、可读存储介质 | |
CN116432737A (zh) | 基于深度学习的模型压缩训练的方法、装置和设备 | |
CN115705482A (zh) | 模型量化方法、装置、计算机设备及存储介质 | |
CN114416863A (zh) | 用于执行基于模型并行的分布式推理的方法、设备和介质 | |
US20220245423A1 (en) | Electronic device, user terminal, and method for running scalable deep learning network | |
US20230214646A1 (en) | Method and system for searching deep neural network architecture | |
CN111814807B (zh) | 用于处理图像的方法、装置、电子设备和计算机可读介质 | |
CN115409044B (zh) | 翻译方法、装置、可读介质及电子设备 | |
CN116029337A (zh) | 一种数据处理方法、片上系统、电子设备及介质 | |
US20240037412A1 (en) | Neural network generation device, neural network control method, and software generation program | |
CN118940097A (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 |