CN113947181A - 一种神经网络加速器模型转换方法及装置 - Google Patents
一种神经网络加速器模型转换方法及装置 Download PDFInfo
- Publication number
- CN113947181A CN113947181A CN202111105826.0A CN202111105826A CN113947181A CN 113947181 A CN113947181 A CN 113947181A CN 202111105826 A CN202111105826 A CN 202111105826A CN 113947181 A CN113947181 A CN 113947181A
- Authority
- CN
- China
- Prior art keywords
- network
- layer
- neural network
- model
- operator
- 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
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/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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种神经网络加速器模型转换方法及装置,方法包括:获取待转换的神经网络模型,对模型网络结构文件进行解析,得到模型所有网络层,对网络层进行重构,映射为神经网络加速器支持的算子节点,最后根据网络拓扑结构将转换后的算子节点及模型权重进行序列化,生成目标文件;装置包括:神经网络模型构建模块、重构模块、映射模块和序列化模块;本发明解决了多种格式模型在神经网络加速器设备上部署的多适配困难问题,能够高效的进行模型转换,生成适配神经网络加速器的模型格式。
Description
技术领域
本发明涉及人工智能领域,尤其是涉及一种神经网络加速器模型转换方法及装置。
背景技术
当前神经网络技术发展很快,各种机器学习框架也应运而生,各种机器学习框架各有优劣,因此在学术界和工业界均是各种机器框架并存的场面,这也导致了不同框架训练出来的模型有着不同的文件格式,针对神经网络加速器等ASIC(Application SpecificIntegrated Circuit,专用集成电路)设备,需要适配各式各样的模型文件格式,这大大阻碍了神经网络模型在ASIC设备的部署效率。
现有的模型格式文件,必须基于该格式对应的框架或者协议才能读取文件,如TensorFlow的模型文件使用了Protocol Buffers,如果想快速读取和获取该模型文件中的网络层信息,必须使用TensorFlow软件包才行,这在硬件上非常繁琐;同时,大部分机器学习框架保存的模型格式中含有大量的对于神经网络加速器运行模型无用的信息(比如训练所需的学习率,批数据大小等信息),这些在神经网络加速器(主要用于模型推理)是无用的信息。总之,传统的神经网络加速器,必须借助机器学习框架程序来使用它所保存的模型文件,而使用框架对于神经网络加速器来说,又会存在不同框架需要适配的问题,局限性较大。
发明内容
为解决现有技术的不足,本发明通过对不同格式的模型文件,进行解析、重构、映射,生成适配神经网络加速器的模型格式,从而实现提高模型在神经网络加速器上的部署效率的目的,本发明采用如下的技术方案:
一种神经网络加速器模型转换方法,包括如下步骤:
S1,获取待转换的神经网络模型,包括网络结构文件和模型权重文件;目前常见的机器学习框架有TensorFlow、Pytorch、PaddlePaddle、MXNet等,其中每种框架都有特有的模型文件格式;
S2,解析网络结构文件,提取网络层算子及算子属性,构造神经网络模型的网络层和网络拓扑结构;
S3,重构网络层,对网络层进行融合,将部分网络层只保留核心算子参数,并作为与其相关网络层的属性,通过融合后的网络层替换原网络层,并更新网络拓扑结构,从而简化模型结构,实现了模型的压缩,能够降低模型推理时间,将重构后的网络层,通过映射表,更为高效的映射为神经网络加速器支持的算子节点,得到所有的网络层对应的算子节点;神经网络加速器支持的算子节点类型有限,部分网络层(带参数的算子),可以使用神经网络加速器的一个或几个算子来实现,同时对一些典型的算子,会默认是在高维数组的最后一个维度上进行操作,而通常的模型文件中会包含这个维度的索引,因此对一般的网络层首先要精简属性信息,只保留最核心的算子运算参数,同时部分网络层在硬件实现上又能使用相同的运算过程实现,多个操作,在最终都会使用神经网络加速器支持的同一个算子来代替;
S4,根据更新后的网络拓扑结构,对算子节点及其对应权重文件进行序列化,生成目标文件,序列化是为了便于保存为二进制格式文件,该文件能够很方便的在神经网络加速器上部署。
进一步地,所述S2中构造的网络层,是通过数据结构字典记录所有网络层的算子类型及属性信息;
进一步地,所述S3中的映射,对融合了核心算子参数的网路层,通过字典格式进行简化,在该网络层的字典中,将融合的核心算子参数添加为一个新的键值对。
进一步地,所述S4中,将算子节点类型及属性信息,按其对应的更新后的网络拓扑结构的顺序进行保存,对算子节点对应网络层的权重值进行序列化保存。
进一步地,所述S2中构造的网络拓扑结构,是通过记录网络层各层的输入层索引值构建的;所述S3对网络拓扑结构的更新,是对融合后的网络层更新其输入层索引值;所述S4中,对算子节点对应的网络层的输入层索引值进行序列化。
进一步地,所述S2中,将神经网络模型中,放大类型的抽象操作,用上采样层替换,并映射到神经网络加速器的上采样算子节点。
进一步地,所述S3的融合,是对卷积层与批归一化层,和/或卷积层与LeakyRelu激活层进行融合。
进一步地,所述S3中的映射,包括将拼接层和/或拷贝操作,映射为路由算子节点。
进一步地,所述S3中神经网络加速器支持的算子节点,包括:卷积算子节点、池化算子节点、残差算子节点、路由算子节点、上采样算子节点。
一种神经网络加速器模型转换装置,包括:神经网络模型构建模块、重构模块、映射模块和序列化模块;
所述神经网络模型构建模块,获取待转换的神经网络模型,包括网络结构文件和模型权重文件,解析网络结构文件,提取网络层算子及算子属性,构造神经网络模型的网络层和网络拓扑结构;
所述重构模块,对网络层进行融合,将部分网络层只保留核心算子参数,并作为与其相关网络层的属性,通过融合后的网络层替换原网络层,并更新网络拓扑结构;
所述映射模块,通过映射表,将重构后的网络层,映射为神经网络加速器支持的算子节点;
所述序列化模块,根据更新后的网络拓扑结构,对算子节点及其对应权重文件进行序列化,生成目标文件。
本发明的优势和有益效果在于:
本发明首先获取一个待转换的神经网络模型,再通过解析模型的网络结构文件,替换网络结构中的抽象操作,构造模型的所有网络层和网络拓扑结构,然后对网络层进行融合处理,减少网络层数目,同时重建网络拓扑结构,接下来根据映射表将网络层映射为神经网络加速器支持的算子节点,最后根据重建后的网络拓扑结构对模型网络结构和权重进行序列化,生成目标文件。该方法能够针对不同格式的神经网络模型进行格式转换,同时在模型转换过程中对模型网络层进行了融合等处理,实现了模型的压缩,能够降低模型推理时间。
附图说明
图1是本发明方法的流程图;
图2是本发明中TensorFlow训练的YOLOv3部分网络结构示例图。
图3是本发明中重构后的网络结构示例图。
图4是本发明中卷积层序列化保存示例图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
本发明在机器学习框架和神经网络加速器之间增加一个代理人,对机器学习框架,针对主流的几种机器学习框架保存的文件,使用软件的方式,读取它们的网络层信息,对神经网络加速器,能够将读取的网络层信息,保存为便于神经网络加速器读取网络层信息的数据格式和支持的算子类型。从而将不同格式的神经网络模型参数文件转换为适合神经网络加速器使用的文件格式(包含数据格式,使用字典,算子节点的运算顺序,使用索引来记录拓扑信息)。
针对现有模型文件格式较多导致的模型无法在神经网络加速器等设备上高效部署的问题,通过对不同格式的神经网络模型进行转换,得到适配神经网络加速器的模型文件,能够在神经网络加速等ASIC设备上高效部署神经网络模型。
如图1所示,一种神经网络加速器模型转换方法,以一个TensorFlow卷积神经网络训练的YOLOv3模型为例,来说明本发明模型转换的要点和优势,YOLOv3模型共包含75个卷积层,23个残差层,2个路由层,2个放大操作,其中卷积层后面多数都紧接着批归一化层和LeakyRelu激活层,由于YOLOv3层数较多,这里只介绍其中的1个子网络结构进行模型转换的流程示意,具体实施步骤如下:
步骤一:获取YOLOv3模型的子网络结构及权值,如图2所示,此子网络结构中包括3个Conv2D卷积层,2个LeakyRelu激活层,1个Concatenation拼接层,1个ResizeBilinear放大操作;
步骤二:对该子网络结构进行解析,将该放大操作抽象为上采样层,然后构造其他所有的卷积层、激活层、拼接层,记录每个层的输入层索引,并将Identity层作为结束层,即完成了所有的网络层和网络拓扑结构的构造;
解析是将其他格式的模型文件进行提取算子和相应的算子属性信息,构造是指使用字典等数据结构来记录所有的网络层,字典中包含该网络层的算子类型以及其他属性信息,Identity层,即恒等层,用它作为结束层,表示当前层是作为网络的输出层之一,并无运算过程。
步骤三:对获得的卷积层后跟着激活层的模块进行融合,得到新的卷积层,并添加一个属性,标志着使用了LeakyRelu激活函数,然后将所有的网络层映射为神经网络加速器支持的算子节点,如图3所示,其中融合的卷积层,映射为包含有leaky属性(即使用LeakyRelu激活函数)的卷积层,替换放大操作后的上采样层,映射为上采样层,拼接层映射为路由层,同时,由于融合网络层改变了模型网络拓扑结构,因此需要更新网络拓扑结构;
融合是将卷积层和激活层,使用一个新的卷积层来替换,并且在新的卷积层中加入激活函数类型等属性。神经网络加速器支持的算子节点类型有限,部分网络层(带参数的算子),可以使用神经网络加速器的一个或几个算子来实现,同时对一些典型的算子,如路由层,会默认是在高维数组的最后一个维度上进行操作,而通常的模型文件中会包含这个维度的索引,因此对一般的网络层首先要精简属性信息,只保留最核心的算子运算参数,同时部分网络层在硬件实现上又能使用相同的运算过程实现,例如拼接层和拷贝操作,最终都会使用神经网络加速器支持的路由算子来代替。
映射可以理解为一种数据结构转换为另外一种数据结构,例如,TensorFlow模型文件中的数据结构使用的是Protocol Buffers格式,该数据结构格式比较复杂,可以使用字典格式进行简化。
对于网络拓扑结构的更新,比如在一个卷积神经网络模型中,某个卷积层的输入是其前面的激活层,假设激活层的索引是3,由于我们进行了融合操作,前面的激活层和激活层前面的另一个卷积层(索引是2)进行了融合,那么原本索引为3的激活层就不存在了,此时就需要更改该卷积层的索引为3,其输入层索引也修改为2,其它网络层类似。
步骤四:根据新的网络拓扑结构和得到的所有算子节点,进行序列化输出,即将所有的算子节点类型和自带的属性信息按节点拓扑顺序进行保存,同时还要保存每个算子节点的输入节点索引,这样便保留了网络结构的拓扑信息,此外还要对卷积层的权重值进行序列化保存,至此便将TensorFlow模型转换为神经网络加速器适配的模型格式的目标文件。节点序列化是为了便于保存为二进制格式文件,如图4所示。
综上所述,本发明设计了神经网络加速器模型转换的方案,通过对常见机器学习框架训练得到的神经网络模型的网络结构进行解析,获取完整的网络层及网络拓扑结构,再通过网络层的重构,对网络层进行融合,减少模型网络层,接着对得到的模型网络层进行映射,得到神经网络加速器支持的算子节点,最后通过得到的网络拓扑结构对所有的算子节点和模型权重进行序列化输出,生成目标文件。整个过程包含的几个步骤有着良好的解耦性,能够针对不同机器学习框架训练处的模型文件进行高效的模型转换,大大提高不同格式模型在神经网络加速器上的部署的效率,同时良好的解耦性又能很方便的针对新出现的框架的模型转换进行适配扩展。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (10)
1.一种神经网络加速器模型转换方法,其特征在于包括如下步骤:
S1,获取待转换的神经网络模型,包括网络结构文件和模型权重文件;
S2,解析网络结构文件,提取网络层算子及算子属性,构造神经网络模型的网络层和网络拓扑结构;
S3,重构网络层,对网络层进行融合,将部分网络层只保留核心算子参数,并作为与其相关网络层的属性,通过融合后的网络层替换原网络层,并更新网络拓扑结构,将重构后的网络层,通过映射表,映射为神经网络加速器支持的算子节点;
S4,根据更新后的网络拓扑结构,对算子节点及其对应权重文件进行序列化,生成目标文件。
2.根据权利要求1所述的一种神经网络加速器模型转换方法,其特征在于所述S2中构造的网络层,是通过数据结构字典记录所有网络层的算子类型及属性信息。
3.根据权利要求2所述的一种神经网络加速器模型转换方法,其特征在于所述S3中的映射,对融合了核心算子参数的网路层,通过字典格式进行简化,在该网络层的字典中,将融合的核心算子参数添加为一个新的键值对。
4.根据权利要求2所述的一种神经网络加速器模型转换方法,其特征在于所述S4中,将算子节点类型及属性信息,按其对应的更新后的网络拓扑结构的顺序进行保存,对算子节点对应网络层的权重值进行序列化保存。
5.根据权利要求1所述的一种神经网络加速器模型转换方法,其特征在于所述S2中构造的网络拓扑结构,是通过记录网络层各层的输入层索引值构建的;所述S3对网络拓扑结构的更新,是对融合后的网络层更新其输入层索引值;所述S4中,对算子节点对应的网络层的输入层索引值进行序列化。
6.根据权利要求1所述的一种神经网络加速器模型转换方法,其特征在于所述S2中,将神经网络模型中,放大类型的抽象操作,用上采样层替换,并映射到神经网络加速器的上采样算子节点。
7.根据权利要求1所述的一种神经网络加速器模型转换方法,其特征在于所述S3的融合,是对卷积层与批归一化层,和/或卷积层与激活层进行融合。
8.根据权利要求1所述的一种神经网络加速器模型转换方法,其特征在于所述S3中的映射,包括将拼接层和/或拷贝操作,映射为路由算子节点。
9.根据权利要求1所述的一种神经网络加速器模型转换方法,其特征在于所述S3中神经网络加速器支持的算子节点,包括:卷积算子节点、池化算子节点、残差算子节点、路由算子节点、上采样算子节点。
10.一种神经网络加速器模型转换装置,包括:神经网络模型构建模块、重构模块、映射模块和序列化模块,其特征在于:
所述神经网络模型构建模块,获取待转换的神经网络模型,包括网络结构文件和模型权重文件,解析网络结构文件,提取网络层算子及算子属性,构造神经网络模型的网络层和网络拓扑结构;
所述重构模块,对网络层进行融合,将部分网络层只保留核心算子参数,并作为与其相关网络层的属性,通过融合后的网络层替换原网络层,并更新网络拓扑结构;
所述映射模块,通过映射表,将重构后的网络层,映射为神经网络加速器支持的算子节点;
所述序列化模块,根据更新后的网络拓扑结构,对算子节点及其对应权重文件进行序列化,生成目标文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111105826.0A CN113947181A (zh) | 2021-09-22 | 2021-09-22 | 一种神经网络加速器模型转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111105826.0A CN113947181A (zh) | 2021-09-22 | 2021-09-22 | 一种神经网络加速器模型转换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113947181A true CN113947181A (zh) | 2022-01-18 |
Family
ID=79328470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111105826.0A Pending CN113947181A (zh) | 2021-09-22 | 2021-09-22 | 一种神经网络加速器模型转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113947181A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114091674A (zh) * | 2022-01-19 | 2022-02-25 | 北京华品博睿网络技术有限公司 | 一种基于cpu设备的模型推理加速方法和系统 |
CN116362316A (zh) * | 2023-05-29 | 2023-06-30 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN116980423A (zh) * | 2023-09-21 | 2023-10-31 | 浪潮电子信息产业股份有限公司 | 模型调度方法、装置、计算系统、设备及可读存储介质 |
-
2021
- 2021-09-22 CN CN202111105826.0A patent/CN113947181A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114091674A (zh) * | 2022-01-19 | 2022-02-25 | 北京华品博睿网络技术有限公司 | 一种基于cpu设备的模型推理加速方法和系统 |
CN116362316A (zh) * | 2023-05-29 | 2023-06-30 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN116362316B (zh) * | 2023-05-29 | 2023-12-12 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN116980423A (zh) * | 2023-09-21 | 2023-10-31 | 浪潮电子信息产业股份有限公司 | 模型调度方法、装置、计算系统、设备及可读存储介质 |
CN116980423B (zh) * | 2023-09-21 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 模型调度方法、装置、计算系统、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113947181A (zh) | 一种神经网络加速器模型转换方法及装置 | |
CN109471900B (zh) | 图表类数据自定义动作数据交互方法及系统 | |
CN110309196A (zh) | 区块链数据存储和查询方法、装置、设备及存储介质 | |
US8346697B2 (en) | Direct construction of finite state machines | |
CN110968322A (zh) | Json数据的处理方法、装置和电子系统 | |
US8280836B2 (en) | Converting unordered graphs to oblivious read once ordered graph representation | |
CN108021982A (zh) | 数据传输方法和系统、电子设备 | |
CN110083746B (zh) | 一种基于字符串的快速匹配识别方法和装置 | |
CN115878096B (zh) | 深度学习模型统一应用方法、装置、服务器及存储介质 | |
CN111324577A (zh) | 一种Yml文件读写的方法及装置 | |
CN112070213A (zh) | 神经网络模型的优化方法、装置、设备及存储介质 | |
CN107330014A (zh) | 一种数据表的创建方法与设备 | |
CN113094355A (zh) | 基于国产化通信协议的模型实例化方法、装置、设备及介质 | |
CN111738435A (zh) | 一种基于移动设备的在线稀疏训练方法及系统 | |
CN111600735B (zh) | 一种样本数据的处理方法、系统及装置 | |
CN111159424B (zh) | 标注知识图谱实体的方法,装置,存储介质及电子设备 | |
CN113391992A (zh) | 测试数据的生成方法和装置、存储介质及电子设备 | |
CN113157904A (zh) | 基于dfa算法的敏感词过滤方法及系统 | |
CN111539517A (zh) | 基于图结构矩阵特征向量的图卷积神经网络生成方法 | |
CN115170917B (zh) | 图像处理方法、电子设备及存储介质 | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114741993A (zh) | 一种基于脚本的数据流图生成方法及装置 | |
CN110083603A (zh) | 一种基于邻接表实现节点路径的查询方法及系统 | |
JP5696132B2 (ja) | 部分的木構造に応じた適応型再構成装置及び方法及びプログラム | |
CN114238343B (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 |