CN116432736A - 神经网络模型优化方法、装置及计算设备 - Google Patents
神经网络模型优化方法、装置及计算设备 Download PDFInfo
- Publication number
- CN116432736A CN116432736A CN202111673491.2A CN202111673491A CN116432736A CN 116432736 A CN116432736 A CN 116432736A CN 202111673491 A CN202111673491 A CN 202111673491A CN 116432736 A CN116432736 A CN 116432736A
- Authority
- CN
- China
- Prior art keywords
- sub
- graph
- neural network
- subgraph
- network model
- 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.)
- Pending
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 259
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000005457 optimization Methods 0.000 title claims abstract description 51
- 238000012545 processing Methods 0.000 claims abstract description 106
- 230000006870 function Effects 0.000 claims description 51
- 238000013507 mapping Methods 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000012549 training Methods 0.000 description 108
- 238000013528 artificial neural network Methods 0.000 description 51
- 239000011159 matrix material Substances 0.000 description 41
- 238000011176 pooling Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 26
- 238000013527 convolutional neural network Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 21
- 210000002569 neuron Anatomy 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 11
- 238000013138 pruning Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 230000017105 transposition Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
公开了神经网络模型优化方法、装置及计算设备,涉及人工智能领域。方法包括:计算设备获取到待优化神经网络模型,用子图集包含的子图与待优化神经网络模型包含的算子可能构成的子图进行匹配。若计算设备匹配到待优化神经网络模型中第一子图,用子图集中与第一子图等价的第二子图替换第一子图,得到优化后神经网络模型。优化后神经网络模型包含第二子图。第二子图对输入数据的处理效率大于第一子图对输入数据的处理效率。从而,在确保神经网络模型处理数据的精度无损的前提下,显著地缩短神经网络模型处理数据的时长。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种神经网络模型优化方法、装置及计算设备。
背景技术
人工智能(Artificial Intelligence,AI)是利用计算机模拟和扩展人的智能,感知环境、获取知识并使用知识获得结果的理论、方法、技术及应用系统。人工智能技术广泛应用于机器学习(Machine Learning,ML)、自然语言处理、计算机视觉、决策与推理、人机交互、推荐与搜索和AI基础理论等领域。基于神经网络模型处理数据实现识别等应用功能是人工智能应用的关键技术。
通常,云侧设备可以采用训练集对神经网络模型进行训练,使神经网络模型具备识别等应用功能,并将神经网络模型部署到至少一个终端(如:智能手机、摄像头、自动驾驶汽车等)。终端利用配置的神经网络模型对获取到的应用数据(如:图像、语音等)进行处理实现识别等应用功能。为了提高神经网络模型处理数据的精度,神经网络模型逐渐呈现结构复杂化和参数量增多的趋势,导致神经网络模型处理数据所需的计算资源算力越来越高,以及处理数据时长越来越长。
发明内容
本申请提供了神经网络模型优化方法、装置及计算设备,由此在确保神经网络模型处理数据的精度的前提下,缩短神经网络模型处理数据的时长。
第一方面,提供了一种神经网络模型优化方法,方法由计算设备执行。方法包括:计算设备获取到待优化神经网络模型,在子图集中查找待优化神经网络模型中的第一子图的等价子图,将待优化神经网络模型中的第一子图替换为等价子图。等价子图与第一子图针对相同的输入数据,输出也相同,且等价子图对输入数据的处理效率大于第一子图对输入数据的处理效率,子图集中包括多个子图。
如此,对待优化神经网络模型中的子图进行子图替换后,由于等价子图对输入数据的处理效率大于第一子图对输入数据的处理效率,从而,在确保神经网络模型处理数据的精度无损的前提下,显著地缩短神经网络模型处理数据的时长。该方法可以实现自动优化神经网络模型,简单、直观、高效、可扩展性强,只需输入神经网络模型即可快速对神经网络模型完成优化,不需任何数据且精度无损,适用场景广泛。在一些时延敏感场景,如目标识别、自动驾驶、车牌识别、目标检测等场景,本申请实施例提供的神经网络模型优化方法尤其适用,能够有效地提升神经网络模型推理速度,缩短神经网络模型推理耗时,提升用户体验。
在一种可能的实现方式中,在子图集中查找待优化神经网络模型中的第一子图的等价子图包括:在子图集中确定与第一子图对应的第二子图,第二子图与第一子图针对相同的输入数据,输出也相同;确定计算设备中用于执行第一子图的计算资源执行第二子图时的数据处理效率高于执行第一子图时数据处理效率;将第二子图作为等价子图。
在另一种可能的实现方式中,在子图集中确定与第一子图对应的第二子图包括:输入输入数据至第一子图,通过计算资源运行第一子图,输出运行结果;输入输入数据至子图集中的至少一个子图,确定与运行结果相同的子图为第二子图。
在另一种可能的实现方式中,方法还包括:记录第一子图与第二子图的映射关系至子图集。
在另一种可能的实现方式中,子图集中包括第一子图与第二子图的第一映射关系;在子图集中确定与第一子图对应的第二子图包括:根据第一映射关系确定与第一子图对应的第二子图。
用子图集指示的具有等价关系的子图,即第一映射关系,与待优化神经网络模型中的子图进行匹配。待优化神经网络模型包含多个算子,多个算子构成多个子图,至少两个算子构成一个子图。若计算设备确定到待优化神经网络模型中待替换的第一子图,用子图集中与第一子图等价的第二子图替换第一子图,得到优化后神经网络模型。优化后神经网络模型包含第二子图。基于计算资源处理数据时,优化后神经网络模型的时长小于待优化神经网络模型的时长。其中,具有等价关系的子图用于根据同一输入数据输出相同结果。
示例地,根据子图特征确定待优化神经网络模型中与子图集包含的子图相同的第一子图。子图特征包含算子类型、子图结构和算子参数。如此,根据子图特征进行子图匹配,从待优化神经网络模型中搜索出与子图集包含的子图相同的子图,能够有效地提高搜索的准确性。
在另一种可能的实现方式中,在根据子图集确定待优化神经网络模型中待替换的第一子图之前,方法还包括:根据多个应用场景的神经网络模型获取算子集;根据算子集搜索具有等价关系的子图,以生成子图集。从而,提供了一种等价子图自动搜索方法,基于算子集自动搜索可能的等价子图,无遗漏,节省人力。
如此,基于等价子图对待优化神经网络模型中的子图进行子图替换,由于优化后神经网络模型中替换后的子图亲和利用优化后神经网络模型处理数据的计算资源,即计算资源计算替换后的子图能够有效利用计算资源的运算能力,从而,在确保神经网络模型处理数据的精度无损的前提下,显著地缩短神经网络模型处理数据的时长。该方法可以实现自动优化神经网络模型,简单、直观、高效、可扩展性强,只需输入神经网络模型即可快速对神经网络模型完成优化,不需任何数据且精度无损,适用场景广泛。在一些时延敏感场景,如目标识别、自动驾驶、车牌识别、目标检测等场景,本申请实施例提供的神经网络模型优化方法尤其适用,能够有效地提升神经网络模型推理速度,缩短神经网络模型推理耗时,提升用户体验。
在计算设备得到优化后神经网络模型后,可以将优化后神经网络模型部署到至少一个终端,使终端根据优化后神经网络模型处理应用数据时,缩短数据处理时长,提升了终端数据处理性能。
其中,用子图集中与第一子图等价的第二子图替换第一子图,包括:若计算资源计算第二子图的算力高于计算资源计算第一子图的算力,用第二子图替换第一子图。计算资源计算子图的算力与计算资源计算子图的时长有关。算力可以是计算资源计算第一子图的数据处理效率。
在另一种可能的实现方式中,确定计算设备中用于执行第一子图的计算资源执行第二子图时的数据的处理效率高于执行第一子图时的数据处理效率包括:计算资源调用代价函数运行第一子图,记录第一数据处理效率;计算资源调用代价函数运行第二子图,记录第二数据处理效率;通过比较第一数据处理效率与第二数据处理效率确定执行第二子图时的数据的处理效率高于执行第一子图时的数据处理效率。
示例地,用子图集中与第一子图等价的第二子图替换第一子图,包括:基于计算资源利用代价函数分别确定第二子图的时长和第一子图的时长,代价函数用于基于同一计算资源计算具有等价关系的子图的时长;若第二子图的时长小于第一子图的时长,用第二子图替换第一子图。
如此,基于代价函数衡量子图替换前后对神经网络模型推理性能的影响,自动决策是否进行子图替换,提高子图替换的准确性,从而,能够保证基于当前硬件平台子图替换能够带来性能提升。应理解,当前硬件平台可以是指利用优化后神经网络模型处理数据的计算资源。
在另一种可能的实现方式中,方法还包括:记录计算资源、第一子图、第二子图的映射关系至子图集。
在另一种可能的实现方式中,子图集中包括计算资源、第一子图、第二子图的第二映射关系;在子图集中确定与第一子图对应的第二子图包括:根据第二映射关系确定第一子图对应的第二子图;确定计算设备中用于执行第一子图的计算资源执行第二子图时的数据处理效率高于执行第一子图时数据处理效率包括:根据第二映射关系确定用于执行第一子图的计算资源执行第二子图时的数据处理效率高于执行第一子图时数据处理效率。
示例地,子图集还用于指示计算资源计算第二子图和第一子图的算力对应关系。用子图集中与第一子图等价的第二子图替换第一子图,包括:根据算力对应关系所确定的第二子图替换第一子图。从而,由于算力对应关系已经指示了等价子图对计算资源亲和关系,基于算力对应关系对待优化神经网络模型进行子图替换,可以有效地提高子图替换的速度,节省子图替换的时长。
在另一种可能的实现方式中,在对待优化神经网络模型进行优化过程中,计算设备还可自动导出当前硬件平台亲和的等价子图的算力对应关系,任何命中算力对应关系中等价子图的神经网络模型,根据本申请实施例提供的方法,在对应的硬件平台上均可获得推理性能提升,也可根据算力对应关系指导下一代硬件亲和的神经网络模型结构设计。
在另一种可能的实现方式中,计算设备更新算子集,即在算子集中增加新的算子,根据更新后算子集进行等价子图搜索,得到更新后等价子图。
第二方面,提供了一种神经网络模型优化装置,所述装置包括用于执行第一方面或第一方面任一种可能设计中的神经网络模型优化方法的各个模块。
第三方面,提供了一种处理器,所述处理器用于执行第一方面或第一方面任一种可能设计中的神经网络模型优化方法的操作步骤。
第四方面,提供一种计算设备,该计算设备包括至少一个处理器和存储器,存储器用于存储一组计算机指令;当处理器作为第一方面或第一方面任一种可能实现方式中的执行设备执行所述一组计算机指令时,执行第一方面或第一方面任一种可能实现方式中的神经网络模型优化方法的操作步骤。
第五方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第七方面,提供一种芯片系统,该芯片系统包括处理器,用于实现上述第一方面的方法中处理器的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种神经网络的结构示意图;
图2为本申请提供的一种卷积神经网络的结构示意图;
图3为本申请提供的一种系统架构示意图;
图4为本申请提供的一种生成子图集的方法示意图;
图5为本申请提供的一种生成算子集的示意图;
图6为本申请提供的一种生成等价子图关系的示意图;
图7为本申请实施例提供的一种神经网络模型优化方法的示意图;
图8为本申请实施例提供的一种子图替换的示意图;
图9为本申请实施例提供的另一种神经网络模型优化方法的示意图;
图10为本申请提供的一种生成算力对应关系的示意图;
图11为本申请提供的一种神经网络模型优化的场景示意图;
图12为本申请提供的一种神经网络模型优化装置的结构示意图;
图13为本申请提供的一种计算设备的结构示意图。
具体实施方式
为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)神经网络
神经网络可以是由神经元组成的,神经元可以是指以xs和截距1为输入的运算单元。该运算单元的输出满足如下公式(1)。
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经元的偏置。f为神经元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经元联结在一起形成的网络,即一个神经元的输出可以是另一个神经元的输入。每个神经元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经元组成的区域。权重表征不同神经元之间连接的强度。权重决定着输入对输出的影响力。权重近于0意味着改变输入不改变输出。负权重意味着增加输入降低输出。
如图1所示,为本申请实施例提供的一种神经网络的结构示意图。神经网络100包括N个处理层,N为大于或等于3的整数。神经网络100的第一层为输入层110,负责接收输入信号,神经网络100的最后一层为输出层130,负责输出神经网络的处理结果。除去第一层和最后一层的其他层为中间层140,这些中间层140共同组成隐藏层120,隐藏层120中的每一层中间层140既可以接收输入信号,也可以输出信号。隐藏层120负责输入信号的处理过程。每一层代表了信号处理的一个逻辑级别,通过多个层,数据信号可经过多级逻辑的处理。
在一些可行的实施例中该神经网络的输入信号可以是视频信号、语音信号、文本信号、图像信号或温度信号等各种形式的信号。图像信号可以是相机(图像传感器)拍摄的风景、监控设备捕捉的环境图像以及门禁系统获取的面部图像等。该神经网络的输入信号还包括其他各种计算机可处理的工程信号,在此不再一一列举。若利用神经网络对图像信号进行深度学习,可以提高神经网络处理图像的质量。
(2)深度神经网络
深度神经网络(Deep Neural Network,DNN)也称多层神经网络,可以理解为具有多层隐藏层的神经网络。按照不同层的位置对深度神经网络进行划分,深度神经网络内部的神经网络可以分为三类:输入层、隐藏层和输出层。一般来说第一层是输入层,最后一层是输出层,中间的层都是隐藏层。层与层之间是全连接的,也就是说,第i层的任意一个神经元与第i+1层的任意一个神经元相连。
虽然深度神经网络看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,/>是输入向量,/>是输出向量,/>是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量/>经过如此简单的操作得到输出向量/>由于深度神经网络的层数多,系数W和偏移向量/>的数量也比较多。这些参数在深度神经网络中的定义如下所述:以系数W为例:假设在一个三层的深度神经网络中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为/>其中,上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐藏层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(Convolutional Neuron Network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者特征图(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层可以输出若干个特征图,特征图可以是指卷积神经网络运算过程中的中间结果。同一特征图的神经元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。也就是,图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
示例地,如图2所示,为本申请实施例提供的一种卷积神经网络的结构示意图。卷积神经网络200可以包括输入层210、卷积层/池化层220(其中池化层为可选的)和神经网络层230。
卷积层/池化层220例如可以包括层221至层226。在一种示例中,层221例如可以为卷积层,层222例如可以为池化层,层223例如可以为卷积层,层224例如可以为池化层,层225例如可以为卷积层,层226例如可以为池化层。在另一种示例中,层221和层222例如可以为卷积层,层223例如可以为池化层,层224和层225例如可以为卷积层,层226例如可以为池化层。卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
将以卷积层221为例,介绍一层卷积层的内部工作原理。
卷积层221可以包括很多个卷积算子,卷积算子也可称为核。卷积算子在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器。卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义。在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素,这取决于步长(stride)的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小与图像的大小相关。需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的。在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,与一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。
当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如层221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征。随着卷积神经网络200深度的加深,越往后的卷积层(例如层226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层。在如图2中卷积层/池化层220所示例的层221至层226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐藏层(如图2所示的层231、层232至层23n)以及输出层240,该多层隐藏层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别、图像分类和图像超分辨率重建等等。
在神经网络层230中的多层隐藏层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图2由层210至层240方向的传播为前向传播)完成,反向传播(如图2由层240至层210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图2所示的卷积神经网络200仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
(4)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(5)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
上述神经网络也可以称为神经网络模型。神经网络包含的中间层也可以称为算子。算子用于实现神经网络中一个单元计算。例如,实现卷积层计算的算子可以称为卷积算子(conv)。实现池化层计算的算子可以称为池化算子(pool)。实现激活层计算的算子可以称为激活算子(Relu)。激活算子也可以称为线性整流算子。至少两个算子可以构成一个子图。子图是指神经网络模型中部分中间层组成的网络结构。
本申请实施例提供一种神经网络模型优化方法,尤其是提供一种基于相互等价的子图对神经网络模型进行优化的技术,即基于多个算子自动搜索数学等价的子图,自动发现充分发挥硬件算力的子图,对神经网络模型中与其等价的子图进行替换,在确保神经网络模型处理数据的精度无损的前提下,显著地缩短神经网络模型处理数据的时长。
下面结合附图对本申请实施例的实施方式进行详细描述。
图3为本申请实施例提供的一种系统架构示意图。如图3所示,系统300包括执行设备310、训练设备320、数据库330、终端设备340、数据存储系统350和数据采集设备360。
执行设备310可以是终端,如手机终端,平板电脑,笔记本电脑,虚拟现实(virtualreality,VR)、增强现实(augmented reality,AR)设备、混合现实(Mixed Reality,MR)设备、扩展现实(Extended Reality,ER)设备、摄像头或车载终端等,还可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。
训练设备320可以是服务器或者云端设备等。训练设备320具备较强的计算能力,能够运行神经网络模型,对神经网络模型进行训练等计算。
作为一种可能的实施例,执行设备310和训练设备320是部署在不同物理设备(如:服务器或集群中的服务器)上的不同处理器。例如,执行设备310可以是神经网络模型处理器(neural network processing unit,NPU)、图形处理单元(graphic processing unit,GPU)、中央处理器(central processing unit,CPU)、其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application-specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。训练设备320可以是GPU、NPU、微处理器、特定应用集成电路(application-specific integrated circuit,ASIC)、或一个或多个用于控制本申请方案程序执行的集成电路。
数据采集设备360用于采集训练数据,并将训练数据存入数据库330。训练数据可以是图像、语音和文字中至少一种形式的数据。例如,训练数据包括训练图像和训练图像中的目标。
训练设备320用于利用训练数据对神经网络模型进行训练,直到神经网络模型中的损失函数收敛,且损失函数值小于特定阈值则神经网络模型训练完成,从而使得神经网络模型达到一定精度。或者,数据库330中所有的训练数据被用于训练,则神经网络模型训练完成,使训练完成的神经网络模型具有识别或分类等功能。进而,训练设备320将训练完成的神经网络模型301配置到执行设备310。执行设备310用于实现根据训练完成的神经网络模型301处理应用数据实现识别等功能。
在一些实施例中,训练设备320可以将训练完成的神经网络模型301配置到多个执行设备310。每个执行设备310利用训练完成的神经网络模型301实现识别或分类等功能。
例如,对于自动驾驶场景,自动驾驶汽车依据预定路线行驶过程中,利用神经网络模型主要对环境中的路标、行驶参照物和道路上的障碍物等进行识别,以确保自动驾驶汽车安全准确地行驶。路标可以包含图形路标或文字路标。行驶参照物可以是建筑物或植物。道路上的障碍物可以包括动态物体(如:动物)或静止物体(如:静止的车辆)。
又如,对于监控场景,利用神经网络模型主要对路口或园区等环境中目标(如:汽车和用户)进行识别。
又如,对于自然语言处理场景,利用神经网络模型主要对语音或文本进行识别。
为了提高神经网络模型处理数据的精度,训练设备320还可以基于数据库330维护的训练数据和执行设备310提供的应用数据对神经网络模型进行迭代训练。可理解的,迭代训练是指对神经网络模型首次训练后的任意一次训练。由于数据库330维护的训练数据可能是一个全量训练集,包含了不同应用场景下获取的应用数据,不同应用场景下数据具有不同或不相似的应用场景特征(如:环境特征,时间特征)。如果训练设备320对神经网络模型进行迭代训练的训练集中包含不同或不相似的应用场景特征的数据,反而使神经网络模型处理不同应用场景下的应用数据的精度难以达到较优的效果。
本申请实施例提供的神经网络模型优化方法,训练设备320训练完成神经网络模型后,向执行设备310部署训练完成的神经网络模型301之前,基于子图集对训练完成的神经网络模型301进行优化,即确定与神经网络模型301中子图等价的子图,基于执行设备310计算等价的两个子图的数据处理效率,对神经网络模型301中子图进行替换,将优化后的神经网络模型301部署到执行设备310。从而,在确保执行设备310基于神经网络模型301处理数据的精度无损的前提下,显著地缩短神经网络模型301处理数据的时长。
需要说明的是,在实际的应用中,数据库330中维护的训练数据不一定都来自于数据采集设备360,也有可能是从其他设备接收得到的。另外,训练设备320也不一定完全基于数据库330维护的训练数据训练神经网络模型,也有可能从云端或其他地方获取训练数据训练神经网络模型。上述描述不应该作为对本申请实施例的限定。
进一步地,根据执行设备310所执行的功能,还可以进一步将执行设备310细分为如图3所示的架构,如图所示,执行设备310配置有计算模块311、I/O接口312和预处理模块313。
I/O接口312用于与外部设备进行数据交互。用户可以通过终端设备340向I/O接口312输入数据。输入数据可以包括图像或视频。另外,输入数据也可以来自数据库330。
预处理模块313用于根据I/O接口312接收到的输入数据进行预处理。
在执行设备310对输入数据进行预处理,或者在执行设备310的计算模块311执行计算等相关的处理过程中,执行设备310可以调用数据存储系统350中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据和指令等存入数据存储系统350中。
例如,执行设备310存储的优化后神经网络模型可以应用于执行设备310。执行设备310获取到应用数据后,计算模块311将应用数据输入优化后神经网络模型得到处理结果。由于优化后神经网络模型是由训练设备320依据子图集优化后的模型,因此,利用优化后神经网络模型对应用数据进行处理,可以满足用户对数据处理的精度需求和时长需求。
最后,I/O接口312将处理结果返回给终端设备340,从而提供给用户,以便用户查看处理结果。
在图3所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口312提供的界面进行操作。另一种情况下,终端设备340可以自动地向I/O接口312发送输入数据,如果要求终端设备340自动发送输入数据需要获得用户的授权,则用户可以在终端设备340中设置相应权限。用户可以在终端设备340查看执行设备310输出的处理结果,具体的呈现形式可以是显示、声音、动作等具体方式。终端设备340也可以作为数据采集端,采集如图所示输入I/O接口312的输入数据及输出I/O接口312的处理结果作为新的样本数据,并存入数据库330。当然,也可以不经过终端设备340进行采集,而是由I/O接口312将如图所示输入I/O接口312的输入数据及输出I/O接口312的处理结果,作为新的样本数据存入数据库330。
图3仅是本申请实施例提供的一种系统架构的示意图,图3中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图3中,数据存储系统350相对执行设备310是外部存储器,在其它情况下,也可以将数据存储系统350置于执行设备310中。
计算设备获取到待优化神经网络模型,在子图集中查找待优化神经网络模型中的第一子图的等价子图,将待优化神经网络模型中的第一子图替换为等价子图。等价子图与第一子图针对相同的输入数据,输出也相同,且等价子图对输入数据的处理效率大于第一子图对输入数据的处理效率,子图集中包括多个子图。
接下来,结合图4至图10对本申请实施例提供的神经网络模型优化进行详细阐述。图4为本申请实施例提供的一种生成子图集的方法示意图。在这里由图3中的训练设备320为例进行说明。如图4所示,该方法包括以下步骤。
步骤410、训练设备320根据多个应用场景的神经网络模型获取算子集。
训练设备320从应用于不同应用场景的神经网络模型中提取算子,并去掉重复算子形成算子集,算子集包含多个算子,每个算子用于实现不同的计算功能。例如,算子集包括线性整流算子(Relu)、矩阵变换算子(Reshape)、卷积算子(Conv)、池化算子(pool)、最大池化算子(Maxpool)和矩阵转置算子(Transpose)等。应用场景包括但不限于目标识别和自动驾驶场景等。本申请实施例所述的神经网络模型可以是主流的计算机视觉(computervision,CV)模型。CV模型例如包括YOLO、AlenNet、残差网络(Residual Network,ResNet)和稠密卷积网络(Dense Convolutional Network,DenseNet)。
示例地,如图5中的(a)所示的神经网络模型,该神经网络模型包含9个算子,其中,9个算子包含了3个线性整流算子、3个卷积算子、2个矩阵变换算子和1个矩阵转置算子。如图5中的(b)所示,训练设备320去掉9算子中重复算子,得到的算子集包括线性整流算子、卷积算子、矩阵变换算子和矩阵转置算子。
可选地,训练设备320也可以根据用户给定的神经网络模型获取算子集。或者,训练设备320获取用给定的算子集。
步骤420、训练设备320根据算子集搜索具有等价关系的子图,以生成子图集。
训练设备320基于算子集包含的算子进行排列组合构建多个合法子图,或者,根据算子数量、算子类型和算子参数等特征进行排列组合构建多个合法子图。合法子图可以是指子图中任意一个算子的输出符合与其连接的算子的输入。
进而,训练设备320从合法子图中搜索具有等价关系的子图,以生成子图集,子图集包括多对具有等价关系的子图。例如,训练设备320采用包括但不限于子图哈希、随机测试用例比较输出、数学等价分析等各种方法判断任意两个合法子图是否等价,若两个合法子图等价则输出一对相互等价的子图。重复此步骤,从多个合法子图中搜索相互等价的子图形成子图集。可理解的,训练设备320根据步骤410和步骤420可以生成第一映射关系,训练设备320可以根据第一映射关系确定待优化模型中待替换的子图。具有等价关系的子图用于根据同一输入数据输出相同结果,即对具有等价关系的两个子图输入相同的输入数据可以输出相同的输出数据。需要说明的是,相互等价的两个子图包含的算子类型和子图结构可能不同,但算子参数需要相同。
示例地,如图6所示,假设算子集包含线性整流算子、卷积算子、矩阵变换算子、矩阵转置算子和字符串连接算子(Concat)。训练设备320对该算子集进行搜索,得到子图1与子图2等价,即将子图1中两个卷积算子合并为一个卷积算子。子图1中两个卷积算子的算子参数相同,即输出维度为64,输入维度16,卷积核为3。子图2中的卷积算子的算子参数为输出维度为128,输入维度16,卷积核为3。但是,子图1包含的算子多于子图2包含的算子,则执行设备310计算子图1的步骤多于执行设备310计算子图1的步骤,执行设备310计算子图1的时长多于执行设备310计算子图1的时长。
可选地,训练设备320还可以对多个合法子图进行优化,删除合法子图中冗余的路径,提高计算子图的准确性以及缩短计算子图的时长。例如训练设备320基于剪枝算法对多个合法子图进行优化。
相对根据领域专家的经验设计的相互等价的子图,本申请实施例提供的根据算子集自动搜索相互等价的子图,有效地节省人力且可覆盖到全部可能的相互等价的子图。
计算设备对待优化神经网络模型中的子图进行子图替换时,在子图集中确定与第一子图对应的第二子图,第二子图与第一子图针对相同的输入数据,输出也相同。若计算设备确定计算设备中用于执行第一子图的计算资源执行第二子图时的数据处理效率高于执行第一子图时数据处理效率,将第二子图作为等价子图,用第二子图替换第一子图,实现对待优化神经网络模型的优化。下面结合图7至图10对神经网络模型优化方法进行详细阐述。
图7为本申请实施例提供的一种神经网络模型优化方法的示意图。在这里由图3中的训练设备320为例进行说明。如图7所示,该方法包括以下步骤。
步骤710、训练设备320获取待优化神经网络模型。
训练设备320可以从互联网开源模型中获取待优化神经网络模型。或者,训练设备320将用户提供的神经网络模型作为待优化神经网络模型。或者,训练设备320将自行训练得到的训练后神经网络模型作为待优化神经网络模型。
待优化神经网络模型包含多个算子,多个算子构成多个子图,至少两个算子构成一个子图。可理解的是,待优化神经网络模型中至少两个连续的算子构成一个子图。待优化神经网络模型中不同的子图可以由不同连续的算子构成。
步骤720、训练设备320根据子图集确定待优化神经网络模型中待替换的第一子图。
训练设备320根据子图特征确定待优化神经网络模型中与子图集包含的子图相同的第一子图。子图特征包含算子类型、子图结构和算子参数。算子类型是指子图中包含的算子的种类,例如算子类型包括卷积、矩阵变换、矩阵转置和线性整流。子图结构是指子图中包含的算子的连接方式。算子参数是指子图中包含的算子的权重等参数。
在一些实施例中,训练设备320基于子图集包含的子图与待优化神经网络模型包含的子图进行匹配,如果两个子图的算子类型、子图结构和算子参数均相同,则确定待优化神经网络模型包含的子图与子图集包含的子图相同,即训练设备320从待优化神经网络模型中确定到一个待替换子图。训练设备320遍历子图集中的子图,确定待优化神经网络模型中所有可能的待替换子图。
在一种示例中,具有等价关系的子图可以以表格的形式呈现,如表1所示。
表1
等价子图标识 | 等价子图 |
等价子图1 | 子图1<—>子图2 |
等价子图2 | 子图3<—>子图4 |
… | … |
由表1可知,子图1与子图2等价。子图3与子图4等价。
需要说明的是,表1只是以表格的形式示意具有等价关系的子图在存储设备中的存储形式,并不是对该对应关系在存储设备中的存储形式的限定,当然,该对应关系在存储设备中的存储形式还可以以其他的形式存储,本实施例对此不做限定。
假设训练设备320根据子图集确定到待优化神经网络模型中待替换的第一子图。
步骤730、训练设备320用子图集中与第一子图等价的第二子图替换第一子图,得到优化后神经网络模型。
依据计算资源(如:处理器)的特征,比如处理器的处理器核数量和处理器的硬件结构,计算资源对不同算子类型的算子的亲和性不同,即不同的计算资源适于计算不同算子类型的算子。亲和性是指计算资源计算算子有效利用硬件运算能力(简称:算力)的程度。运算能力(operation ability)是数学能力的基本成分之一,指运用有关运算的知识进行运算、推理求得运算结果的能力。
例如,处理器1适于计算矩阵变换算子,处理器2适于计算矩阵转置算子。如果处理器1计算矩阵转置算子,则处理器1无法有效利用处理器1的算力计算矩阵转置算子。因此,处理器1计算矩阵变换算子的算力高于处理器1计算矩阵转置算子的算力。
应理解,计算资源计算算子的算力与计算资源计算算子的时长有关。若计算资源计算算子时能够有效利用计算资源的算力,则计算资源计算算子的时长较短;若计算资源计算算子时无法有效利用计算资源的算力,则计算资源计算算子的时长较长。
在一些实施例中,训练设备320根据子图集确定待优化神经网络模型中待替换的第一子图后,依据执行设备310计算第二子图的算力和执行设备310计算第一子图的算力,判断是否用子图集中与第一子图等价的第二子图替换第一子图。执行设备310可以是需要部署待优化神经网络模型的设备,基于待优化神经网络模型处理应用数据实现识别等应用功能的资源。
若基于计算资源计算第二子图的算力高于计算资源计算第一子图的算力,用第二子图替换第一子图;若基于计算资源计算第二子图的算力低于计算资源计算第一子图的算力,则不用第二子图替换第一子图。计算资源计算第二子图的算力可以是指计算资源计算第二子图的数据处理效率。计算资源计算第一子图的算力可以是指计算资源计算第一子图的数据处理效率。
方式一,训练设备320在子图集中确定与第一子图对应的第二子图包括:根据第二映射关系确定第一子图对应的第二子图。确定计算设备中用于执行第一子图的计算资源执行第二子图时的数据处理效率高于执行第一子图时数据处理效率包括:根据第二映射关系确定用于执行第一子图的计算资源执行第二子图时的数据处理效率高于执行第一子图时数据处理效率。
子图集用于指示计算资源计算相互等价的子图的算力对应关系,即第二映射关系。训练设备320可以基于算力对应关系判断是否进行子图替换。训练设备320执行步骤731,即根据算力对应关系所确定的第二子图替换第一子图。
例如,算力对应关系用于表征了计算资源、神经网络模型、子图和运行子图的算力的对应关系。算力对应关系可以以表格的形式呈现,如表2所示。
表2
由表2可知,计算资源1、神经网络模型1、子图1、子图2、子图3和子图4具有算力对应关系,即计算资源1基于神经网络模型1计算子图1的算力低于计算资源1基于神经网络模型1计算子图2的算力。计算资源1基于神经网络模型1计算子图3的算力低于计算资源1基于神经网络模型1计算子图4的算力。
示例地,假设待优化神经网络模型为神经网络模型1,训练设备320根据算力对应关系确定神经网络模型1中待替换子图为子图1,子图1与子图2是一对相互等价的子图,由于计算资源1基于神经网络模型1计算子图1的算力低于计算资源1基于神经网络模型1计算子图2的算力,则训练设备320可以将神经网络模型1中子图1替换为子图2。
需要说明的是,表2只是以表格的形式示意算力对应关系在存储设备中的存储形式,并不是对该算力对应关系在存储设备中的存储形式的限定,当然,该算力对应关系在存储设备中的存储形式还可以以其他的形式存储,本实施例对此不做限定。
方式二,计算资源计算子图的算力与计算资源计算子图的时长有关。训练设备320可以基于计算资源利用代价函数判断是否进行子图替换。代价函数用于基于同一计算资源计算具有等价关系的子图的时长。代价函数的输入数据包括算子类型、子图结构、算子参数和输入参数。代价函数的输出数据包括基于同一计算资源计算具有等价关系的子图的时长。
例如,子图集中包括第一子图与第二子图的第一映射关系。训练设备320在子图集中确定与第一子图对应的第二子图包括:根据第一映射关系确定与第一子图对应的第二子图。训练设备320执行步骤732。步骤732,基于计算资源利用代价函数分别确定第二子图的时长和第一子图的时长。步骤733,判断第二子图的时长是否大于第一子图的时长。
若第二子图的时长小于第一子图的时长,则执行步骤734,即用第二子图替换第一子图。
若第二子图的时长大于或等于第一子图的时长,则执行步骤735,即不用第二子图替换第一子图。
优化后神经网络模型包含第二子图,基于计算资源处理数据时,优化后神经网络模型的时长小于待优化神经网络模型的时长。
方式三,子图集中包含多个子图。训练设备320可以实时确定与待优化模型中的子图等价的子图,即将输入数据分别输入待优化模型中的子图,以及子图集中的子图,将结果相同的子图确定为相互等价的子图。例如,训练设备320在子图集中确定与第一子图对应的第二子图还可以包括:步骤736,训练设备320输入所述输入数据至第一子图,通过训练设备320运行第一子图,输出运行结果;训练设备320输入所述输入数据至子图集中的至少一个子图,确定与运行结果相同的子图为第二子图。进而,训练设备320再根据方式二判断是否用第二子图替换第一子图。
示例地,如图8所示,待优化神经网络模型包括子图3,子图3包括2个矩阵变换算子和1个矩阵转置算子,1个矩阵变换算子连接1个矩阵转置算子,再连接1个矩阵变换算子。子图4包括卷积算子。子图3与子图4是一对相互等价的子图,用子图4替换子图3,即将大数据分布式处理中的交换(shuffle)操作替换为卷积,得到优化后神经网络模型。
在另一些实施例中,训练设备320根据算力对应关系确定用第二子图替换第一子图后,还可以再根据利用代价函数分别确定第二子图的时长和第一子图的时长。若第二子图的时长小于第一子图的时长,则用第二子图替换第一子图。如图9所示,训练设备320可以先执行步骤731,再执行步骤732和步骤733,以及步骤734或步骤735。从而,训练设备320通过两次判断提高子图替换的准确性。
在另一些实施例中,也可将算力对应关系部署到执行设备310,由执行设备310根据算力对应关系对待优化神经网络模型进行子图替换的优化操作。例如,执行设备310根据算力对应关系确定待优化神经网络模型中待替换的第一子图,以及第二子图与第一子图等价,则用第二子图替换第一子图,得到优化后神经网络模型。
在另一些实施例中,训练设备320对待优化神经网络模型进行优化过程中,可自动保存对计算资源能够带来性能收益的等价子图,形成第二映射关系,即硬件亲和的等价子图知识库,任何命中知识库中子图的模型,基于本申请实施例提供的方法,对待优化神经网络模型进行优化均可获得推理性能提升。如图10中的(a)所示,假设计算资源1基于神经网络模型1计算子图2的算力高于计算资源1基于神经网络模型1计算子图1的算力,训练设备320可以将神经网络模型1中子图1替换为子图2,并生成对应关系1,即计算资源1、神经网络模型1、子图1和子图2。如图10中的(b)所示,假设计算资源2基于神经网络模型2计算子图4的算力高于计算资源2基于神经网络模型2计算子图3的算力,训练设备320可以将神经网络模型2中子图3替换为子图4,并生成对应关系2,即计算资源2、神经网络模型2、子图3和子图4。
训练设备320可以通过算子适配层对底层AI芯片及其提供的算子接口进行调用,优化神经网络模型,以及收集系统所需的相关算子和子图性能数据。
相对于根据领域专家的经验设计的等价子图进行子图替换,由于未参考计算资源计算子图的算力特性,子图替换后可能反而延长基于计算资源处理数据时优化后神经网络模型的时长。而且,依据应用设计的等价子图不一定适用于不同的计算资源,针对不同的计算资源,需进行重新分析设计等价子图,无法复用等价子图。本申请实施例依据算力对应关系或代价函数决策是否进行子图替换,确保即使基于不同的计算资源,每次子图替换均可以有效低带来性能收益。本申请实施例提供的神经网络模型优化方法使用简单,流程完全自动化,用户只需要输入待优化神经网络模型,无需进行任何其他操作即可得到优化后神经网络模型,优化过程简单高效。
需要说明的是,对于待优化神经网络模型中任意一个可能替换的子图,训练设备320可以根据上述步骤720和步骤730的方法进行子图替换。另外,若训练设备320对待优化神经网络模型已经执行了子图替换,得到更新后神经网络模型,则训练设备320可以根据步骤720和步骤730,继续基于更新后神经网络模型进行子图替换,遍历所有可能替换的子图,直到得到优化后神经网络模型。可理解的是,训练设备320根据步骤720和步骤730对待优化神经网络模型进行子图替换,可以得到多个更新后神经网络模型,最终得到的优化后神经网络模型可以是多个更新后神经网络模型中最优的神经网络模型。
训练设备320对待优化神经网络模型进行子图替换优化后得到优化后神经网络模型,可以将优化后神经网络模型部署到执行设备310中,执行设备310中基于优化后神经网络模型处理应用数据。示例地,如图7或图9所示,在步骤734之后,执行设备310执行步骤740和步骤750。步骤740,训练设备320向执行设备310部署优化后神经网络模型。步骤750,执行设备310基于优化后神经网络模型处理应用数据,以实现识别等应用功能。从而,降低执行设备310处理应用数据的时长。
相对于基于量化技术修改神经网络模型的权重,来降低底层计算量到达加速效果。但是量化技术一般需要样本数据进行校正,否则会引起较大精度损失,在无任何样本数据的场景下,量化技术不适用。
相对于剪枝技术将神经网络模型重要性低的权重或者通道进行删除,减少神经网络模型的参数量,达到推理加速的效果。权重剪枝又称非结构化剪枝,剪枝完成后导致稀疏化问题,一般需要特定的支持稀疏化计算的硬件,否则不会有加速效果;通道剪枝又称结构化剪枝,结构化剪枝会带来明显的精度损失,剪枝完成后需要训练数据对神经网络模型进行训练来提升精度,不适用于无训练数据的场景。
本申请实施例提供的基于等价子图替换的推理加速算法,可自动搜索硬件平台亲和的等价子图,并自动对待优化神经网络模型进行子图替换,实现推理加速且精度无损。本申请实施例无需任何数据,在无任何数据的情况下也能实现推理加速,应用场景广泛。
本申请实施例所述的应用场景可以包括目标检测、监控、自动驾驶、语音识别,商品推荐,机器翻译、AI商品分类和工业质量检测等等。
目标检测是计算机视觉重要的组成部分。计算机视觉是各个应用领域,如制造业、检验、文档分析和医疗诊断等领域中各种智能/自主系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取用户所需的被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机/摄像机)和大脑(算法)用来代替人眼对目标进行识别和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成像系统代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。
目标检测方法可以应用在人脸检测、车辆检测、行人计数、自动驾驶、安全系统和医疗领域等场景。例如,在自动驾驶场景中,自动驾驶汽车在行驶过程中,识别周围环境内的物体,以调整自动驾驶汽车的速度和方向,以便于自动驾驶汽车能够安全行驶,避免发生交通事故。物体可以是其它车辆、交通控制设备或者其它类型的物体。又如,在安全系统中,对大量的用户进行识别,辅助工作人员尽快地确定目标人物。通常,将输入数据(如图像或视频)输入到具有目标检测功能的神经网络,神经网络对输入数据进行特征提取,基于提取的特征进行目标检测,得到检测结果。
另外,执行设备310可以在执行步骤750,即执行设备310根据基于优化后神经网络模型处理应用数据之前,已经存储了优化后神经网络模型,因此,执行设备310可以从存储器中读取优化后神经网络模型,基于优化后神经网络模型处理应用数据。
可选地,执行设备310没有存储优化后神经网络模型,需要从服务器下载优化后神经网络模型或自行对神经网络模型进行优化。服务器可以是指云服务器。
示例地,图11为本申请提供的一种系统1100的结构示意图,如图11所示,系统1100可以是利用基础资源向用户提供云服务的实体。系统1100包括云数据中心1110。所述云数据中心1110包括设备资源池(包括计算资源1111、存储资源1112和网络资源1113)和云服务平台1120。云数据中心1110包括的计算资源1111可以是计算设备(例如服务器)。
执行设备1130上可以部署交互装置1131。交互装置1131可以是浏览器或者能够实现与云服务平台1120进行消息交互的应用。用户可以通过交互装置1131访问云服务平台1120,向云数据中心1110上传请求,请求对用于自动驾驶场景的神经网络模型进行优化。云数据中心1110接收到执行设备1130上传的请求后,对用户请求的神经网络模型进行优化,向执行设备1130反馈优化后的神经网络模型301。执行设备1130可以是智能终端或边缘小站。边缘小站可以处理自动驾驶汽车的应用数据,将处理结果传输给自动驾驶汽车。处理结果用于指示自动驾驶汽车运行操作。或者,执行设备1130还可以是自动驾驶汽车,边缘小站将优化后的神经网络模型301部署到自动驾驶汽车,自动驾驶汽车根据优化后神经网络模型处理应用数据,指示自动驾驶汽车运行操作。
可以理解的是,为了实现上述实施例中的功能,计算设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图11,详细描述了根据本实施例所提供的神经网络模型优化方法,下面将结合图12,描述根据本实施例所提供的神经网络模型优化装置。
图12为本实施例提供的可能的神经网络模型优化装置的结构示意图。这些神经网络模型优化装置可以用于实现上述方法实施例中训练设备320的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该神经网络模型优化装置可以是如图4、图7或图9所示的训练设备320,还可以是应用于服务器的模块(如芯片)。
如图12所示,神经网络模型优化装置1200包括通信模块1210、待替换模块1220、替换模块1230和存储模块1240。神经网络模型优化装置1200用于实现上述图4、图7或图9中所示的方法实施例中训练设备320的功能。
通信模块1210用于获取待优化神经网络模型,向执行设备310部署优化后神经网络模型。所述待优化神经网络模型包含多个算子,所述多个算子构成多个子图,至少两个算子构成一个子图。例如,通信模块1210用于执行图7中步骤710和步骤740。
待替换模块1220用于在子图集中查找所述待优化神经网络模型中的第一子图的等价子图,所述等价子图与所述第一子图针对相同的输入数据,输出也相同,且所述等价子图对所述输入数据的处理效率大于所述第一子图对所述输入数据的处理效率,所述子图集中包括多个子图。例如,待替换模块1220用于执行图7中步骤720和步骤730。
替换模块1230用于用将所述待优化神经网络模型中的第一子图替换为所述等价子图。例如,替换模块1230用于执行图7中步骤734。
待替换模块1220具体用于在所述子图集中确定与所述第一子图对应的第二子图,所述第二子图与所述第一子图针对相同的输入数据,输出也相同;确定所述计算设备中用于执行所述第一子图的计算资源执行所述第二子图时的数据处理效率高于执行所述第一子图时数据处理效率;将所述第二子图作为所述等价子图。
存储模块1240可以对应上述方法实施例中用于存储子图集和算子集等信息。
神经网络模型优化装置1200还可以包含搜索模块1250。搜索模块1250用于根据多个应用场景的神经网络模型获取算子集;以及,根据所述算子集搜索所述具有等价关系的子图,以生成所述子图集。例如,搜索模块1250用于执行图4中步骤410至步骤420。
可选地,神经网络模型优化装置1200还可以包含更新模块1260。更新模块1260用新增的算子更新算子集和子图集。
应理解的是,本申请实施例的神经网络模型优化装置1200可以通过图形处理器(graphics processing unit,GPU)、神经网络处理器(neural network processing unit,NPU)、特定应用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图4、图7或图9所示的神经网络模型优化方法时,神经网络模型优化装置1200及其各个模块也可以为软件模块。
根据本申请实施例的神经网络模型优化装置1200可对应于执行本申请实施例中描述的方法,并且神经网络模型优化装置1200中的各个单元的上述和其它操作和/或功能分别为了实现图4、图7或图9中的各个方法的相应流程,为了简洁,在此不再赘述。
图13为本实施例提供的一种计算设备1300的结构示意图。如图所示,计算设备1300包括处理器1310、总线1320、存储器1330、内存单元1350(也可以称为主存(mainmemory)单元)和通信接口1340。处理器1310、存储器1330、内存单元1350和通信接口1340通过总线1320相连。
应理解,在本实施例中,处理器1310可以是CPU,该处理器1310还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
处理器还可以是GPU、NPU、微处理器、ASIC、或一个或多个用于控制本申请方案程序执行的集成电路。
通信接口1340用于实现计算设备1300与外部设备或器件的通信。在本实施例中,通信接口1340用于与其他计算设备进行数据交互。
总线1320可以包括一通路,用于在上述组件(如处理器1310、内存单元1350和存储器1330)之间传送信息。总线1320除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1320。总线1320可以是快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。
作为一个示例,计算设备1300可以包括多个处理器。处理器可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的计算单元。处理器1310可以调用存储器1330存储的子图集,根据子图集确定所述待优化神经网络模型中待替换的第一子图,用所述子图集中与所述第一子图等价的第二子图替换所述第一子图,得到优化后神经网络模型,基于计算资源处理数据时,所述优化后神经网络模型的时长小于所述待优化神经网络模型的时长。
值得说明的是,图13中仅以计算设备1300包括1个处理器1310和1个存储器1330为例,此处,处理器1310和存储器1330分别用于指示一类器件或设备,具体实施例中,可以根据业务需求确定每种类型的器件或设备的数量。
内存单元1350可以对应上述方法实施例中用于存储子图集等信息的存储介质。内存单元1350可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
存储器1330用于存储数据,可以是固态硬盘或机械硬盘。
上述计算设备1300可以是一个通用设备或者是一个专用设备。例如,计算设备1300可以是手机终端,平板电脑,笔记本电脑,VR设备、AR设备、混合现实(Mixed Reality,MR)设备或扩展现实(Extended Reality,ER)设备,车载终端等,还可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。可选地,计算设备1300也可以是服务器或其他具有计算能力的设备。
应理解,根据本实施例的计算设备1300可对应于本实施例中的神经网络模型优化装置1200,并可以对应于执行根据图4、图7或图9中的相应主体,并且神经网络模型优化装置1200中的各个模块的上述和其它操作和/或功能分别为了实现图4、图7或图9中的相应流程,为了简洁,在此不再赘述。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种神经网络模型优化方法,其特征在于,所述方法由计算设备执行,所述方法包括:
获取待优化神经网络模型,所述待优化神经网络模型包含多个算子,所述多个算子构成多个子图,至少两个算子构成一个子图;
在子图集中查找所述待优化神经网络模型中的第一子图的等价子图,所述等价子图与所述第一子图针对相同的输入数据,输出也相同,且所述等价子图对所述输入数据的处理效率大于所述第一子图对所述输入数据的处理效率,所述子图集中包括多个子图;
将所述待优化神经网络模型中的第一子图替换为所述等价子图。
2.根据权利要求1所述的方法,其特征在于,所述在子图集中查找所述待优化神经网络模型中的第一子图的等价子图包括:
在所述子图集中确定与所述第一子图对应的第二子图,所述第二子图与所述第一子图针对相同的输入数据,输出也相同;
确定所述计算设备中用于执行所述第一子图的计算资源执行所述第二子图时的数据处理效率高于执行所述第一子图时数据处理效率;
将所述第二子图作为所述等价子图。
3.根据权利要求2所述的方法,其特征在于,所述在所述子图集中确定与所述第一子图对应的第二子图包括:
输入所述输入数据至所述第一子图,通过所述计算资源运行所述第一子图,输出运行结果;
输入所述输入数据至所述子图集中的至少一个子图,确定与所述运行结果相同的子图为所述第二子图。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
记录所述第一子图与所述第二子图的映射关系至所述子图集。
5.根据权利要求2所述的方法,其特征在于,所述子图集中包括所述第一子图与所述第二子图的第一映射关系;
所述在所述子图集中确定与所述第一子图对应的第二子图包括:
根据所述第一映射关系确定与所述第一子图对应的第二子图。
6.根据权利要求3或4所述的方法,其特征在于,所述确定所述计算设备中用于执行所述第一子图的计算资源执行所述第二子图时的数据的处理效率高于执行所述第一子图时的数据处理效率包括:
所述计算资源调用代价函数运行所述第一子图,记录第一数据处理效率;
所述计算资源调用代价函数运行所述第二子图,记录第二数据处理效率;
通过比较所述第一数据处理效率与所述第二数据处理效率确定执行所述第二子图时的数据的处理效率高于执行所述第一子图时的数据处理效率。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
记录所述计算资源、所述第一子图、所述第二子图的映射关系至所述子图集。
8.根据权利要求2所述的方法,其特征在于,所述子图集中包括计算资源、第一子图、第二子图的第二映射关系;
所述在所述子图集中确定与所述第一子图对应的第二子图包括:
根据所述第二映射关系确定所述第一子图对应的第二子图;
所述确定所述计算设备中用于执行所述第一子图的计算资源执行所述第二子图时的数据处理效率高于执行所述第一子图时数据处理效率包括:
根据所述第二映射关系确定用于执行所述第一子图的计算资源执行所述第二子图时的数据处理效率高于执行所述第一子图时数据处理效率。
9.一种神经网络模型优化装置,其特征在于,包括:
通信模块,用于获取待优化神经网络模型,所述待优化神经网络模型包含多个算子,所述多个算子构成多个子图,至少两个算子构成一个子图;
待替换模块,用于在子图集中查找所述待优化神经网络模型中的第一子图的等价子图,所述等价子图与所述第一子图针对相同的输入数据,输出也相同,且所述等价子图对所述输入数据的处理效率大于所述第一子图对所述输入数据的处理效率,所述子图集中包括多个子图;
所述替换模块,还用于将所述待优化神经网络模型中的第一子图替换为所述等价子图。
10.根据权利要求9所述的装置,其特征在于,所述待替换模块在子图集中查找所述待优化神经网络模型中的第一子图的等价子图时,具体用于:
在所述子图集中确定与所述第一子图对应的第二子图,所述第二子图与所述第一子图针对相同的输入数据,输出也相同;
确定所述计算设备中用于执行所述第一子图的计算资源执行所述第二子图时的数据处理效率高于执行所述第一子图时数据处理效率;
将所述第二子图作为所述等价子图。
11.根据权利要求10所述的装置,其特征在于,所述待替换模块在所述子图集中确定与所述第一子图对应的第二子图时,具体用于:
输入所述输入数据至所述第一子图,通过所述计算资源运行所述第一子图,输出运行结果;
输入所述输入数据至所述子图集中的至少一个子图,确定与所述运行结果相同的子图为所述第二子图。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
存储模块,用于记录所述第一子图与所述第二子图的映射关系至所述子图集。
13.根据权利要求10所述的装置,其特征在于,所述子图集中包括所述第一子图与所述第二子图的第一映射关系;
所述待替换模块在所述子图集中确定与所述第一子图对应的第二子图时,具体用于:
根据所述第一映射关系确定与所述第一子图对应的第二子图。
14.根据权利要求11或12所述的装置,其特征在于,所述待替换模块确定所述计算设备中用于执行所述第一子图的计算资源执行所述第二子图时的数据的处理效率高于执行所述第一子图时的数据处理效率时,具体用于:
所述计算资源调用代价函数运行所述第一子图,记录第一数据处理效率;
所述计算资源调用代价函数运行所述第二子图,记录第二数据处理效率;
通过比较所述第一数据处理效率与所述第二数据处理效率确定执行所述第二子图时的数据的处理效率高于执行所述第一子图时的数据处理效率。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
存储模块,用于记录所述计算资源、所述第一子图、所述第二子图的映射关系至所述子图集。
16.根据权利要求10所述的装置,其特征在于,所述子图集中包括计算资源、第一子图、第二子图的第二映射关系;
所述待替换模块在所述子图集中确定与所述第一子图对应的第二子图时,具体用于:
根据所述第二映射关系确定所述第一子图对应的第二子图;
所述确定所述计算设备中用于执行所述第一子图的计算资源执行所述第二子图时的数据处理效率高于执行所述第一子图时数据处理效率包括:
根据所述第二映射关系确定用于执行所述第一子图的计算资源执行所述第二子图时的数据处理效率高于执行所述第一子图时数据处理效率。
17.一种计算设备,其特征在于,包括存储器和处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1-8中任一项所述的方法的操作步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111673491.2A CN116432736A (zh) | 2021-12-31 | 2021-12-31 | 神经网络模型优化方法、装置及计算设备 |
PCT/CN2022/142689 WO2023125628A1 (zh) | 2021-12-31 | 2022-12-28 | 神经网络模型优化方法、装置及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111673491.2A CN116432736A (zh) | 2021-12-31 | 2021-12-31 | 神经网络模型优化方法、装置及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116432736A true CN116432736A (zh) | 2023-07-14 |
Family
ID=86997968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111673491.2A Pending CN116432736A (zh) | 2021-12-31 | 2021-12-31 | 神经网络模型优化方法、装置及计算设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116432736A (zh) |
WO (1) | WO2023125628A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117114091A (zh) * | 2023-10-25 | 2023-11-24 | 深圳开鸿数字产业发展有限公司 | 基于联邦学习的计算图处理方法、计算机设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629339B (zh) * | 2023-07-21 | 2023-10-03 | 美智纵横科技有限责任公司 | 模型优化方法、数据处理方法、装置、存储介质及芯片 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659728B (zh) * | 2019-09-24 | 2024-03-05 | 安徽寒武纪信息科技有限公司 | 神经网络优化方法、装置、计算机设备及存储介质 |
CN111723935A (zh) * | 2020-06-24 | 2020-09-29 | 湖北亿咖通科技有限公司 | 神经网络计算图的处理方法、计算机存储介质及电子设备 |
CN111860820A (zh) * | 2020-07-31 | 2020-10-30 | 北京灵汐科技有限公司 | 神经网络算子的划分方法、装置及划分设备 |
US20210319298A1 (en) * | 2021-06-24 | 2021-10-14 | Intel Corporation | Compute-based subgraph partitioning of deep learning models for framework integration |
-
2021
- 2021-12-31 CN CN202111673491.2A patent/CN116432736A/zh active Pending
-
2022
- 2022-12-28 WO PCT/CN2022/142689 patent/WO2023125628A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117114091A (zh) * | 2023-10-25 | 2023-11-24 | 深圳开鸿数字产业发展有限公司 | 基于联邦学习的计算图处理方法、计算机设备和存储介质 |
CN117114091B (zh) * | 2023-10-25 | 2024-03-05 | 深圳开鸿数字产业发展有限公司 | 基于联邦学习的计算图处理方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023125628A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175671B (zh) | 神经网络的构建方法、图像处理方法及装置 | |
CN110378381B (zh) | 物体检测方法、装置和计算机存储介质 | |
US20220092351A1 (en) | Image classification method, neural network training method, and apparatus | |
CN111797983A (zh) | 一种神经网络构建方法以及装置 | |
JP2022515895A (ja) | 物体認識方法及び装置 | |
CN112418392A (zh) | 一种神经网络构建方法以及装置 | |
US20230215159A1 (en) | Neural network model training method, image processing method, and apparatus | |
WO2021155792A1 (zh) | 一种处理装置、方法及存储介质 | |
KR20170140214A (ko) | 신경망을 위한 훈련 기준으로서의 필터 특이성 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
US20220148291A1 (en) | Image classification method and apparatus, and image classification model training method and apparatus | |
WO2023125628A1 (zh) | 神经网络模型优化方法、装置及计算设备 | |
CN111696110B (zh) | 场景分割方法及系统 | |
CN113065645B (zh) | 孪生注意力网络、图像处理方法和装置 | |
CN112529146B (zh) | 神经网络模型训练的方法和装置 | |
CN114418030B (zh) | 图像分类方法、图像分类模型的训练方法及装置 | |
CN111368972A (zh) | 一种卷积层量化方法及其装置 | |
CN117217280A (zh) | 神经网络模型优化方法、装置及计算设备 | |
CN113807399A (zh) | 一种神经网络训练方法、检测方法以及装置 | |
WO2023280113A1 (zh) | 数据处理方法、神经网络模型的训练方法及装置 | |
CN115018039A (zh) | 一种神经网络蒸馏方法、目标检测方法以及装置 | |
CN114091554A (zh) | 一种训练集处理方法和装置 | |
CN114492723A (zh) | 神经网络模型的训练方法、图像处理方法及装置 | |
CN111242176B (zh) | 计算机视觉任务的处理方法、装置及电子系统 | |
CN113128285A (zh) | 一种处理视频的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |