CN107609646B - 一种残差网络实现方法、系统、设备及计算机存储介质 - Google Patents
一种残差网络实现方法、系统、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN107609646B CN107609646B CN201710947024.1A CN201710947024A CN107609646B CN 107609646 B CN107609646 B CN 107609646B CN 201710947024 A CN201710947024 A CN 201710947024A CN 107609646 B CN107609646 B CN 107609646B
- Authority
- CN
- China
- Prior art keywords
- module
- residual error
- picture information
- result
- convolution
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 239000000872 buffer Substances 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004913 activation Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 7
- 238000010606 normalization Methods 0.000 claims description 7
- 230000000875 corresponding effect Effects 0.000 description 21
- 238000013135 deep learning Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种残差网络实现方法、系统、设备及计算机存储介质,其中该方法包括:DDR获取外界输入的图片信息;Pe Feeder读取DDR获取的图片信息,并将图片信息作为当前图片信息发送至Pe模块组;Pe模块组对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送至残差模块;残差模块在预设的头文件的触发下,对卷积结果进行残差操作;Sequencer基于头文件判断是否进入下一次卷积操作,若是,则将残差模块的输出结果作为当前图片信息发送至Pe模块组,返回Pe模块组对当前图片信息进行卷积运算的操作。本发明公开的一种残差网络实现方法解决了如何在FPGA上实现残差网络结构的技术问题。
Description
技术领域
本发明涉及深度学习加速技术领域,更具体地说,涉及一种残差网络实现方法、系统、设备及计算机存储介质。
背景技术
深度学习的常用加速引擎有GPU(Graphics Processing Unit,图形处理器)及FPGA(Field-Programmable Gate Array,现场可编程门阵列)。GPU有较多的核心计算单元,并行处理能力强,然而其价格昂贵,功耗较大,并且数据处理的延时性高。相比于GPU,FPGA能够通过编程重构计算单元,具有低功耗、低延时和高性价比的特点。所以现阶段均借助FPGA来实现深度学习。
现有技术中,已经在FPGA上实现了深度学习中的数据中心CNN算法、AlexNet网络及GoogleNet V1。
然而,还没有一种在FPGA上实现深度学习中的残差网络结构的方法。
综上所述,如何在FPGA上实现残差网络结构是目前本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种残差网络实现方法,其能在一定程度上解决如何在FPGA上实现残差网络结构的技术问题。本发明还提供了一种残差网络实现系统、设备及计算机存储介质。
为了实现上述目的,本发明提供如下技术方案:
一种残差网络实现方法,包括:
DDR获取外界输入的图片信息;
Pe Feeder读取所述DDR获取的所述图片信息,并将所述图片信息作为当前图片信息发送至Pe模块组;
Pe模块组对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送;
残差模块在预设的头文件的触发下,接收所述卷积结果并对所述卷积结果进行残差操作,得到输出结果;
Sequencer基于所述头文件判断是否进入下一次卷积操作,若是,则将所述残差模块的输出结果作为当前图片信息发送至所述Pe模块组,返回所述Pe模块组对当前图片信息进行卷积运算的操作;
其中,所述DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer均属于FPGA。
优选的,所述Pe模块组将该卷积结果发送之后,所述残差模块接收所述卷积结果之前,还包括:
所述Pe模块组将该卷积结果发送至Norm模块;
所述Norm模块在预设的头文件的触发下,对所述卷积结果进行批归一化操作,并将所得结果输出;
Scale模块在所述头文件的触发下,对所述Norm模块的输出结果进行缩放操作,并将所得结果输出;
ReLU模块在所述头文件的触发下,对所述Scale模块的输出结果进行ReLU激活函数操作,并将所得结果输出;
pool模块在所述头文件的触发下,对所述ReLU模块的输出结果进行pool操作,并将自身的输出结果发送至残差模块;
所述残差模块接收所述卷积结果并对所述卷积结果进行残差操作,包括:
所述残差模块对所述pool模块的输出结果进行残差操作。
优选的,所述Pe Feeder读取所述DDR获取的所述图片信息之前,还包括:
DDR获取外界输入的超参数组,所述超参数组包括各个模块进行运算操作所需的当前次的超参数;
所述Pe Feeder将当前图片信息发送至Pe模块组之后,所述Pe模块组对当前图片信息进行卷积运算之前,还包括:
Prameter Reader模块读取所述超参数组并将与各个模块对应的当前次的超参数输入各个模块中,以便各个模块基于各自的当前次的超参数进行运算操作。
优选的,所述残差模块对所述卷积结果进行残差操作之后,Sequencer判断是否进行下一次卷积操作之前,还包括:
Stream Buffer采集并判断当前图片信息、所述卷积结果及所述残差模块的输出结果的总大小是否大于自身芯片的缓存大小,若是,则将当前图片信息、所述卷积结果及所述残差模块的输出结果缓存至自身芯片;若否,则将当前图片信息、所述卷积结果及所述残差模块的输出结果分别缓存至所述DDR中预设的三块缓存中。
一种残差网络实现系统,其特征在于,包括:
DDR,用于获取外界输入的图片信息;
Pe Feeder,用于读取所述DDR获取的所述图片信息,并将所述图片信息作为当前图片信息发送至Pe模块组;
Pe模块组,用于对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送;
残差模块,用于在预设的头文件的触发下,接收所述卷积结果并对所述卷积结果进行残差操作,得到输出结果;
Sequencer,用于基于所述头文件判断是否进入下一次卷积操作,若是,则将所述残差模块的输出结果作为当前图片信息发送至所述Pe模块组,提示所述Pe模块组对当前图片信息进行卷积运算;
其中,所述DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer均属于FPGA。
优选的,还包括Norm模块、Scale模块、ReLU模块和pool模块;
所述Pe模块组还用于将该卷积结果发送至所述Norm模块;
所述Norm模块,用于在预设的头文件的触发下,对所述卷积结果进行批归一化操作,并将所得结果输出;
所述Scale模块,用于在所述头文件的触发下,对所述Norm模块的输出结果进行缩放操作,并将所得结果输出;
所述ReLU模块,用于在所述头文件的触发下,对所述Scale模块的输出结果进行ReLU激活函数操作,并将所得结果输出;
所述pool模块,用于在所述头文件的触发下,对所述ReLU模块的输出结果进行pool操作,并将自身的输出结果发送至所述残差模块;
所述残差模块,还用于对所述pool模块的输出结果进行残差操作。
优选的,还包括Prameter Reader模块;
DDR还用于在所述Pe Feeder读取所述DDR获取的所述图片信息之前,获取外界输入的超参数组,所述超参数组包括各个模块进行运算操作所需的当前次的超参数;
Prameter Reader模块,用于在所述Pe Feeder将当前图片信息发送至Pe模块组之后,在所述Pe模块组对当前图片信息进行卷积运算之前,读取所述超参数组并将与各个模块对应的当前次的超参数输入各个模块中,以便各个模块基于各自的当前次的超参数进行运算操作。
优选的,还包括:
Stream Buffer,用于在所述残差模块对所述卷积结果进行残差操作之后,Sequencer判断是否进行下一次卷积操作之前,采集并判断当前图片信息、所述卷积结果及所述残差模块的输出结果的总大小是否大于自身芯片的缓存大小,若是,则将当前图片信息、所述卷积结果及所述残差模块的输出结果缓存至自身芯片;若否,则将当前图片信息、所述卷积结果及所述残差模块的输出结果分别缓存至所述DDR中预设的三块缓存中。
一种残差网络实现设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述一种残差网络实现方法的步骤。
一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种残差网络实现方法的步骤。
本发明提供的一种残差网络实现方法,包括:DDR获取外界输入的图片信息;PeFeeder读取DDR获取的图片信息,并将图片信息作为当前图片信息发送至Pe模块组;Pe模块组对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送;残差模块在预设的头文件的触发下,接收卷积结果并对卷积结果进行残差操作;Sequencer基于头文件判断是否进入下一次卷积操作,若是,则将残差模块的输出结果作为当前图片信息发送至Pe模块组,返回Pe模块组对当前图片信息进行卷积运算的操作;其中,DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer均属于FPGA。本发明提供的一种残差网络实现方法借助FPGA的DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer在FPGA上实现了残差网络结构,解决了如何在FPGA上实现残差网络结构的技术问题。本发明提供的一种残差网络实现系统、设备及计算机存储介质也解决了相应的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种残差网络实现方法的流程图;
图2为本发明实施例提供的一种残差网络实现系统的结构示意图;
图3为本发明实施例提供的一种残差网络实现设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种残差网络实现方法的流程图。
本发明实施例提供的一种残差网络实现方法,可以包括以下步骤:
步骤S101:DDR(Double Data Rate,双倍速率同步动态随机存储器)获取外界输入的图片信息。
实际应用中,可以是外界先将图片信息输入至与FPGA连接的主机电脑,主机电脑再将图片信息写入至DDR中,从而使得DDR获取外界输入的图片信息。
步骤S102:Pe Feeder(卷积模块头)读取DDR获取的图片信息,并将图片信息作为当前图片信息发送至Pe模块组。
在DDR获取到外界输入的图片信息后,Pe Feeder便可以读取DDR获取的图片信息,并将图片信息作为当前图片信息发送至Pe模块组,以便Pe模块组对当前图片信息进行卷积运算。实际应用中,Pe Feeder可以实时对DDR进行读取操作,也可以是以预设的时间间隔对DDR进行读取操作,本发明在这里不做具体限定。
步骤S103:Pe模块组对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送。
实际应用中,Pe模块组可以包括多个Pe模块,每个Pe模块均对输入至自身的图片信息进行卷积运算,Pe模块的数量可以根据实际需要确定。
步骤S104:残差模块在预设的头文件的触发下,接收卷积结果并对卷积结果进行残差操作,得到输出结果。
预设的头文件中有控制残差模块工作与否的开关,外界可以预先设置此开关来控制残差模块工作与否。实际应用中,可以是残差模块读取头文件中与自身对应的开关信息,根据开关信息判断是否对卷积结果进行残差操作,若是,则对卷积结果进行残差操作,这时,残差模块的输出结果便为进行残差操作后的卷积结果;若否,则不做任何操作,这时,残差模块的输出结果便为Pe模块组得到的卷积结果。此时,也即完成了一次残差运算。
步骤S105:Sequencer(序列发生器)基于头文件判断是否进入下一次卷积操作,若是,则执行步骤S106:将残差模块的输出结果作为当前图片信息发送至Pe模块组,返回Pe模块组对当前图片信息进行卷积运算的操作;
其中,DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer均属于FPGA,下文所说的模块等也均属于FPGA,不再赘述。
实际应用中,可能需要对图片信息进行多次卷积操作,对图片信息进行卷积操作的次数存储在头文件中,这时Sequencer可以判断是否进入下一次卷积操作,若是,则将残差模块的输出结果作为当前图片信息发送至Pe模块组,返回Pe模块组对当前图片信息进行卷积运算的操作;若否,则可以输出残差模块的输出结果,当然,也可以有其他操作,本发明在这里不做具体限定。
本发明提供的一种残差网络实现方法,包括:DDR获取外界输入的图片信息;PeFeeder读取DDR获取的图片信息,并将图片信息作为当前图片信息发送至Pe模块组;Pe模块组对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送;残差模块在预设的头文件的触发下,接收卷积结果并对卷积结果进行残差操作;Sequencer基于头文件判断是否进入下一次卷积操作,若是,则将残差模块的输出结果作为当前图片信息发送至Pe模块组,返回Pe模块组对当前图片信息进行卷积运算的操作;其中,DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer均属于FPGA。本发明提供的一种残差网络实现方法借助FPGA的DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer在FPGA上实现了残差网络结构,解决了如何在FPGA上实现残差网络结构的技术问题。
实际应用中,在FPGA的数据并行能力较低时,Pe Feeder在读取DDR获取的图片信息时,可以先按照预设的头文件中的向量将图片信息拆分为预设数量的图片数据,图片数据的数量可以根据实际需要确定,然后从第一个图片数据开始,到最后一个图片数据结束,依次选择一个图片数据作为当前图片信息发送至Pe模块组并进行后续操作,得到每一个图片数据对应的残差模块的输出结果;最后,再将每一个图片数据对应的残差模块的输出结果进行重组得到图片信息对应的残差模块的输出结果。通过对图片信息的拆分和重组可以提高FPGA上构造的残差网络结构的数据并行能力。
本发明实施例提供的一种残差网络实现方法中,Pe模块组将该卷积结果发送之后,残差模块接收卷积结果并对卷积结果进行残差操作之前,还可以包括:
Pe模块组将该卷积结果发送至Norm模块;
Norm模块在预设的头文件的触发下,对卷积结果进行批归一化操作,并将所得结果输出;
Scale模块在头文件的触发下,对Norm模块的输出结果进行缩放操作,并将所得结果输出;
ReLU模块在头文件的触发下,对Scale模块的输出结果进行ReLU激活函数操作,并将所得结果输出;
pool模块在头文件的触发下,对ReLU模块的输出结果进行pool操作,并将自身的输出结果发送至残差模块;
残差模块接收卷积结果并对卷积结果进行残差操作,可以包括:
残差模块对pool模块的输出结果进行残差操作。
实际应用中,在将卷积结果输入至残差模块前,可以先对卷积结果进行预处理,这样可以提高FPGA上实现的残差网络结构的泛化能力。这里所说的预处理包括批归一化操作、缩放操作、ReLU激活函数操作和pool操作,具体实现过程如上所述,此外各个操作的原理与现有技术中对应操作的原理相同,这里不再赘述。应当指出,实际应用中,可以通过头文件控制进行预处理操作的每个模块的工作与否,比如在头文件中设置与Norm模块对应的开关,用来控制Norm模块的工作与否,在头文件中设置与Scale模块对应的开关,用来控制Scale模块的工作与否等。这时,残差模块便对pool模块的输出结果进行残差操作。
本发明实施例提供的一种残差网络实现方法中,Pe Feeder读取DDR获取的图片信息之前,还可以包括:
DDR获取外界输入的超参数组,超参数组包括各个模块进行运算操作所需的当前次的超参数;
Pe Feeder将当前图片信息发送至Pe模块组之后,Pe模块组对当前图片信息进行卷积运算之前,还可以包括:
Prameter Reader(参数读取)模块读取超参数组并将与各个模块对应的当前次的超参数输入各个模块中,以便各个模块基于各自的当前次的超参数进行运算操作。
实际应用中,DDR还可以获取外界输入的超参数组,获取超参数组的原理与获取图片信息的原理相同,这里不再赘述。这里所说的超参数组包括各个模块进行运算操作所需的当前次的超参数,由于在一次残差运算中,每个模块可能多次参与运算,所以超参数组中可以有每个模块每一次运算对应的超参数;根据不同的实际需求,外界可以调整超参数组来实现对残差运算的控制,进而达到实际需求。在DDR获取到超参数组后,Prameter Reader模块便可以读取超参数组并将与各个模块对应的当前次的超参数输入至各个模块中,这样各个模块便可以根据自身的当前次超参数进行相应运算操作。相对应的,Sequencer可以将残差模块的输出结果作为当前图片信息发送给Pe模块组,返回Prameter Reader模块读取超参数组并将与各个模块对应的当前次的超参数输入各个模块中的操作。应当指出,Pe模块组对应的超参数为卷积核参数,实际应用中可以借助Filter Reader读取当前次的卷积核参数并输入至Pe模块组中。
本发明实施例提供的一种残差网络实现方法中,残差模块对卷积结果进行残差操作之后,Sequencer判断是否进行下一次卷积操作之前,还可以包括:
Stream Buffer(流动缓存区)采集并判断当前图片信息、卷积结果及残差模块的输出结果的总大小是否大于自身芯片的缓存大小,若是,则将当前图片信息、卷积结果及残差模块的输出结果缓存至自身芯片;若否,则将当前图片信息、卷积结果及残差模块的输出结果分别缓存至DDR中预设的三块缓存中。
实际应用中,可以是Stream Buffer采集并缓存图片信息、卷积结果和残差模块的输出结果,这样外界可以借助Stream Buffer了解图片信息的处理过程。Stream Buffer在将当前图片信息、卷积结果及残差网络模型的输出结果分别缓存至DDR中预设的三块缓存中时,可以是将当前图片信息缓存至第一块缓存中,将卷积结果缓存至第二块缓存中,将残差网络模型的输出结果缓存至第三块缓存中,实际应用中,随着卷积运算的多次进行,每块缓存缓存的数据类型可以发生变化,比如第一块缓存第一次缓存的可以是第一次卷积运算中的当前图片信息,第二次缓存的可以是第二次卷积运算中的卷积结果等,本发明在这里不做具体限定。这里所说的第几次卷积运算也即第几次残差运算,由于每一次残差运算均由卷积运算开始,所以这里以卷积运算的次数描述残差运算的次数。
实际应用中,可以借助OpenCL(Open Computing Language,开放式计算机语言)将上述任一种残差网络实现方法的步骤封装成面向FPGA的Kernel程序,再采用Altera SDKfor OpenCL(AOC)高层次综合工具对Kernel程序文件进行编译综合,生成可在FPGA上运行的AOCX文件,这样只需将AOCX文件写入FPGA便可以很方便的在FPGA上实现残差网络结构。实际应用中,还可以借助处理器CPU来完善残差网络结构在FPGA上的实现,这时,可以先采用OpenCL高级语言生成在处理器CPU上运行的主机端程序,再采用GCC编译器对主机端程序进行编译,生成可在处理器CPU上执行的可执行程序文件,借助可执行程序文件可以很方便的将主机端程序写入处理器CPU。实际应用中,处理器CPU和FPGA之间可以采用PCI-E接口连接。
主机端程序运行时,处理器CPU可以实现以下步骤:
将残差网络模型的超参数存入FPGA开发板的DDR内存上;
按设置的Batch Size(批处理图片大小),将图片信息导入DDR中;
控制启动FPGA上的残差网络模型;
等待FPGA端的残差网络运行结束后,从FPGA端的DDR的缓存中,读取运行结果。
本发明还提供了一种残差网络实现系统,其具有本发明实施例提供的一种残差网络实现方法具有的对应效果。请参阅图2,图2为本发明实施例提供的一种残差网络实现系统的结构示意图。
本发明实施例提供的一种残差网络实现系统,可以包括:
DDRA1,用于获取外界输入的图片信息;
Pe FeederA2,用于读取DDRA1获取的图片信息,并将图片信息作为当前图片信息发送至Pe模块组A3;
Pe模块组A3,用于对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送;
残差模块A4,用于在预设的头文件A5的触发下,接收卷积结果并对卷积结果进行残差操作,得到输出结果;
SequencerA6,用于基于头文件判断是否进入下一次卷积操作,若是,则将残差模块A4的输出结果作为当前图片信息发送至Pe模块组A2,提示Pe模块组A3对当前图片信息进行卷积运算;
其中,DDRA1、Pe FeederA2、Pe模块组A3、残差模块A4、头文件A5及SequencerA6均属于FPGA。
本发明实施例提供的一种残差网络实现系统中,还可以包括Norm模块、Scale模块、ReLU模块和pool模块;
Pe模块组还用于将该卷积结果发送至Norm模块;
Norm模块,用于在预设的头文件的触发下,对卷积结果进行批归一化操作,并将所得结果输出;
Scale模块,用于在头文件的触发下,对Norm模块的输出结果进行缩放操作,并将所得结果输出;
ReLU模块,用于在头文件的触发下,对Scale模块的输出结果进行ReLU激活函数操作,并将所得结果输出;
pool模块,用于在头文件的触发下,对ReLU模块的输出结果进行pool操作,并将自身的输出结果发送至残差模块;
残差模块,还用于对pool模块的输出结果进行残差操作。
本发明实施例提供的一种残差网络实现系统中,还可以包括Prameter Reader模块;
DDR还用于在Pe Feeder读取DDR获取的图片信息之前,获取外界输入的超参数组,超参数组包括各个模块进行运算操作所需的当前次的超参数;
Prameter Reader模块,用于在Pe Feeder将当前图片信息发送至Pe模块组之后,在Pe模块组对当前图片信息进行卷积运算之前,读取超参数组并将与各个模块对应的当前次的超参数输入各个模块中,以便各个模块基于各自的当前次的超参数进行运算操作。
本发明实施例提供的一种残差网络实现系统中,还可以包括:
Stream Buffer,用于在残差模块对卷积结果进行残差操作之后,Sequencer判断是否进行下一次卷积操作之前,采集并判断当前图片信息、卷积结果及残差模块的输出结果的总大小是否大于自身芯片的缓存大小,若是,则将当前图片信息、卷积结果及残差模块的输出结果缓存至自身芯片;若否,则将当前图片信息、卷积结果及残差模块的输出结果分别缓存至DDR中预设的三块缓存中。
本发明还提供了一种残差网络实现设备及计算机存储介质,其均具有本发明实施例提供的一种残差网络实现方法具有的对应效果。请参阅图3,图3为本发明实施例提供的一种残差网络实现设备的结构示意图。
本发明实施例提供的一种残差网络实现设备,可以包括:
存储器B1,用于存储计算机程序;
处理器B2,用于执行计算机程序时实现如上任一项所述一种残差网络实现方法的步骤。
本法民实施例提供的一种计算机存储介质中,计算机存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项所述一种残差网络实现方法的步骤。
本发明实施例提供的一种残差网络实现系统、设备及计算机存储介质中相关部分的说明请参见本发明实施例提供的一种残差网络实现方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种残差网络实现方法,其特征在于,包括:
DDR获取外界输入的图片信息;
Pe Feeder读取所述DDR获取的所述图片信息,并将所述图片信息作为当前图片信息发送至Pe模块组;
Pe模块组对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送;
残差模块在预设的头文件的触发下,接收所述卷积结果并对所述卷积结果进行残差操作,得到输出结果;预设的所述头文件中有控制所述残差模块工作与否的开关;
Sequencer基于所述头文件判断是否进行下一次卷积操作,若是,则将所述残差模块的输出结果作为当前图片信息发送至所述Pe模块组,返回所述Pe模块组对当前图片信息进行卷积运算的操作;
其中,所述DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer均属于FPGA。
2.根据权利要求1所述的方法,其特征在于,所述Pe模块组将该卷积结果发送之后,所述残差模块接收所述卷积结果之前,还包括:
所述Pe模块组将该卷积结果发送至Norm模块;
所述Norm模块在预设的头文件的触发下,对所述卷积结果进行批归一化操作,并将所得结果输出;
Scale模块在所述头文件的触发下,对所述Norm模块的输出结果进行缩放操作,并将所得结果输出;
ReLU模块在所述头文件的触发下,对所述Scale模块的输出结果进行ReLU激活函数操作,并将所得结果输出;
pool模块在所述头文件的触发下,对所述ReLU模块的输出结果进行pool操作,并将自身的输出结果发送至残差模块;
所述残差模块接收所述卷积结果并对所述卷积结果进行残差操作,包括:
所述残差模块对所述pool模块的输出结果进行残差操作。
3.根据权利要求2所述的方法,其特征在于,所述Pe Feeder读取所述DDR获取的所述图片信息之前,还包括:
DDR获取外界输入的超参数组,所述超参数组包括各个模块进行运算操作所需的当前次的超参数;
所述Pe Feeder将当前图片信息发送至Pe模块组之后,所述Pe模块组对当前图片信息进行卷积运算之前,还包括:
Prameter Reader模块读取所述超参数组并将与各个模块对应的当前次的超参数输入各个模块中,以便各个模块基于各自的当前次的超参数进行运算操作。
4.根据权利要求3所述的方法,其特征在于,所述残差模块对所述卷积结果进行残差操作之后,Sequencer判断是否进行下一次卷积操作之前,还包括:
Stream Buffer采集并判断当前图片信息、所述卷积结果及所述残差模块的输出结果的总大小是否大于自身芯片的缓存大小,若是,则将当前图片信息、所述卷积结果及所述残差模块的输出结果缓存至自身芯片;若否,则将当前图片信息、所述卷积结果及所述残差模块的输出结果分别缓存至所述DDR中预设的三块缓存中。
5.一种残差网络实现系统,其特征在于,包括:
DDR,用于获取外界输入的图片信息;
Pe Feeder,用于读取所述DDR获取的所述图片信息,并将所述图片信息作为当前图片信息发送至Pe模块组;
Pe模块组,用于对当前图片信息进行卷积运算,得到卷积结果,并将该卷积结果发送;
残差模块,用于在预设的头文件的触发下,接收所述卷积结果并对所述卷积结果进行残差操作,得到输出结果;预设的所述头文件中有控制所述残差模块工作与否的开关;
Sequencer,用于基于所述头文件判断是否进入下一次卷积操作,若是,则将所述残差模块的输出结果作为当前图片信息发送至所述Pe模块组,提示所述Pe模块组对当前图片信息进行卷积运算;
其中,所述DDR、Pe Feeder、Pe模块组、残差模块、头文件及Sequencer均属于FPGA。
6.根据权利要求5所述的系统,其特征在于,还包括Norm模块、Scale模块、ReLU模块和pool模块;
所述Pe模块组还用于将该卷积结果发送至所述Norm模块;
所述Norm模块,用于在预设的头文件的触发下,对所述卷积结果进行批归一化操作,并将所得结果输出;
所述Scale模块,用于在所述头文件的触发下,对所述Norm模块的输出结果进行缩放操作,并将所得结果输出;
所述ReLU模块,用于在所述头文件的触发下,对所述Scale模块的输出结果进行ReLU激活函数操作,并将所得结果输出;
所述pool模块,用于在所述头文件的触发下,对所述ReLU模块的输出结果进行pool操作,并将自身的输出结果发送至所述残差模块;
所述残差模块,还用于对所述pool模块的输出结果进行残差操作,得到输出结果。
7.根据权利要求6所述的系统,其特征在于,还包括Prameter Reader模块;
DDR还用于在所述Pe Feeder读取所述DDR获取的所述图片信息之前,获取外界输入的超参数组,所述超参数组包括各个模块进行运算操作所需的当前次的超参数;
Prameter Reader模块,用于在所述Pe Feeder将当前图片信息发送至Pe模块组之后,在所述Pe模块组对当前图片信息进行卷积运算之前,读取所述超参数组并将与各个模块对应的当前次的超参数输入各个模块中,以便各个模块基于各自的当前次的超参数进行运算操作。
8.根据权利要求7所述的系统,其特征在于,还包括
Stream Buffer,用于在所述残差模块对所述卷积结果进行残差操作之后,Sequencer判断是否进行下一次卷积操作之前,采集并判断当前图片信息、所述卷积结果及所述残差模块的输出结果的总大小是否大于自身芯片的缓存大小,若是,则将当前图片信息、所述卷积结果及所述残差模块的输出结果缓存至自身芯片;若否,则将当前图片信息、所述卷积结果及所述残差模块的输出结果分别缓存至所述DDR中预设的三块缓存中。
9.一种残差网络实现设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述一种残差网络实现方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述一种残差网络实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710947024.1A CN107609646B (zh) | 2017-10-12 | 2017-10-12 | 一种残差网络实现方法、系统、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710947024.1A CN107609646B (zh) | 2017-10-12 | 2017-10-12 | 一种残差网络实现方法、系统、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107609646A CN107609646A (zh) | 2018-01-19 |
CN107609646B true CN107609646B (zh) | 2021-01-29 |
Family
ID=61068563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710947024.1A Active CN107609646B (zh) | 2017-10-12 | 2017-10-12 | 一种残差网络实现方法、系统、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107609646B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109961139A (zh) * | 2019-01-08 | 2019-07-02 | 广东浪潮大数据研究有限公司 | 一种残差网络的加速方法、装置、设备及存储介质 |
CN110503201A (zh) * | 2019-08-29 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种神经网络分布式并行训练方法与装置 |
CN111416743B (zh) * | 2020-03-19 | 2021-09-03 | 华中科技大学 | 一种卷积网络加速器、配置方法及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106887225A (zh) * | 2017-03-21 | 2017-06-23 | 百度在线网络技术(北京)有限公司 | 基于卷积神经网络的声学特征提取方法、装置和终端设备 |
CN106897268A (zh) * | 2017-02-28 | 2017-06-27 | 科大讯飞股份有限公司 | 文本语义理解方法、装置和系统 |
CN107229952A (zh) * | 2017-06-01 | 2017-10-03 | 雷柏英 | 图像的识别方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090031B2 (en) * | 2007-10-05 | 2012-01-03 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method for motion compensation |
-
2017
- 2017-10-12 CN CN201710947024.1A patent/CN107609646B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897268A (zh) * | 2017-02-28 | 2017-06-27 | 科大讯飞股份有限公司 | 文本语义理解方法、装置和系统 |
CN106887225A (zh) * | 2017-03-21 | 2017-06-23 | 百度在线网络技术(北京)有限公司 | 基于卷积神经网络的声学特征提取方法、装置和终端设备 |
CN107229952A (zh) * | 2017-06-01 | 2017-10-03 | 雷柏英 | 图像的识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107609646A (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109598338B (zh) | 一种基于fpga的计算优化的卷积神经网络加速器 | |
CN110546654B (zh) | 通过构造接口的带宽控制来增强dnn模块的处理性能 | |
US11775320B2 (en) | Overflow detection and correction in state machine engines | |
US11200724B2 (en) | Texture processor based ray tracing acceleration method and system | |
CN107609644B (zh) | 用于状态机中的数据分析的方法及系统 | |
US20210065005A1 (en) | Systems and methods for providing vector-wise sparsity in a neural network | |
CN107609646B (zh) | 一种残差网络实现方法、系统、设备及计算机存储介质 | |
US20180240010A1 (en) | Technologies for optimized machine learning training | |
JP6017034B2 (ja) | 状態機械エンジンが受信したデータを取り扱うための方法およびシステム | |
TWI492062B (zh) | 用於程式化狀態機引擎之方法與裝置 | |
WO2020118608A1 (zh) | 一种反卷积神经网络的硬件加速方法、装置和电子设备 | |
CN109416636A (zh) | 共享的机器学习数据结构 | |
US11983624B2 (en) | Auto generation and tuning tool for convolution kernels | |
JP6041987B2 (ja) | 状態機械エンジンにおいて状態ベクトルデータを使用するための方法およびシステム | |
CN108256164A (zh) | 状态机晶格中的布尔逻辑 | |
US11942135B2 (en) | Deep learning accelerator and random access memory with a camera interface | |
CN111738435A (zh) | 一种基于移动设备的在线稀疏训练方法及系统 | |
US20210056403A1 (en) | Neural network internal data fast access memory buffer | |
CN105830160B (zh) | 用于将经屏蔽数据写入到缓冲器的设备及方法 | |
CN110888824B (zh) | 多级存储器层级结构 | |
CN117435855B (zh) | 用于进行卷积运算的方法、电子设备和存储介质 | |
CN107678781B (zh) | 处理器以及用于在处理器上执行指令的方法 | |
Yun et al. | GraNDe: Efficient near-data processing architecture for graph neural networks | |
US11669773B2 (en) | Electronic devices generating verification vector for verifying semiconductor circuit and methods of operating the same | |
US20240338597A1 (en) | Using machine learning to generate a workload of a storage component |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201202 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |