一种实现神经网络模型的装置及方法

阅读:0发布:2023-06-24

专利汇可以提供一种实现神经网络模型的装置及方法专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供了一种实现神经网络模型的装置及方法,该装置,包括:存储单元、ARM和FPGA;所述存储单元,用于存储用于实现神经网络模型的至少一个Kernel;所述ARM,用于对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中;所述FPGA,用于执行加载的所述至少一个Kernel,实现所述神经网络模型。本发明提供了一种实现神经网络模型的装置及方法,能够降低实现神经网络模型的功耗。,下面是一种实现神经网络模型的装置及方法专利的具体信息内容。

1.一种实现神经网络模型的装置,其特征在于,包括:
存储单元、ARM和现场可编程阵列FPGA;
所述存储单元,用于存储用于实现神经网络模型的至少一个Kernel;
所述ARM,用于对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中;
所述FPGA,用于执行加载的所述至少一个Kernel,实现所述神经网络模型。
2.根据权利要求1所述的装置,其特征在于,
进一步包括:第一输出缓存;
当所述至少一个Kernel为一个Kernel时,
所述FPGA,进一步用于将加载的Kernel的执行结果作为所述神经网络模型的最终输出,将所述神经网络模型的最终输出保存到所述第一输出缓存中,向所述ARM发送第一中断信号
所述ARM,进一步用于当接收到所述FPGA发来的所述第一中断信号时,从所述第一输出缓存中获取所述神经网络模型的最终输出。
3.根据权利要求1所述的装置,其特征在于,
进一步:中间结果缓存和第二输出缓存;
当所述至少一个Kernel为至少两个Kernel时,
所述ARM,用于按照实现所述神经网络模型的加载顺序,逐个将所述至少两个Kernel加载到FPGA中,当接收到所述FPGA发来的第二中断信号时,从所述第二输出缓存中获取所述神经网络模型的最终输出;
所述FPGA,用于执行当前加载的Kernel,在当前加载的Kernel不是所述加载顺序中的最后一个Kernel时,将当前加载的Kernel的执行结果作为中间结果保存到所述中间结果缓存中,在当前加载的Kernel是所述加载顺序中的最后一个Kernel时,将当前加载的Kernel的执行结果作为所述神经网络模型的最终输出,将所述神经网络模型的最终输出保存到所述第二输出缓存中,向所述ARM发送所述第二中断信号,在当前加载的Kernel不是所述加载顺序中的第一个Kernel时,从所述中间结果缓存中获取所述中间结果,将获取的所述中间结果作为当前加载的Kernel的输入。
4.根据权利要求1所述的装置,其特征在于,
进一步包括:网络模型构建单元;
所述网络模型构建单元,用于确定所述FPGA的可利用资源,根据所述FPGA的可利用资源,确定实现所述神经网络模型所需要的Kernel的目标数量,生成用于实现神经网络模型的所述目标数量个所述Kernel,将所述目标数量个所述Kernel保存到所述存储单元中。
5.根据权利要求4所述的装置,其特征在于,
所述网络模型构建单元,进一步用于生成用于实现所述神经网络模型的调度程序,将所述调度程序保存到所述存储单元中;
所述ARM,进一步用于从所述存储单元加载所述调度程序,运行所述调度程序实现所述对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中。
6.根据权利要求1所述的装置,其特征在于,
所述存储单元,进一步用于存储所述神经网络模型的模型参数;
所述ARM,进一步用于将所述模型参数加载到所述FPGA中;
所述FPGA,用于根据所述模型参数执行加载的所述至少一个Kernel。
7.根据权利要求1所述的装置,其特征在于,
所述FPGA,用于执行加载的所述至少一个Kernel,实现所述神经网络模型的卷积计算、池化计算以及激活函数;
和/或,
所述FPGA包括:可重构的FPGA。
8.一种基于权利要求1-7中任一所述的实现神经网络模型的装置实现神经网络模型的方法,其特征在于,包括:
存储单元存储用于实现神经网络模型的至少一个Kernel;
ARM对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中;
FPGA执行加载的所述至少一个Kernel,实现所述神经网络模型。
9.根据权利要求8所述的方法,其特征在于,
在所述实现神经网络模型的装置中包括网络模型构建单元时;
在所述存储单元存储用于实现神经网络模型的至少一个Kernel之前,进一步包括:
所述网络模型构建单元确定所述FPGA的可利用资源;
所述网络模型构建单元根据所述FPGA的可利用资源,确定实现所述神经网络模型所需要的Kernel的目标数量;
所述网络模型构建单元生成用于实现神经网络模型的所述目标数量个所述Kernel,将所述目标数量个所述Kernel保存到所述存储单元中。
10.根据权利要求8或9所述的方法,其特征在于,
在所述实现神经网络模型的装置中包括第一输出缓存时;
当所述至少一个Kernel为一个Kernel时,
在所述FPGA执行加载的所述至少一个Kernel之后,进一步包括:
所述FPGA将加载的Kernel的执行结果所述神经网络模型的最终输出;
所述FPGA将所述神经网络模型的最终输出保存到所述第一输出缓存中,向所述ARM发送第一中断信号;
所述ARM当接收到所述FPGA发来的所述第一中断信号时,从所述第一输出缓存中获取所述神经网络模型的最终输出。

