CN113935470A - 神经网络模型的运行方法、介质和电子设备 - Google Patents
神经网络模型的运行方法、介质和电子设备 Download PDFInfo
- Publication number
- CN113935470A CN113935470A CN202111254781.3A CN202111254781A CN113935470A CN 113935470 A CN113935470 A CN 113935470A CN 202111254781 A CN202111254781 A CN 202111254781A CN 113935470 A CN113935470 A CN 113935470A
- Authority
- CN
- China
- Prior art keywords
- layer
- network
- model
- neural network
- preset optimization
- 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 207
- 238000000034 method Methods 0.000 title claims abstract description 111
- 238000005457 optimization Methods 0.000 claims abstract description 278
- 238000004364 calculation method Methods 0.000 claims abstract description 21
- 230000015654 memory Effects 0.000 claims description 38
- 238000011176 pooling Methods 0.000 claims description 35
- 238000011017 operating method Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000004422 calculation algorithm Methods 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 43
- 239000011159 matrix material Substances 0.000 description 38
- 230000008569 process Effects 0.000 description 27
- 238000001994 activation Methods 0.000 description 19
- 230000004913 activation Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000009977 dual effect Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000017105 transposition Effects 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06N3/048—Activation functions
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及人工智能领域,提供了一种神经网络模型的运行方法、介质和电子设备。该方法通过获取待运行的神经网络模型中运行顺序相邻的多个网络层的网络层类型,再将获取的多个网络层的网络层类型与电子设备的多个预设优化模型的网络层类型进行对比,在预设优化模型的网络层类型满足预设条件的情况下,确定该预设优化模型能够对获取的多个网络层的至少部分网络层进行优化计算,并基于该预设优化模型对应的预设优化方法对获取的多个网络层的至少部分网络层进行优化。如此,可以快速确定电子设备是否可以对待运行神经网络模型进行优化计算,降低了算法复杂度,提高了对待运行神经网络模型的优化速度,进而提高了电子设备运行神经网络模型的速度。
Description
技术领域
本申请涉及人工智能领域,特别涉及一种神经网络模型的运行方法、介质和电子设备。
背景技术
随着人工智能(artificial intelligence,AI)的迅速发展,神经网络模型在人工智能领域的应用越来越广泛。同时,虽然智能电子设备的发展,能够运行神经网络模型的电子设备的类型也越来越多。由于不同的电子设备的硬件/软件性能不同,不同电子设备对神经网络模型各网络层的运行方式、支持程度也可能不同,因此,在将神经网络模型部署到电子设备运行时,需要根据电子设备的硬件/软件的性能,对神经网络模型进行优化。
发明内容
有鉴于此,本申请实施例提供了一种神经网络模型的运行方法、介质和电子设备。通过将神经网络模型中运行顺序相邻的多个网络层的网络层类型,与多个预设优化模型的网络层类型进行对比,以确定可以对该多个网络层的至少一个网络层进行优化的在预设优化模型,可以快速确定电子设备是否可以对待运行神经网络模型进行优化计算,降低了算法复杂度,提高了对待运行神经网络模型的优化速度,进而提高了电子设备运行神经网络模型的速度。
第一方面,本申请实施例提供了一种神经网络模型的运行方法,应用于第一电子设备,第一神经网络模型包括N个网络层,该方法包括:获取第一神经网络模型的第j层至第j+m-1层网络层的网络层类型标识,其中m为多个预设优化模型中网络层数最多的预设优化模型的网络层数量,j=1、2、……、N-m+1;将第j层至第j+m-1层网络层的网络层类型标识与各预设优化模型的网络层类型标识进行比对,确定出能够对第j层至第j+m-1层网络中的至少一层网络层进行优化的至少一个第一预设优化模型;根据确定出的各第一预设优化模型对应的优化方法对第j层至第j+m-1层网络层中的至少一层网络层进行优化,生成第二神经网络模型;运行第二神经网络模型。
也即是在本申请实施例中,可以通过获取待运行的神经网络模型(第一神经网络模型)中运行顺序相邻的多个(m)网络层的网络层类型,再将获取的多个网络层的网络层类型与第一电子设备(例如电子设备100)的优化模型数据库中的各预设优化模型的网络层类型进行对比,以确定能够对获取的多个网络层中的至少一层网络层进行优化的第一预设优化模型,并基于确定出的第一预设优化模型对应的预设优化方法对获取的多个网络层的至少一层网络层进行优化,生成优化的神经网络模型(第二神经网络模型),并通过运行优化后的神经网络模型实现待运行神经网络模型的功能。如此,可以快速确定多个预设优化模型中能够对待运行神经网络模型进行优化的预设优化模型,降低了算法复杂度,提高了对待运行神经网络模型的优化速度,进而提高了第一电子设备运行神经网络模型的速度。
在上述第一方面的一种可能实现中,在预设优化模型满足以下条件的情况下,确定预设优化模型能够对第j层至第j+m-1层网络层中的至少一层网络层进行优化:在预设优化模型的网络层数小于m的情况下,第j层至第j+m-1层网络层存在网络层数与预设优化模型的网络层数相同的子网络层,并且子网络层的各网络层的网络层类型标识与预设优化模型的各网络层的网络层类型标识相同;或在预设优化模型的网络层数等于m的情况下,第j层至第j+m-1层网络层的网络层类型标识与预设优化模型的各网络层的网络层类型标识相同。
也即是满足上述条件的预设优化模型即确定为能够对第j层至第j+m-1层网络层中的至少一层网络层进行优化的预设优化模型,并且预设优化模型的网络层数可以小于或等于m。例如在j=1,m=3,第j层至第j+m-1层网络层的网络层类型标识分别为“con2d”和“MaxPooling”和“relu”的情况下,网络层类型标识为“con2d”、“MaxPooling”、“relu”、“con2d-MaxPooling”、“MaxPooling-relu”、“con2d-MaxPooling-relu”的预设优化模型都可以满足上述条件。
在上述第一方面的一种可能实现中,上述根据确定出的各预设优化模型对应的优化方法对第j层至第j+m-1层网络层中的至一层网络层进行优化,生成第二神经网络模型,包括:确定出至少一个第一预设优化模型中能够对第j层至第j+m-1层网络层中最多层数进行优化的至少一个第二预设优化模型;通过至少一个第二预设优化模型对应的优化方法对第j层至第j+m-1层网络层中的至少一层网络层进行优化,生成第二神经网络模型。
也即是在能够对第j层至第j+m-1层网络层的至少一层网络进行优化的预设优化模型有多个的情况下,可以从中选取能够对第j层至第j+m-1层网络层中最多层数进行优化的组合(第二预设优化模型)对第j层至第j+m-1层网络层进行优化,从而可以最大化对第一神经网络模型进行优化的网络层层数,提高第一电子设备实现第一神经网络模型对应功能的速度。
在上述第一方面的一种可能实现中,上述获取第一神经网络模型的第j层至第j+m-1层网络层的网络层类型标识,包括:获取第一神经网络模型各网络层的运行顺序表,运行顺序表中包括各网络层的网络层类型标识;通过m个指针遍历运行顺序表,获取第一神经网络模型的第j层至第j+m-1层网络层的网络层类型标识。
也即是说,在本申请实施例中,第一神经网络模型的各网络层的运行顺序和网络层类型标识是以“表(运行顺序表)”的形式进行存储,并且通过以多个(m个)指针遍历运行顺序表来同时获取多个运行顺序相邻的网络层的网络层类型标识。
在上述第一方面的一种可能实现中,上述多个预设优化模型以哈希表的形式进行存储;并且哈希表中的键包括各预设优化模型的网络层类型标识,哈希表中的值包括哈希表中的键表示的预设优化模型对应的预设优化方法的指令或预设优化方法的指针。
也即是说,在本申请实施例中,各预设优化模型的网络层类型标识和预设优化方法是以哈希表的形式进行存储,例如哈希表,一个预设优化模型的信息对应哈希表中的一条数据,并且每一条数据的键(KEY)可以包括该条数据对应的预设优化模型各网络层的网络层类型标识;每一数据的值(VALUE)可以包括第一电子设备对该数据对应的预设优化模型的优化方法的具体内容,例如该预设优化模型对应的优化函数的指令或该优化函数的指令的指针。
在上述第一方面的一种可能实现中,上述方法还包括:从第二电子设备获取多个预设的优化模型以及各预设优化模型对应的预设优化方法。
也即是说,第一电子设备可以从第二电子设备(例如服务器)获取/更新第一电子设备可以进行优化计算的神经网络模型(预设优化模型)以及该预设优化模型对应的优化方法,从而可以更新第一电子设备的预设优化模型,从而更多地对第一神经网络模型进行优化,提高电子设备实现第一神经网络模型对应功能的速度。
在上述第一方面的一种可能实现中,上述预设优化方法,包括以下方法中的至少一种:将第一神经网络模型的第j层至第j+m-1层网络层的至少部分网络层融合为一个网络层;在第一神经网络模型的第j层至第j+m-1层网络层中插入至少一个网络层;替换第一神经网络模型的第j层至第j+m-1层网络层中的至少一个网络层;改变第一神经网络模型的第j层至第j+m-1层中网络层的至少一个网络层的输入数据和/或输出数据的格式。
在上述第一方面的一种可能实现中,上述预设优化模型包括以下模型中的至少一种:卷积层-激活层、池化层-激活层、全连接层-激活层、算术运算层-激活层、均值层-全连接层、计算层-排序层、卷积层-池化层-激活层。
在上述第一方面的一种可能实现中,上述第一神经网络模型和第二神经网络模型的功能相同。
第二方面,本申请实施例提供了一种可读介质,该可读介质中包含有指令,当指令被电子设备的处理器执行时使电子设备实现上述第一方面及其各种可能实现提供的任一种神经网络模型运行方法。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于运行指令以使电子设备实现上述第一方面及其各种可能实现提供的任一种的神经网络模型运行方法。
附图说明
图1根据本申请的一些实施例,示出了一种神经网络模型10的结构示意图;
图2根据本申请的一些实施例,示出了一种神经网络模型运行方法的流程示意图;
图3A根据本申请的一些实施例,示出了一种神经网络模型运行方法的实现过程示意图;
图3B根据本申请的一些实施例,示出了一种神经网络模型运行方法的实现过程示意图;
图4根据本申请的一些实施例,示出了一种神经网络模型运行方法的流程示意图;
图5根据本申请的一些实施例,示出了一种神经网络模型运行方法的过程示意图;
图6根据本申请的一些实施例,示出了一种神经网络模型10′的结构示意图;
图7A根据本申请的一些实施例,示出了一种激活函数的函数图像示意图;
图7B根据本申请的一些实施例,示出了通过图7A所示激活函数进行激活运算的过程示意图;
图8根据本申请的一些实施例,示出了一种池化层进行池化计算的过程示意图;
图9根据本申请的一些实施例,示出了一种电子设备100的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于神经网络模型的运行方法、可读介质和电子设备。
下面结合附图对本申请实施例的技术方案进行详细介绍。
图1根据本申请的一些实施例,示出了一种神经网络模型的结构示意图。如图1所示,神经网络模型10包括n个神经网络层,即网络层1,网络层2,……网络层n。通过电子设备100运行神经网络模型10时,在电子设备100的硬件或软件对神经网络模型10的部分网络层有优化方法的情况下,若仍然按照神经网络模型10的网络结构逐层运行,则不能发挥电子设备100的硬件或软件的性能,降低了神经网络模型10的运行速度,浪费电子设备100的计算资源。
有鉴于此,本申请实施例提供了一种神经网络模型运行方法,将待运行的神经网络模型的各网络层(例如第N层)的网络层类型分别与电子设备100的优化模型数据库中的多个预设优化模型(即电子设备100可以进行优化计算的模型)的第一参考层(即预设优化模型的第一个网络层)的网络层类型进行对比,在确定出优化模型数据库中存在第一参考层的网络层类型与待运行的神经网络模型的第N层的网络层类型相同的预设优化模型的情况下,再将存在的各预设优化模型的后续参考层(即预设优化模型的第一参考层后的网络层)的网络层类型与待运行的神经网络模型的第N层的后续层(即待运行的神经网络模型的第N层后与后续参考层层数相同的网络层)的网络层类型是否相同,在确定出相同的情况下,通过预设优化模型对应的预设优化方法对待运行的神经网络模型进行优化,再运行优化后的神经网络模型以实现待运行神经网络模型的功能。如此,可以充分利用电子设备100的计算资源,提高电子设备100运行神经网络模型的速度。
其中,网络层类型根据神经网络模型各网络层的功能确定,包括但不限于卷积层、池化层、激活层、排序层、转置层、均值层、全连接层、算术计算层等。
可以理解,电子设备100的优化模型数据库中存储有电子设备100可以进行优化计算的预设优化模型以及各预设优化模型对应的预设优化方法。在一些实施例中,优化模型数据库可以由电子设备100的开发人员预置于电子设备100的存储器中,在另一些实施例中,优化模型数据库也可以存储于服务器中,电子设备100可以从服务器中获取电子设备100的优化模型数据库,在此不做限定。
可以理解,在一些实施例中,各预设优化模型的预设优化方法可以包括以下方法中的至少一种:
a.层与层之间的融合计算,例如融合卷积层和池化层、融合卷积层和激活层等,以减小数据在电子设备的100的处理器和系统内存间的传递次数,提高电子设备100运行神经网络模型的速度;
b.插入一个新的层,以满足电子设备100对的参数检查规则或者数据分布要求。例如某一卷积层的运算结果为9×9的矩阵,下一层为全连接层,但电子设备100只能处理3×3的全连接层计算,则可以在该卷积层后插入池化层,对该卷积层的运算结果进行下采样,生成3×3的矩阵,再传送给全连接层进行后续运算;
c.替换一个新的层,即是对于部分电子设备100不支持的网络层使用可以实现相同或类似功能的其他类型的网络层进行替换,从而可以提高电子设备100运行神经网络模型的成功率;
d.改变当前层的输入和/或输出数据的形状,以适应电子设备100的要求。例如,某一网络层的输出结果为9×9的矩阵,下一层为排序层,电子设备100在对数据进行排序层运算时,要求输入数据为1维矩阵,因此,可以将9×9的矩阵变形为81×1的1维矩阵后再传送给下一层。
可以理解,在另一些实施例中,各预设优化模型的预设优化方法也可以是其他的方法,在此不做限定。
可以理解,预设优化模型可以为两个运行顺序相邻的网络层,例如卷积层-激活层、池化层-激活层、全连接层-激活层、算术运算层-激活层、均值层-全连接层、计算层-排序层;也可以为单独的网络层,例如全连接层;还可以是多个运行顺序相邻的网络层,例如卷积层-池化层-激活层等,在此不做限定。
具体地,图2根据本申请的一些实施例,示出了一种神经网络模型运行方法的流程示意图。该流程的执行主体为电子设备100,如图2所示,该流程包括如下步骤。
S201:获取待运行的神经网络模型各网络层的网络层类型标识和运行顺序。
待运行的神经网络模型各网络层的网络层类型和运行顺序是由该神经网络模型的开发人员在构建该神经网络模型时确定。
可以理解,在一些实施例中,电子设备100可以从待运行的神经网络模型的模型数据中获取各网络层的网络层类型标识和各网络层的运行顺序;在另一些实施例中,电子设备100也可以通过解析待运行的神经网络模型各网络层的输入输出关系确定各网络层的运行顺序。在此不做限定。
S202:获取电子设备100的优化模型数据库。
如前所述,电子设备100的优化模型数据库中存储有电子设备100的预设优化模型以及各预设优化模型对应的预设优化方法。在一些实施例中,电子设备100优化模型数据库由电子设备100的开发人员预置在电子设备100的存储器中;在另一些实施例中,电子设备100也可以根据电子设备100的设备标识从服务器中获取电子设备100的优化模型数据库。
S203:确定优化模型数据库中是否存在第一参考层的网络层类型与当前层的网络层类型相同的预设优化模型。
例如,电子设备100可以获取当前网络层的网络层类型标识,并通过该网络层类型标识在优化模型数据库中查询优化模型数据库中是否存在有第一参考层的网络层类型与当前层的网络层类型相同的预设优化模型。如果存在,说明待运行的神经网络模型的当前层及当前层的后续层可能构成预设优化模型,转至步骤S204进行进一步确定;否则,转至步骤S206。
S204:确定存在的预设优化模型的后续参考层与待运行神经网络模型的当前层的后续层的网络层类型是否相同。
电子设备100确定存在的预设优化模型的后续参考层与待运行神经网络模型的当前层的后续层的网络层类型是否相同。如果相同,说明电子设备100能够对待运行的神经网络模型的当前层及当前层的后续层进行优化计算,转至步骤S205;否则,说明电子设备100不能对待运行的神经网络模型的当前层及当前层的后续层进行优化,转至步骤S206。
例如,在一些实施例中,电子设备100可以在存在的预设优化模型的后续参考层与待运行的神经网络模型的后续层的网络层类型标识相同的情况下,确定存在的预设优化模型的后续参考层与待运行神经网络模型的当前层的后续层的网络层类型是否相同。
可以理解,电子设备100在确定出优化模型数据库中存在多个第一参考层与待运行神经网络模型的当前层的网络层类型相同的预设优化模型的情况下,需要逐个确定各预设优化模型的后续参考层与待运行神经网络模型的当前层的后续层的网络层类型是否相同。
S205:根据确定出的预设优化模型对应的预设优化方法对待运行的神经网络模型进行优化。即是电子设备100根据前述确定出的第一参考层及后续参考层与待运行神经网络模型的当前层及当前层的后续层网络层类型相同的预设优化模型对应的预设优化方法对待运行的神经网络模型进行优化。
S206:判断是否完成所有网络层的检测。电子设备100判断是否已经对待运行的神经网络模型的所有网络层的检测,如果已经完成,则转至步骤S207以运行神经网络模型;否则转至步骤S203,检测优化模型数据库中是否存在第一参考层的网络层类型与待运行的神经网络模型的当前层的下一层的网络层类型相同的预设优化模型。
S207:运行优化后神经网络模型。电子设备100运行优化后的神经网络模型,以实现待运行神经网络模型的功能。
可以理解,在一些实施例中,如果电子设备100未对待运行的神经网络模型做任何优化,即是待运行的神经网模型中不存在与预设优化模型的网络层类型相同的网络层,则电子设备100直接运行待运行的神经网络模型。
如前所述,在图2所示的实施例中,电子设备100是逐层将待运行的神经网络模型的当前层的网络层类型与优化模型数据库的各预设优化模型的第一参考层的网络层类型进行对比,再将第一参考层的网络层类型与待运行的神经网络模型的当前层的网络层类型相同的预设优化模型的后续参考层与待运行的神经网络模型的当前层的后续层进行对比,以确定电子设备100能否对待运行的神经网络模型的当前层和当前层的后续层进行优化。如此,电子设备100虽然能够对待运行神经网络模型进行优化,但算法复杂度较高,优化速度较慢。
例如,参考图3A,神经网络模型10有n个网络层,电子设备100存在m种预设优化模型,电子设备100中存在ki个第一参考层的网络层类型和神经网络模型100的第i层的网络层类型相同的预设优化模型,根据图3A所示的实现过程示意图可以得到电子设备100完成对神经网络模型100的优化过程中,在不考虑预设优化模型第2层以后的网络层的比较次数的情况下,共计要进行的比较次数为:
为了提高电子设备100对待运行的神经网络模型的优化速度,本申请实施例还提供了一种神经网络模型的运行方法,通过获取待运行的神经网络模型中运行顺序相邻的多个网络层的网络层类型,再将获取的多个网络层的网络层类型与电子设备100的优化模型数据库中的各预设优化模型的网络层类型进行对比,在预设优化模型的网络层类型满足预设条件的情况下,确定该预设优化模型能够对获取的多个网络层的至少部分网络层进行优化计算,并基于确定出的预设优化模型对应的预设优化方法对获取的多个网络层的至少部分网络层进行优化。如此,可以快速确定电子设备100是否可以对待运行神经网络模型进行优化计算,降低了算法复杂度,提高了对待运行神经网络模型的优化速度,进而提高了电子设备100运行神经网络模型的速度。
例如,参考图3A和图3B,对于图3A所示的相同的神经网络模型10,采用本申请实施例提供的神经网络模型运行方法,假设一次取3层运行顺序相邻的网络层与预设的优化模型的网络层类型进行对比,电子设备100完成对神经网络模型10的优化过程中要进行的比较次数为N2=m(n-2),相比于通过前述图2所示实施例的神经网络模型运行方法完成对神经网络模型10进行优化所需的比较次数N1,电子设备100需要进行的比较次数明显降低,提高了对待运行神经网络模型的优化速度,进而提高了电子设备100运行神经网络模型的速度。
可以理解,上述预设条件包括以下条件中的至少一个:
预设优化模型的网络层数小于获取的多个网络层的网络层数,且获取的多个网络层中存在与预设优化模型的网络层数相同且网络层类型相同的子网络层,例如图3B中获取的多个网络层为神经网络模型10的网络层1至网络层3,则预设优化模型2和预设优化模型m满足预设条件;
预设优化模型的网络层数和获取的多个网络层的网络层数相同,获取的多个网络层与预设优化模型的各网络层的网络层类型相同。
可以理解,在一些实施例中,上述获取的多个网络层的层数不少于电子设备100的优化模型数据库中的各预设优化模型中网络层数最多的预设优化模型的网络层数
下面以待运行的神经网络模型为图1所示的神经网络模型10,预设的优化模型的网络层数都为2层为例,介绍本申请实施例的技术方案。
具体地,图4根据本申请的一些实施例,示出了一种神经网络模型运行方法的流程示意图,图5示出了该流程的实施过程示意图。该流程的执行主体为电子设备100,如图4所示,该流程包括如下步骤。
S401:获取神经网络模型10的各网络层的网络层类型标识,生成各网络层的运行顺序表50。电子设备100根据神经网络模型10的各网络层的运行顺序,生成各网络层的运行顺序表50,在运行顺序表50中,神经网络模型10的各网络层的排列顺序和各网络层的运行顺序一致。
例如,参考图1和图5,电子设备100可以构建神经网络模型10的运行顺序表50,该运行顺序表4可以包括各网络层的运行顺序(Layer ID)和网络层类型标识(Type)。例如网络层1为2维卷积层,网络层类型标识为con2d、网络层2为以Relu函数为激活函数的激活层,网络层类型标识为relu、……、网络层n-1也为2维卷积层,网络层类型标识为con2d、网络层n为最大值池化层,网络层类型标识为MaxPooling。以便于电子设备100可以对运行顺序表50进行遍历,获取神经网络模型10中多个运行顺序相邻的网络层,并与优化模型数据库中的预设优化模型进行对比。
可以理解,在另一些实施例中,运行顺序表50还可以包括其他内容,例如各网络层的输入输出数据的格式,在此不做限定。
可以理解,神经网络模型10的各网络层的运行顺序的获取方法可以参考步骤S401,在此不做赘述。
S402:获取电子设备100的优化模型数据库。电子设备100获取电子设备100的优化模型数据库中的预设优化模型及各预设优化模型对应的预设优化方法。
可以理解,在一些实施例中,优化模型数据库可以以各种数据结构存储于电子设备100中,例如哈希表、链表、树、图等,本申请实施例不做限定。为便于理解,下面以通过哈希表存储的优化模型数据库为例介绍优化模型数据库的内容。
哈希表是根据关键码值(键-值)进行数据存储的数据结构,以哈希表存储的每一条数据由“键”和“值”进行表征,电子设备100可以根据“键”从哈希表中获取“键”对应的“值”。在以哈希表存储电子设备100的优化模型数据库的情况下,一个预设优化模型的信息对应哈希表中的一条数据,并且每一条数据的键(KEY)可以包括该条数据对应的预设优化模型各网络层的网络层类型标识;每一数据的值(VALUE)可以包括电子设备100对该数据对应的预设优化模型的优化方法的具体内容,例如该预设优化模型对应的优化函数的指令或该优化函数的指令的指针。
具体地,参考图5,电子设备100可以通过哈希表51来实现神经网络模型10优化数据库的存储。在电子设备100的预设优化模型包括2维卷积层-以Relu函数为激活函数的激活层、2维卷积层-最大值池化层的情况下:2维卷积层-以Relu函数为激活函数的激活层组成的预设优化模型对应的数据可以存储为哈希表51中第1条数据,并且该条数据的“KEY”为2维卷积层和以Relu函数为激活函数的激活层的网络层类型标识“con2d,relu”、值为电子设备100对该预设优化模型的优化函数“Function-con2d-relu”;2维卷积层-最大值池化层组成的预设优化模型对应的数据可以存储为哈希表51中第m条数据,并且该条数据的“KEY”为2维卷积层和最大值池化层的网络层类型标识“con2d,MaxPooling”、值为电子设备100对该预设优化模型的优化函数“Function-con2d-MaxPooling”。优化函数“Function-con2d-relu”和优化函数“Function-con2d-MaxPooling”的具体内容将在下文进行介绍,在此不做赘述。
可以理解,在另一些实施例中,哈希表51也可以包括其他内容,在此不做限定。
可以理解,在另一些实施例中,电子设备100的预设优化模型还可以包括其他结构,在此不做限定。
S403:以双指针的形式遍历运行顺序表50,确定电子设备100是否可以通过预设优化模型对双指针对应的网络层进行优化计算。
具体地,电子设备100以双指针的形式遍历运行顺序表50,也即是说电子设备100一次读取神经网络模型10中运行顺序相邻的两个网络层的网络层类型(图5所示的“Type”字段),其中一个指针对应一个网络层的数据,例如依次读取网络层1和网络层2,网络层2和第3层,……,第n-2层和网络层n-1,网络层n-1和网络层n的网络层类型,并依次和哈希表51中各条数据的“KEY”字段进行对比,若双指针所对应的网络层的网络层类型标识和哈希表51中各条数据的“KEY”相同,则说明双指针对应的网络层和哈希表51中该条数据所代表的预设优化模型相同,也即是电子设备100可以通过预设优化模型对双指针对应的网络层进行优化计算,转至步骤S404通过预设优化方法对双指针对应的网络结构进行优化,否则转到步骤S405。
例如当双指针分别对应网络层1和网络层2时,则双指针对应的网络层类型为“con2d,relu”和哈希表51中“INDEX”字段为1的数据中的“KEY”字段相同,即说明神经网络模型10的网络层1和网络层2所构成的网络结构为预设优化模型,转至步骤S404。
可以理解,在一些实施例中,若电子设备100存在单个的网络层的预设优化模型,则哈希表50中表示单个网络层的预设优化模型的数据的“KEY”字段的内容为该单个网络层的标识。电子设备100在对“KEY”字段的内容为单个网络层的网络层类型标识的预设优化模型进行判断时,只要双指针对应的网络层有一个网络层的网络层类型标识与该单个网络层的网络层类型标识相同,即可确定电子设备100可以通过预设优化模型对双指针对应的网络层进行优化计算。
可以理解,在一些实施中,若电子设备100存在包括2个以上网络层的预设优化模型的情况下,还可以以多指针的形式遍历运行顺序表50,即是同时读取多个运行顺序相邻的网络层的网络层类型标识,并将多个运行顺序相邻的网络层的网络层类型标识与优化模型数据库中的预设优化模型的网络层类型标识进行对比,在预设优化模型的网络层类型标识与多个指针对应的网络层的网络层类型标识相同或多个指针对应的网络层中存在与预设优化模型的网络层数相同的子网络层,并且该子网络层的网络层类型标识与预设优化模型的各网络层的网络层类型标识相同的情况下,确定电子设备100可以通过预设优化模型对多指针对应的网络层的至少部分网络层进行优化计算,在此不做限定。
S404:根据确定出的预设优化模型对应的预设优化方法对神经网络模型10进行优化。
电子设备100在确定出神经网络模型10中存在预设优化模型的情况下,根据哈希表51“VALUE”字段对应的优化方法对上述存在的预设优化模型进行优化。
例如,神经网络模型10的网络层1和网络层2、网络层n-1和网络层n分别构成预设优化模型。电子设备100可以通过优化函数“Function-con2d-relu”对网络层1和网络层2进行优化,例如融合网络层1和网络层2;通过优化函数“Function-con2d-MaxPooling”对网络层n-1和网络层n进行优化,例如融合网络层n-1和网络层n融合,生成如图6所示的神经网络模型10′。具体的优化过程将在下文进行详细介绍,在此不做赘述。
可以理解,在一些实施例中,预设优化方法(例如优化函数)可以由电子设备100的开发人员预置在电子设备100中,可预设优化方法包括但不限于:层与层之间的融合计算、插入一个新的层、替换一个网络层、改变当前层的输入和/或输出数据的形状等,在此不做限定。
可以理解,在一些实施例中,在确定出有多个预设优化模型可以对双指针对应的至少一个网络层进行优化的情况下,电子设备100可以确定出能够优化双(多)指针对应的网络层中最多的网络层的一个或多个预设优化模型,并通过该一个或多个预设优化模型对应的预设优化方法对双(多)指针对应的网络层进行优化。例如双指针对应的网络层的网络层类型标识分别为con2d和MaxPooling,电子设备100可以对con2d-MaxPooling组成的2层网络进行优化,也可以单独对网络层类型标识为MaxPooling网络进行优化,则对con2d-MaxPooling组成的2层网络进行优化。又例如,使用多指针对运行顺序表50进行遍历时,多指针对应的3个网络层的网络层类型标识分别为“con2d”和“MaxPooling”和“relu”,电子设备100可以对网络层类型标识为“MaxPooling”和“relu”的2层网络、网络层类型标识“con2d”和“MaxPooling”的2层网络进行优化,也可以对网络层类型标识为“relu”的网络进行优化,则电子设备100分别对多指针对应的第1层和第2层组成的2层网络、多指针对应的第3层网络进行优化。
可以理解,在另一些实施例中,也可以通过其他方式确定多个预设优化模型中的一个或多个对双(多)指针对应的网络层进行优化,例如以减小复杂度最多的一个或多个预设优化模型对双(多)指针对应的网络层进行优化,在此不做限定。
可以理解,在一些实施例中,当电子设备100对部分网络层进行优化形成新的网络层后,还可以用新的网络层的网络层类型标识替换运行顺序表中优化前的网络层对应的网络层类型标识,再以双指针的方式重新遍历运行顺序表50,以确定电子设备100是否可以继续对神经网络模型10进行优化。例如,电子设备100将神经网络模型的网络层1和网络层2进行融合后,形成一个新的2维卷积层,则电子设备100可以通过双指针获取新的2维卷积层的网络层类型标识“con2d”和神经网络模型10的网络层3的网络层类型标识,并在哈希表中51查询是否存在可以对当前双指针对应的网络层进行优化的预设优化模型。
S405:判断是否遍历完运行顺序表50。电子设备100判断是否已经遍历完运行顺序表50,如果已经遍历完,则说明已经完成对神经网络模型10的优化,转至步骤S406运行神经网络模型10;否则,转至步骤303,将双指针向后移动,继续判断神经网络模型10中是否存在有预设优化模型,并在确定出存在有预设优化模型的情况下通过预设的方法对存在的预设优化模型进行优化。
例如,在一些实施例中,电子设备100可以在双指针中的靠后的指针指向运行顺序表50的最后一条数据(即神经网络模型10的最后一个网络层对应的数据)的情况下,确定已经遍历完运行顺序表50。
S406:运行优化后的神经网络模型。
电子设备100运行优化后的神经网络模型以实现神经网络模型10的功能,例如图6所示的神经网络模型10′和神经网络模型10的结构不同,但能够实现的功能相同,由于神经网络模型10′是根据电子设备100的预设优化模型由神经网络模型10优化生成,运行神经网络模型10′来实现神经网络模型10的功能可以提高电子设备100运行神经网络模型的速度。
可以理解,在一些实施例中,如果电子设备100未对神经网络模型10做任何优化,即是神经网模型10中不存在预设优化模型,则电子设备100直接运行神经网络模型10。
可以理解,前述步骤S401至步骤S406的执行顺序只是一种示例,在另一些实施例中,也可以采用其他顺序,还可以合并或拆分部分步骤,在此不做限定。
通过本申请实施例提供的方法,电子设备100可以快速对待运行的神经网络模型进行优化,以充分利用电子设备100的计算资源,提高电子设备100运行神经网络模型的速度。此外,由于对神经网络模型进行优化过程中采用了双指针的形式遍历待运行的神经网络模型的运行顺序表,提高了优化的速度,进而提高了电子设备100运行神经网络模型的速度。
此外,在电子设备100有新的预设优化模型的情况下,只需要在哈希表51中增加该新的预设优化模型的“KEY”和“VALUE”字段,即可使电子设备100在运行具有该新的预设优化模型的神经网络模型时,使用对应的优化方法对神经网络模型进行优化,进一步提高电子设备100运行神经网络模型的速度。
下面,分别以预设优化模型为卷积层-激活层、卷积层-池化层为例介绍电子设备100通过预设优化方法对待运行神经网络模型中的预设优化模型进行优化的过程。
为便于理解本申请实施例的技术方案,首先介绍卷积层、激活层和池化层的作用和计算过程。
卷积层由至少一个卷积运算单元组成,用于提取输入数据的特征。以下简要介绍卷积的计算过程。
设矩阵A的大小为M×M,卷积核C的大小为N×N,卷积步长为k,则矩阵A与卷积核C的卷积(记为X=A*C)结果X可以表示为:
在公式(1)中,X(m,n)为矩阵X第m行第n列的元素;m,n满足以下关系式:
例如,当矩阵A为:
卷积核C为:
则矩阵A与卷积核C的卷积结果X为:
激活层用于对输入的数据(通常为卷积层的结果)做非线性映射,提高神经网络模型提取非线性特征的能力。激活层通常利用一个激活函数逐个对输入数据进行非线性映射。
可以理解,激活函数包括但不限于Relu(The Rectified Linear Unit)函数、Sigmoid函数、Tanh函数等。例如,图7A根据本申请的一些实施例,示出了一种Relu函数的函数图像示意图。参考图7A,Relu函数的输入为x,输出为y,则当x小于0时,y为0;当x大于或等于0时,y为x。该Relu函数可以表示为公式(2):
进一步,图7B根据本申请的一些实施例,示出了通过公式(2)所示的Relu函数对上述矩阵A与矩阵C的卷积结果X进行激活生成矩阵XR的过程示意图。如图7B,激活过程即是逐个将矩阵X中元素与0比较,若该元素小于0,则将矩阵X中该元素设置为0,否则不改变该元素的值。
池化层用于对输入数据进行下采样,以缩小输入数据的规模,以利于提高神经网络模型的运算速度。池化层通过将输入数据分为多个区域,并以每个区域中的最大值、平均值等作为该区域的池化结果。其中,以每个区域的最大值作为该区域的池化结果可以称为最大值池化;以每个区域的平均值作为该区域的池化结果可以称为均值池化。
具体地,图8示出了一种池化区域大小为2×2的池化层对上述矩阵A和卷积核C的卷积结果X进行最大值池化的过程示意图。如图8所示,该过程即是将矩阵X分成多个2×2的子矩阵,例如将X分为4个2×2的子矩阵,并将每个子矩阵中值最大的一个元素作为该子矩阵的池化结果。也即是说,对矩阵X进行池化区域大小为2×2的池化后,结果XP的大小为2×2。
下面结合卷积层、激活层和池化层的具体内容,使用预设优化方法对预设优化模型进行优化的过程。
在预设优化模型为卷积层-激活层的结构,例如神经网络模型10的网络层1为公式(1)所示的卷积层、神经网络模型10的网络层2为公式(2)所示的激活层的情况下,电子设备100若不对网络层1和网络层2进行优化,电子设备100的处理器在运行神经网络模型10过程中先运行网络层1,根据公式(1)计算A*C得到矩阵X并将矩阵X存储到电子设备100的系统内存中,再从系统内存中读取矩阵X,根据公式B对矩阵X进行激活运算,得到激活结果XR。电子设备100的处理器在运行网络层1和网络层2时,要两次读/写系统内存,降低了神经网络模型10的运行速度。
在本申请实施例中,电子设备100可以将网络层1和网络层2进行融合,形成一个新的网络层,例如图6所示的网络层1_2,在网络层1_2中,电子设备100的处理器在根据公式(1)进行卷积运算后,先对卷积运算结果矩阵X进行激活,再将激活后的结果存储到电子设备100的系统内存中。具体地,在一些实施例中,网络层1_2可以通过公式(3)进行表示:
其中,矩阵X为基于公式(1)计算A*C的结果,X(m,n)为矩阵X第m行第n列的元素;XR(m,n)为矩阵XR第m行第n列的元素。
从而,对于网络结构为卷积层-激活层的预设优化模型,可以通过公式(3)对该预设优化模型进行优化,也即是前文所述的优化函数“Function-con2d-relu”可以为公式(3)。
相似地,在预设优化模型为卷积层-池化层的结构,例如神经网络模型10的网络层n-1为公式(1)所示的卷积层、神经网络模型10的网络层n为图8所示的池化层的情况下,电子设备100若不对网络层n-1和网络层n-2进行优化,电子设备100的处理器在运行神经网络模型10过程中先运行网络层n-1,根据公式(1)计算A*C得到矩阵X并将矩阵X存储到电子设备100的系统内存中,再从系统内存中读取矩阵X,基于图8所示的池化过程对矩阵X进行下采样,得到池化结果XP。电子设备100的处理器在运行网络层n-1和网络层n时,要两次读/写系统内存,降低了神经网络模型10的运行速度。
在本申请实施例中,电子设备100可以将网络层n-1和网络层n进行融合,形成一个新的网络层,例如图6所示的网络层n-1_n,在网络层n-1_n中,电子设备100的处理器在根据公式(1)进行卷积运算后,先对卷积运算结果矩阵X进行池化,再将池化后的结果存储到电子设备100的系统内存中。具体地,在一些实施例中,网络层n-1_n可以通过公式(4)进行表示:
XP(m,n)=MAX{X(2m-1,2n-1),X(2m-1,2n),X(2m,2n-1),X(2m,2n)} (4)
其中,矩阵X为基于公式(1)计算A*C的结果,X(m,n)为矩阵X第m行第n列的元素;XP(m,n)为矩阵XP第m行第n列的元素。
从而对于网络结构为卷积层-激活层的预设优化模型,可以通过公式(3)对该预设优化模型进行优化,也即是前文所述的优化函数“Function-con2d-MaxPooling”可以为公式(4)。
进一步,图9根据本申请的一些实施例,示出了一种电子设备100的结构示意图。如图9所示,电子设备100包括一个或多个处理器101、系统内存102、非易失性存储器(Non-Volatile Memory,NVM)103、通信接口104、输入/输出(I/O)设备105、以及用于耦接处理器101、系统内存102、非易失性存储器103、通信接口104和输入/输出(I/O)设备105的系统控制逻辑106。其中:
处理器101可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP(Digital Signal Processor)、微处理器MCU(Micro-programmed Control Unit)、AI(Artificial Intelligence,人工智能)处理器或可编程逻辑器件FPGA(FieldProgrammable Gate Array)、神经网络处理器(Neural-network Processing Unit,NPU)等的处理模块或处理电路可以包括一个或多个单核或多核处理器。在一些实施例中,CPU可以用于对待运行的神经网络模型进行优化,NPU可以用于运行待运行的神经网络模型。
系统内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SDRAM)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存储电子设备100的优化模型数据库,也可以用于存储预设优化方法的指令,还可以用于存储待运行的神经网络模型的运行顺序表等。
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。在另一些实施例中,非易失性存储器103可以用于存储优化模型数据库,也可以用于存储预设优化方法的指令,还可以用于存储待运行的神经网络模型的运行顺序表等。
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行时使电子设备100实现本申请各实施例提供的神经网络模型运行方法。
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信,例如,电子设备100可以通过通信接口104将电子设备100的设备标识传送给服务器,并从服务器获取电子设备100的优化模型数据库。
输入/输出(I/O)设备105可以输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(I/O)设备105与电子设备100进行交互,例如输入待运行的神经网络模型等。
系统控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成系统封装(System in Package,SiP)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(System-on-Chip,SoC)。
可以理解,图9所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
可以理解,电子设备100可以是任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备等,本申请实施例不做限定。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (11)
1.一种神经网络模型的运行方法,应用于第一电子设备,其特征在于,第一神经网络模型包括N个网络层;
所述方法包括:
获取所述第一神经网络模型的第j层至第j+m-1层网络层的网络层类型标识,其中m为多个预设优化模型中网络层数最多的预设优化模型的网络层数量,j=1、2、……、N-m+1;
将所述第j层至第j+m-1层网络层的网络层类型标识与各所述预设优化模型的网络层类型标识进行比对,确定出能够对所述第j层至第j+m-1层网络中的至少一层网络层进行优化的至少一个第一预设优化模型;
根据确定出的各第一预设优化模型对应的优化方法对第j层至第j+m-1层网络层中的至少一层网络层进行优化,生成第二神经网络模型;
运行所述第二神经网络模型。
2.根据权利要求1所述的方法,其特征在于,在所述预设优化模型满足以下条件的情况下,确定所述预设优化模型能够对所述第j层至第j+m-1层网络层中的至少一层网络层进行优化:
在所述预设优化模型的网络层数小于m的情况下,所述第j层至第j+m-1层网络层存在网络层数与所述预设优化模型的网络层数相同的子网络层,并且所述子网络层的各网络层的网络层类型标识与所述预设优化模型的各网络层的网络层类型标识相同;或
在所述预设优化模型的网络层数等于m的情况下,所述第j层至第j+m-1层网络层的网络层类型标识与所述预设优化模型的各网络层的网络层类型标识相同。
3.根据权利要求1所述的方法,所述根据确定出的各预设优化模型对应的优化方法对第j层至第j+m-1层网络层中的至一层网络层进行优化,生成第二神经网络模型,包括:
确定出所述至少一个第一预设优化模型中能够对所述第j层至第j+m-1层网络层中最多层数进行优化的至少一个第二预设优化模型;
通过所述至少一个第二预设优化模型对应的优化方法对所述第j层至第j+m-1层网络层中的至少一层网络层进行优化,生成第二神经网络模型。
4.根据权利要求1所述的方法,其特征在于,所述获取所述第一神经网络模型的第j层至第j+m-1层网络层的网络层类型标识,包括:
获取所述第一神经网络模型各网络层的运行顺序表,所述运行顺序表中包括各网络层的网络层类型标识;
通过m个指针遍历所述运行顺序表,获取所述第一神经网络模型的第j层至第j+m-1层网络层的网络层类型标识。
5.根据权利要求4所述的方法,其特征在于,所述多个预设优化模型以哈希表的形式进行存储;并且
所述哈希表中的键包括各所述预设优化模型的网络层类型标识,所述哈希表中的值包括所述哈希表中的键表示的预设优化模型对应的所述预设优化方法的指令或所述预设优化方法的指针。
6.根据权利要求1至5任一项所述的方法,其特征在于,还包括:
从第二电子设备获取所述多个预设的优化模型以及各所述预设优化模型对应的预设优化方法。
7.根根据权利要求1至5任一项所述的方法,其特征在于,所述预设优化方法,包括以下方法中的至少一种:
将所述第一神经网络模型的第j层至第j+m-1层网络层的至少部分网络层融合为一个网络层;
在所述第一神经网络模型的第j层至第j+m-1层网络层中插入至少一个网络层;
替换所述第一神经网络模型的第j层至第j+m-1层网络层中的至少一个网络层;
改变所述第一神经网络模型的第j层至第j+m-1层中网络层的至少一个网络层的输入数据和/或输出数据的格式。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述预设优化模型包括以下模型中的至少一种:卷积层-激活层、池化层-激活层、全连接层-激活层、算术运算层-激活层、均值层-全连接层、计算层-排序层、卷积层-池化层-激活层。
9.根据权利要求1至5任一项所述的方法,其特征在于,所述第一神经网络模型和所述第二神经网络模型的功能相同。
10.一种可读介质,其特征在于,所述可读介质中包含有指令,当所述指令被电子设备的处理器执行时使电子设备实现权利要求1至9中任一项所述的神经网络模型运行方法。
11.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令;
以及处理器,是所述电子设备的处理器之一,用于运行所述指令以使所述电子设备实现权利要求1至9中任一项所述的神经网络模型运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254781.3A CN113935470A (zh) | 2021-10-27 | 2021-10-27 | 神经网络模型的运行方法、介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254781.3A CN113935470A (zh) | 2021-10-27 | 2021-10-27 | 神经网络模型的运行方法、介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113935470A true CN113935470A (zh) | 2022-01-14 |
Family
ID=79284649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111254781.3A Pending CN113935470A (zh) | 2021-10-27 | 2021-10-27 | 神经网络模型的运行方法、介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113935470A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378470A (zh) * | 2019-07-19 | 2019-10-25 | Oppo广东移动通信有限公司 | 神经网络模型的优化方法、装置以及计算机存储介质 |
CN110555514A (zh) * | 2019-08-20 | 2019-12-10 | 北京迈格威科技有限公司 | 神经网络模型搜索方法、图像识别方法和装置 |
CN111488970A (zh) * | 2020-04-03 | 2020-08-04 | 北京思朗科技有限责任公司 | 神经网络的执行优化方法及装置 |
CN112200297A (zh) * | 2020-09-04 | 2021-01-08 | 厦门星宸科技有限公司 | 神经网络优化方法、装置及处理器 |
WO2021037174A1 (zh) * | 2019-08-29 | 2021-03-04 | 杭州海康威视数字技术股份有限公司 | 一种神经网络模型训练方法及装置 |
WO2021078027A1 (zh) * | 2019-10-25 | 2021-04-29 | 腾讯科技(深圳)有限公司 | 构建网络结构优化器的方法、装置及计算机可读存储介质 |
-
2021
- 2021-10-27 CN CN202111254781.3A patent/CN113935470A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378470A (zh) * | 2019-07-19 | 2019-10-25 | Oppo广东移动通信有限公司 | 神经网络模型的优化方法、装置以及计算机存储介质 |
CN110555514A (zh) * | 2019-08-20 | 2019-12-10 | 北京迈格威科技有限公司 | 神经网络模型搜索方法、图像识别方法和装置 |
WO2021037174A1 (zh) * | 2019-08-29 | 2021-03-04 | 杭州海康威视数字技术股份有限公司 | 一种神经网络模型训练方法及装置 |
WO2021078027A1 (zh) * | 2019-10-25 | 2021-04-29 | 腾讯科技(深圳)有限公司 | 构建网络结构优化器的方法、装置及计算机可读存储介质 |
CN111488970A (zh) * | 2020-04-03 | 2020-08-04 | 北京思朗科技有限责任公司 | 神经网络的执行优化方法及装置 |
CN112200297A (zh) * | 2020-09-04 | 2021-01-08 | 厦门星宸科技有限公司 | 神经网络优化方法、装置及处理器 |
Non-Patent Citations (1)
Title |
---|
吴强;杨小兵;: "一种动态构建深度信念网络模型方法", 中国计量大学学报, no. 01, 15 March 2018 (2018-03-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701250B (zh) | 数据定点化方法和装置 | |
US10114554B1 (en) | Arrangements for storing more data in faster memory when using a hierarchical memory structure | |
CN113689285B (zh) | 一种检测用户特征的方法、装置、设备及存储介质 | |
WO2020263424A1 (en) | Building a graph index and searching a corresponding dataset | |
CN116663618A (zh) | 一种算子优化方法、装置、存储介质及电子设备 | |
EP3479214B1 (en) | Recovering free space in nonvolatile storage with a computer storage system supporting shared objects | |
CN116308738B (zh) | 一种模型训练的方法、业务风控的方法及装置 | |
CN113935470A (zh) | 神经网络模型的运行方法、介质和电子设备 | |
KR20200119164A (ko) | 정보 처리 장치 및 그것에 포함된 신경망 연산 장치의 동작 방법 | |
WO2023066836A1 (en) | Transparent interleaving of compressed cache lines | |
KR102511225B1 (ko) | 인공지능 추론모델을 경량화하는 방법 및 시스템 | |
CN114741029A (zh) | 应用于去重存储系统的数据分配方法及相关设备 | |
CN113626650A (zh) | 业务处理方法、装置和电子设备 | |
US11068458B2 (en) | Mechanism for distributed-system-aware difference encoding/decoding in graph analytics | |
CN113411395B (zh) | 访问请求路由方法、装置、计算机设备和存储介质 | |
US20240143982A1 (en) | Fused Convolutions for Fast Deep Neural Network | |
CN114970406B (zh) | 数字集成电路的定制方法、装置、介质和计算设备 | |
CN117992242B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20240194288A1 (en) | Generalized nestedness detection in microbial communities | |
Ghai et al. | Robust optimal-complexity multilevel ilu for predominantly symmetric systems | |
CN113723480A (zh) | 一种图像处理方法、装置、电子设备和存储介质 | |
CN118331961A (zh) | 目标账户的分库存储方法、装置、计算机设备、可读存储介质 | |
CN113761934A (zh) | 一种基于自注意力机制的词向量表示方法及自注意力模型 | |
WO2022208173A2 (en) | Vectorizing a loop | |
CN118052946A (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 |