CN111553466B - 信息处理方法、装置及设备 - Google Patents
信息处理方法、装置及设备 Download PDFInfo
- Publication number
- CN111553466B CN111553466B CN202010362567.9A CN202010362567A CN111553466B CN 111553466 B CN111553466 B CN 111553466B CN 202010362567 A CN202010362567 A CN 202010362567A CN 111553466 B CN111553466 B CN 111553466B
- Authority
- CN
- China
- Prior art keywords
- layer
- fusion
- target
- network
- layers
- 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
- 230000010365 information processing Effects 0.000 title claims abstract description 40
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 230000004927 fusion Effects 0.000 claims abstract description 275
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 136
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 9
- 238000003062 neural network model Methods 0.000 claims description 8
- 239000010410 layer Substances 0.000 description 499
- 108091006146 Channels Proteins 0.000 description 24
- 239000011229 interlayer Substances 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000007499 fusion processing Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 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
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Error Detection And Correction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种信息处理方法、装置及设备。所述方法包括:获取原始卷积神经网络模型的拓扑信息,所述拓扑信息包括所述原始卷积神经网络模型的多个网络层的层信息以及所述多个网络层之间的连接信息;基于所述拓扑信息,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层;对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型。
Description
技术领域
本公开涉及计算机视觉技术,尤其涉及一种信息处理方法、装置及设备。
背景技术
在神经网络模型中,网络层(layer)是基本计算单元。通过网络层对神经网络模型,尤其是卷积神经网络进行描述,在软件层面上易于模块化地实现代码。然而,在硬件层面上,由于在执行各个网络层的操作时计算是分离的,较高的存储和访问次数限制了卷积神经网络模型的执行速度。
发明内容
本公开提供一种信息处理方案。
根据本公开的一方面,提供一种信息处理方法。所述方法包括:获取原始卷积神经网络模型的拓扑信息,所述拓扑信息包括所述原始卷积神经网络模型的多个网络层的层信息以及所述多个网络层之间的连接信息;基于所述拓扑信息,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层;对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型。
结合本公开提供的任一实施方式,所述获取原始卷积神经网络模型的拓扑信息,包括:获取所述原始卷积神经网络模型的描述信息;基于所述描述信息,构建表示所述原始卷积神经网络的拓扑结构的第一拓扑图。
结合本公开提供的任一实施方式,所述层融合条件包括纵向融合条件和横向融合条件中的至少一项;其中,所述纵向融合条件包括:连续的多个网络层中每个网络层具有单个输入和单个输出;所述横向融合条件包括:多个网络层分支的输出指向同一个网络层。
结合本公开提供的任一实施方式,所述对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括:根据所述至少两个目标网络层的类型以及所述至少两个目标网络层之间的连接关系,对所述至少两个目标网络层进行合并,得到融合网络层;根据所述融合网络层,得到目标卷积神经网络模型。
结合本公开提供的任一实施方式,所述对所述至少两个目标网络层进行合并,得到融合网络层,包括:响应于所述至少两个目标网络层的输出指向同一个网络层且所述至少两个目标网络层具有相同的输入和相同的卷积核参数,将所述至少两个目标网络层按照通道进行合并,得到融合网络层。
结合本公开提供的任一实施方式,所述对所述至少两个目标网络层进行合并,得到融合网络层,包括:将所述至少两个目标网络层的权重参数按照通道进行拼接,得到所述融合网络层的权重参数,其中,所述融合网络层的输出按照与所述至少两个目标网络层对应的通道被拆分成至少两个输出,所述至少两个输出分别存储在所述至少两个目标网络层对应的输出存储位置。
结合本公开提供的任一实施方式,所述对所述至少两个目标网络层进行合并,得到融合网络层,包括:响应于所述至少两个目标网络层包括拼接层和输出端与所述拼接层的输入端连接的至少两个第一网络层,将所述至少两个第一网络层中每个第一网络层与所述拼接层合并,得到至少两个融合网络层。
结合本公开提供的任一实施方式,所述至少两个第一网络层中每个第一网络层的输出作为对应的融合网络层的输出被存储在同一存储块中,并且每个融合网络层的输出具有基于所述拼接层的拼接操作确定的存储地址偏移值。
结合本公开提供的任一实施方式,所述对所述至少两个目标网络层进行合并,得到融合网络层,包括:响应于所述至少两个目标网络层包括按元素操作层以及与所述按元素操作层的输入端连接的第二网络层,将所述第二网络层与所述按元素操作层进行合并,得到融合网络层,其中,所述按元素操作层的输入端还与第三网络层的输出端连接。
结合本公开提供的任一实施方式,所述将所述第二网络层与所述按元素操作层进行合并,得到融合网络层,包括:将所述按元素操作层的按元素操作融合到所述第二网络层,得到融合网络层,其中,所述第三网络层的输出端与所述融合网络层的输入端连接。
结合本公开提供的任一实施方式,所述基于所述拓扑信息,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层,包括:获得指示所述层融合条件的融合模板,其中,所述融合模板包括横向融合模板和纵向融合模板中的至少一种;基于所述拓扑信息,获得与所述融合模板匹配的至少两个第一目标网络层。
结合本公开提供的任一实施方式,所述对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括:基于所述拓扑信息,确定所述原始卷积神经网络模型中满足纵向层融合条件的至少两个第一目标网络层;对所述满足纵向层融合条件的至少两个第一目标网络层进行合并,得到中间卷积神经网络模型;确定所述中间卷积神经网络模型中满足横向融合条件的至少两个第二目标网络层;对所述至少两个第二网络层进行合并,得到所述目标卷积神经网络模型。
结合本公开提供的任一实施方式,所述拓扑信息包括第一拓扑图;所述对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括:基于所述至少两个目标网络层,对所述第一拓扑图进行更新,得到用于表示所述目标卷积神经网络模型的第二拓扑图。
结合本公开提供的任一实施方式,所述方法还包括:将所述目标卷积神经网络模型进行编译处理,得到设备可执行代码。
根据本公开的一方面,提供一种信息处理方法。所述方法包括:接收设备可执行代码,其中,所述设备可执行代码是通过本公开提供的任一实施方式所述的信息处理方法得到的目标卷积神经网络模型进行编译处理得到的;基于所述设备可执行代码,对输入数据进行处理,得到数据处理结果;将所述数据处理结果进行返回或者存储。
根据本公开的一方面,提供一种信息处理装置。所述装置包括:获取单元,用于获取原始卷积神经网络模型的拓扑信息,所述拓扑信息包括所述原始卷积神经网络模型的多个网络层的层信息以及所述多个网络层之间的连接信息;确定单元,用于基于所述拓扑信息,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层;合并单元,用于对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型。
结合本公开提供的任一实施方式,所述获取单元具体用于:获取所述原始卷积神经网络模型的描述信息;基于所述描述信息,构建表示所述原始卷积神经网络的拓扑结构的第一拓扑图。
结合本公开提供的任一实施方式,所述层融合条件包括纵向融合条件和横向融合条件中的至少一项;其中,所述纵向融合条件包括:连续的多个网络层中每个网络层具有单个输入和单个输出;所述横向融合条件包括:多个网络层分支的输出指向同一个网络层。
结合本公开提供的任一实施方式,所述合并单元具体用于:根据所述至少两个目标网络层的类型以及所述至少两个目标网络层之间的连接关系,对所述至少两个目标网络层进行合并,得到融合网络层;根据所述融合网络层,得到目标卷积神经网络模型。
结合本公开提供的任一实施方式,所述合并单元具体用于:响应于所述至少两个目标网络层的输出指向同一个网络层且所述至少两个目标网络层具有相同的输入和相同的卷积核参数,将所述至少两个目标网络层按照通道进行合并,得到融合网络层。
结合本公开提供的任一实施方式,所述合并单元具体用于:将所述至少两个目标网络层的权重参数按照通道进行拼接,得到所述融合网络层的权重参数,其中,所述融合网络层的输出按照与所述至少两个目标网络层对应的通道被拆分成至少两个输出,所述至少两个输出分别存储在所述至少两个第一目标网络层对应的输出存储位置。
结合本公开提供的任一实施方式,所述合并单元具体用于:响应于所述至少两个目标网络层包括拼接层和输出端与所述拼接层的输入端连接的至少两个第一网络层,将所述至少两个第一网络层中每个第一网络层与所述拼接层合并,得到至少两个融合网络层。
结合本公开提供的任一实施方式,所述至少两个第一网络层中每个第一网络层的输出作为对应的融合网络层的输出被存储在同一存储块中,并且每个融合网络层的输出具有基于所述拼接层的拼接操作确定的存储地址偏移值。
结合本公开提供的任一实施方式,所述合并单元具体用于:响应于所述至少两个目标网络层包括按元素操作层以及与所述按元素操作层的输入端连接的第二网络层,将所述第二网络层与所述按元素操作层进行合并,得到融合网络层,其中,所述按元素操作层的输入端还与第三网络层的输出端连接。
结合本公开提供的任一实施方式,所述合并单元在用于将所述第二网络层与所述按元素操作层进行合并,得到融合网络层时,具体用于:将所述按元素操作层的按元素操作融合到所述第二网络层,得到融合网络层,其中,所述第三网络层的输出端与所述融合网络层的输入端连接。
结合本公开提供的任一实施方式,所述确定单元具体用于:获得指示所述层融合条件的融合模板,其中,所述融合模板包括横向融合模板和纵向融合模板中的至少一种;基于所述拓扑信息,获得与所述融合模板匹配的至少两个第一目标网络层。
结合本公开提供的任一实施方式,所述合并单元具体用于:基于所述拓扑信息,确定所述原始卷积神经网络模型中满足纵向层融合条件的至少两个第一目标网络层;对所述满足纵向层融合条件的至少两个第一目标网络层进行合并,得到中间卷积神经网络模型;确定所述中间卷积神经网络模型中满足横向融合条件的至少两个第二目标网络层;对所述至少两个第二网络层进行合并,得到所述目标卷积神经网络模型。
结合本公开提供的任一实施方式,所述拓扑信息包括第一拓扑图;所述合并单元具体用于:基于所述至少两个目标网络层,对所述第一拓扑图进行更新,得到用于表示所述目标卷积神经网络模型的第二拓扑图。
结合本公开提供的任一实施方式,所述装置还包括执行单元,用于将所述目标卷积神经网络模型进行编译处理,得到设备可执行代码。
根据本公开的一方面,提供一种信息处理装置。所述装置包括:接收单元,用于接收设备可执行代码,其中,所述设备可执行代码是通过对本公开任一实施方式所述的信息处理方法得到的目标卷积神经网络模型进行编译处理得到的;第一处理单元,用于基于所述设备可执行代码,对输入数据进行处理,得到数据处理结果;第二处理单元,用于将所述数据处理结果进行返回或者存储。
根据本公开的一方面,提供一种电子设备,包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开任一实施方式所述的信息处理方法。
根据本公开的一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施方式所述的信息处理方法。
本公开任一实施方式所提出的信息处理方法、装置及设备,通过获取原始卷积神经网络模型的拓扑信息,并基于所述拓扑信息确定满足融合条件的至少两个目标网络层,通过对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,能够在未修改框架底层实现的情况下,实现网络层之间的融合;利用本公开任一实施方式的信息处理方法得到的目标卷积神经网络进行编译获得设备可执行代码,避免了大量增改代码,减少冗余计算,基于所述设备可执行代码进行数据处理,提高了进行推理计算的速度。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开至少一个实施例提供的一种信息处理方法的流程图;
图2A和图2B为本公开至少一个实施例提供的纵向层间融合过程的示意图;
图3A和图3B为本公开至少一个实施例提供的横向层间融合过程的示意图;
图4为本公开至少一个实施例提供的信息处理方法中数据存储的示意图;
图5A和图5B为本公开至少一个实施例提供的拼接层融合过程的示意图;
图6A和图6B为本公开至少一个实施例提供的按元素操作层融合过程的示意图;
图7为本公开至少一个实施例提供的另一种信息处理方法的流程图;
图8为本公开至少一个实施例提供的一种信息处理装置的结构示意图;
图9为本公开至少一个实施例提供的另一种信息处理装置的结构示意图;
图10为本公开至少一个实施例提供的一种电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
图1为本公开至少一个实施例提供的一种信息处理方法的流程图。如图1所示,该方法包括步骤101~步骤103。
在步骤101中,获取原始卷积神经网络模型的拓扑信息。
在本公开实施例中,所述拓扑信息包括所述原始卷积神经网络模型的多个网络层的层信息以及所述多个网络层之间的连接信息,其中,所述层信息包括网络层的参数信息;根据所述多个网络层之间的连接信息,可以获得所述多个网络层之间的拓扑顺序。
在步骤102中,基于所述拓扑信息,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层。
所述层融合条件表明待进行合并操作的至少两个网络层以及所述至少两个网络层之间的连接信息。根据所述原始卷积神经网络模型的拓扑信息,可以确定在卷积神经网络模型中,满足所述融合条件的至少两个目标网络层。
在步骤103中,对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型。
根据所述至少两个目标网络层的类型以及所述至少两个目标网络层之间的连接关系,对所述至少两个目标网络层进行合并,得到融合网络层;并根据所述融合网络层,得到目标卷积神经网络模型。
在本公开实施例中,通过获取原始卷积神经网络模型的拓扑信息,并基于所述拓扑信息确定满足融合条件的至少两个目标网络层,通过对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,能够在未修改框架底层实现的情况下,实现网络层之间的融合。
在一些实施例中,可以通过以下方式获得所述原始卷积神经网络模型的拓扑信息:获取所述原始卷积神经网络模型的描述信息;基于所述描述信息,构建表示所述原始卷积神经网络模型的拓扑结构的拓扑图。为了将表示拓扑结构的拓扑图与其他拓扑图进行区分,将此处涉及的拓扑图称为第一拓扑图。
以深度学习框架(Convolutional Architecture for Fast Feature Embeddin,Caffe)为例,所述原始卷积神经网络模型的描述信息可以记录在prototxt文件中,记录的顺序为满足拓扑排序性质的线性序列。通过从prototxt文件解析出的各个网络层的参数信息、各个网络层之间的连接信息,构建表示所述原始卷积神经网络的拓扑结构的第一拓扑图。
所述第一拓扑图可以包括两类元素:节点(node)和边(edge)。其中,所述节点用于表示所述原始卷积神经网络模型中的某一层,例如卷积层、激活层(例如,relu)等等,并且可以利用层的名字作为节点名;边由两个节点作为端点,一方面描述了所述两个节点所对应的两个层之间的连接关系(数据流向)。通过层的输入(bottom)和输出(top),例如输入的和输出的张量(tensor),也即层的输入输出数据存放位置之间的关系来构建边的指向关系。另一方面边的指向也表示两个层执行的顺序。也即,在所述第一拓扑图中的边是有向边。假设节点A与节点B之间的边指向节点B,则表示节点A的输出张量输入至节点B,且节点A的执行顺序先于节点B。
对于第一拓扑图中的每个节点,需要保存层的名字、层的类型、输入张量列表,输出张量列表;对于所述第一拓扑图中的每条边,需要包括所述边所连接的两个层,也即保存这两个层的名字和指向关系。
在一些实施例中,可以通过生成节点集合、输入边集合和输出边集合,来构建卷积神经网络模型的第一拓扑图,并维护上述集合。以下分别描述这三个集合的生成。
一、节点集合
可以对所述卷积神经网络模型的输入数据以及每一层创建一个节点,并录入每个节点的相关信息,包括该层的名字、该层的类型、该层的输入张量、该层的输出张量。
二、输入边集合
针对所述节点集合中的每个节点,获取所述节点的输入张量,并将所述节点与以所述输入张量作为输出张量的节点进行连接,获得输入边。
以第一拓扑图中的节点A为例,在节点A具有至少一个输入张量的情况下,对于其中的一个输入张量,遍历节点集合中各个节点的输出张量,例如可以逆序遍历。在搜索到了与节点A的输入张量同名的输出张量情况下,确定该输出张量对应的节点B,节点B的输出张量即为节点A的输入张量。建立节点B指向节点A的边,并将该边加入输入边集合。
三、输出边集合
针对每个节点,获取所述节点的输出张量,并将所述节点与以所述输出张量作为输入张量的节点进行连接,获得输出边。
以第一拓扑图中的节点A为例,在节点A具有至少一个输出张量的情况下,对于其中的一个输出张量,遍历节点集合中后续各个节点的输入张量。在首次搜索到与节点A的输出张量同名的输入张量的情况下,确定该输入张量对应的节点B,节点B的输入张量即为节点A的输出张量。建立节点A指向节点B的边,并将该边加入输出边集合。
在再次搜索到与节点A的输出张量同名的输入张量的情况下,表明该输出张量同时又是另一个节点的输入张量,即进入了多分支指向关系的处理,并将分支中建立的边加入输出边集合。
在遍历卷积神经网络模型的节点后,将层间的指向关系都录入了输入边集合与输出边集合,即完成了对卷积神经网络模型结构和执行顺序的图描述,得到了第一拓扑图。也即,根据每个节点以及所述节点的输入边和输出边,以及各个节点之间的连接关系,可以得到卷积神经网络模型的第一拓扑图。
在一些实施例中,还可以通过生成输入节点集合、节点集合、输入边集合和输出边集合,来构建卷积神经网络模型的第一拓扑图,并维护上述集合。
输入点集合通过卷积神经网络模型的输入数据建立,也即将输入数据作为第一拓扑图的输入节点。对于输入节点的输出张量,可以通过遍历所有层的输入张量,找到与所述输出张量同名的输入张量,得到输入节点与相关层的输出边,将加入输出边集合。节点集合、输入边集合和输出边集的生成过程可参考以上的描述。
在本公开实施例中,将卷积神经网络模型的原始结构信息转换为图描述,可以避免大量增改代码,提高了信息处理效率。
在本公开实施例中,所述层融合条件可以包括纵向融合条件和横向融合条件中的至少一项。其中,所述纵向融合条件包括:连续的多个网络层中每个网络层具有单个输入和单个输出,也即,纵向融合条件是指满足有单个输入张量和单个输出张量,且无分支出现的连接模式;所述横向融合条件包括:多个网络层分支的输出指向同一个网络层。
满足层融合条件的至少两个目标网络层包括下列中的至少一种:卷积层、拼接层和按元素操作层。其中,满足纵向融合条件的目标网络层可以上述三种网络层中之一,满足横向融合条件的目标网络层可以包括卷积层或者融合层,其中所述融合层包括对满足纵向融合条件的目标网络层进行合并所得到的网络层。
在一些实施例中,可以基于所述第一拓扑图,利用预设的融合模板从所述原始卷积神经网络模型中确定满足融合条件的至少两个目标网络层。
所述预设的融合模板根据层融合条件确定,也即根据待进行合并操作的层确定。所述融合模板可以是待进行搜索的卷积神经网络模型的第一拓扑图的子图(subgraph)。根据融合模板所包含的层以及各层之间的连接关系,通过在所述第一拓扑图中检索与所述融合模板匹配的局部结构,根据所述局部结构中所包含的网络层可以确定所述目标网络层。
在一些实施例中,可以根据以下方式从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层:获得指示所述层融合条件的融合模板,其中,所述融合模板包括横向融合模板和纵向融合模板中的至少一种;基于所述拓扑信息,获得与所述融合模板匹配的至少两个第一目标网络层
对于纵向融合条件,可以设置指示所述纵向融合条件的纵向融合模板,通过获得所述纵向融合模板,并基于所述拓扑信息,获得与所述纵向融合模板匹配的至少两个第一目标网络层。对于横向融合条件,可以设置指示所述横向融合条件的横向融合模板,通过获得所述横向融合模板。根据所述横向融合条件,基于所述初始卷积神经网络模型的拓扑信息,可以确定与所述横向融合模板匹配的至少两个第一目标网络层;根据所述横向融合条件,基于已经进行了纵向融合的中间卷积神经网络模型的拓扑信息,可以确定与所述横向融合模板匹配的至少两个第二目标网络层,其中,所述第二目标网络层的至少一个中包含了已经进行了纵向融合的融合网络层。
在一个示例中,所述纵向融合条件例如包括顺序连接的卷积层、批标准化(batchnormalization)层、缩放(scale)层与激活层(例如,relu)。根据所述原始卷积神经网络模型的拓扑信息,可以将原始卷积神经网络模型中所包含的,顺序连接的卷积层、批标准化层、缩放层、激活层确定为满足纵向融合条件的目标网络层;对于上述顺序连接的多个目标网络层进行合并,得到融合网络层,并根据所述融合网络层得到目标卷积神经网络模型。
在一个示例中,可以通过以下方式确定满足纵向融合条件对应的目标网络层。仍以上述纵向融合条件为例,所述纵向融合模板包括顺序连接的卷积层、批标准化层、缩放层与激活层,根据该纵向融合模板在所述原始卷积神经网络模型的第一拓扑图中进行搜索,得到图2A中以卷积层1(conv1)和卷积层2(conv2)作为初始节点的两个局部结构。所述两个局部结构中所包含的网络层则为满足纵向融合条件的目标网络层。
具体地,根据所述结构信息中各个层的顺序遍历所述第一拓扑图中的节点,对于每个节点,执行如下操作:在当前节点C与纵向融合模板中的第一个待融合节点匹配的情况下,确定所述第一个待融合节点的输出边所指向的待融合节点,与所述第一拓扑图中节点C的输出边所指向的节点是否匹配。在纵向融合模板中的后续每个待融合节点都与节点C的输出边所指向的后续每个节点匹配时,根据匹配的节点以及所述节点的输入边和输出边,确定与所述融合模板匹配的局部结构。
在本公开实施例中,融合模板中的待融合节点与第一拓扑图中的节点匹配,包括待融合节点与节点的类型相同,并且输出边的数量相同。
在一个示例中,对于利用纵向融合模板进行搜索得到的局部结构,可以根据所述局部结构中所包含的顺序连接的卷积层、批标准化层、缩放层、激活层创建一个融合节点,并且该融合节点继承了所述局部结构的输入输出关系,也即所述融合节点用于接收输入张量的输入边,根据所述局部结构中的第一层,也即卷积层的输入边确定,所述融合节点的输出边根据所述局部结构中的最后一层,也即激活层的输入边确定。在该纵向融合模式中,根据局部结构构建融合节点,可以实现以卷积层为基础,将其他层的计算操作融合到卷积层末尾执行。
上述利用纵向融合模板在第一拓扑图中进行搜索所得到的局部结构,是可以进行纵向层间融合的特定连接形式,接下来,则进入对所述局部结构中的节点所指示的层进行纵向融合的过程。
首先,根据所述局部结构包含的节点以及所述节点之间的连接关系,建立融合节点,并将该融合节点加入节点集合,同时删除被融合的节点及其中的各个边的指向关系。
接下来,根据所述局部结构中的第一个节点的输入边,确定所述融合节点的输入边。其中,第一个节点,是按照卷积神经网络的结构信息对第一拓扑图进行遍历时,在局部结构中第一个访问的节点。在输入边集合中,将其他节点(局部结构以外的节点)指向第一个节点的边指向新建立的融合节点。
最后,根据所述局部结构中的最后一个节点的输出边,确定所述融合节点的输出边。其中,最后一个节点,是按照卷积神经网络的结构信息对第一拓扑图进行遍历时,在局部结构中最后一个访问的节点。在输出边集合中,将所述最后一个节点指向其他节点的边改为由新建立的融合节点来指向。
仍以上述纵向融合条件为例,在确定了目标网络层后,对每个局部结构所包含的目标网络层进行合并,也即根据每个局部结构建立融合节点,并且所述融合节点继承局部结构在第一拓扑图中的输入输出关系(连接关系),并删除所述第一拓扑图中的原始节点,得到图2B所示的修改后的目标拓扑图。对于卷积层与其他层进行纵向融合同理,在此不再赘述。
在一个示例中,所述横向融合条件例如包括输入相同、卷积核参数(卷积尺寸)相同且输出指向同一个网络层的至少两个网络层。根据所述原始卷积神经网络模型的拓扑信息,或者根据进行了纵向融合后的卷积神经网络模型的拓扑信息,可以将卷积神经网络模型中所包含的,满足上述横向融合条件的网络层,也即输入相同、卷积核参数相同且输出指向同一个网络层的至少两个网络层确定为目标网络层。其中,所述目标网络层可以包括卷积层,也可以包括进行了纵向融合后的融合网络层。对于上述满足横向融合条件的至少两个目标网络层,可以按照通道进行合并,得到融合网络层,并根据所述融合网络层得到目标卷积神经网络模型。
对所述至少两个目标网络层按照通道进行合并,包括将所述至少两个目标网络层的权重参数按照通道进行拼接,得到所述融合网络层的权重参数,其中,所述融合网络层的输出按照与所述至少两个目标网络层对应的通道被拆分成至少两个输出,所述至少两个输出分别存储在所述至少两个目标网络层对应的输出存储位置。
在一个示例中,可以通过以下方式确定满足横向融合条件对应的目标网络层。仍以上述横向融合条件为例,所述横向融合模板包括输入相同、卷积核参数相同且输出指向同一个网络层的至少两个网络层,根据该横向融合模板在卷积神经网络模型的拓扑图中进行搜索,得到图3A中包括网络层v1、v2、v3的局部结构,所述网络层v1、v2、v3则为目标网络层。其中,所述网络层v1、v2、v3是已经进行了纵向融合后的节点。所述目标网络层也可以包括未进行融合的卷积层。
以下描述利用横向融合模板,在卷积神经网络模型的拓扑图中确定目标网络层的方法。
根据所述拓扑信息中各个层的顺序遍历所述拓扑图中的节点,对于每个节点,执行如下操作:在当前节点D具有多个输出边的情况下,表明节点指向多个有可能进行横向融合的层,因此确定每个输出边指向的节点是否与其中一个所述待融合节点匹配。在搜索到具有多个输出边的节点时,则将每个输出边所指向的节点与横向融合模板中的其中一个待融合节点进行匹配。此处的匹配包括待融合节点与节点的类型相同,并且输出边的数量相同。在节点D的多个输出边所指向的节点中,至少两个节点与待融合节点匹配,且所述至少两个节点的卷积尺寸参数相同的情况下,根据所述节点以及所述节点的输入边和输出边,确定所述横向融合模板匹配的局部结构。
上述利用横向融合模板在第一拓扑图中进行搜索所得到的局部结构,是可以进行横向层间融合的特定连接形式,接下来,则进入对所述局部结构中的节点所指示的目标网络层进行横向融合的过程。
在一个示例中,对于利用横向融合模板进行搜索得到的局部结构,可以对输入数据相同、卷积尺寸相同的多个卷积层在输出通道的维度上进行拼接,合成一个卷积层,所合成的卷积层的输出通道数,是进行合并的各个卷积层的输出通道数之和。
首先,将多个匹配的节点对应各个层分别进行合并,得到融合节点,并将该融合节点加入节点集合,同时删除被融合的节点及其中的各个边的指向关系。
接下来,根据所述局部结构中多个节点的输入边,确定所述融合节点的输入边。融合节点的输入张量为其中的各个卷积层共同的输入张量,也即,所述融合节点的输入边用于输入各个节点的输入张量的和。在输入边集合中,将节点D指向各个匹配节点改为由节点D指向新建立的融合节点。
最后,根据所述局部结构中多个节点的输出边,确定所述融合节点的输出边,所述融合节点的输出边用于输出各个节点的输出张量的和。在输出边集合中,将多个匹配节点指向局部结构外的其他节点,改为由新建立的融合节点指向该其他节点。
在所述横向融合模板包括并行连接的三个已经完成纵向层间融合处理的纵向融合层的情况下,其中每个纵向融合层可以是对卷积层、批标准化层、缩放层与激活层进行融合得到的,根据该融合模板在卷积神经网络的第一拓扑图中进行搜索,得到与节点Op1的多个输出边分别连接的经纵向层间融合后的纵向融合节点v1、v2、v3。其中,节点v1、v2、v3对应的卷积层的尺寸参数是一样的,例如,上述三个纵向融合节点的卷积核都是1x1,其他卷积计算参数也相同,区别仅在于输出通道数不同,分别为64、48、64,如图3A所示。根据局部结构中的三个节点v1、v2、v3建立融合节点h1,也即将节点v1、v2、v3对应的卷积层1(conv1)、卷积层2(conv2)、卷积层3(conv3)融合为一个卷积层(convH),融合后的卷积层的输出通道为进行融合的三个卷积层之和176。横向融合节点h1的输入数据仍来源于Op1层的输出,输出数据仍供给Op3层作为输入。并且,纵向融合节点中的其他层,包括bn层以及scale层也按照通道顺序拼接为176通道的数据集合bnH、scaleH,在删除原始节点后,得到了如图3B所示的修改后的目标拓扑图。对于其他数目、其他通道数的卷积层之间的横向融合同理,在此不再赘述。
需要注意的是,横向融合层convH将conv1、conv2、conv3的权重数据在通道方向上依次拼接,在计算结果输出时,将不同通道对应的卷积层输出结果放回各自原始的输出张量中,如图4所示。
本领域技术人员应当理解,以上满足纵向融合条件、横向融合条件的网络层还可以包括其他的层以及其他的连接方式,不限于以上所述。
在一些实施例中,基于所述拓扑信息,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层,以及对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括:基于所述拓扑信息,确定所述原始卷积神经网络模型中满足纵向层融合条件的至少两个第一目标网络层;对所述满足纵向层融合条件的至少两个第一目标网络层进行合并,得到中间卷积神经网络模型;确定所述中间卷积神经网络模型中满足横向融合条件的至少两个第二目标网络层;对所述至少两个第二网络层进行合并,得到所述目标卷积神经网络模型。
在本公开实施例中,可以首先确定满足纵向融合条件的至少两个目标网络层,并对所述至少两个第一目标网络层进行合并得到第一融合网络层,并根据所述第一融合网络层得到中间卷积神经网络模型;根据所述中间卷积神经网络模型的拓扑信息,可以进一步确定满足横向融合条件的至少两个第二目标网络层,其中,所述第二目标网络层中的一个或多个可以包含第一融合网络层,也即包含已经进行了纵向融合后的融合网络层。通过对所述至少两个第二目标网络层进行合并得到第二融合网络层,根据所述第二融合网络层,或者根据所述第二融合网络层和第一融合网络层,获得目标卷积神经网络模型。
在本公开实施例中,对于卷积神经网络模型中所包含的网络层,在进行了纵向层间融合的基础上,进行了卷积层的横向层间融合,从而实现了对于网络层的二维层间融合。
对于其他融合模板所对应的局部结构,可以利用相应的合并方式对层进行合并,并根据局部结构的输入输出关系来获得融合节点。
在一些实施例中,可以利用多个不同设置的融合模板对所述第一拓扑图进行搜索,获得包括不同类型的层或者具有不同连接方式的局部结构。
在一些实施例中,可以使用广度优先遍历算法,以与所述卷积神经网络模型的执行顺序一致的顺序进行遍历,以便快速搜索到与融合模板匹配的局部结构。
在一些实施例中,为了对原始的第一拓扑图进行保存,以及为了便于图处理,可以获得与所述第一拓扑图相同的第二拓扑图,例如对原始的第一拓扑图进行拷贝,得到结构和数据流向一致的第二拓扑图。在卷积神经网络的推理计算过程中,可以利用所述融合节点,替换与所述第一拓扑图中的局部结构对应的,也即可融合的结构搜索和改动可以直接在第二拓扑图上进行,而改动后的第二拓扑图即为目标拓扑图,并根据所述目标拓扑图使所述卷积神经网络执行信息处理。
在一些实施例中,响应于所述至少两个目标网络层包括拼接(concat)层和输出端与所述拼接层的输入端连接的至少两个第一网络层,将所述至少两个第一网络层中每个第一网络层与所述拼接层合并,得到至少两个融合网络层。
在本公开实施例中,可以提前对拼接操作的层设定标记,以支持在执行阶段可以直接将数据存放到后续拼接层的输出张量内。
在预设的融合模板包括具有多个输入边的待融合节点,且所述待融合节点所指示的层包括拼接层的情况下,可以通过以下方式,利用所述融合模板对第一拓扑图进行搜索,获得与所述融合模板匹配的局部结构:根据所述拓扑信息中各个层的顺序遍历第一拓扑图中的节点,对于每个节点执行如下操作:在当前节点E与所述待融合节点匹配的情况下,也即所述节点E为拼接层的情况下,获取节点E的输入边所指向的上层节点,并根据匹配的节点、所述上层节点以及所述匹配的节点的输入边和输出边,获得与所述模板匹配的局部结构。其中,所述拼接层的类型例如可以是按通道拼接的类型。
上述利用拼接融合模板在第一拓扑图中进行搜索所得到的局部结构,是可以对指向拼接层的上层节点进行融合的特定连接形式,接下来,则进入对所述局部结构中的节点所指示的层进行拼接融合的过程。
首先,根据匹配的节点E和每一个上层节点,分别建立融合节点。也即,将节点E与每一个上层节点作为一对,来建立融合节点。所建立的融合节点数目与所述局部结构中所包含的上层节点的数目相同。将这些融合节点加入节点集合,同时删除被融合的节点及其中的各个边的指向关系。
接下来,根据所述融合节点中的上层节点的输出张量,确定所述融合节点的输出张量。也即,对于上层节点中,支持拼接融合操作的层,将所述上层节点的输出张量改为当前拼接层的输出张量。
最后,根据所述融合节点中的上层节点的输入张量,确定所述融合节点的输入张量。
在一些实施例中,与所述拼接层的输入端连接的至少两个第一网络层中,每个第一网络层的输出作为对应的融合网络层的输出被存储在同一存储块中,并且每个融合网络层的输出具有基于所述拼接层的拼接操作确定的存储地址偏移值。也即,在拼接融合模式下,对各个融合节点的输出张量进行存储,并根据存储顺序确定所述输出张量的存储地址偏移值。根据各个融合节点执行的先后顺序,对于在当前拼接层的输出张量中存储数据的地址赋予偏移值。通过将拼接操作的结果直接存储到当前拼接层的输出张量中,而无需每个融合节点中的拼接层再次访问数据,减少了访存次数,提高了运算速度。
在预设的融合模板包括具有三个输入边的待融合节点,且所述待融合节点所指示的层包括拼接层的情况下,根据该融合模板在卷积神经网络的第一拓扑图中进行搜索,得到的局部结构如图5A所示,层Op1到层Op3的输出对应存储至输出张量1至输出张量3,经拼接层处理后得到的结果存储至输出张量4中。对于Op1层和拼接层、Op2层和拼接层、Op3层和拼接层分别建立融合节点c1、c2、c3,并将输出张量1至输出张量3在输出张量4中存放位置的地址偏置作为参数传递给对应的Op层,如图5B所示。在Op1至Op3执行时,直接将结果存储到输出张量4中,而无需融合结节点的拼接层再次访问数据,从而节省了两次访存操作。对于其他数目输入边的待融合拼接层同理,在此不再赘述。
在一些实施例中,响应于所述至少两个目标网络层包括按元素操作层以及与所述按元素操作层的输入端连接的第二网络层,将所述第二网络层与所述按元素操作层进行合并,得到融合网络层,其中,所述按元素操作层的输入端还与第三网络层的输出端连接。将所述第二网络层与所述按元素操作层进行合并,包括:将所述按元素操作层的按元素操作融合到所述第二网络层,得到融合网络层,其中,所述第三网络层的输出端与所述融合网络层的输入端连接。
在本公开实施例中,可以提前对Eltwsie操作的层设定标记,以支持在执行阶段可以直接将数据存放到后续Eltwsie层的输出张量内。
在预设的融合模板包括具有多个输入边的待融合节点,且所述待融合节点所指示的层包括按元素操作层的情况下,可以通过以下方式,利用所述融合模板对第一拓扑图进行搜索,获得与所述融合模板匹配的局部结构:根据所述结构信息中各个层的顺序遍历所述拓扑图中的节点,对于每个节点执行如下操作:在当前节点F与所述待融合节点匹配的情况下,获取所述节点输入边指向的上层节点,根据匹配的节点、所述上层节点以及所述匹配的节点的输入边和输出边,获得与所述模板匹配的局部结构。本领域技术人员应当理解,在实际处理过程中,Eltwise操作的输入大于2的情况下收益较小,因此通过将预设的融合模板设置为包括两个输入边的待融合节点。
上述利用Eltwsie融合模板在第一拓扑图中进行搜索所得到的局部结构,是可以对指向Eltwsie层的上层节点进行融合的特定连接形式,接下来,则进入对所述局部结构中的节点所指示的层进行Eltwsie融合的过程。
首先,根据各个上层节点的执行顺序,对于最后一个上层节与匹配的节点F建立融合节点。最后一个上层节点读取先前执行的上层节点的操作结果,与其进行Eltwise操作。也即,所述最后一个上层节点为最终执行Eltwise操作的层。将所得到的融合节点加入节点集合,同时删除被融合的节点及其中的各个边的指向关系。
接下来,根据所述最后一个上层节点的输出张量,确定所述融合节点的输出张量。也即,将所述最后一个上层节点的输出张量改为当前拼接层的输出张量。
最后,根据所述最后一个上层节点的输入张量,确定所述融合节点的输入张量。
在Eltwsie融合模式下,对其中一个融合节点的输出张量进行存储,得到第一存储数据;对另一个融合节点的输出张量和所述第一存储数据,执行所述按元素操作层所对应的操作,并对操作结果进行存储,减少了访存次数,提高了运算速度。
在预设的融合模板具有两个输入边的待融合节点,且所述待融合节点所指示的层包括Eltwsie层的情况下,根据该融合模板在卷积神经网络的第一拓扑图中进行搜索,得到的局部结构如图6A所示。
假设执行顺序为Op2先于Op1的情况下,Op2先执行得到操作结果,并将Op2的计算结果存储到输出张量2中,这种情况下则将Op1作为Eltwise融合后的执行层。Op1将读取Op2的结果,并将自身的结果与Op2的结果进行Eltwise操作,并将Eltwsie操作的结果存储至输出张量3,如图6B所示。通过先访问输出张量2,将对应位置的计算结果与输出张量2的数据进行相加计算,完成Eltwsie操作,并且Eltwsie操作的结果存储至输出张量3,从而节省了两次访存操作,提高了运算速度。
未进行层间融合的情况下原始卷积神经网络各层运算的耗时,以及根据本公开至少一个实施例提出的信息处理方法进行层间融合后,各层运算的耗时如表1所示,其中,原始卷积神经网络为ResNet-50,采用了批处理参数为32(32batch),采用单精度浮点计算。如表1所示,原始网络耗时109.7ms,而进行层间融合后网络耗时为52.5ms,可见,在进行了层间融合后,卷积神经网络的运算速度得到了提高。
表1
通过对本公开一个或多个实施例提出的信息处理方法中所得到的目标卷积神经网络模型进行编译处理,可得到设备可执行代码。
在本公开实施例中,根据拓扑信息来确定满足融合条件的目标网络层,并对网络层进行合并得到目标卷积神经网络模型,通过对所述目标卷积神经网络模型进行编译处理得到设备可执行代码,能够在未修改框架底层实现的情况下,获得进行了层间融合后的模型所对应的设备可执行代码,提高了信息处理效率。
本公开还提出了一种信息处理方法,如图7所述,所述方法包括步骤701~703。
在步骤701中,接收设备可执行代码,其中,所述设备可执行代码是通过对本公开一个或多个实施例所述的信息处理方法得到的目标卷积神经网络模型进行编译处理得到的;
在步骤702中,基于所述设备可执行代码,对输入数据进行处理,得到数据处理结果;
在步骤703中,将所述数据处理结果进行返回或者存储。
相关技术中,以Caffe为例,通常进行层融合的方法是通过修改prototxt文件中每一处可融合的层结构实现层之间的融合,这种方法需要对应修改caffe.proto文件以正确解析,还需要添加融合层的具体层代码才能够正常执行卷积运算。其他框架也同样都存在定义融合层和解析、执行的过程,这种修改底层代码、对融合层进行描述和解析代码的方式是低效的,在处理复杂网络结构的情况下需要大量增改代码。
本公开实施例所提出的信息处理方法,根据拓扑信息来确定满足融合条件的目标网络层,并对网络层进行合并得到目标卷积神经网络模型,通过对所述目标卷积神经网络模型进行编译处理得到设备可执行代码,根据所述设备可执行代码对输入数据进行处理,可以实现所述目标卷积神经网络模型的推理计算,避免了大量增改代码,减少冗余计算,提高进行推理计算的速度。
本公开至少一个实施例还提供了一种交互装置,如图8所示,所述装置包括:获取单元801,用于获取原始卷积神经网络模型的拓扑信息,所述拓扑信息包括所述原始卷积神经网络模型的多个网络层的层信息以及所述多个网络层之间的连接信息;确定单元802,用于基于所述拓扑信息,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层;合并单元803,用于对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型。
在一些实施例中,所述获取单元具体用于:获取所述原始卷积神经网络模型的描述信息;基于所述描述信息,构建表示所述原始卷积神经网络的拓扑结构的第一拓扑图。
在一些实施例中,所述层融合条件包括纵向融合条件和横向融合条件中的至少一项;其中,所述纵向融合条件包括:连续的多个网络层中每个网络层具有单个输入和单个输出;所述横向融合条件包括:多个网络层分支的输出指向同一个网络层。
在一些实施例中,所述合并单元具体用于:根据所述至少两个目标网络层的类型以及所述至少两个目标网络层之间的连接关系,对所述至少两个目标网络层进行合并,得到融合网络层;根据所述融合网络层,得到目标卷积神经网络模型。
在一些实施例中,所述合并单元具体用于:响应于所述至少两个目标网络层的输出指向同一个网络层且所述至少两个目标网络层具有相同的输入和相同的卷积核参数,将所述至少两个目标网络层按照通道进行合并,得到融合网络层。
在一些实施例中,所述合并单元具体用于:将所述至少两个目标网络层的权重参数按照通道进行拼接,得到所述融合网络层的权重参数,其中,所述融合网络层的输出按照与所述至少两个目标网络层对应的通道被拆分成至少两个输出,所述至少两个输出分别存储在所述至少两个第一目标网络层对应的输出存储位置。
在一些实施例中,所述合并单元具体用于:响应于所述至少两个目标网络层包括拼接层和输出端与所述拼接层的输入端连接的至少两个第一网络层,将所述至少两个第一网络层中每个第一网络层与所述拼接层合并,得到至少两个融合网络层。
在一些实施例中,所述至少两个第一网络层中每个第一网络层的输出作为对应的融合网络层的输出被存储在同一存储块中,并且每个融合网络层的输出具有基于所述拼接层的拼接操作确定的存储地址偏移值。
在一些实施例中,所述合并单元具体用于:响应于所述至少两个目标网络层包括按元素操作层以及与所述按元素操作层的输入端连接的第二网络层,将所述第二网络层与所述按元素操作层进行合并,得到融合网络层,其中,所述按元素操作层的输入端还与第三网络层的输出端连接。
在一些实施例中,所述合并单元在用于将所述第二网络层与所述按元素操作层进行合并,得到融合网络层时,具体用于:将所述按元素操作层的按元素操作融合到所述第二网络层,得到融合网络层,其中,所述第三网络层的输出端与所述融合网络层的输入端连接。
在一些实施例中,所述确定单元具体用于:获得指示所述层融合条件的融合模板,其中,所述融合模板包括横向融合模板和纵向融合模板中的至少一种;基于所述拓扑信息,获得与所述融合模板匹配的至少两个第一目标网络层。
在一些实施例中,所述合并单元具体用于:基于所述拓扑信息,确定所述原始卷积神经网络模型中满足纵向层融合条件的至少两个第一目标网络层;对所述满足纵向层融合条件的至少两个第一目标网络层进行合并,得到中间卷积神经网络模型;确定所述中间卷积神经网络模型中满足横向融合条件的至少两个第二目标网络层;对所述至少两个第二网络层进行合并,得到所述目标卷积神经网络模型。
在一些实施例中,所述拓扑信息包括第一拓扑图;所述合并单元具体用于:基于所述至少两个目标网络层,对所述第一拓扑图进行更新,得到用于表示所述目标卷积神经网络模型的第二拓扑图。
在一些实施例中,所述装置还包括执行单元,用于将所述目标卷积神经网络模型进行编译处理,得到设备可执行代码。
本公开至少一个实施例还提供了一种交互装置,如图9所示,所述装置包括:接收单元901,用于接收设备可执行代码,其中,所述设备可执行代码是通过对本公开任一实施方式所述的信息处理方法得到的目标卷积神经网络模型进行编译处理得到的;第一处理单元902,用于基于所述设备可执行代码,对输入数据进行处理,得到数据处理结果;第二处理单元903,用于将所述数据处理结果进行返回或者存储。
图10为本公开至少一个实施例提供的电子设备,包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本说明书任一实施例所述的信息处理方法。
本说明书至少一个实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本说明书任一实施例所述的信息处理方法。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例还提供一种计算机可读存储介质,该存储介质上可以存储有计算机程序,所述程序被处理器执行时实现本说明书任一实施例描述的驾驶员注视区域的检测方法的步骤,和/或,实现本说明书任一实施例描述的驾驶员注视区域的神经网络的训练方法的步骤。其中,所述的“和/或”表示至少具有两者中的其中一个,例如,“A和/或B”包括三种方案:A、B、以及“A和B”。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (18)
1.一种信息处理方法,其特征在于,所述方法包括:
获取原始卷积神经网络模型的描述信息;
基于所述描述信息,构建表示所述原始卷积神经网络的拓扑结构的第一拓扑图;
基于所述第一拓扑图,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层;
对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括:响应于所述至少两个目标网络层包括拼接层和输出端与所述拼接层的输入端连接的至少两个第一网络层,将所述至少两个第一网络层中每个第一网络层与所述拼接层合并,得到至少两个融合网络层;
其中,所述至少两个第一网络层中每个第一网络层的输出作为对应的融合网络层的输出被存储在同一存储块中,并且每个融合网络层的输出具有基于所述拼接层的拼接操作确定的存储地址偏移值。
2.根据权利要求1所述的方法,其特征在于,所述层融合条件包括纵向融合条件和横向融合条件中的至少一项;
其中,所述纵向融合条件包括:连续的多个网络层中每个网络层具有单个输入和单个输出;
所述横向融合条件包括:多个网络层分支的输出指向同一个网络层。
3.根据权利要求1所述的方法,其特征在于,所述对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括:
根据所述至少两个目标网络层的类型以及所述至少两个目标网络层之间的连接关系,对所述至少两个目标网络层进行合并,得到融合网络层;
根据所述融合网络层,得到目标卷积神经网络模型。
4.根据权利要求3所述的方法,其特征在于,所述对所述至少两个目标网络层进行合并,得到融合网络层,包括:
响应于所述至少两个目标网络层的输出指向同一个网络层且所述至少两个目标网络层具有相同的输入和相同的卷积核参数,将所述至少两个目标网络层按照通道进行合并,得到融合网络层。
5.根据权利要求3所述的方法,其特征在于,所述对所述至少两个目标网络层进行合并,得到融合网络层,包括:
将所述至少两个目标网络层的权重参数按照通道进行拼接,得到所述融合网络层的权重参数,其中,所述融合网络层的输出按照与所述至少两个目标网络层对应的通道被拆分成至少两个输出,所述至少两个输出分别存储在所述至少两个目标网络层对应的输出存储位置。
6.根据权利要求3所述的方法,其特征在于,所述对所述至少两个目标网络层进行合并,得到融合网络层,包括:
响应于所述至少两个目标网络层包括按元素操作层以及与所述按元素操作层的输入端连接的第二网络层,将所述第二网络层与所述按元素操作层进行合并,得到融合网络层,其中,所述按元素操作层的输入端还与第三网络层的输出端连接。
7.根据权利要求6所述的方法,其特征在于,所述将所述第二网络层与所述按元素操作层进行合并,得到融合网络层,包括:
将所述按元素操作层的按元素操作融合到所述第二网络层,得到融合网络层,其中,所述第三网络层的输出端与所述融合网络层的输入端连接。
8.根据权利要求1所述的方法,其特征在于,所述基于所述第一拓扑图,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层,包括:
获得指示所述层融合条件的融合模板,其中,所述融合模板包括横向融合模板和纵向融合模板中的至少一种;
基于所述第一拓扑图,获得与所述融合模板匹配的至少两个第一目标网络层。
9.根据权利要求1所述的方法,其特征在于,所述对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括:
基于所述第一拓扑图,确定所述原始卷积神经网络模型中满足纵向层融合条件的至少两个第一目标网络层;
对所述满足纵向层融合条件的至少两个第一目标网络层进行合并,得到中间卷积神经网络模型;
确定所述中间卷积神经网络模型中满足横向融合条件的至少两个第二目标网络层;
对所述至少两个第二网络层进行合并,得到所述目标卷积神经网络模型。
10.根据权利要求1所述的方法,其特征在于,所述对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括:
基于所述至少两个目标网络层,对所述第一拓扑图进行更新,得到用于表示所述目标卷积神经网络模型的第二拓扑图。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:
将所述目标卷积神经网络模型进行编译处理,得到设备可执行代码。
12.一种信息处理方法,其特征在于,所述方法包括:
接收设备可执行代码,其中,所述设备可执行代码是通过对权利要求1至11中任一项所述的信息处理方法得到的目标卷积神经网络模型进行编译处理得到的;
基于所述设备可执行代码,对输入数据进行处理,得到数据处理结果;
将所述数据处理结果进行返回或者存储。
13.一种信息处理装置,其特征在于,所述装置包括:
获取单元,用于获取原始卷积神经网络模型的描述信息;基于所述描述信息,构建表示所述原始卷积神经网络的拓扑结构的第一拓扑图;
确定单元,用于基于所述第一拓扑图,从所述原始卷积神经网络模型中确定满足层融合条件的至少两个目标网络层;
合并单元,用于对所述至少两个目标网络层进行合并,得到目标卷积神经网络模型,包括响应于所述至少两个目标网络层包括拼接层和输出端与所述拼接层的输入端连接的至少两个第一网络层,将所述至少两个第一网络层中每个第一网络层与所述拼接层合并,得到至少两个融合网络层;
其中,所述至少两个第一网络层中每个第一网络层的输出作为对应的融合网络层的输出被存储在同一存储块中,并且每个融合网络层的输出具有基于所述拼接层的拼接操作确定的存储地址偏移值。
14.一种信息处理装置,其特征在于,所述装置包括:
接收单元,用于接收设备可执行代码,其中,所述设备可执行代码是通过对权利要求1至11中任一项所述的信息处理方法得到的目标卷积神经网络模型进行编译处理得到的;
第一处理单元,用于基于所述设备可执行代码,对输入数据进行处理,得到数据处理结果;
第二处理单元,用于将所述数据处理结果进行返回或者存储。
15.一种电子设备,其特征在于,包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现权利要求1至11中任一项所述的方法。
16.一种电子设备,其特征在于,包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现权利要求12所述的方法。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至11中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求12所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010362567.9A CN111553466B (zh) | 2020-04-30 | 2020-04-30 | 信息处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010362567.9A CN111553466B (zh) | 2020-04-30 | 2020-04-30 | 信息处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111553466A CN111553466A (zh) | 2020-08-18 |
CN111553466B true CN111553466B (zh) | 2024-03-22 |
Family
ID=72001659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010362567.9A Active CN111553466B (zh) | 2020-04-30 | 2020-04-30 | 信息处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111553466B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685175A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种服务拓扑图的构建方法、装置和计算机可读存储介质 |
CN112819160B (zh) * | 2021-02-24 | 2023-10-31 | 文远鄂行(湖北)出行科技有限公司 | 一种神经网络模型的可视化方法、装置、设备及存储介质 |
CN113485836B (zh) * | 2021-07-21 | 2024-03-19 | 瀚博半导体(上海)有限公司 | 一种基于张量切分的张量处理方法和张量处理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109754073A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
CN109997154A (zh) * | 2017-10-30 | 2019-07-09 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
CN110874634A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 神经网络的优化方法及装置、设备和存储介质 |
CN110889815A (zh) * | 2018-09-07 | 2020-03-17 | 黑芝麻智能科技(上海)有限公司 | 卷积神经网络中的子图块融合 |
US10635951B1 (en) * | 2018-10-24 | 2020-04-28 | Alibaba Group Holding Limited | Fast computation of a convolutional neural network |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321999B (zh) * | 2018-03-30 | 2021-10-01 | 赛灵思电子科技(北京)有限公司 | 神经网络计算图优化方法 |
-
2020
- 2020-04-30 CN CN202010362567.9A patent/CN111553466B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109997154A (zh) * | 2017-10-30 | 2019-07-09 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
CN110874634A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 神经网络的优化方法及装置、设备和存储介质 |
CN110889815A (zh) * | 2018-09-07 | 2020-03-17 | 黑芝麻智能科技(上海)有限公司 | 卷积神经网络中的子图块融合 |
US10635951B1 (en) * | 2018-10-24 | 2020-04-28 | Alibaba Group Holding Limited | Fast computation of a convolutional neural network |
CN109754073A (zh) * | 2018-12-29 | 2019-05-14 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Boosting Sensitivity of a Retinal Vessel Segmentation Algorithm with Convolutional Neural Network;Toufique A. Soomro et al.;2017 International Conference on Digital Image Computing: Techniques and Applications (DICTA);第1-8页 * |
张孟逸.基于FPGA的卷积神经网络并行加速器设计.中国优秀硕士学位论文全文数据库信息科技辑.2019,第2019卷(第08期),第I135-246页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111553466A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111553466B (zh) | 信息处理方法、装置及设备 | |
US20190303762A1 (en) | Methods of optimization of computational graphs of neural networks | |
TWI701588B (zh) | 詞向量處理方法、裝置以及設備 | |
US20220391678A1 (en) | Neural network model processing method and apparatus, computer device, and storage medium | |
Moylett et al. | Quantum speedup of the traveling-salesman problem for bounded-degree graphs | |
CN111581414B (zh) | 服饰识别、分类及检索的方法、装置、设备及存储介质 | |
CN112487168B (zh) | 知识图谱的语义问答方法、装置、计算机设备及存储介质 | |
CN115456159A (zh) | 一种数据处理方法和数据处理设备 | |
CN107957989B9 (zh) | 基于集群的词向量处理方法、装置以及设备 | |
CN110926491B (zh) | 一种用于最短路径的规划方法和系统 | |
CN111158365A (zh) | 一种路径规划方法、装置、机器人及存储介质 | |
CN111651641B (zh) | 一种图查询方法、装置及存储介质 | |
US20140107987A1 (en) | System and method for computational planning in a data-dependent constraint management system | |
CN113703768A (zh) | 张量程序优化方法及装置 | |
CN114593743A (zh) | 一种基于改进双向rrt算法的路径规划方法及装置 | |
CN111325328B (zh) | 神经网络的生成方法、数据处理方法及装置 | |
CN111858785B (zh) | 地图离散型要素的匹配方法、装置、系统及存储介质 | |
CN110728359A (zh) | 搜索模型结构的方法、装置、设备和存储介质 | |
CN114091648A (zh) | 基于卷积神经网络的图像分类方法、装置及卷积神经网络 | |
CN116978450A (zh) | 蛋白质数据的处理方法、装置、电子设备及存储介质 | |
CN112232445B (zh) | 多标签分类任务网络的训练方法和装置 | |
CN114219964A (zh) | 一种神经网络架构搜索方法、装置及电子设备和存储介质 | |
CN110209829B (zh) | 信息处理方法和装置 | |
CN114930317A (zh) | 用于视频接地的图形卷积网络 | |
CN113761243A (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 |