说明书全文

一种实现神经网络模型的装置及方法

技术领域

[0001] 本发明涉及神经网络技术领域,特别涉及一种实现神经网络模型的装置及方法。

背景技术

[0002] 随着人工智能的发展,各种神经网络模型得到了充分利用,例如:卷积神经网络现有技术中,一般通过CPU加GPU(Graphics Processing Unit,图形处理器)的架构来实现神经网络模型。将GPU作为加速核心,通过GPU来实现卷积层的计算。但是,通过CPU加GPU的架构来实现神经网络模型时,功耗较大。

发明内容

[0003] 本发明实施例提供了一种实现神经网络模型的装置及方法,能够降低实现神经网络模型的功耗。
[0004] 第一方面,本发明实施例提供了一种实现神经网络模型的装置,包括:
[0005] 存储单元、ARM和FPGA(Field-Programmable Gate Array,现场可编程阵列);
[0006] 所述存储单元,用于存储用于实现神经网络模型的至少一个Kernel;
[0007] 所述ARM,用于对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中;
[0008] 所述FPGA,用于执行加载的所述至少一个Kernel,实现所述神经网络模型。
[0009] 进一步地,
[0010] 进一步包括:第一输出缓存;
[0011] 当所述至少一个Kernel为一个Kernel时,
[0012] 所述FPGA,进一步用于将加载的Kernel的执行结果作为所述神经网络模型的最终输出,将所述神经网络模型的最终输出保存到所述第一输出缓存中,向所述ARM发送第一中断信号
[0013] 所述ARM,进一步用于当接收到所述FPGA发来的所述第一中断信号时,从所述第一输出缓存中获取所述神经网络模型的最终输出。
[0014] 进一步地,
[0015] 该装置进一步:中间结果缓存和第二输出缓存;
[0016] 当所述至少一个Kernel为至少两个Kernel时,
[0017] 所述ARM,用于按照实现所述神经网络模型的加载顺序,逐个将所述至少两个Kernel加载到FPGA中,当接收到所述FPGA发来的第二中断信号时,从所述第二输出缓存中获取所述神经网络模型的最终输出;
[0018] 所述FPGA,用于执行当前加载的Kernel,在当前加载的Kernel不是所述加载顺序中的最后一个Kernel时,将当前加载的Kernel的执行结果作为中间结果保存到所述中间结果缓存中,在当前加载的Kernel是所述加载顺序中的最后一个Kernel时,将当前加载的Kernel的执行结果作为所述神经网络模型的最终输出,将所述神经网络模型的最终输出保存到所述第二输出缓存中,向所述ARM发送所述第二中断信号,在当前加载的Kernel不是所述加载顺序中的第一个Kernel时,从所述中间结果缓存中获取所述中间结果,将获取的所述中间结果作为当前加载的Kernel的输入。
[0019] 进一步地,
[0020] 该装置进一步包括:网络模型构建单元;
[0021] 所述网络模型构建单元,用于确定所述FPGA的可利用资源,根据所述FPGA的可利用资源,确定实现所述神经网络模型所需要的Kernel的目标数量,生成用于实现神经网络模型的所述目标数量个所述Kernel,将所述目标数量个所述Kernel保存到所述存储单元中。
[0022] 进一步地,
[0023] 所述网络模型构建单元,进一步用于生成用于实现所述神经网络模型的调度程序,将所述调度程序保存到所述存储单元中;
[0024] 所述ARM,进一步用于从所述存储单元加载所述调度程序,运行所述调度程序实现所述对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中。
[0025] 进一步地,
[0026] 所述存储单元,进一步用于存储所述神经网络模型的模型参数;
[0027] 所述ARM,进一步用于将所述模型参数加载到所述FPGA中;
[0028] 所述FPGA,用于根据所述模型参数执行加载的所述至少一个Kernel。
[0029] 进一步地,
[0030] 所述FPGA,用于执行加载的所述至少一个Kernel,实现所述神经网络模型的卷积计算、池化计算以及激活函数。
[0031] 进一步地,
[0032] 所述FPGA包括:可重构的FPGA。
[0033] 第二方面,本发明实施例提供了一种基于第一方面中任一所述的实现神经网络模型的装置实现神经网络模型的方法,包括:
[0034] 存储单元存储用于实现神经网络模型的至少一个Kernel;
[0035] ARM对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中;
[0036] FPGA执行加载的所述至少一个Kernel,实现所述神经网络模型。
[0037] 进一步地,
[0038] 在所述实现神经网络模型的装置中包括网络模型构建单元时;
[0039] 在所述存储单元存储用于实现神经网络模型的至少一个Kernel之前,进一步包括:
[0040] 所述网络模型构建单元确定所述FPGA的可利用资源;
[0041] 所述网络模型构建单元根据所述FPGA的可利用资源,确定实现所述神经网络模型所需要的Kernel的目标数量;
[0042] 所述网络模型构建单元生成用于实现神经网络模型的所述目标数量个所述Kernel,将所述目标数量个所述Kernel保存到所述存储单元中。
[0043] 进一步地,
[0044] 在所述实现神经网络模型的装置中包括第一输出缓存时;
[0045] 当所述至少一个Kernel为一个Kernel时,
[0046] 在所述FPGA执行加载的所述至少一个Kernel之后,进一步包括:
[0047] 所述FPGA将加载的Kernel的执行结果所述神经网络模型的最终输出;
[0048] 所述FPGA将所述神经网络模型的最终输出保存到所述第一输出缓存中,向所述ARM发送第一中断信号;
[0049] 所述ARM当接收到所述FPGA发来的所述第一中断信号时,从所述第一输出缓存中获取所述神经网络模型的最终输出。
[0050] 在本发明实施例中,通过ARM来对用于实现神经网络模型的Kernel进行调度,通过FPGA来执行Kernel,也就是说,通过ARM和FPGA即可实现神经网络模型,而ARM和FPGA的功耗大大小于CPU加GPU的架构,因此,本发明实施例能够降低实现神经网络模型的功耗。附图说明
[0051] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052] 图1是本发明一实施例提供的一种实现神经网络模型的装置的示意图;
[0053] 图2是本发明一实施例提供的另一种实现神经网络模型的装置的示意图;
[0054] 图3是本发明一实施例提供的一种实现神经网络模型的方法的流程图

