CN106355244A - 卷积神经网络的构建方法及系统 - Google Patents

卷积神经网络的构建方法及系统 Download PDF

Info

Publication number
CN106355244A
CN106355244A CN201610778066.2A CN201610778066A CN106355244A CN 106355244 A CN106355244 A CN 106355244A CN 201610778066 A CN201610778066 A CN 201610778066A CN 106355244 A CN106355244 A CN 106355244A
Authority
CN
China
Prior art keywords
convolutional layer
unit
convolution
data
full articulamentum
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.)
Granted
Application number
CN201610778066.2A
Other languages
English (en)
Other versions
CN106355244B (zh
Inventor
谌璟
宁迪浩
孙庆新
关艳峰
梁波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen self Technology Co., Ltd.
Original Assignee
Neighbour Science And Technology Ltd Of Shenzhen's Promise
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Neighbour Science And Technology Ltd Of Shenzhen's Promise filed Critical Neighbour Science And Technology Ltd Of Shenzhen's Promise
Priority to CN201610778066.2A priority Critical patent/CN106355244B/zh
Publication of CN106355244A publication Critical patent/CN106355244A/zh
Application granted granted Critical
Publication of CN106355244B publication Critical patent/CN106355244B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Abstract

本发明公开了一种卷积神经网络的构建方法,包括:接收单元化指令,根据所述单元化指令将用于进行卷积操作的硬件资源配置成卷积单元,将用于进行激活操作的硬件资源配置成激活单元,将用于进行池化操作的硬件资源配置成池化单元;读取配置文件,所述配置文件包括卷积单元配置参数、激活单元配置参数及池化单元配置参数、卷积层的层数、全连接层的层数;根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。本发明还公开了一种卷积神经网络的构建系统。本发明的卷积神经网络的构建方法构建效率高。

Description

卷积神经网络的构建方法及系统
技术领域
本发明涉及机器学习(Machine Learning,ML)和人工智能(ArtificialIntelligence,AI)技术领域,尤其涉及一种卷积神经网络(Convolutional NeuralNetwork,CNN)的构建方法及系统。
背景技术
深度学习(Deep Learning,DL)是模拟人脑的思维方式和处理问题的方法。人脑的计算神经元数量是百亿量级,即使是一个“小型”的CNN所需要的计算也非常庞大,而且几乎所有的深度学习网络均运行在CPU(或CPU集群),或GPU(或GPU集群)硬件平台之上,所需要的硬件资源非常巨大,导致成本和功耗都非常大,运行速度缓慢,很多CNN在高性能的芯片平台上运行时也只能达到几帧/每秒的速度,无法进行实时处理。
卷积神经网络包括卷积层和全连接层,其计算过程是逐层计算,所需要的计算非常庞大,而且特定的卷积神经网络网络只能实现特定的功能,当构建一个新的卷积神经网络以支持新的功能时,不能直接对之前的卷积神经网络进行配置更改以构建生成新的卷积神经网络。
上述技术方案的弊端是,卷积神经网络的构建过程效率低。
发明内容
本发明的主要目的在于提供一种卷积神经网络的构建方法,旨在提高卷积神经网络的构建过程的效率,从而非常灵活地支持不同的功能或应用。
为实现上述目的,本发明提供的卷积神经网络的构建方法包括以下步骤:
接收单元化指令,根据所述单元化指令将用于进行卷积操作的硬件资源配置成卷积单元,将用于进行激活操作的硬件资源配置成激活单元,将用于进行池化操作的硬件资源配置成池化单元;
读取配置文件,所述配置文件包括卷积单元配置参数、激活单元配置参数及池化单元配置参数、卷积层的层数、全连接层的层数;
根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。
优选地,所述根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络之后还包括:
读取权值数据、偏置数据、激活函数、池化函数及输入图像;
根据所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像进行卷积神经网络的计算。
优选地,所述根据所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像进行所述卷积神经网络的计算包括:
卷积层计算和全连接层计算;
所述卷积层计算包括:按照预设的并行分组规则将待处理的卷积层输入Map和/或卷积核分组至并行的Tc个卷积层并行处理模块;
每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map;
所述全连接层计算包括:
按照预设的并行分组规则将待处理的全连接层输入数据和/或权值数据分组至并行的Tf个全连接层并行处理模块;
每个所述全连接层并行处理模块完成对其组内的全连接层输入数据的乘加计算,以及乘加计算结果的加偏置和激活计算,并存储计算获得的全连接层输出数据;
其中,Tc、Tf均为大于1的自然数。
优选地,所述每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map包括:
读取卷积核参数及卷积层输入Map的数据,对所述卷积层输入Map进行若干次卷积操作直至完成所述卷积层输入Map的卷积操作;
将所述卷积层输入Map的卷积操作结果与偏置数据求和,并将求和结果进行激活操作及池化操作,以得到卷积层输出Map;
其中,所述卷积核参数为用于对所述卷积层输入Map进行卷积操作得到卷积层输出Map的卷积核的参数,在第c个卷积层中,卷积层输出Map数量为Kc,Kc为大于1的自然数,每个所述卷积层并行处理模块用于计算Kc/Tc个卷积层输出Map。
优选地,所述每个所述全连接层并行处理模块完成对其组内的全连接层输入数据的乘加计算,以及乘加计算结果的加偏置和激活计算,并存储计算获得的全连接层输出数据包括:
计算全连接层输入数据及对应的权值数据的乘积和累加计算;
获取每个所述全连接层输入数据与其对应的所述权值数据的乘积的累加结果,并将所述累加结果与偏置数据求和,对求和结果进行激活操作,以得到全连接层输出数据;
其中,在第f个全连接层中,全连接层输出数据的数量为Kf,Kf为大于1的自然数,每个所述全连接层并行处理模块用于计算Kf/Tf个全连接层输出数据。
此外,为实现上述目的,本发明还提供一种卷积神经网络的构建系统,所述卷积神经网络的构建系统包括:
单元化模块,用于接收单元化指令,根据所述单元化指令将用于进行卷积操作的硬件资源配置成卷积单元,将用于进行激活操作的硬件资源配置成激活单元,将用于进行池化操作的硬件资源配置成池化单元;
接口模块,用于读取配置文件,所述配置文件包括卷积单元配置参数、激活单元配置参数及池化单元配置参数、卷积层的层数、全连接层的层数;
网络解释器模块,用于根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。
优选地,所述卷积神经网络的构建系统还包括:
计算模块,用于读取权值数据、偏置数据、激活函数、池化函数及输入图像;并根据所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像进行所述卷积神经网络的计算。
优选地,所计算模块包括用于卷积层计算的卷积层单元和用于全连接层计算的全连接层单元;
所述卷积层单元具体用于,按照预设的并行分组规则将待处理的卷积层的输入Map和/或卷积核分组至并行的Tc个卷积层并行处理模块;
每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map;
所述全连接层单元具体用于,按照预设的并行分组规则将待处理的全连接层输入数据和/或权值数据分组至并行的Tf个全连接层并行处理模块;
每个所述全连接层并行处理模块完成对其组内的全连接层输入数据的乘加计算,以及乘加计算结果的加偏置和激活计算,并存储计算获得的全连接层输出数据;
其中,Tc、Tf均为大于1的自然数。
优选地,所述卷积层单元包括:
第一处理子单元,用于读取卷积核参数及卷积层输入Map的数据,对所述卷积层输入Map进行若干次卷积操作直至完成所述卷积层输入Map的卷积操作;
第二处理子单元,用于将所述卷积层输入Map的卷积操作结果与偏置数据求和,并将求和结果进行激活操作及池化操作,以得到卷积层输出Map;
其中,所述卷积核参数为用于对所述卷积层输入Map进行卷积操作得到卷积层输出Map的卷积核的参数,在第c个卷积层中,卷积层输出Map数量为Kc,Kc为大于1的自然数,每个所述卷积层并行处理模块用于计算Kc/Tc个卷积层输出Map。
优选地,所述全连接层单元包括:
第三处理子单元,用于计算全连接层输入数据及对应的权值数据的乘积;
第四处理子单元,用于获取每个所述全连接层输入数据与其对应的所述权值数据的乘积的累加结果,并将所述累加结果与偏置数据求和,对求和结果进行激活操作,以得到全连接层输出数据;
其中,在第f个全连接层中,全连接层输出数据的数量为Kf,Kf为大于1的自然数,每个所述全连接层并行处理模块用于计算Kf/Tf个全连接层输出数据。
在本发明的技术方案中,先根据单元化指令将硬件资源配置成所述卷积单元、所述激活单元及所述池化单元,在每次需要构建或构建新的所述卷积神经网络时,只需要读取所述配置文件,即可根据所述配置文件配置所述卷积单元、所述激活单元及所述池化单元、卷积层的层数和全连接层的层数等参数,因此,卷积神经网络的构建方法构建效率高,从而非常灵活地支持不同的功能或应用。
附图说明
图1为本发明卷积神经网络的构建方法一实施例的系统架构示意图;
图2为本发明卷积神经网络的构建方法第一实施例的流程示意图;
图3为本发明卷积神经网络的构建方法一实施例中基于主处理器FPGA加速的卷积神经网络实现框架图;
图4为本发明卷积神经网络的构建方法一实施例中卷积层单元并行处理流程示意图;
图5为本发明卷积神经网络的构建方法一实施例中卷积层并行处理模块内部的处理流程示意图;
图6为本发明卷积神经网络的构建方法一实施例中全连接层单元并行处理流程示意图;
图7为本发明卷积神经网络的构建方法一实施例中全连接层并行处理模块内部的处理流程示意图;
图8为本发明卷积神经网络的构建系统第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种卷积神经网络的构建方法。
请参照图1,为了实现卷积神经网络的构建方法,在本实施例中提供由三个核心器件:ARM协处理器、DDR存储器及FPGA主处理器构建的卷积神经网络的构建系统,其他辅助器件不一一列举。
所述ARM协处理器用于控制卷积层单元和全连接层单元逐层进行计算以及传输配置文件和权值数据(文件);所述DDR存储器用于存储计算数据及配置文件、权值数据及偏置数据等。
所述主处理器FPGA包括:
1、单元化模块,用于接收单元化指令,以将用于进行卷积操作的硬件资源配置成卷积单元,用于进行激活操作的硬件资源配置成激活单元,用于进行池化操作的硬件资源配置成池化单元。
2、接口模块,用于读取配置文件,所述配置文件包括卷积单元配置参数、激活单元配置参数、池化单元配置参数、卷积层的层数及全连接层的层数,具体的,所述接口模块包括处理器接口模块和存储器接口模块。
处理器接口模块,用于实现对FPGA主处理器内部模块的寻址和数据传输,包括对卷积神经网络的输入图像数据的传输,以及对卷积神经网络的配置文件的传输;对配置文件的传输包括:每层的输入Map尺寸、每层的输入Map的数目、每层的输出Map的尺寸、每层的输出Map的数目、权值数据(包括各层的卷积核和各层的偏置数据)、权值数据在DDR存储器中的存放地址、各层的输入/输出Map在DDR存储器中的存放地址。
存储器接口模块,卷积层单元和全连接层单元通过存储器接口模块从存储器中读取卷积神经网络的各层卷积核、各层偏置数据、卷积层各层的输入Map和全连接层各层的输入数据,并将输出Map或输出数据存入存储器。
3、网络解释器模块,用于根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。
具体的,所述网络解释器模块接收协处理器传输的卷积神经网络的配置参数,并控制卷积层单元和全连接层单元逐层进行计算。例如,对于第c个卷积层,控制卷积层单元从存储器对应的地址读取第c层计算需要的权值数据(包括卷积核和偏置数据)、激活函数、池化函数和输入Map,然后卷积层单元开始进行卷积、激活和池化操作,最后控制卷积层单元将输出Map存入存储器对应地址。
4、计算模块,用于读取权值数据、偏置数据、激活函数、池化函数及输入图像;并根据所述权值数据、所述偏置数据及所述输入图像进行所述卷积神经网络的计算。
本专利中提到的权值数据包括卷积层的权值数据和全连接层的权值数据,偏置数据包括卷积层的偏置数据及全连接层的偏置数据,激活函数包括卷积层的激活函数和全连接层的激活函数。
具体的,所述计算模块包括卷积层单元和全连接层单元。
其中,所述卷积层单元用于对所述卷积单元、所述激活单元及所述池化单元进行计算,即计算卷积层的输出,包括卷积、偏置、激活函数和池化功能;所述全连接层单元用于计算全连接层,包括矩阵乘法(用于实现全连接层的输入数据与权值数据之间的相乘操作)、偏置和激活函数。
应当注意的是,本专利所述的配置文件用于构建神经网络结构,属于可配参数。所述配置文件包含卷积层的配置数据和全连接层的配置数据,其中,所述卷积层的配置数据包括但不限于卷积核参数、卷积核尺寸、池化函数、池化尺寸、卷积层的激活函数、卷积层的偏置数据、以及卷积层的层数、卷积层的输入Map数量;全连接层的配置数据包括但不限于全连接层的层数以及全连接层的激活函数。
本专利还包括权值文件,所述权值文件为卷积神经网络的计算提供数据,所述权值文件包括全连接层的权值数据和全连接层的偏置数据。当然,所述卷积层的权值数据(例如,卷积核参数也可以看做卷积层的权值数据)和卷积层的偏置数据也可以存储在权值文件中,此时,卷积层的权值数据和卷积层的偏置数据就不作为可配参数存储在所述配置文件中。
参照图2,提出了本发明卷积神经网络的构建方法第一实施例,该实施例中,卷积神经网络的构建方法包括以下步骤:
步骤S100,接收单元化指令,根据所述单元化指令将用于进行卷积操作的硬件资源配置成卷积单元,将用于进行激活操作的硬件资源配置成激活单元,将用于进行池化操作的硬件资源配置成池化单元;
步骤S200,所述配置文件包括卷积单元配置参数、激活单元配置参数及池化单元配置参数、卷积层的层数、全连接层的层数;
步骤S300,根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。
接收到所述单元化指令后,主处理器的硬件资源被配置成C个所述卷积单元、P个所述激活单元及A个所述池化单元,C个所述卷积单元、P个所述激活单元及A个所述池化单元共同形成卷积神经网络的结构参数。不同的卷积单元配置参数、激活单元配置参数及池化单元配置参数构建形成功能不同的卷积神经网络。
如果先将硬件资源按照功能分区形成所述卷积单元、所述激活单元及所述池化单元,那么,在构建卷积神经网络时,只需要相应更改每个单元的配置参数和/或单元的数量即可构建形成新的卷积神经网络结构,从而适配新的卷积神经网络功能,而不需要对整个卷积神经网络进行重建,因此,卷积神经网络的构建效率高,从而非常灵活地支持不同的功能或应用。
在本实施例中,所述配置文件写入存储器中,读取所述配置文件时,协处理器通过处理器接口模块将所述配置文件传送至所述主处理器内的网络解释器,所述网络解释器根据所述配置文件将所述主处理器的硬件资源配置为一个卷积神经网络。
所述卷积单元配置参数包括卷积层的层数、卷积核的参数、卷积核尺寸、Map的尺寸、输入Map数量、输出Map数量;所述激活单元配置参数包括激活函数;所述池化单元配置参数包括池化尺寸和池化函数,当池化函数能够体现或者对应池化尺寸时,可以只配置池化函数。以上各个单元的配置参数不限于此,此处仅对各单元的配置参数进行有限的列举,凡属用于构建卷积神经网络的配置参数均应列入所述配置文件。
因此,需要构建新的卷积神经网络时,只需将新的配置参数在所述配置文件中更新,并加载更新后的所述配置文件,即可实现卷积神经网络的构建。
在本发明的技术方案中,先根据单元化指令将硬件资源配置成所述卷积单元、所述激活单元及所述池化单元,在每次需要构建或构建新的所述卷积神经网络时,只需要读取所述配置文件,即可根据所述配置文件配置所述卷积单元、所述激活单元及所述池化单元、卷积层的层数和全连接层的层数等参数,因此,卷积神经网络的构建方法构建效率高,从而非常灵活地支持不同的功能或应用。
进一步地,参照图3,基于本发明卷积神经网络的构建方法第一实施例,在本发明第二实施例中,上述步骤S300之后还包括:
步骤S400,读取权值数据、偏置数据、激活函数、池化函数及输入图像;
步骤S500,根据所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像进行卷积神经网络的计算。
所述权值文件包括所述卷积层的权值数据及所述全连接层的权值数据,卷积层的权值数据是指卷积核的参数;
所述偏置数据和所述激活函数包括卷积层的偏置数据和激活函数,以及全连接层的偏置数据和激活函数;
所述池化函数是指卷积层的池化函数。
具体的,在完成卷积神经网络的构建之后,即可读取所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像,以进行所述卷积神经网络的计算,卷积层的计算主要包括卷积运算、偏置运算、激活运算和池化运算,卷积运算根据卷积核的参数完成,全连接层的计算主要包括乘加运算、偏置运算和激活运算。
协处理器通过处理器接口模块(异步总线或同步总线)将所述权值数据、所述偏置数据、所述激活函数及所述池化函数写入主处理器,主处理器通过存储器接口模块将所述权值数据、所述偏置数据、所述激活函数、所述池化函数写入存储器,协处理器通过处理器接口模块(异步总线或同步总线)将输入图像传入主处理器。
主处理器调取存储器中存储的卷积神经网络各层的权值数据等参数和数据,将卷积神经网络的输出数据通过处理器接口模块(异步总线或同步总线)返回给协处理器。
当然,卷积神经网络的各层计算结果也可以根据应用不同分别返回及存储。
需要说明,协处理器与主处理器之间的处理器接口模块不限于通过异步总线或同步总线,也可以根据需要采用其他接口,例如网口等。
进一步地,参照图4和图6,基于本发明卷积神经网络的构建方法第二实施例,在本发明第三实施例中,所述根据所述权值数据、所述偏置数据、激活函数、池化函数及所述输入图像进行所述卷积神经网络的计算包括:步骤S600卷积层计算和步骤S700全连接层计算;
步骤S600,所述卷积层计算包括:
步骤S610,按照预设的并行分组规则将待处理的卷积层输入Map和/或卷积核分组至并行的Tc个卷积层并行处理模块;
步骤S620,每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map;
步骤S700,所述全连接层计算包括:
步骤S710,按照预设的并行分组规则将待处理的全连接层输入数据和/或权值数据分组至并行的Tf个全连接层并行处理模块;
步骤S720,每个所述全连接层并行处理模块完成对其组内的全连接层输入数据的乘加计算,以及乘加计算结果的加偏置和激活计算,并存储计算获得的全连接层输出数据;
其中,Tc、Tf均为大于1的自然数。
具体的,对所述卷积层和所述全连接层按照并形分组规则进行并行分组,有利于加速每一层所述卷积层的计算速率,以提高卷积神经网络的计算速率。分组规则是指如何将计算按照某种规则来并行处理,并行可以按照输入Map来分,或按照卷积核的数量来分,也可以按照输出Map的来分。其中,按照输出Map的数量进行并行分组是最节省计算资源的技术方案,可以节省主处理器与存储器之间读取输入Map的次数,也节省了资源和功耗,提升效率。
在本实施例中,卷积核数量与输出Map数量相同,计算过程是采用一个卷积核对一个输入Map进行卷积计算以得到一个输出Map。
例如,当某一所述卷积层中包括20个所述输出Map时,可以将20个所述输出Map分成并行计算的10个所述卷积层并行处理模块,每一个所述卷积层并行处理模块包括2个所述输出Map。
卷积层的预设的分组规则可以是均匀分组规则或非均匀分组规则,并行计算的每一个所述卷积层并行处理模块包含的所述输入Map数量可以相同,也可以不同。其中,非均匀分组是指,需要并行处理的数据操作(例如,计算输出Map)的数目并不能被并行处理单元的数目整除。若,仍然是20个所述输出Map时,所述卷积层并行处理模块的数目为6,那么可以分别处理4、4、3、3、3、3个输出Map。
在本实施例中,卷积层输入Map数据缓存在双端口RAM1中,卷积层输入Map同时进入Tc个所述卷积层并行处理模块,一个卷积层并行处理模块计算一个卷积核与该输入Map之间的卷积运算,不同卷积层并行处理模块采用的卷积核的参数不同,进而得到Kc个不同的卷积层输出Map数据,并将其通过存储器接口模块存入存储器。将所有的卷积层输出Map分为Tc组,每组包括Kc/Tc个卷积层输出Map,每一个卷积层并行处理模块会串行输出这Kc/Tc个卷积层输出Map。
所述全连接层计算中,输入数据缓存在双端口RAM1中,同时进入Tf个全连接层并行处理模块,得到Kf组输出数据,并将其通过存储器接口模块存入存储器。将所有的输出分为Tf组,每组包括Kf/Tf组输出数据,每一个全连接层并行处理模块会串行输出这Kf/Tf组输出数据。
对每个所述全连接层的分组请参见对每个所述卷积层的分组。
卷积层的预设的分组规则与全连接层的预设的分组规则可以不相同。
进一步地,参照图5,基于本发明卷积神经网络的构建方法第三实施例,在本发明第四实施例中,所述每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map包括:
步骤S621,读取卷积核参数及卷积层输入Map的数据,对所述卷积层输入Map进行若干次卷积操作直至完成所述卷积层输入Map的卷积操作;
步骤S622,将所述卷积层输入Map的卷积操作结果与偏置数据求和,并将求和结果进行激活操作及池化操作,以得到卷积层输出Map;
其中,所述卷积核参数为用于对所述卷积层输入Map进行卷积操作得到卷积层输出Map的卷积核的参数,在第c个卷积层中,卷积层输出Map数量为Kc,Kc为大于1的自然数,每个所述卷积层并行处理模块用于计算Kc/Tc个卷积层输出Map。
具体的,步骤a.通过存储器接口模块从存储器中读取第f组卷积层输入Map对应的偏置数据,将其写入双端口RAM4中;
步骤b.将双端口RAM3清零;
步骤c.通过存储器接口模块从存储器中读取从所有卷积层输入Map到当前卷积层输入Map的卷积核参数,在本实施例中,卷积核的尺寸为3×3,因此对应9个双端口RAM(RAM2-1~RAM2-9);
步骤d.读取第c个输入Map的数据,并从双端口RAM2-1~RAM2-9中读取卷积核参数,通过卷积器完成2D卷积操作。
重复步骤a至步骤d,卷积结果和双端口RAM3的输出相加后存入双端口RAM3,此处加法器和双端口RAM3一起完成累加器的功能;遍历第c个卷积层输入Map之后,将双端口RAM3的输出和从双端口RAM4中读取的对应卷积层输入Map的偏置数据相加,利用查找表计算激活函数的输出值即可得到一个卷积层输出Map的中间过程数据;
将输出Map的中间过程数据存储到双端口RAM5中,当双端口RAM5中的数据存储了2行(在本实施例中,池化尺寸为2)之后,对已经存储的数据进行池化操作(例如,最大值池化);
将最大值池化的结果在双端口RAM6中缓存,得到一个最终的输出Map的数据,然后通过存储器接口模块存储到存储器中。
进一步地,参照图7,基于本发明卷积神经网络的构建方法第三实施例或第四实施例,在本发明第五实施例中,所述步骤S720包括:
步骤S721,计算全连接层输入数据及对应的权值数据的乘积和累加计算;
步骤S722,获取每个所述全连接层输入数据与其对应的所述权值数据的乘积的累加结果,并将所述累加结果与偏置数据求和,对求和结果进行激活操作,以得到全连接层输出数据;
其中,在第f个全连接层中,全连接层输出数据的数量为Kf,Kf为大于1的自然数,每个所述全连接层并行处理模块用于计算Kf/Tf个全连接层输出数据。
具体的,步骤e.通过存储器接口模块从存储器中读取所述第f个全连接层输入数据对应的偏置数据,将其写入双端口RAM3中;
步骤f.通过存储器接口模块从存储器中读取所述第f个输入全连接层Map对应的权值缓存到双端口RAM2中;
步骤g.输入数据和双端口RAM2的数据相乘后送入由加法器和延迟单元组成的累加器。
按照所述计算第f个输入数据的步骤,完成所述全连接层并行处理模块内的所有的所述全连接层输入数据的计算;
其中,每个所述全连接层并行处理模块内包括Kf/Tf个所述输入数据。
将累加器的输出和对应的偏置数据相加之后利用查找表计算激活函数的输出;
重复Kf/Tf次,得到Kf/Tf个全连接层输出数据,这些全连接层输出数据存储在双端口RAM4中;
将双端口RAM4中的数据通过存储器接口模块存储到存储器中。
此外,为实现上述目的,本发明还提供一种卷积神经网络的构建系统。
请参照图1,为了实现卷积神经网络的构建,在本实施例中提供由三个核心器件:ARM协处理器、DDR存储器及FPGA主处理器构建的卷积神经网络的构建系统,其他辅助器件不一一列举。
所述ARM协处理器用于控制卷积层单元和全连接层单元逐层进行计算以及传输配置文件和权值数据(文件);所述DDR存储器用于存储计算数据及配置文件、权值数据及偏置数据等。
所述主处理器FPGA包括:
1、单元化模块,用于接收单元化指令,以将用于进行卷积操作的硬件资源配置成卷积单元,用于进行激活操作的硬件资源配置成激活单元,用于进行池化操作的硬件资源配置成池化单元。
2、接口模块,用于读取配置文件,所述配置文件包括卷积单元配置参数、激活单元配置参数、池化单元配置参数、卷积层的层数及全连接层的层数,具体的,所述接口模块包括处理器接口模块和存储器接口模块。
处理器接口模块,用于实现对FPGA主处理器内部模块的寻址和数据传输,包括对卷积神经网络的输入图像数据的传输,以及对卷积神经网络的配置文件的传输;对配置文件的传输包括:每层的输入Map尺寸、每层的输入Map的数目、每层的输出Map的尺寸、每层的输出Map的数目、权值数据(包括各层的卷积核和各层的偏置数据)、权值数据在DDR存储器中的存放地址、各层的输入/输出Map在DDR存储器中的存放地址。
存储器接口模块,卷积层单元和全连接层单元通过存储器接口模块从存储器中读取卷积神经网络的各层卷积核、各层偏置数据、卷积层各层的输入Map和全连接层各层的输入数据,并将输出Map或输出数据存入存储器。
3、网络解释器模块,用于根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。
具体的,所述网络解释器模块接收协处理器传输的卷积神经网络的配置参数,并控制卷积层单元和全连接层单元逐层进行计算。例如,对于第c个卷积层,控制卷积层单元从存储器对应的地址读取第c层计算需要的权值数据(包括卷积核和偏置数据)、激活函数、池化函数和输入Map,然后卷积层单元开始进行卷积、激活和池化操作,最后控制卷积层单元将输出Map存入存储器对应地址。
4、计算模块,用于读取权值数据、偏置数据、激活函数、池化函数及输入图像;并根据所述权值数据、所述偏置数据及所述输入图像进行所述卷积神经网络的计算。
本专利中提到的权值数据包括卷积层的权值数据和全连接层的权值数据,偏置数据包括卷积层的偏置数据及全连接层的偏置数据,激活函数包括卷积层的激活函数和全连接层的激活函数。
具体的,所述计算模块包括卷积层单元和全连接层单元。
其中,所述卷积层单元用于对所述卷积单元、所述激活单元及所述池化单元进行计算,即计算卷积层的输出,包括卷积、偏置、激活函数和池化功能;所述全连接层单元用于计算全连接层,包括矩阵乘法(用于实现全连接层的输入数据与权值数据之间的相乘操作)、偏置和激活函数。
应当注意的是,本专利所述的配置文件用于构建神经网络结构,属于可配参数。所述配置文件包含卷积层的配置数据和全连接层的配置数据,其中,所述卷积层的配置数据包括但不限于卷积核参数、卷积核尺寸、池化函数、池化尺寸、卷积层的激活函数、卷积层的偏置数据、以及卷积层的层数、卷积层的输入Map数量;全连接层的配置数据包括但不限于全连接层的层数以及全连接层的激活函数。
本专利还包括权值文件,所述权值文件为卷积神经网络的计算提供数据,所述权值文件包括全连接层的权值数据和全连接层的偏置数据。当然,所述卷积层的权值数据(例如,卷积核参数也可以看做卷积层的权值数据)和卷积层的偏置数据也可以存储在权值文件中,此时,卷积层的权值数据和卷积层的偏置数据就不作为可配参数存储在所述配置文件中。
参照图8,提出了本发明卷积神经网络的构建系统第一实施例,该实施例中,本发明提供的卷积神经网络的构建系统包括:
单元化模块1,用于接收单元化指令,根据所述单元化指令将用于进行卷积操作的硬件资源配置成卷积单元,将用于进行激活操作的硬件资源配置成激活单元,将用于进行池化操作的硬件资源配置成池化单元;
接口模块2,用于读取配置文件,所述配置文件包括卷积单元配置参数、激活单元配置参数及池化单元配置参数、卷积层的层数、全连接层的层数;
网络解释器模块3,用于根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。
接收到所述单元化指令后,主处理器的硬件资源被配置成C个所述卷积单元、P个所述激活单元及A个所述池化单元,C个所述卷积单元、P个所述激活单元及A个所述池化单元共同形成卷积神经网络的结构参数。不同的卷积单元配置参数、激活单元配置参数及池化单元配置参数构建形成功能不同的卷积神经网络。
如果先将硬件资源按照功能分区形成所述卷积单元、所述激活单元及所述池化单元,那么,在构建卷积神经网络时,只需要相应更改每个单元的配置参数和/或单元的数量即可构建形成新的卷积神经网络结构,从而适配新的卷积神经网络功能,而不需要对整个卷积神经网络进行重建,因此,卷积神经网络的构建效率高,从而非常灵活地支持不同的功能或应用。
在本实施例中,所述配置文件写入存储器中,读取所述配置文件时,协处理器通过处理器接口模块将所述配置文件传送至所述主处理器内的网络解释器,所述网络解释器根据所述配置文件将所述主处理器的硬件资源配置为一个卷积神经网络。
所述卷积单元配置参数包括卷积层的层数、卷积核的参数、卷积核尺寸、Map的尺寸、输入Map数量、输出Map数量;所述激活单元配置参数包括激活函数;所述池化单元配置参数包括池化尺寸和池化函数,当池化函数能够体现或者对应池化尺寸时,可以只配置池化函数。以上各个单元的配置参数不限于此,此处仅对各单元的配置参数进行有限的列举,凡属用于构建卷积神经网络的配置参数均应列入所述配置文件。
因此,需要构建新的卷积神经网络时,只需将新的配置参数在所述配置文件中更新,并加载更新后的所述配置文件,即可实现卷积神经网络的构建。
在本发明的技术方案中,先根据单元化指令将硬件资源配置成所述卷积单元、所述激活单元及所述池化单元,在每次需要构建或构建新的所述卷积神经网络时,只需要读取所述配置文件,即可根据所述配置文件配置所述卷积单元、所述激活单元及所述池化单元、卷积层的层数和全连接层的层数等参数,因此,卷积神经网络的构建方法构建效率高,从而非常灵活地支持不同的功能或应用。
进一步地,基于本发明卷积神经网络的构建系统第一实施例,在本发明第二实施例中,所述卷积神经网络的构建系统还包括:
计算模块,用于读取权值数据、偏置数据、激活函数、池化函数及输入图像;并根据所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像进行所述卷积神经网络的计算。
所述权值文件包括所述卷积层的权值数据及所述全连接层的权值数据,卷积层的权值数据是指卷积核的参数;
所述偏置数据和所述激活函数包括卷积层的偏置数据和激活函数,以及全连接层的偏置数据和激活函数;
所述池化函数是指卷积层的池化函数。
具体的,在完成卷积神经网络的构建之后,即可读取所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像,以进行所述卷积神经网络的计算,卷积层的计算主要包括卷积运算、偏置运算、激活运算和池化运算,卷积运算根据卷积核的参数完成,全连接层的计算主要包括乘加运算、偏置运算和激活运算。
协处理器通过处理器接口模块(异步总线或同步总线)将所述权值数据、所述偏置数据、所述激活函数及所述池化函数写入主处理器,主处理器通过存储器接口模块将所述权值数据、所述偏置数据、所述激活函数、所述池化函数写入存储器,协处理器通过处理器接口模块(异步总线或同步总线)将输入图像传入主处理器。
主处理器调取存储器中存储的卷积神经网络各层的权值数据等参数和数据,将卷积神经网络的输出数据通过处理器接口模块(异步总线或同步总线)返回给协处理器。
当然,卷积神经网络的各层计算结果也可以根据应用不同分别返回及存储。
需要说明,协处理器与主处理器之间的处理器接口模块不限于通过异步总线或同步总线,也可以根据需要采用其他接口,例如网口等。
进一步地,基于本发明卷积神经网络的构建系统第二实施例,在本发明第三实施例中,所述计算模块包括用于卷积层计算的卷积层单元和用于全连接层计算的全连接层单元;
所述卷积层单元具体用于,按照预设的并行分组规则将待处理的卷积层的输入Map和/或卷积核分组至并行的Tc个卷积层并行处理模块;每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map;
所述全连接层单元具体用于,按照预设的并行分组规则将待处理的全连接层输入数据和/或权值数据分组至并行的Tf个全连接层并行处理模块;
每个所述全连接层并行处理模块完成对其组内的全连接层输入数据的乘加计算,以及乘加计算结果的加偏置和激活计算,并存储计算获得的全连接层输出数据;
其中,Tc、Tf均为大于1的自然数。
具体的,对所述卷积层和所述全连接层按照并形分组规则进行并行分组,有利于加速每一层所述卷积层的计算速率,以提高卷积神经网络的计算速率。分组规则是指如何将计算按照某种规则来并行处理,并行可以按照输入Map来分,或按照卷积核的数量来分,也可以按照输出Map的来分。其中,按照输出Map的数量进行并行分组是最节省计算资源的技术方案,可以节省主处理器与存储器之间读取输入Map的次数,也节省了资源和功耗,提升效率。
在本实施例中,卷积核数量与输出Map数量相同,计算过程是采用一个卷积核对一个输入Map进行卷积计算以得到一个输出Map。
例如,当某一所述卷积层中包括20个所述输出Map时,可以将20个所述输出Map分成并行计算的10个所述卷积层并行处理模块,每一个所述卷积层并行处理模块包括2个所述输出Map。
卷积层的预设的分组规则可以是均匀分组规则或非均匀分组规则,并行计算的每一个所述卷积层并行处理模块包含的所述输入Map数量可以相同,也可以不同。其中,非均匀分组是指,需要并行处理的数据操作(例如,计算输出Map)的数目并不能被并行处理单元的数目整除。若,仍然是20个所述输出Map时,所述卷积层并行处理模块的数目为6,那么可以分别处理4、4、3、3、3、3个输出Map。
在本实施例中,卷积层输入Map数据缓存在双端口RAM1中,卷积层输入Map同时进入Tc个所述卷积层并行处理模块,一个卷积层并行处理模块计算一个卷积核与该输入Map之间的卷积运算,不同卷积层并行处理模块采用的卷积核的参数不同,进而得到Kc个不同的卷积层输出Map数据,并将其通过存储器接口模块存入存储器。将所有的卷积层输出Map分为Tc组,每组包括Kc/Tc个卷积层输出Map,每一个卷积层并行处理模块会串行输出这Kc/Tc个卷积层输出Map。
所述全连接层计算中,输入数据缓存在双端口RAM1中,同时进入Tf个全连接层并行处理模块,得到Kf组输出数据,并将其通过存储器接口模块存入存储器。将所有的输出分为Tf组,每组包括Kf/Tf组输出数据,每一个全连接层并行处理模块会串行输出这Kf/Tf组输出数据。
对每个所述全连接层的分组请参见对每个所述卷积层的分组。
卷积层的预设的分组规则与全连接层的预设的分组规则可以不相同。
进一步地,基于本发明卷积神经网络的构建系统第三实施例,在本发明第四实施例中,所述卷积层单元包括:
第一处理子单元,用于读取卷积核参数及卷积层输入Map的数据,对所述卷积层输入Map进行若干次卷积操作直至完成所述卷积层输入Map的卷积操作;
第二处理子单元,用于将所述卷积层输入Map的卷积操作结果与偏置数据求和,并将求和结果进行激活操作及池化操作,以得到卷积层输出Map;
其中,所述卷积核参数为用于对所述卷积层输入Map进行卷积操作得到卷积层输出Map的卷积核的参数,在第c个卷积层中,卷积层输出Map数量为Kc,Kc为大于1的自然数,每个所述卷积层并行处理模块用于计算Kc/Tc个卷积层输出Map。
具体的,步骤a.通过存储器接口模块从存储器中读取第f组卷积层输入Map对应的偏置数据,将其写入双端口RAM4中;
步骤b.将双端口RAM3清零;
步骤c.通过存储器接口模块从存储器中读取从所有卷积层输入Map到当前卷积层输入Map的卷积核参数,在本实施例中,卷积核的尺寸为3×3,因此对应9个双端口RAM(RAM2-1~RAM2-9);
步骤d.读取第c个输入Map的数据,并从双端口RAM2-1~RAM2-9中读取卷积核参数,通过卷积器完成2D卷积操作。
重复步骤a至步骤d,卷积结果和双端口RAM3的输出相加后存入双端口RAM3,此处加法器和双端口RAM3一起完成累加器的功能;遍历第c个卷积层输入Map之后,将双端口RAM3的输出和从双端口RAM4中读取的对应卷积层输入Map的偏置数据相加,利用查找表计算激活函数的输出值即可得到一个卷积层输出Map的中间过程数据;
将输出Map的中间过程数据存储到双端口RAM5中,当双端口RAM5中的数据存储了2行(在本实施例中,池化尺寸为2)之后,对已经存储的数据进行池化操作(例如,最大值池化);
将最大值池化的结果在双端口RAM6中缓存,得到一个最终的输出Map的数据,然后通过存储器接口模块存储到存储器中。
进一步地,基于本发明卷积神经网络的构建系统第三实施例或第四实施例,在本发明第五实施例中,所述全连接层单元包括:
第三处理子单元,用于计算全连接层输入数据及对应的权值数据的乘积;
第四处理子单元,用于获取每个所述全连接层输入数据与其对应的所述权值数据的乘积的累加结果,并将所述累加结果与偏置数据求和,对求和结果进行激活操作,以得到全连接层输出数据;
其中,在第f个全连接层中,全连接层输出数据的数量为Kf,Kf为大于1的自然数,每个所述全连接层并行处理模块用于计算Kf/Tf个全连接层输出数据。
具体的,步骤e.通过存储器接口模块从存储器中读取所述第f个全连接层输入数据对应的偏置数据,将其写入双端口RAM3中;
步骤f.通过存储器接口模块从存储器中读取所述第f个输入全连接层Map对应的权值缓存到双端口RAM2中;
步骤g.输入数据和双端口RAM2的数据相乘后送入由加法器和延迟单元组成的累加器。
按照所述计算第f个输入数据的步骤,完成所述全连接层并行处理模块内的所有的所述全连接层输入数据的计算;
其中,每个所述全连接层并行处理模块内包括Kf/Tf个所述输入数据。
将累加器的输出和对应的偏置数据相加之后利用查找表计算激活函数的输出;
重复Kf/Tf次,得到Kf/Tf个全连接层输出数据,这些全连接层输出数据存储在双端口RAM4中;
将双端口RAM4中的数据通过存储器接口模块存储到存储器中。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种卷积神经网络的构建方法,其特征在于,所述卷积神经网络的构建方法包括以下步骤:
接收单元化指令,根据所述单元化指令将用于进行卷积操作的硬件资源配置成卷积单元,将用于进行激活操作的硬件资源配置成激活单元,将用于进行池化操作的硬件资源配置成池化单元;
读取配置文件,所述配置文件包括卷积单元配置参数、激活单元配置参数及池化单元配置参数、卷积层的层数、全连接层的层数;
根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。
2.如权利要求1所述的卷积神经网络的构建方法,其特征在于,所述根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络之后还包括:
读取权值数据、偏置数据、激活函数、池化函数及输入图像;
根据所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像进行卷积神经网络的计算。
3.如权利要求2所述的卷积神经网络的构建方法,其特征在于,所述根据所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像进行所述卷积神经网络的计算包括:
卷积层计算和全连接层计算;
所述卷积层计算包括:按照预设的并行分组规则将待处理的卷积层输入Map和/或卷积核分组至并行的Tc个卷积层并行处理模块;
每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map;
所述全连接层计算包括:
按照预设的并行分组规则将待处理的全连接层输入数据和/或权值数据分组至并行的Tf个全连接层并行处理模块;
每个所述全连接层并行处理模块完成对其组内的全连接层输入数据的乘加计算,以及乘加计算结果的加偏置和激活计算,并存储计算获得的全连接层输出数据;
其中,Tc、Tf均为大于1的自然数。
4.如权利要求3所述的卷积神经网络的构建方法,其特征在于,所述每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map包括:
读取卷积核参数及卷积层输入Map的数据,对所述卷积层输入Map进行若干次卷积操作直至完成所述卷积层输入Map的卷积操作;
将所述卷积层输入Map的卷积操作结果与偏置数据求和,并将求和结果进行激活操作及池化操作,以得到卷积层输出Map;
其中,所述卷积核参数为用于对所述卷积层输入Map进行卷积操作得到卷积层输出Map的卷积核的参数,在第c个卷积层中,卷积层输出Map数量为Kc,Kc为大于1的自然数,每个所述卷积层并行处理模块用于计算Kc/Tc个卷积层输出Map。
5.如权利要求3或4所述的卷积神经网络的构建方法,其特征在于,所述每个所述全连接层并行处理模块完成对其组内的全连接层输入数据的乘加计算,以及乘加计算结果的加偏置和激活计算,并存储计算获得的全连接层输出数据包括:
计算全连接层输入数据及对应的权值数据的乘积和累加计算;
获取每个所述全连接层输入数据与其对应的所述权值数据的乘积的累加结果,并将所述累加结果与偏置数据求和,对求和结果进行激活操作,以得到全连接层输出数据;
其中,在第f个全连接层中,全连接层输出数据的数量为Kf,Kf为大于1的自然数,每个所述全连接层并行处理模块用于计算Kf/Tf个全连接层输出数据。
6.一种卷积神经网络的构建系统,其特征在于,所述卷积神经网络的构建系统包括:
单元化模块,用于接收单元化指令,根据所述单元化指令将用于进行卷积操作的硬件资源配置成卷积单元,将用于进行激活操作的硬件资源配置成激活单元,将用于进行池化操作的硬件资源配置成池化单元;
接口模块,用于读取配置文件,所述配置文件包括卷积单元配置参数、激活单元配置参数及池化单元配置参数、卷积层的层数、全连接层的层数;
网络解释器模块,用于根据所述卷积单元配置参数配置所述卷积单元、根据所述激活单元配置参数配置所述激活单元、根据所述池化单元配置参数配置所述池化单元,以及配置卷积层的层数和全连接层的层数以构建卷积神经网络。
7.如权利要求6所述的卷积神经网络的构建系统,其特征在于,所述卷积神经网络的构建系统还包括:
计算模块,用于读取权值数据、偏置数据、激活函数、池化函数及输入图像;并根据所述权值数据、所述偏置数据、所述激活函数、所述池化函数及所述输入图像进行所述卷积神经网络的计算。
8.如权利要求7所述的卷积神经网络的构建系统,其特征在于,所计算模块包括用于卷积层计算的卷积层单元和用于全连接层计算的全连接层单元;
所述卷积层单元具体用于,按照预设的并行分组规则将待处理的卷积层的输入Map和/或卷积核分组至并行的Tc个卷积层并行处理模块;
每个所述卷积层并行处理模块完成对其组内的卷积层输入Map的卷积、加偏置、激活和池化计算,并存储计算获得的卷积层输出Map;
所述全连接层单元具体用于,按照预设的并行分组规则将待处理的全连接层输入数据和/或权值数据分组至并行的Tf个全连接层并行处理模块;
每个所述全连接层并行处理模块完成对其组内的全连接层输入数据的乘加计算,以及乘加计算结果的加偏置和激活计算,并存储计算获得的全连接层输出数据;
其中,Tc、Tf均为大于1的自然数。
9.如权利要求8所述的卷积神经网络的构建系统,其特征在于,所述卷积层单元包括:
第一处理子单元,用于读取卷积核参数及卷积层输入Map的数据,对所述卷积层输入Map进行若干次卷积操作直至完成所述卷积层输入Map的卷积操作;
第二处理子单元,用于将所述卷积层输入Map的卷积操作结果与偏置数据求和,并将求和结果进行激活操作及池化操作,以得到卷积层输出Map;
其中,所述卷积核参数为用于对所述卷积层输入Map进行卷积操作得到卷积层输出Map的卷积核的参数,在第c个卷积层中,卷积层输出Map数量为Kc,Kc为大于1的自然数,每个所述卷积层并行处理模块用于计算Kc/Tc个卷积层输出Map。
10.如权利要求8或9所述的卷积神经网络的构建系统,其特征在于,所述全连接层单元包括:
第三处理子单元,用于计算全连接层输入数据及对应的权值数据的乘积;
第四处理子单元,用于获取每个所述全连接层输入数据与其对应的所述权值数据的乘积的累加结果,并将所述累加结果与偏置数据求和,对求和结果进行激活操作,以得到全连接层输出数据;
其中,在第f个全连接层中,全连接层输出数据的数量为Kf,Kf为大于1的自然数,每个所述全连接层并行处理模块用于计算Kf/Tf个全连接层输出数据。
CN201610778066.2A 2016-08-30 2016-08-30 卷积神经网络的构建方法及系统 Active CN106355244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610778066.2A CN106355244B (zh) 2016-08-30 2016-08-30 卷积神经网络的构建方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610778066.2A CN106355244B (zh) 2016-08-30 2016-08-30 卷积神经网络的构建方法及系统

Publications (2)

Publication Number Publication Date
CN106355244A true CN106355244A (zh) 2017-01-25
CN106355244B CN106355244B (zh) 2019-08-13

Family

ID=57856987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610778066.2A Active CN106355244B (zh) 2016-08-30 2016-08-30 卷积神经网络的构建方法及系统

Country Status (1)

Country Link
CN (1) CN106355244B (zh)

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN106908151A (zh) * 2015-09-24 2017-06-30 韩国科学技术院 多基准相关的双采样检测方法及使用该方法的微测辐射热计
CN107016175A (zh) * 2017-03-23 2017-08-04 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
CN107451653A (zh) * 2017-07-05 2017-12-08 深圳市自行科技有限公司 深度神经网络的计算方法、装置及可读存储介质
CN107480115A (zh) * 2017-08-31 2017-12-15 郑州云海信息技术有限公司 一种caffe框架残差网络配置文件格式转换方法及系统
CN107633297A (zh) * 2017-03-10 2018-01-26 南京大学 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN107679621A (zh) * 2017-04-19 2018-02-09 北京深鉴科技有限公司 人工神经网络处理装置
CN107844828A (zh) * 2017-12-18 2018-03-27 北京地平线信息技术有限公司 神经网络中的卷积计算方法和电子设备
CN108108809A (zh) * 2018-03-05 2018-06-01 山东领能电子科技有限公司 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN108154229A (zh) * 2018-01-10 2018-06-12 西安电子科技大学 基于fpga加速卷积神经网络框架的图片处理方法
CN108171321A (zh) * 2017-12-07 2018-06-15 中国航空工业集团公司西安航空计算技术研究所 一种基于SoC芯片的深度神经网络嵌入式实现方法
CN108388943A (zh) * 2018-01-08 2018-08-10 中国科学院计算技术研究所 一种适用于神经网络的池化装置及方法
CN108416430A (zh) * 2017-02-10 2018-08-17 耐能股份有限公司 卷积神经网络的池化运算装置及方法
CN108416438A (zh) * 2018-05-30 2018-08-17 济南浪潮高新科技投资发展有限公司 一种卷积神经网络硬件模块部署方法
CN108460454A (zh) * 2017-02-21 2018-08-28 京东方科技集团股份有限公司 卷积神经网络和用于其的处理方法、装置、系统
CN108710941A (zh) * 2018-04-11 2018-10-26 杭州菲数科技有限公司 用于电子设备的神经网络模型的硬加速方法和装置
WO2018218651A1 (en) * 2017-06-02 2018-12-06 Nokia Technologies Oy Artificial neural network
CN109002884A (zh) * 2018-07-20 2018-12-14 郑州云海信息技术有限公司 一种池化处理装置及池化处理方法
CN109002885A (zh) * 2018-07-24 2018-12-14 济南浪潮高新科技投资发展有限公司 一种卷积神经网络池化单元及池化计算方法
CN109146059A (zh) * 2018-08-03 2019-01-04 济南浪潮高新科技投资发展有限公司 一种卷积数据处理电路及数据处理方法
CN109165723A (zh) * 2018-08-03 2019-01-08 北京字节跳动网络技术有限公司 用于处理数据的方法和装置
CN109214506A (zh) * 2018-09-13 2019-01-15 深思考人工智能机器人科技(北京)有限公司 一种卷积神经网络的建立装置及方法
CN109359732A (zh) * 2018-09-30 2019-02-19 阿里巴巴集团控股有限公司 一种芯片及基于其的数据处理方法
CN109558944A (zh) * 2018-12-13 2019-04-02 北京智芯原动科技有限公司 基于可配置卷积层的卷积神经网络的算法优化方法及装置
WO2019085709A1 (zh) * 2017-11-01 2019-05-09 腾讯科技(深圳)有限公司 一种应用于卷积神经网络的池化处理的方法及系统
CN109754062A (zh) * 2017-11-07 2019-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN109799977A (zh) * 2019-01-25 2019-05-24 西安电子科技大学 指令程序开发调度数据的方法及系统
CN109871949A (zh) * 2017-12-22 2019-06-11 泓图睿语(北京)科技有限公司 卷积神经网络加速器及加速方法
CN109871939A (zh) * 2019-01-29 2019-06-11 深兰人工智能芯片研究院(江苏)有限公司 一种图像处理方法及图像处理装置
WO2019119480A1 (zh) * 2017-12-20 2019-06-27 深圳云天励飞技术有限公司 集成电路
CN109993279A (zh) * 2019-03-11 2019-07-09 东南大学 一种基于查找表计算的双层同或二值神经网络压缩方法
CN110178146A (zh) * 2018-01-15 2019-08-27 深圳鲲云信息科技有限公司 反卷积器及其所应用的人工智能处理装置
CN110490311A (zh) * 2019-07-08 2019-11-22 华南理工大学 基于risc-v架构的卷积神经网络加速装置及其控制方法
CN110738317A (zh) * 2019-10-17 2020-01-31 中国科学院上海高等研究院 基于fpga的可变形卷积网络运算方法、装置和系统
WO2020042770A1 (zh) * 2018-08-31 2020-03-05 北京嘉楠捷思信息技术有限公司 图像识别处理方法和装置
CN110874605A (zh) * 2018-08-31 2020-03-10 北京嘉楠捷思信息技术有限公司 图像识别处理方法和装置
WO2020093306A1 (zh) * 2018-11-08 2020-05-14 北京比特大陆科技有限公司 神经网络层分组方法、装置、设备、存储介质及程序产品
WO2020093304A1 (zh) * 2018-11-08 2020-05-14 北京比特大陆科技有限公司 神经网络编译方法、装置、设备、存储介质及程序产品
CN111812732A (zh) * 2020-06-29 2020-10-23 中铁二院工程集团有限责任公司 一种基于卷积神经网络的大地电磁非线性反演方法
WO2021068247A1 (zh) * 2019-10-12 2021-04-15 深圳鲲云信息科技有限公司 神经网络调度方法、装置、计算机设备及可读存储介质
CN112966813A (zh) * 2021-03-15 2021-06-15 神思电子技术股份有限公司 一种卷积神经网络输入层装置及其工作方法
CN114390580A (zh) * 2020-10-20 2022-04-22 维沃移动通信有限公司 波束上报方法、波束信息确定方法及相关设备
CN110874605B (zh) * 2018-08-31 2024-05-03 嘉楠明芯(北京)科技有限公司 图像识别处理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104504395A (zh) * 2014-12-16 2015-04-08 广州中国科学院先进技术研究所 基于神经网络实现人车分类的方法和系统
CN104778464A (zh) * 2015-05-04 2015-07-15 中国科学院重庆绿色智能技术研究院 一种基于深度卷积神经网络的服装定位检测方法
CN105138993A (zh) * 2015-08-31 2015-12-09 小米科技有限责任公司 建立人脸识别模型的方法及装置
CN105574550A (zh) * 2016-02-02 2016-05-11 北京格灵深瞳信息技术有限公司 一种车辆识别方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104504395A (zh) * 2014-12-16 2015-04-08 广州中国科学院先进技术研究所 基于神经网络实现人车分类的方法和系统
CN104778464A (zh) * 2015-05-04 2015-07-15 中国科学院重庆绿色智能技术研究院 一种基于深度卷积神经网络的服装定位检测方法
CN105138993A (zh) * 2015-08-31 2015-12-09 小米科技有限责任公司 建立人脸识别模型的方法及装置
CN105574550A (zh) * 2016-02-02 2016-05-11 北京格灵深瞳信息技术有限公司 一种车辆识别方法及装置

Cited By (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106908151A (zh) * 2015-09-24 2017-06-30 韩国科学技术院 多基准相关的双采样检测方法及使用该方法的微测辐射热计
CN106875012B (zh) * 2017-02-09 2019-09-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN108416430A (zh) * 2017-02-10 2018-08-17 耐能股份有限公司 卷积神经网络的池化运算装置及方法
WO2018153128A1 (zh) * 2017-02-21 2018-08-30 京东方科技集团股份有限公司 卷积神经网络和用于其的处理方法、装置、系统、介质
CN108460454A (zh) * 2017-02-21 2018-08-28 京东方科技集团股份有限公司 卷积神经网络和用于其的处理方法、装置、系统
US11620496B2 (en) 2017-02-21 2023-04-04 Boe Technology Group Co., Ltd. Convolutional neural network, and processing method, processing device, processing system and medium for the same
CN107633297A (zh) * 2017-03-10 2018-01-26 南京大学 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN107633297B (zh) * 2017-03-10 2021-04-06 南京风兴科技有限公司 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN107016175A (zh) * 2017-03-23 2017-08-04 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
WO2018171715A1 (zh) * 2017-03-23 2018-09-27 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法及系统
CN107016175B (zh) * 2017-03-23 2018-08-31 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
CN107679621A (zh) * 2017-04-19 2018-02-09 北京深鉴科技有限公司 人工神经网络处理装置
US11651230B2 (en) 2017-06-02 2023-05-16 Nokia Technologies Oy Artificial neural network
WO2018218651A1 (en) * 2017-06-02 2018-12-06 Nokia Technologies Oy Artificial neural network
CN107451653A (zh) * 2017-07-05 2017-12-08 深圳市自行科技有限公司 深度神经网络的计算方法、装置及可读存储介质
CN107480115A (zh) * 2017-08-31 2017-12-15 郑州云海信息技术有限公司 一种caffe框架残差网络配置文件格式转换方法及系统
WO2019085709A1 (zh) * 2017-11-01 2019-05-09 腾讯科技(深圳)有限公司 一种应用于卷积神经网络的池化处理的方法及系统
US11537857B2 (en) 2017-11-01 2022-12-27 Tencent Technology (Shenzhen) Company Limited Pooling processing method and system applied to convolutional neural network
US11734554B2 (en) 2017-11-01 2023-08-22 Tencent Technology (Shenzhen) Company Limited Pooling processing method and system applied to convolutional neural network
CN109754062A (zh) * 2017-11-07 2019-05-14 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN108171321A (zh) * 2017-12-07 2018-06-15 中国航空工业集团公司西安航空计算技术研究所 一种基于SoC芯片的深度神经网络嵌入式实现方法
CN107844828A (zh) * 2017-12-18 2018-03-27 北京地平线信息技术有限公司 神经网络中的卷积计算方法和电子设备
US10706353B2 (en) 2017-12-20 2020-07-07 Shenzhen Intellifusion Technologies Co., Ltd. Integrated circuit
WO2019119480A1 (zh) * 2017-12-20 2019-06-27 深圳云天励飞技术有限公司 集成电路
CN109871949A (zh) * 2017-12-22 2019-06-11 泓图睿语(北京)科技有限公司 卷积神经网络加速器及加速方法
CN108388943B (zh) * 2018-01-08 2020-12-29 中国科学院计算技术研究所 一种适用于神经网络的池化装置及方法
CN108388943A (zh) * 2018-01-08 2018-08-10 中国科学院计算技术研究所 一种适用于神经网络的池化装置及方法
CN108154229B (zh) * 2018-01-10 2022-04-08 西安电子科技大学 基于fpga加速卷积神经网络框架的图片处理方法
CN108154229A (zh) * 2018-01-10 2018-06-12 西安电子科技大学 基于fpga加速卷积神经网络框架的图片处理方法
CN110178146B (zh) * 2018-01-15 2023-05-12 深圳鲲云信息科技有限公司 反卷积器及其所应用的人工智能处理装置
CN110178146A (zh) * 2018-01-15 2019-08-27 深圳鲲云信息科技有限公司 反卷积器及其所应用的人工智能处理装置
CN108108809A (zh) * 2018-03-05 2018-06-01 山东领能电子科技有限公司 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN108108809B (zh) * 2018-03-05 2021-03-02 山东领能电子科技有限公司 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN108710941A (zh) * 2018-04-11 2018-10-26 杭州菲数科技有限公司 用于电子设备的神经网络模型的硬加速方法和装置
CN108416438A (zh) * 2018-05-30 2018-08-17 济南浪潮高新科技投资发展有限公司 一种卷积神经网络硬件模块部署方法
CN109002884A (zh) * 2018-07-20 2018-12-14 郑州云海信息技术有限公司 一种池化处理装置及池化处理方法
CN109002885A (zh) * 2018-07-24 2018-12-14 济南浪潮高新科技投资发展有限公司 一种卷积神经网络池化单元及池化计算方法
CN109146059A (zh) * 2018-08-03 2019-01-04 济南浪潮高新科技投资发展有限公司 一种卷积数据处理电路及数据处理方法
CN109165723B (zh) * 2018-08-03 2021-03-19 北京字节跳动网络技术有限公司 用于处理数据的方法和装置
CN109165723A (zh) * 2018-08-03 2019-01-08 北京字节跳动网络技术有限公司 用于处理数据的方法和装置
CN110874605B (zh) * 2018-08-31 2024-05-03 嘉楠明芯(北京)科技有限公司 图像识别处理方法和装置
WO2020042770A1 (zh) * 2018-08-31 2020-03-05 北京嘉楠捷思信息技术有限公司 图像识别处理方法和装置
CN110874605A (zh) * 2018-08-31 2020-03-10 北京嘉楠捷思信息技术有限公司 图像识别处理方法和装置
US20210319249A1 (en) * 2018-08-31 2021-10-14 Canaan Bright Sight Co., Ltd Image recognition method and apparatus
CN109214506B (zh) * 2018-09-13 2022-04-15 深思考人工智能机器人科技(北京)有限公司 一种基于像素的卷积神经网络建立装置及方法
CN109214506A (zh) * 2018-09-13 2019-01-15 深思考人工智能机器人科技(北京)有限公司 一种卷积神经网络的建立装置及方法
CN109359732A (zh) * 2018-09-30 2019-02-19 阿里巴巴集团控股有限公司 一种芯片及基于其的数据处理方法
CN109359732B (zh) * 2018-09-30 2020-06-09 阿里巴巴集团控股有限公司 一种芯片及基于其的数据处理方法
US11361217B2 (en) 2018-09-30 2022-06-14 Advanced New Technologies Co., Ltd. Chip and chip-based data processing method
US11062201B2 (en) 2018-09-30 2021-07-13 Advanced New Technologies Co., Ltd. Chip and chip-based data processing method
CN112912837B (zh) * 2018-11-08 2024-02-13 北京比特大陆科技有限公司 神经网络编译方法、装置、设备、存储介质及程序产品
CN112955906A (zh) * 2018-11-08 2021-06-11 北京比特大陆科技有限公司 神经网络层分组方法、装置、设备、存储介质及程序产品
CN112912837A (zh) * 2018-11-08 2021-06-04 北京比特大陆科技有限公司 神经网络编译方法、装置、设备、存储介质及程序产品
CN112955906B (zh) * 2018-11-08 2024-03-12 北京比特大陆科技有限公司 神经网络层分组方法、装置、设备、存储介质及程序产品
WO2020093304A1 (zh) * 2018-11-08 2020-05-14 北京比特大陆科技有限公司 神经网络编译方法、装置、设备、存储介质及程序产品
WO2020093306A1 (zh) * 2018-11-08 2020-05-14 北京比特大陆科技有限公司 神经网络层分组方法、装置、设备、存储介质及程序产品
CN109558944A (zh) * 2018-12-13 2019-04-02 北京智芯原动科技有限公司 基于可配置卷积层的卷积神经网络的算法优化方法及装置
CN109558944B (zh) * 2018-12-13 2021-02-19 北京智芯原动科技有限公司 基于可配置卷积层的卷积神经网络的算法优化方法及装置
CN109799977B (zh) * 2019-01-25 2021-07-27 西安电子科技大学 指令程序开发调度数据的方法及系统
CN109799977A (zh) * 2019-01-25 2019-05-24 西安电子科技大学 指令程序开发调度数据的方法及系统
CN109871939B (zh) * 2019-01-29 2021-06-15 深兰人工智能芯片研究院(江苏)有限公司 一种图像处理方法及图像处理装置
CN109871939A (zh) * 2019-01-29 2019-06-11 深兰人工智能芯片研究院(江苏)有限公司 一种图像处理方法及图像处理装置
CN109993279B (zh) * 2019-03-11 2023-08-04 东南大学 一种基于查找表计算的双层同或二值神经网络压缩方法
CN109993279A (zh) * 2019-03-11 2019-07-09 东南大学 一种基于查找表计算的双层同或二值神经网络压缩方法
CN110490311A (zh) * 2019-07-08 2019-11-22 华南理工大学 基于risc-v架构的卷积神经网络加速装置及其控制方法
CN113196232A (zh) * 2019-10-12 2021-07-30 深圳鲲云信息科技有限公司 神经网络调度方法、装置、计算机设备及可读存储介质
WO2021068247A1 (zh) * 2019-10-12 2021-04-15 深圳鲲云信息科技有限公司 神经网络调度方法、装置、计算机设备及可读存储介质
CN110738317A (zh) * 2019-10-17 2020-01-31 中国科学院上海高等研究院 基于fpga的可变形卷积网络运算方法、装置和系统
CN111812732A (zh) * 2020-06-29 2020-10-23 中铁二院工程集团有限责任公司 一种基于卷积神经网络的大地电磁非线性反演方法
CN111812732B (zh) * 2020-06-29 2024-03-15 中铁二院工程集团有限责任公司 一种基于卷积神经网络的大地电磁非线性反演方法
WO2022083593A1 (zh) * 2020-10-20 2022-04-28 维沃移动通信有限公司 波束上报方法、波束信息确定方法及相关设备
CN114390580A (zh) * 2020-10-20 2022-04-22 维沃移动通信有限公司 波束上报方法、波束信息确定方法及相关设备
CN112966813A (zh) * 2021-03-15 2021-06-15 神思电子技术股份有限公司 一种卷积神经网络输入层装置及其工作方法

Also Published As

Publication number Publication date
CN106355244B (zh) 2019-08-13

Similar Documents

Publication Publication Date Title
CN106355244A (zh) 卷积神经网络的构建方法及系统
CN106529670A (zh) 一种基于权重压缩的神经网络处理器、设计方法、芯片
CN108108809B (zh) 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN107301456B (zh) 基于向量处理器的深度神经网络多核加速实现方法
CN108416436A (zh) 使用多核心处理模块进行神经网络划分的方法及其系统
CN109858620B (zh) 一种类脑计算系统
CN107578098A (zh) 基于脉动阵列的神经网络处理器
CN107918794A (zh) 基于计算阵列的神经网络处理器
CN107862374A (zh) 基于流水线的神经网络处理系统和处理方法
CN109284817A (zh) 深度可分离卷积神经网络处理架构/方法/系统及介质
CN106951395A (zh) 面向压缩卷积神经网络的并行卷积运算方法及装置
CN107844826A (zh) 神经网络处理单元及包含该处理单元的处理系统
CN109472356A (zh) 一种可重构神经网络算法的加速装置及方法
CN107451654A (zh) 卷积神经网络的加速运算方法、服务器及存储介质
CN106447034A (zh) 一种基于数据压缩的神经网络处理器、设计方法、芯片
CN107480782A (zh) 一种片上学习神经网络处理器
CN107392308A (zh) 一种基于可编程器件的卷积神经网络加速方法与系统
CN107578095A (zh) 神经网络计算装置及包含该计算装置的处理器
CN109447241A (zh) 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN107316079A (zh) 终端卷积神经网络的处理方法、装置、存储介质及处理器
CN106951926A (zh) 一种混合架构的深度学习系统方法及装置
CN107886167A (zh) 神经网络运算装置及方法
CN109190756A (zh) 基于Winograd卷积的运算装置及包含该装置的神经网络处理器
CN109597965A (zh) 基于深度神经网络的数据处理方法、系统、终端及介质
CN110033086A (zh) 用于神经网络卷积运算的硬件加速器

Legal Events

Date Code Title Description
C06 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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200107

Address after: 518000 Guangdong Shenzhen Nanshan District Taoyuan Street Li Shan Road University Town Pioneer Park 601 room

Patentee after: Shenzhen self Technology Co., Ltd.

Address before: 518066, room six, building 601, A District, University Town, Li Cheng Road, Taoyuan street, Nanshan District, Shenzhen, Guangdong, China

Patentee before: The neighbour Science and Technology Ltd. of Shenzhen's promise