CN111542839B - 一种反卷积神经网络的硬件加速方法、装置和电子设备 - Google Patents
一种反卷积神经网络的硬件加速方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111542839B CN111542839B CN201880083893.7A CN201880083893A CN111542839B CN 111542839 B CN111542839 B CN 111542839B CN 201880083893 A CN201880083893 A CN 201880083893A CN 111542839 B CN111542839 B CN 111542839B
- Authority
- CN
- China
- Prior art keywords
- network layer
- memory
- current
- input data
- calculation result
- 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
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
Abstract
一种反卷积神经网络的硬件加速方法、装置、电子设备和存储介质,该方法包括:获取当前网络层的输入数据(S1),所述输入数据为存储在第一存储器中的上一网络层的计算结果;将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器(S2),所述当前网络层包括该层的权重;基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据(S3);将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器(S4),所述下一网络层包括所述该层的权重;重复执行上述各步骤,直到所述反卷积神经网络的最后一层并输出结果(S5)。上述方法提高了数据传输和利用的效率。
Description
技术领域
本发明涉及人工智能领域,尤其涉及一种反卷积神经网络的硬件加速方法、装置、电子设备和存储介质。
背景技术
近几年,在人工智能领域,随着计算机算力和数据的剧增,基于神经网络的各种深度学习模型不断出现,引起了人们的广泛关注和研究,生成式对抗网络便是其中之一(GAN,Generative Adversarial Networks)。GAN网络主要由两个模块组成:生成模型(Generative Model)和判别模型(Discriminative Model),两个模块互相博弈进行无监督式或者半监督式学习。
其中,生成模型在GAN网络中用于生成数据。在已有大量训练数据的场景下,例如图像、语音、文本数据等,生成模型可以进行无监督式学习,模拟这些高维数据的分布;针对数据量缺乏的场景,生成模型则可以帮助生成数据,提高数据数量,从而利用半监督学习提升学习效率。因此GAN网络在很多应用场景例如机器翻译,图像去模糊,图像修复,文字到图像的转换等研究领域有着广泛的辅助应用。
但是,不同于判别模型通常由卷积神经网络构成,生成模型一般是反卷积神经网络,即由一系列的反卷积层组成。而现有的生成模型也就是反卷积神经网络在CPU或者GPU主要通过卷积操作实现,计算效率极低,数据利用率也很低;而已有的GAN网络生成模型在现场可编程门阵列(FPGA)上的加速器并没有考虑到反卷积网络与卷积网络的不同之处,效率提升有限。
发明内容
本发明实施例提供一种反卷积神经网络的硬件加速方法、装置、电子设备和存储介质,能够提高数据传输和利用的效率。
第一方面,本发明实施例提供一种反卷积神经网络的硬件加速方法,包括:
S1、获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果;
S2、将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重;
S3、基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据;
S4、将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括所述该层的权重;
S5、重复执行步骤S1、S2、S3、S4,直到所述反卷积神经网络的最后一层并输出结果。
可选的,所述输入数据包括存储于片外存储器上的初始数据,所述获取当前网络层的输入数据,包括:
将所述存储于片外存储器上的初始数据读取到所述第一存储器中。
可选的,所述将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重,包括:
获取当前网络层的权重,并输入当前网络层;
将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果;
将所述运算结果输入所述第二存储器。
可选的,所述获取当前网络层的权重,并输入当前网络层,包括:
将存储于片外存储器上的当前网络层的权重矩阵读取到所述当前网络层。
可选的,所述将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果,包括:
将所述输入数据和所述当前网络层的权重矩阵进行相乘并累加,得到计算结果。
可选的,所述基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据,包括:
所述下一网络层读取所述输入第二存储器中的运算结果作为输入数据。
可选的,所述第一存储器、第二存储器为现场可编程门阵列(FPGA)的片上存储器。
第二方面,本发明实施例提供一种反卷积神经网络的硬件加速装置,包括:
第一获取模块,用于获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果;
第一计算模块,用于将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重;
第二获取模块,用于基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据;
第二计算模块,用于将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括该层的权重;
重复模块,用于重复调用上述各模块,直到所述反卷积神经网络的最后一层并输出结果。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例提供的反卷积神经网络的硬件加速方法中的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例提供的反卷积神经网络的硬件加速方法中的步骤。
本发明实施例中,S1、获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果;S2、将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括当前网络层的权重;S3、基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据;S4、将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括所述下一网络层的权重;S5、重复执行步骤S1、S2、S3、S4,直到所述反卷积神经网络的最后一层并输出结果。由于当前网络层从片上第一存储器内读取上一网络层的计算结果,通过反卷积模块计算之后输入到片上第二存储器并作为下一网络层的输入数据,然后该下一网络层的输入数据经过反卷积模块计算再将结果输回片上第一存储器,从而实现了网络层之间的融合,有效地避免了重复读写片外数据,提高了数据传输和利用的效率,进而提高了反卷积神经网络的计算速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是本发明实施例可能用到的一种反卷积神经网络的硬件加速的网络架构图;
图2是本发明实施例提供的一种反卷积神经网络的硬件加速方法的流程示意图;
图3是本发明实施例提供的一种反卷积神经网络的硬件加速装置示意图;
图4是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先结合相关附图来举例介绍下,本发明实施例可能用到的一种反卷积神经网络的硬件加速的网络架构,如图1所示,上述网络架构包括主计算机模块(HOST)和FPGA加速模块两大部分。
主计算机模块包括CPU和DDRMemory(双倍速率内存),其中CPU可用来向上述FPGA加速模块提供时钟源,并可以发送控制指令将存于上述双倍速率内存的数据读取到FPGA加速模块,或将FPGA加速模块的输出数据写入上述双倍速率内存中。
FPGA加速模块包括控制单元(Control Unit)、直接内存存取单元(Direct MemoryAccess,DMA)、片上缓存器A(Buffer A)、片上缓存器B(Buffer B)、反卷积运算单元(DeConv)以及层计数单元(Layer Count),其中,控制单元用来控制输入输出数据的矩阵大小、通道数以及每一层的权值输入;直接内存存取用来将上述双倍速率内存与上述片上缓存器A、片上缓存器B直接相接,可以直接操作内存中的数据,提高读写速度;片上缓存器A、片上缓存器B用来临时存储上述主计算机模块输入的数据或反卷积运算单元的输出结果;反卷积运算单元用于将上述片上缓存器A或片上缓存器B内的数据和各层的权值进行反卷积计算;层计数单元用来通知控制单元在一次反卷积计算中,上述片上缓存器A和片上缓存器B哪一个作为反卷积运算单元的数据输入端、哪一个作为计算结果输出端,以便向数据输入端传送权重数据。
如图2所示,本发明实施例提供了一种反卷积神经网络的硬件加速方法,包括以下步骤:
S1、获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果。
其中,上述第一存储器可以是上述网络架构中的片上缓存器A或片上缓存器B;上述当前网络层的输入数据,可以从临时存储上一网络层输出的计算结果的上述第一存储器读取,如果当前网络层为第一层,还可以从上述主计算机模块的双倍速率内存中读取。
需要说明的是,上述输入数据可以为二维的矩阵数据,也可以是高维数据。
S2、将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重。
将上述获取到当前网络层的输入数据输入到上述网络架构中的反卷积运算单元,然后读取当前网络层的权重到上述反卷积运算单元,并将矩阵数据和权重进行矩阵相乘再相加,得到上述当前计算结果并存入上述第二存储器;上述第二存储器可以是上述网络架构中的片上缓存器A或片上缓存器B中没有用来缓存上述输入数据的那一个。
S3、基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据。
其中,读取步骤S2中存入上述第二存储器的当前计算结果到上述网络架构中的反卷积运算单元,作为下一网络层的输入数据,该输入数据为矩阵数据,并且在输入到反卷积运算单元进行反卷积计算之前,还可以通过上述控制单元对该矩阵数据进行处理,如填充、裁剪等。
S4、将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括该层的权重。
将步骤S3中获取到的所述下一网络层的输入数据输入到上述网络架构中的反卷积运算单元,然后读取该层的权重到上述反卷积运算单元,并将上述输入数据和权重进行矩阵相乘再相加,得到上述当前计算结果并存入上述第一存储器。
S5、重复执行步骤S1、S2、S3、S4,直到所述反卷积神经网络的最后一层并输出结果。
从上述反卷积神经网络第一层开始,每一层依次执行上述获取输入数据、进行反卷积计算、输出计算结果的步骤,直到反卷积神经网络的最后一层,然后可以将上述最后一层的计算结果经过上述控制单元的处理,再输出到上述双倍速率内存中。
值得说明的是,上述当前网络层、下一网络层以及上一网络层是相对的,具体由上述网络架构中的层计数单元来确定,例如,在一次反卷积计算中,层计数单元将本次输入数据的上述第一存储器一端作为当前网络层,计算后将结果输出到上述第二存储器的一端作为下一网络层,因此当前网络层相对于下一网络层来说是该层的上一网络层。
本发明实施例中,S1、获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果;S2、将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括当前网络层的权重;S3、基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据;S4、将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括所述下一网络层的权重;S5、重复执行步骤S1、S2、S3、S4,直到所述反卷积神经网络的最后一层并输出结果。由于当前网络层从片上第一存储器内读取上一网络层的计算结果,通过反卷积模块计算之后输入到片上第二存储器并作为下一网络层的输入数据,然后该下一网络层的输入数据经过反卷积模块计算再将结果输回片上第一存储器,从而实现了网络层之间的融合,有效地避免了重复读写片外数据,提高了数据传输和利用的效率,进而提高了反卷积神经网络的计算速度。
可选的,所述输入数据包括存储于片外存储器上的初始数据,所述获取当前网络层的输入数据,包括:
将所述存储于片外存储器上的初始数据读取到所述第一存储器中。
其中,片外存储器可以为上述网络架构中的主计算机模块内的双倍速率内存,支持读写操作,初始数据可以是图像的像素数据、语音数据或是文本的语义数据等;通过将上述存储于片外存储器上的初始数据读取到上述第一存储器中,且只读取该初始数据一次,进一步的该第一存储器是上述网络架构中的FPGA加速模块的片上缓存器A或片上缓存器B,从而加快数据传输的速率。
可选的,所述将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重,包括:
获取当前网络层的权重,并输入当前网络层;
将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果;
将所述运算结果输入所述第二存储器。
其中,从上述网络架构中的直接内存存取单元中读取当前网络层的权重,并输入当前网络层的输入数据所在的缓存器中;然后将上述当前网络层的权重和输入数据在上述反卷积运算单元中进行矩阵乘法之后相加,得出计算结果并将该结果输入到上述第二存储器中;进一步的该第一存储器是上述网络架构中的FPGA加速模块的片上缓存器A或片上缓存器B,从而加快数据传输的速率。
值得注意的是,上述当前网络层的输入数据和权重可以是方形矩阵,即矩阵的行数、列数一样,例如当前网络层的输入数据为5×5、权重为3×3;上述方形矩阵的形状可由上述网络架构中的控制单元来控制,例如控制单元可以向当前网络层的上述输入数据矩阵填充0使得该矩阵变成7×7等。
可选的,所述获取当前网络层的权重,并输入当前网络层,包括:
将存储于片外存储器上的当前网络层的权重矩阵读取到所述当前网络层。
其中,片外存储器为上述网络架构的双倍速率内存,当前网络层的权重为上述权重方形矩阵;当对当前网络层进行反卷积计算的时候,直接通过上述直接内存存取单元将存储于上述双倍速率内存中的当前网络层的权重矩阵传输到上述当前网络层所在的缓存器中。
可选的,所述将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果,包括:
将所述输入数据和所述当前网络层的权重矩阵进行相乘并累加,得到计算结果。
其中,将存储于同一缓存器中的当前网络层的输入数据和权重矩阵输入到上述反卷积运算单元进行矩阵乘法然后累加,得到上述计算结果。
可选的,所述基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据,包括:
所述下一网络层读取所述输入第二存储器中的运算结果作为输入数据。
其中,上述当前网络层的输入数据和权重矩阵进行反卷积计算,得到计算结果并输入到上述第二存储器中;当下一网络层开始反卷积计算的时候,从上述第二存储器中读取上述计算结果并作为该层的输入数据。例如,当前网络层的输入数据为2×2,可以经过填充后变成6×6,该层的权重矩阵为3×3,将两个矩阵进行进行反卷积计算后可以得到4×4的计算结果,输入到上述第二存储器中并作为下一网络层的输入数据。
值得一提的是,上述计算结果为矩阵数据,上述计算结果在输入到上述下一网络层之前还可以通过控制单元对该矩阵数据进行处理,如填充、裁剪等。
可选的,所述第一存储器、第二存储器为现场可编程门阵列(FPGA)的片上存储器。
其中,第一存储器、第二存储器为设置在上述FPGA加速模块上的片上缓存器A、片上缓存器B,通过直接内存存取单元与上述片外存储器相连接,以提高数据的传输和利用效率。
值得注意的是,上述当前网络层、下一网络层以及上一网络层是相对的,具体由上述网络架构中的层计数单元来确定,例如,在一次反卷积计算中,层计数单元将本次输入数据的上述片上缓存器A一端作为当前网络层,计算后将结果输出到上述片上缓存器B的一端作为下一网络层,因此当前网络层相对于下一网络层来说是该层的上一网络层;然后层计数单元通知控制单元将当前网络层的权重数据从直接内存存取单元读取到前网络层所在的片上缓存器A。
进一步的,上述FPGA加速模块的控制单元是可以根据需要进行配置的,以满足不同的反卷积神经网络对不同参数的需求,如对输入数据的矩阵填充处理、对输出数据的裁剪、反卷积计算的滑动步长、通道数量等,例如控制单元可以对输入数据填充0或其他值,反卷积计算的滑动步长可以设为1或2,输入数据如果为RGB彩色像素通道数可以是3、如果为灰度像素通道数可以是1等,这样可以提高该网络架构的通用性,满足不同的场景需求。
以上可选的实施例为图2中反卷积神经网络的硬件加速方法的补充实施例,执行上述可选的实施列中的方法均能达到相应的有益效果,为避免重复,这里不再赘述。
请参见图3,图3是本发明实施例提供的一种反卷积神经网络的硬件加速装置的结构示意图,如图3所示,所述装置包括:
第一获取模块201,用于获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果;
第一计算模块202,用于将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重;
第二获取模块203,用于基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据;
第二计算模块204,用于将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括该层的权重;
重复模块205,用于重复调用上述各模块,直到所述反卷积神经网络的最后一层并输出结果。
可选的,所述第一计算模块包括:
获取单元2021,用于获取当前网络层的权重,并输入当前网络层;
运算单元2022,用于将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果;
输入单元2023,用于将所述运算结果输入所述第二存储器。
本发明实施例提供的一种反卷积神经网络的硬件加速装置能够实现图2的方法实施例中的各个实施方式,以及相应的有益效果,为避免重复,这里不再赘述。
参见图4,图4是本发明实施例提供的一种电子设备的结构示意图,如图4所示,包括:存储器402、处理器401及存储在所述存储器402上并可在所述处理器401上运行的计算机程序,其中:
处理器401用于调用存储器402存储的计算机程序,执行如下步骤:
S1、获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果;
S2、将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重;
S3、基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据;
S4、将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括该层的权重;
S5、重复执行步骤S1、S2、S3、S4,直到所述反卷积神经网络的最后一层并输出结果。
可选的,所述输入数据包括存储于片外存储器上的初始数据,处理器401执行所述获取当前网络层的输入数据,包括:
将所述存储于片外存储器上的初始数据读取到所述第一存储器中。
处理器401执行所述将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重,包括:
获取当前网络层的权重,并输入当前网络层;
将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果;
将所述运算结果输入所述第二存储器。
处理器401执行的所述获取当前网络层的权重,并输入当前网络层,包括:
将存储于片外存储器上的当前网络层的权重矩阵读取到所述当前网络层。,
处理器401执行的所述将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果,包括:
将所述输入数据和所述当前网络层的权重矩阵进行相乘并累加,得到计算结果。
处理器401执行的所述基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据,包括:
所述下一网络层读取所述输入第二存储器中的运算结果作为输入数据。
可选的,所述第一存储器、第二存储器为现场可编程门阵列(FPGA)的片上存储器。
上述处理器401在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。
需要说明的是,由于上述处理器401执行计存储于上述存储器402内的计算机程序时可实现上述的反卷积神经网络的硬件加速方法的步骤,因此上述反卷积神经网络的硬件加速方法的所有实施例均适用于上述电子设备,且均能达到相同或相似的有益效果。
此外,本发明的具体实施例还提供了一种计算机可读存储介质402,计算机可读存储介质402存储有计算机程序,该计算机程序被处理器执行时实现上述的反卷积神经网络的硬件加速方法的步骤。
即,在本发明的具体实施例中,计算机可读存储介质的计算机程序被处理器执行时实现上述的反卷积神经网络的硬件加速方法的步骤,能够提高图像处理的速度。
示例性的,计算机可读存储介质的计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,由于计算机可读存储介质的计算机程序被处理器执行时实现上述的反卷积神经网络的硬件加速方法的步骤,因此上述反卷积神经网络的硬件加速方法的所有实施例均适用于该计算机可读存储介质,且均能达到相同或相似的有益效果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种反卷积神经网络的硬件加速方法,其特征在于,包括:
S1、获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果;
S2、将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重;
S3、基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据;
S4、将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括该层的权重;
S5、重复执行步骤S1、S2、S3、S4,直到所述反卷积神经网络的最后一层并输出结果。
2.如权利要求1所述方法,其特征在于,所述输入数据包括存储于片外存储器上的初始数据,所述获取当前网络层的输入数据,包括:
将所述存储于片外存储器上的初始数据读取到所述第一存储器中。
3.如权利要求2所述方法,其特征在于,所述将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重,包括:
获取当前网络层的权重,并输入当前网络层;
将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果;
将所述运算结果输入所述第二存储器。
4.如权利要求3所述方法,其特征在于,所述获取当前网络层的权重,并输入当前网络层,包括:
将存储于片外存储器上的当前网络层的权重矩阵读取到所述当前网络层。
5.如权利要求4所述方法,其特征在于,所述将所述输入数据与所述当前网络层的权重进行矩阵运算,得到运算结果,包括:
将所述输入数据和所述当前网络层的权重矩阵进行相乘并累加,得到计算结果。
6.如权利要求5所述方法,其特征在于,所述基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据,包括:
所述下一网络层读取所述输入第二存储器中的运算结果作为输入数据。
7.如权利要求6所述方法,其特征在于,所述第一存储器、第二存储器为现场可编程门阵列的片上存储器。
8.一种反卷积神经网络的硬件加速装置,其特征在于,包括:
第一获取模块,用于获取当前网络层的输入数据,所述输入数据为存储在第一存储器中的上一网络层的计算结果;
第一计算模块,用于将所述输入数据在当前网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第二存储器,所述当前网络层包括该层的权重;
第二获取模块,用于基于所述第二存储器中的当前计算结果,获取下一网络层的输入数据;
第二计算模块,用于将所述下一网络层的输入数据在所述下一网络层中进行反卷积计算,得到当前计算结果,将所述当前计算结果输入第一存储器,所述下一网络层包括该层的权重;
重复模块,用于重复调用上述各模块,直到所述反卷积神经网络的最后一层并输出结果。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的反卷积神经网络的硬件加速方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的反卷积神经网络的硬件加速方法中的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/120861 WO2020118608A1 (zh) | 2018-12-13 | 2018-12-13 | 一种反卷积神经网络的硬件加速方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111542839A CN111542839A (zh) | 2020-08-14 |
CN111542839B true CN111542839B (zh) | 2023-04-04 |
Family
ID=71075902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880083893.7A Active CN111542839B (zh) | 2018-12-13 | 2018-12-13 | 一种反卷积神经网络的硬件加速方法、装置和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111542839B (zh) |
WO (1) | WO2020118608A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860771B (zh) * | 2020-06-19 | 2022-11-25 | 苏州浪潮智能科技有限公司 | 一种应用于边缘计算的卷积神经网络计算方法 |
CN112308762A (zh) * | 2020-10-23 | 2021-02-02 | 北京三快在线科技有限公司 | 一种数据处理方法及装置 |
CN112613605A (zh) * | 2020-12-07 | 2021-04-06 | 深兰人工智能(深圳)有限公司 | 神经网络加速控制方法、装置、电子设备及存储介质 |
CN112712174B (zh) * | 2020-12-31 | 2022-04-08 | 湖南师范大学 | 全频域卷积神经网络的硬件加速器、加速方法和图像分类方法 |
CN112749799B (zh) * | 2020-12-31 | 2022-04-12 | 湖南师范大学 | 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法 |
CN113592066B (zh) * | 2021-07-08 | 2024-01-05 | 深圳市易成自动驾驶技术有限公司 | 硬件加速方法、装置、设备及存储介质 |
CN113673701A (zh) * | 2021-08-24 | 2021-11-19 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
CN116681604B (zh) * | 2023-04-24 | 2024-01-02 | 吉首大学 | 一种基于条件生成对抗网络的秦简文字修复方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062780A (zh) * | 2017-12-29 | 2018-05-22 | 百度在线网络技术(北京)有限公司 | 图像压缩方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10706348B2 (en) * | 2016-07-13 | 2020-07-07 | Google Llc | Superpixel methods for convolutional neural networks |
US20180060724A1 (en) * | 2016-08-25 | 2018-03-01 | Microsoft Technology Licensing, Llc | Network Morphism |
EP3330898A1 (en) * | 2016-12-01 | 2018-06-06 | Altera Corporation | Method and apparatus for performing different types of convolution operations with the same processing elements |
CN108876833A (zh) * | 2018-03-29 | 2018-11-23 | 北京旷视科技有限公司 | 图像处理方法、图像处理装置和计算机可读存储介质 |
CN108765282B (zh) * | 2018-04-28 | 2020-10-09 | 北京大学 | 基于fpga的实时超分辨方法及系统 |
CN108875915B (zh) * | 2018-06-12 | 2019-05-07 | 辽宁工程技术大学 | 一种面向嵌入式应用的深度对抗网络优化方法 |
-
2018
- 2018-12-13 CN CN201880083893.7A patent/CN111542839B/zh active Active
- 2018-12-13 WO PCT/CN2018/120861 patent/WO2020118608A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062780A (zh) * | 2017-12-29 | 2018-05-22 | 百度在线网络技术(北京)有限公司 | 图像压缩方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111542839A (zh) | 2020-08-14 |
WO2020118608A1 (zh) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111542839B (zh) | 一种反卷积神经网络的硬件加速方法、装置和电子设备 | |
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
JP7325158B2 (ja) | ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN109949219B (zh) | 一种超分辨率图像的重构方法、装置及设备 | |
JP7403638B2 (ja) | 高速なスパースニューラルネットワーク | |
JP2021509747A (ja) | ハードウェアベースのプーリングのシステムおよび方法 | |
US20190138899A1 (en) | Processing apparatus, processing method, and nonvolatile recording medium | |
CN109416755B (zh) | 人工智能并行处理方法、装置、可读存储介质、及终端 | |
US11397791B2 (en) | Method, circuit, and SOC for performing matrix multiplication operation | |
CN111242286A (zh) | 一种数据格式变换方法、装置及计算机可读存储介质 | |
CN112966729B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
US11874898B2 (en) | Streaming-based artificial intelligence convolution processing method and apparatus, readable storage medium and terminal | |
US11481994B2 (en) | Method and apparatus for extracting image data in parallel from multiple convolution windows, device, and computer-readable storage medium | |
CN109359542A (zh) | 基于神经网络的车辆损伤级别的确定方法及终端设备 | |
CN112613577A (zh) | 神经网络的训练方法、装置、计算机设备及存储介质 | |
CN110728351A (zh) | 数据处理方法、相关设备及计算机存储介质 | |
CN110677671A (zh) | 一种图像压缩方法、装置及终端设备 | |
US20210224632A1 (en) | Methods, devices, chips, electronic apparatuses, and storage media for processing data | |
CN114662689A (zh) | 一种神经网络的剪枝方法、装置、设备及介质 | |
CN109308194B (zh) | 用于存储数据的方法和装置 | |
CN109375952B (zh) | 用于存储数据的方法和装置 | |
Jiang et al. | Png: Micro-structured prune-and-grow networks for flexible image restoration | |
CN110929854A (zh) | 一种数据处理方法、装置及硬件加速器 | |
CN111986071B (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 |