具体实施方式

[0055] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0056] 如图1所示,本发明实施例提供了一种实现神经网络模型的装置,包括:
[0057] 存储单元101、ARM 102和FPGA 103;
[0058] 所述存储单元101,用于存储用于实现神经网络模型的至少一个Kernel;
[0059] 所述ARM 102,用于对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA 103中;
[0060] 所述FPGA 103,用于执行加载的所述至少一个Kernel,实现所述神经网络模型。
[0061] 在本发明实施例中,通过ARM来对用于实现神经网络模型的Kernel进行调度,通过FPGA来执行Kernel,也就是说,通过ARM和FPGA即可实现神经网络模型,而ARM和FPGA的功耗大大小于CPU加GPU的架构,因此,本发明实施例能够降低实现神经网络模型的功耗。
[0062] 在本发明一实施例中,该装置进一步包括:第一输出缓存;
[0063] 当所述至少一个Kernel为一个Kernel时,
[0064] 所述FPGA,进一步用于将加载的Kernel的执行结果作为所述神经网络模型的最终输出,将所述神经网络模型的最终输出保存到所述第一输出缓存中,向所述ARM发送第一中断信号;
[0065] 所述ARM,进一步用于当接收到所述FPGA发来的所述第一中断信号时,从所述第一输出缓存中获取所述神经网络模型的最终输出。
[0066] 在本发明实施例中,神经网络模型可以通过一个Kernel来实现。FPGA在执行完该Kernel之后即可输出神经网络模型的最终输出,这时,通过第一中断信号来通知ARM获取该最终输出。
[0067] 在本发明一实施例中,该装置进一步:中间结果缓存和第二输出缓存;
[0068] 当所述至少一个Kernel为至少两个Kernel时,
[0069] 所述ARM,用于按照实现所述神经网络模型的加载顺序,逐个将所述至少两个Kernel加载到FPGA中,当接收到所述FPGA发来的第二中断信号时,从所述第二输出缓存中获取所述神经网络模型的最终输出;
[0070] 所述FPGA,用于执行当前加载的Kernel,在当前加载的Kernel不是所述加载顺序中的最后一个Kernel时,将当前加载的Kernel的执行结果作为中间结果保存到所述中间结果缓存中,在当前加载的Kernel是所述加载顺序中的最后一个Kernel时,将当前加载的Kernel的执行结果作为所述神经网络模型的最终输出,将所述神经网络模型的最终输出保存到所述第二输出缓存中,向所述ARM发送所述第二中断信号,在当前加载的Kernel不是所述加载顺序中的第一个Kernel时,从所述中间结果缓存中获取所述中间结果,将获取的所述中间结果作为当前加载的Kernel的输入。
[0071] 在本发明实施例中,神经网络模型通过至少两个Kernel来实现。这时,ARM就需要按照加载顺序来逐个向FPGA加载Kernel,以保障神经网络模型能够顺利实现,当FPGA执行完一个Kernel之后,ARM向FPGA加载下一个Kernel,直到加载完最后一个Kernel。FPGA会根据ARM的调度,执行当前加载的Kernel,利用当前加载的Kernel来进行运算。在当前加载的Kernel不是最后一个时,当前加载的Kernel的执行结果需要作为后续加载的Kernel的输入,后续加载的Kernel在之前的Kernel的运算的基础上继续向后处理,直到最后一个Kernel输出神经网络模型的最终输出,并利用第二中断信号来通知ARM获取该最终输出。对应第一个Kernel来说,该Kernel的输入可以是来自于外部提供的,例如:与FPGA相连的存储设备,或者与FPGA相连的I/O设备,或者通过ARM输入等。
[0072] 在本发明一实施例中,该装置进一步包括:网络模型构建单元;
[0073] 所述网络模型构建单元,用于确定所述FPGA的可利用资源,根据所述FPGA的可利用资源,确定实现所述神经网络模型所需要的Kernel的目标数量,生成用于实现神经网络模型的所述目标数量个所述Kernel,将所述目标数量个所述Kernel保存到所述存储单元中。
[0074] 在本发明实施例中,通过网络模型构建单元来生成Kernel。在生成Kernel时,如果网络模型构建单元确定出FPGA的可利用资源充足,能够支持通过一个Kernel来实现神经网络模型,这时,将神经网络模型封装为一个Kernel。如果网络模型构建单元确定出FPGA的可利用资源不充足,不能够支持通过一个Kernel来实现神经网络模型,这时,将神经网络模型分解为通过至少两个Kernel来实现,甚至将神经网络模型某一网络层分解为多个Kernel来执行,Kernel的具体数量根据FPGA的可利用资源以及神经网络模型所需要的资源来确定。
[0075] 在本发明一实施例中,所述网络模型构建单元,进一步用于生成用于实现所述神经网络模型的调度程序,将所述调度程序保存到所述存储单元中;
[0076] 所述ARM,进一步用于从所述存储单元加载所述调度程序,运行所述调度程序实现所述对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中。
[0077] 在本发明实施例中,调度程序也是实现神经网络模型的一部分,ARM的调度功能通过该调度程序来实现。调度程序可以通过C语言编程实现。ARM可以通过调度程序实现调度功能和数据加载。调度程序可以通过GCC编译器编译。
[0078] 在本发明一实施例中,所述存储单元,进一步用于存储所述神经网络模型的模型参数;
[0079] 所述ARM,进一步用于将所述模型参数加载到所述FPGA中;
[0080] 所述FPGA,用于根据所述模型参数执行加载的所述至少一个Kernel。
[0081] 在本发明实施例中,FPGA在执行加载的Kernel时,基于神经网络模型的模型参数来实现。
[0082] 在本发明一实施例中,所述FPGA,用于执行加载的所述至少一个Kernel,实现所述神经网络模型的卷积计算、池化计算以及激活函数。
[0083] 在本发明实施例中,FPGA在执行Kernel时,主要是要实现神经网络模型的卷积计算、池化计算以及激活函数。
[0084] 在本发明一实施例中,所述FPGA包括:可重构的FPGA。
[0085] 在本发明实施例中,通过可重构的FPGA可以使得该装置能够适用于实现各种不同的神经网络模型。
[0086] 举例来说,在通过FPGA实现了神经网络模型A后,基于ARM的调度,可以直接在FPGA上加载神经网络模型B的Kernel,进而实现神经网络模型B,实现过程非常方便。
[0087] 如图2所示,本发明实施例提供了一种实现神经网络模型的装置,包括:
[0088] 存储单元201、ARM 202、FPGA 203、第一输出缓存204、中间结果缓存205、第二输出缓存206、网络模型构建单元207;
[0089] 网络模型构建单元207,用于确定FPGA的可利用资源,根据FPGA的可利用资源,确定实现神经网络模型所需要的Kernel的目标数量,生成用于实现神经网络模型的目标数量个Kernel,将目标数量个Kernel保存到存储单元中。
[0090] 存储单元201,用于存储用于实现神经网络模型的至少一个Kernel;
[0091] ARM 202,用于当该至少一个Kernel为一个Kernel时,对该一个Kernel进行调度,将该Kernel逐个加载到FPGA中,当接收到FPGA发来的第一中断信号时,从第一输出缓存中获取神经网络模型的最终输出;当该至少一个Kernel为至少两个Kernel时,按照实现神经网络模型的加载顺序,逐个将至少两个Kernel加载到FPGA中,当接收到FPGA发来的第二中断信号时,从第二输出缓存中获取神经网络模型的最终输出;
[0092] FPGA 203,用于执行加载的该至少一个Kernel,实现神经网络模型,当该至少一个Kernel为一个Kernel时,将加载的Kernel的执行结果作为神经网络模型的最终输出,将神经网络模型的最终输出保存到第一输出缓存中,向ARM发送第一中断信号;当该至少一个Kernel为至少两个Kernel时,执行当前加载的Kernel,在当前加载的Kernel不是加载顺序中的最后一个Kernel时,将当前加载的Kernel的执行结果作为中间结果保存到中间结果缓存中,在当前加载的Kernel是加载顺序中的最后一个Kernel时,将当前加载的Kernel的执行结果作为神经网络模型的最终输出,将神经网络模型的最终输出保存到第二输出缓存中,向ARM发送所述第二中断信号,在当前加载的Kernel不是加载顺序中的第一个Kernel时,从中间结果缓存中获取中间结果,将获取的中间结果作为当前加载的Kernel的输入。
[0093] 在本发明实施例中,ARM能够根据神经网络模型的模型参数对FPGA计算资源和存储资源进行动态调度以适应不同神经网络模型的计算。
[0094] 在本发明实施例中,存储单元、第一输出缓存、中间结果缓存和第二输出缓存可以通过一个存储设备来实现,例如:DDR存储资源;其中的一个或多个可以通过FPGA的内部寄存器或RAM来实现。存储单元可以通过SD卡来实现。
[0095] 在本发明实施例中,网络模型构建单元可以支持Caffe、TensorFlow等平台构建的神经网络模型,如SSD、Faster-RCNN等。
[0096] 在本发明实施例中,Kernel可以通过由OpenCL编程实现。
[0097] 在本发明实施例中,FPGA的静态资源(主要包括I/O资源和电源等)可以在系统初始化时从FLASH自动加载。
[0098] 在本发明实施例中,ARM与网络模型构建单元通信可以通过PCIE总线来实现,ARM与FPGA通信可以通过并行总线来实现。
[0099] 在本发明实施例中,存储单元、第一输出缓存、中间结果缓存和第二输出缓存等可以存储网络模型权重、偏置、滑动步长、卷积核、计算中间结果以及输入输出等信息。
[0100] 本发明实施例适用于实现卷积神经网络模型。
[0101] 本发明实施例可有效的适应不同网络模型的实现,解除不同功能模型与硬件电路紧耦合的关系,在可利用资源充足的情况下,可将整个模型做一次重构实现,在可利用资源紧张的情况下也可将整个模型分解成多个任务分别进行计算,并通过多级存储模缓存中间结算结果,最后将结果合并,大大提高了实现神经网络模型的硬件电路的通用性。
[0102] 如图3所示,本发明实施例提供了一种基于本发明实施例中任一所述的实现神经网络模型的装置实现神经网络模型的方法,包括:
[0103] 步骤301:存储单元存储用于实现神经网络模型的至少一个Kernel;
[0104] 步骤302:ARM对所述至少一个Kernel进行调度,将所述至少一个Kernel逐个加载到所述FPGA中;
[0105] 步骤303:FPGA执行加载的所述至少一个Kernel,实现所述神经网络模型。
[0106] 在本发明一实施例中,在所述实现神经网络模型的装置中包括网络模型构建单元时;
[0107] 在所述存储单元存储用于实现神经网络模型的至少一个Kernel之前,进一步包括:
[0108] 所述网络模型构建单元确定所述FPGA的可利用资源;
[0109] 所述网络模型构建单元根据所述FPGA的可利用资源,确定实现所述神经网络模型所需要的Kernel的目标数量;
[0110] 所述网络模型构建单元生成用于实现神经网络模型的所述目标数量个所述Kernel,将所述目标数量个所述Kernel保存到所述存储单元中。
[0111] 在本发明一实施例中,在所述实现神经网络模型的装置中包括第一输出缓存时;
[0112] 当所述至少一个Kernel为一个Kernel时,
[0113] 在所述FPGA执行加载的所述至少一个Kernel之后,进一步包括:
[0114] 所述FPGA将加载的Kernel的执行结果所述神经网络模型的最终输出;
[0115] 所述FPGA将所述神经网络模型的最终输出保存到所述第一输出缓存中,向所述ARM发送第一中断信号;
[0116] 所述ARM当接收到所述FPGA发来的所述第一中断信号时,从所述第一输出缓存中获取所述神经网络模型的最终输出。
[0117] 本发明各个实施例至少具有如下有益效果:
[0118] 1、在本发明实施例中,通过ARM来对用于实现神经网络模型的Kernel进行调度,通过FPGA来执行Kernel,也就是说,通过ARM和FPGA即可实现神经网络模型,而ARM和FPGA的功耗大大小于CPU加GPU的架构,因此,本发明实施例能够降低实现神经网络模型的功耗。
[0119] 2、本发明实施例可有效的适应不同网络模型的实现,解除不同功能模型与硬件电路紧耦合的关系,在可利用资源充足的情况下,可将整个模型做一次重构实现,在可利用资源紧张的情况下也可将整个模型分解成多个任务分别进行计算,并通过多级存储模块缓存中间结算结果,最后将结果合并,大大提高了实现神经网络模型的硬件电路的通用性。
[0120] 需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0121] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
[0122] 最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