首页 / 专利库 / 软件 / 框架 / 一种神经网络模型数据的加载方法及相关装置

一种神经网络模型数据的加载方法及相关装置

阅读:812发布:2024-02-13

专利汇可以提供一种神经网络模型数据的加载方法及相关装置专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种神经网络模型数据的加载方法,包括:将接收到的神经网络模型文件进行网络 框架 信息提取处理,得到框架信息;根据通用框架对所述框架信息进行配置信息转换处理,得到配置文件;根据所述配置文件和OpenCL框架进行加载处理,以便将神经网络加载至对应的 硬件 中。通过先对神经网络模型文件进行框架信息的提取处理,然后根据通用框架对框架信息进行配置信息转换处理,得到配置文件,最后加载至对应硬件中,实现自动生成配置文件,提高加载效率。本申请还公开了一种神经网络模型数据的加载装置、计算机设备以及计算机可读存储介质,具有以上有益效果。,下面是一种神经网络模型数据的加载方法及相关装置专利的具体信息内容。

1.一种神经网络模型数据的加载方法,其特征在于,包括:
将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息;
根据通用框架对所述框架信息进行配置信息转换处理,得到配置文件;
根据所述配置文件和OpenCL框架进行加载处理,以便将神经网络加载至对应的硬件中。
2.根据权利要求1所述的加载方法,其特征在于,将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息,包括:
通过预设路径获取到所述神经网络模型文件;
对所述神经网络模型文件进行网络框架信息提取处理,得到框架数据;
将所述框架数据存入预设格式的结构体中,得到所述框架信息。
3.根据权利要求1所述的加载方法,其特征在于,根据通用框架对所述框架信息进行配置信息转换处理,得到配置文件,包括:
根据所述框架信息对所述通用框架进行适配处理,得到适配信息;
将所述框架信息和所述适配信息进行编译格式转换处理,得到所述配置文件。
4.根据权利要求1所述的加载方法,其特征在于,所述配置文件包括:卷积网络总体信息、基本结构信息、卷积网络细节信息以及周期数信息。
5.一种神经网络模型数据的加载装置,其特征在于,包括:
模型文件解析模,用于将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息;
框架信息转换模块,用于根据通用框架对所述框架信息进行配置信息转换处理,得到配置文件;
配置文件加载模块,用于根据所述配置文件和OpenCL框架进行加载处理,以便将神经网络加载至对应的硬件中。
6.根据权利要求5所述的加载装置,其特征在于,所述模型文件解析模块,包括:
模型文件获取单元,用于通过预设路径获取到所述神经网络模型文件;
框架数据提取单元,用于对所述神经网络模型文件进行网络框架信息提取处理,得到框架数据;
框架信息获取单元,用于将所述框架数据存入预设格式的结构体中,得到所述框架信息。
7.根据权利要求5所述的加载装置,其特征在于,所述框架信息转换模块,包括:
适配信息获取单元,用于根据所述框架信息对所述通用框架进行适配处理,得到适配信息;
编译格式转换单元,用于将所述框架信息和所述适配信息进行编译格式转换处理,得到所述配置文件。
8.根据权利要求5所述的加载装置,其特征在于,所述配置文件包括:卷积网络总体信息、基本结构信息、卷积网络细节信息以及周期数信息。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的加载方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的加载方法的步骤。

说明书全文

一种神经网络模型数据的加载方法及相关装置

技术领域

[0001] 本申请涉及计算机技术领域,特别涉及一种神经网络模型数据的加载方法、加载装置、计算机设备以及计算机可读存储介质。

背景技术

[0002] 随着信息技术的不断发展,对数据处理的速度要求越来越高。因此,就出现了采用FPGA(Field Programming Gate Array现场可编辑阵列)对数据进行处理,由于FPGA是通过硬件电路进行计算,可以加快数据处理的速度。尤其,在机器学习技术领域中,由于机器学习的过程需要巨大的计算量以及较高的数据计算效率,目前常常使用FPGA对机器学习的过程进行加速,以便提高机器学习的效率。其中,必不可少的步骤就是对FPGA进行开发,将机器学习模型文件编译加载至FPGA中。
[0003] 现有技术中,传统的FPGA开发,需要开发人员具备一定的硬件编程语言的基础,如Verilog(硬件描述语言),VHDL(Very-High-Speed Integrated Circuit Hardware Description Language超高速集成电路硬件描述语言)等,并且往往存在编程难度较大,开发周期长,代码编写效率低等问题,尤其对于大型硬件网络开发,会导致FPGA应用的效率直线下降,不利于快速开发。
[0004] 在另一个现有技术中,采用OpenCL开放式编程语言进行FPGA的开发。由于OpenCL是以C和C++编写,降低了FPGA的开发难度,并且可以运行在包括FPGA在内的任何类型的硬件微处理器中。有效的降低了编程难度,提高了开发效率。但是,在现有技术中当将模型文件加载至FPGA中时,还需要技术人员编写配置文件以便将模型文件加载至FPGA中。当将FPGA应用在神经网络的边缘计算中时,需要开发大量的FPGA芯片用以实现边缘计算。但是,人工编写配置文件的过程仍然会拖慢FPGA芯片的开发效率,降低应用的速度,无法保证快速实现边缘计算。
[0005] 因此,如何提高将神经网络加载至FPGA此类硬件中的效率是本领域技术人员关注的重点问题。发明内容
[0006] 本申请的目的是提供一种神经网络模型数据的加载方法、加载装置、计算机设备以及计算机可读存储介质,通过先对神经网络模型文件进行框架信息的提取处理,然后根据通用框架对框架信息进行配置信息转换处理,得到配置文件,最后加载至对应硬件中,实现自动生成配置文件,提高加载效率。
[0007] 为解决上述技术问题,本申请提供一种神经网络模型数据的加载方法,包括:
[0008] 将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息;
[0009] 根据通用框架对所述框架信息进行配置信息转换处理,得到配置文件;
[0010] 根据所述配置文件和OpenCL框架进行加载处理,以便将神经网络加载至对应的硬件中。
[0011] 可选的,将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息,包括:
[0012] 通过预设路径获取到所述神经网络模型文件;
[0013] 对所述神经网络模型文件进行网络框架信息提取处理,得到框架数据;
[0014] 将所述框架数据存入预设格式的结构体中,得到所述框架信息。
[0015] 可选的,根据通用框架对所述框架信息进行配置信息转换处理,得到配置文件,包括:
[0016] 根据所述框架信息对所述通用框架进行适配处理,得到适配信息;
[0017] 将所述框架信息和所述适配信息进行编译格式转换处理,得到所述配置文件。
[0018] 可选的,所述配置文件包括:卷积网络总体信息、基本结构信息、卷积网络细节信息以及周期数信息。
[0019] 本申请还提供一种神经网络模型数据的加载装置,包括:
[0020] 模型文件解析模,用于将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息;
[0021] 框架信息转换模块,用于根据通用框架对所述框架信息进行配置信息转换处理,得到配置文件;
[0022] 配置文件加载模块,用于根据所述配置文件和OpenCL框架进行加载处理,以便将神经网络加载至对应的硬件中。
[0023] 可选的,所述模型文件解析模块,包括:
[0024] 模型文件获取单元,用于通过预设路径获取到所述神经网络模型文件;
[0025] 框架数据提取单元,用于对所述神经网络模型文件进行网络框架信息提取处理,得到框架数据;
[0026] 框架信息获取单元,用于将所述框架数据存入预设格式的结构体中,得到所述框架信息。
[0027] 可选的,所述框架信息转换模块,包括:
[0028] 适配信息获取单元,用于根据所述框架信息对所述通用框架进行适配处理,得到适配信息;
[0029] 编译格式转换单元,用于将所述框架信息和所述适配信息进行编译格式转换处理,得到所述配置文件。
[0030] 可选的,所述配置文件包括:卷积网络总体信息、基本结构信息、卷积网络细节信息以及周期数信息。
[0031] 本申请还提供一种计算机设备,包括:
[0032] 存储器,用于存储计算机程序
[0033] 处理器,用于执行所述计算机程序时实现如上所述的加载方法的步骤。
[0034] 本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的加载方法的步骤。
[0035] 本申请所提供的一种神经网络模型数据的加载方法,包括:将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息;根据通用框架对所述框架信息进行配置信息转换处理,得到配置文件;根据所述配置文件和OpenCL框架进行加载处理,以便将神经网络加载至对应的硬件中。
[0036] 通过先从神经网络模型文件中提取出用于描述神经网络整体结构的框架信息,然后再根据通用框架对框架信息针对性的生成对应的配置文件,而不是通过技术人员人工生成对应的配置文件,最后根据该配置文件和OpenCL框架进行加载处理,也就是将神经网络加载至对应的硬件中,以便开发出对应的神经网络硬件,由于避免采用人工的方式获取到配置文件,使用自动生成的方式,提高了配置文件的获取效率,同时也提高了将神经网络加载至FPGA此类硬件中的效率。
[0037] 本申请还提供一种神经网络模型数据的加载装置、计算机设备以及计算机可读存储介质,具有以上有益效果,在此不作赘述。附图说明
[0038] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0039] 图1为本申请实施例所提供的一种神经网络模型数据的加载方法的流程图
[0040] 图2为本申请实施例所提供的一种神经网络模型数据的加载装置的结构示意图。

具体实施方式

[0041] 本申请的核心是提供一种神经网络模型数据的加载方法、加载装置、计算机设备以及计算机可读存储介质,通过先对神经网络模型文件进行框架信息的提取处理,然后根据通用框架对框架信息进行配置信息转换处理,得到配置文件,最后加载至对应硬件中,实现自动生成配置文件,提高加载效率。
[0042] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0043] 现有技术中,传统的FPGA开发,需要开发人员具备一定的硬件编程语言的基础,如Verilog(硬件描述语言),VHDL(Very-High-Speed Integrated Circuit Hardware Description Language超高速集成电路硬件描述语言)等,并且往往存在编程难度较大,开发周期长,代码编写效率低等问题,尤其对于大型硬件网络开发,会导致FPGA应用的效率直线下降,不利于快速开发。
[0044] 在另一个现有技术中,采用OpenCL开放式编程语言进行FPGA的开发。由于OpenCL是以C和C++编写,降低了FPGA的开发难度,并且可以运行在包括FPGA在内的任何类型的硬件微处理器中。有效的降低了编程难度,提高了开发效率。但是,在现有技术中当将模型文件加载至FPGA中时,还需要技术人员编写配置文件以便将模型文件加载至FPGA中。当将FPGA应用在神经网络的边缘计算中时,需要开发大量的FPGA芯片用以实现边缘计算。但是,人工编写配置文件的过程仍然会拖慢FPGA芯片的开发效率,降低应用的速度,无法保证快速实现边缘计算。
[0045] 因此,本申请提供了一种神经网络模型数据的加载方法,通过先从神经网络模型文件中提取出用于描述神经网络整体结构的框架信息,然后再根据通用框架对框架信息针对性的生成对应的配置文件,而不是通过技术人员人工生成对应的配置文件,最后根据该配置文件和OpenCL框架进行加载处理,也就是将神经网络加载至对应的硬件中,以便开发出对应的神经网络硬件,由于避免采用人工的方式获取到配置文件,使用自动生成的方式,提高了配置文件的获取效率,同时也提高了将神经网络加载至FPGA此类硬件中的效率。
[0046] 请参考图1,图1为本申请实施例所提供的一种神经网络模型数据的加载方法的流程图。
[0047] 本实施例中,该加载方法可以包括:
[0048] S101,将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息;
[0049] 本步骤旨在从获取到的神经网络模型文件中提取出该神经网络模型的框架信息。
[0050] 其中,神经网络模型文件指的是采用不同神经网络框架编写出的模型文件。例如,采用基于python语言的机器学习框架(PyTorch)生成的模型文件,那么就可以从该模型文件中提取表示该神经网络模型的框架信息。
[0051] 其中,框架信息可以包括该神经网络的输入输出通道、内核大小信息以及卷积块ID信息。可见,该框架信息表示了该神经网络的基本框架信息。也就是说,神经网络的基本框架是由该网络的输入输出通道,内核大小信息以及每个卷积块ID信息决定。
[0052] 此外,本步骤中的框架信息还可以包括其他信息数据,也可以根据不同模型文件的类型确定不同的框架信息的类型,在此不做具体限定。
[0053] 可选的,本步骤可以包括:
[0054] 通过预设路径获取到神经网络模型文件;
[0055] 对神经网络模型文件进行网络框架信息提取处理,得到框架数据;
[0056] 将框架数据存入预设格式的结构体中,得到框架信息。
[0057] 可见,本可选方案主要是对如何获取到框架信息做进一步说明。本可选方案中所采用的神经网络模型文件可以是预设格式的模型文件,因此,当获取到该文件时就可以通过预设的格式从中获取出标识网络框架的框架信息。
[0058] S102,根据通用框架对框架信息进行配置信息转换处理,得到配置文件;
[0059] 在S101的基础上,本步骤旨在将获取到的框架信息进行配置信息转换处理,得到配置文件。
[0060] 其中,配置文件是用于将神经网络加载至硬件中使用的文件。主要作用是对硬件中的神经网络进行配置,当配置完成后该神经网络才可以达到预期的内容。配置文件的具体内容可以根据加载方式的不同而不同,也就是可以根据实际的加载过程选择不同的配置内容。
[0061] 举例来说,本实施例中可以通过OpenCL框架进行加载,那么该配置文件包括:卷积网络总体信息、基本结构信息、卷积网络细节信息以及周期数信息。
[0062] 可选的,本步骤中可以包括:
[0063] 根据框架信息对通用框架进行适配处理,得到适配信息;
[0064] 将框架信息和适配信息进行编译格式转换处理,得到配置文件。
[0065] 可见,本实施例中主要是对如何获取到配置文件做进一步说明。本可选方案中主要是先根据框架信息对通用的框架进行适配处理,得到适配信息,最后再进行编译格式转换,得到配置文件。其中,适配处理是在框架信息的基础上添加细节信息,以便将预期神经网络模型可以应用在通用框架中。其中,适配处理的方式可以采用现有技术提供的任意一种适配方法,在此不作赘述。
[0066] S103,根据配置文件和OpenCL框架进行加载处理,以便将神经网络加载至对应的硬件中。
[0067] 在S102的基础上,本步骤旨在根据上一步骤生成完成的配置文件和OpenCL框架文件进行神经网络的加载处理,以便将该神经网络加载至对应的硬件中。
[0068] 其中,进行加载的方法可以采用现有技术提供的任意一种加载方法,在此不作赘述。
[0069] 综上所述,本实施例通过先从神经网络模型文件中提取出用于描述神经网络整体结构的框架信息,然后再根据通用框架对框架信息针对性的生成对应的配置文件,而不是通过技术人员人工生成对应的配置文件,最后根据该配置文件和OpenCL框架进行加载处理,也就是将神经网络加载至对应的硬件中,以便开发出对应的神经网络硬件,由于避免采用人工的方式获取到配置文件,使用自动生成的方式,提高了配置文件的获取效率,同时也提高了将神经网络加载至FPGA此类硬件中的效率。
[0070] 以下通过另一个具体的实施例,对本申请提供的一种神经网络模型数据的加载方法做进一步说明。
[0071] 本实施例中,可以将该方法分为模型框架文件导入和OpenCL配置文件生成两部分。
[0072] 其中,其中可导入的模型框架支持包含Pytorch模型文件在内的各种模型文件。
[0073] 首先,在模型框架文件读入后,会将网络的输入输出通道,内核大小信息,卷积块ID等信息存入pstFpgaLayerInfo结构体中,也就是获取到框架信息。
[0074] 然后转换出配置文件。具体的,读入包含框架信息的结构体变量,转化后生成的配置文件包含以下四部分:
[0075] 1)卷积网络总体信息,如卷积块数目,网络层数,网络最大长宽高等;
[0076] 2)基本结构信息,如使能信息,包括BachNorm操作使能,pool层使能等操作;
[0077] 3)细节信息,包括各个卷积核的大小,池化层的种类,存储buffer的偏移信息等;
[0078] 4)周期数计算,计算出神经网络各部分相关操作的所用的周期数,如权重信息预加载所用的周期数,卷积操作所用周期数,池化操作所用周期数等。
[0079] 最后,将配置文件配合OpenCL架构,可将配置文件信息方便的加载到FPGA边缘计算Edge端,也就是加载出可以进行边缘计算的神经网络硬件。
[0080] 本实施例通过先从神经网络模型文件中提取出用于描述神经网络整体结构的框架信息,然后再根据通用框架对框架信息针对性的生成对应的配置文件,而不是通过技术人员人工生成对应的配置文件,最后根据该配置文件和OpenCL框架进行加载处理,也就是将神经网络加载至对应的硬件中,以便开发出对应的神经网络硬件,由于避免采用人工的方式获取到配置文件,使用自动生成的方式,提高了配置文件的获取效率,同时也提高了将神经网络加载至FPGA此类硬件中的效率。
[0081] 下面对本申请实施例提供的一种神经网络模型数据的加载装置进行介绍,下文描述的一种神经网络模型数据的加载装置与上文描述的一种神经网络硬件的加载方法可相互对应参照。
[0082] 请参考图2,图2为本申请实施例所提供的一种神经网络模型数据的加载装置的结构示意图。
[0083] 本实施例中,该装置可以包括:
[0084] 模型文件解析模块100,用于将接收到的神经网络模型文件进行网络框架信息提取处理,得到框架信息;
[0085] 框架信息转换模块200,用于根据通用框架对框架信息进行配置信息转换处理,得到配置文件;
[0086] 配置文件加载模块300,用于根据配置文件和OpenCL框架进行加载处理,以便将神经网络加载至对应的硬件中。
[0087] 可选的,该模型文件解析模块100,可以包括:
[0088] 模型文件获取单元,用于通过预设路径获取到神经网络模型文件;
[0089] 框架数据提取单元,用于对神经网络模型文件进行网络框架信息提取处理,得到框架数据;
[0090] 框架信息获取单元,用于将框架数据存入预设格式的结构体中,得到框架信息。
[0091] 可选的,该框架信息转换模块200,可以包括:
[0092] 适配信息获取单元,用于根据框架信息对通用框架进行适配处理,得到适配信息;
[0093] 编译格式转换单元,用于将框架信息和适配信息进行编译格式转换处理,得到配置文件。
[0094] 可选的,该配置文件可以包括:卷积网络总体信息、基本结构信息、卷积网络细节信息以及周期数信息。
[0095] 本申请实施例还提供一种计算机设备,包括:
[0096] 存储器,用于存储计算机程序;
[0097] 处理器,用于执行所述计算机程序时实现如以上实施例所述的加载方法的步骤。
[0098] 本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的加载方法的步骤。
[0099] 该计算机可读存储介质可以包括:U盘、移动硬盘只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0100] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0101] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0102] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0103] 以上对本申请所提供的一种神经网络模型数据的加载方法、加载装置、计算机设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