CN108229663A - 用于生成卷积神经网络的方法和装置 - Google Patents
用于生成卷积神经网络的方法和装置 Download PDFInfo
- Publication number
- CN108229663A CN108229663A CN201810084084.XA CN201810084084A CN108229663A CN 108229663 A CN108229663 A CN 108229663A CN 201810084084 A CN201810084084 A CN 201810084084A CN 108229663 A CN108229663 A CN 108229663A
- Authority
- CN
- China
- Prior art keywords
- weight
- input value
- initial
- neural networks
- convolutional neural
- 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.)
- Pending
Links
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
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了用于生成卷积神经网络的方法和装置。该方法的一具体实施方式包括:获取卷积神经网络的目标卷积层的初始输入值和初始权重;根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个至少部分区间长度不同的子区间,以分别生成第一输入值集合和第一权重集合;对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合;将第二输入值集合作为输入,将第二权重集合作为目标卷积层的权重,进行卷积运算;通过迭代训练对初始权重进行修正,直至卷积神经网络满足第一预设条件,生成并存储目标卷积神经网络。该实施方式可丰富卷积神经网络的生成方法。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及神经网络技术领域,尤其涉及用于生成卷积神经网络的方法和装置。
背景技术
深度学习的概念源于人工神经网络的研究。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。
同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分。不同的学习框架下建立的学习模型很是不同。例如,卷积神经网络(Convolution NeuralNetwork,简称CNN)就是一种深度的监督学习下的机器学习模型;而深度置信网(DeepBelief Net,简称DBN)就是一种无监督学习下的机器学习模型。
发明内容
本申请实施例提出了用于生成卷积神经网络的方法和装置。
第一方面,本申请实施例提供了一种用于生成卷积神经网络的方法,包括:获取卷积神经网络的目标卷积层的初始输入值和初始权重;根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个子区间,其中,预设数目与量化编码的位数正相关,且预设数目个子区间中至少部分子区间的区间长度不同;根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合;对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合;将第二输入值集合作为输入,将第二权重集合作为目标卷积层的权重,进行卷积运算;通过迭代训练对初始权重进行修正,直至卷积神经网络满足第一预设条件,将卷积神经网络作为目标卷积神经网络,并存储目标卷积神经网络。
在一些实施例中,根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个子区间,包括:根据预设的第一数值,将初始输入值的范围和初始权重的范围划分为预设数目个区间长度不同的子区间。
在一些实施例中,根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合,包括:以第一数值为底数,计算各初始输入值的对数,将计算结果作为第一输入值,生成第一输入值集合;根据位于各子区间的各初始权重,确定区间权重,以作为第一权重,生成第一权重集合。
在一些实施例中,对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合,包括:对第一输入值集合中的各第一输入值进行量化取整,并以量化取整后的各第一输入值分别为指数,计算第一数值的指数幂,以作为第二输入值,生成第二输入值集合;根据各子区间的顺序,依次对各第一权重建立序号,生成查询表,并将各第一权重对应的序号作为第二权重,生成第二权重集合,其中,序号为整数,且查询表中序号与第一权重以键值对形式存储。
在一些实施例中,根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个子区间之前,该方法还包括:统计初始权重的分布信息;根据分布信息,确定初始权重中是否存在满足第二预设条件的初始权重;响应于确定存在满足第二预设条件的初始权重,对满足第二预设条件的初始权重进行处理,其中,处理方法包括删除或缩放满足第二预设条件的初始权重。
在一些实施例中,该方法还包括:获取目标卷积神经网络的目标卷积层的初始输入信息;对初始输入信息进行量化取整,得到整数输入值;将整数输入值输入目标卷积层,并与目标卷积层的权重进行卷积运算,生成输出信息。
第二方面,本申请实施例提供了一种用于生成卷积神经网络的装置,包括:第一获取单元,配置用于获取卷积神经网络的目标卷积层的初始输入值和初始权重;划分单元,配置用于根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个子区间,其中,预设数目与量化编码的位数正相关,且预设数目个子区间中至少部分子区间的区间长度不同;第一生成单元,配置用于根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合;第一量化单元,配置用于对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合;卷积单元,配置用于将第二输入值集合作为输入,将第二权重集合作为目标卷积层的权重,进行卷积运算;第二生成单元,配置用于通过迭代训练对初始权重进行修正,直至卷积神经网络满足第一预设条件,将卷积神经网络作为目标卷积神经网络,并存储目标卷积神经网络。
在一些实施例中,划分单元进一步配置用于:根据预设的第一数值,将初始输入值的范围和初始权重的范围划分为预设数目个区间长度不同的子区间。
在一些实施例中,第一生成单元包括:第一生成子单元,配置用于以第一数值为底数,计算各初始输入值的对数,将计算结果作为第一输入值,生成第一输入值集合;第二生成子单元,配置用于根据位于各子区间的各初始权重,确定区间权重,以作为第一权重,生成第一权重集合。
在一些实施例中,第一量化单元包括:第一量化子单元,配置用于对第一输入值集合中的各第一输入值进行量化取整,并以量化取整后的各第一输入值分别为指数,计算第一数值的指数幂,以作为第二输入值,生成第二输入值集合;第二量化子单元,配置用于根据各子区间的顺序,依次对各第一权重建立序号,生成查询表,并将各第一权重对应的序号作为第二权重,生成第二权重集合,其中,序号为整数,且查询表中序号与第一权重以键值对形式存储。
在一些实施例中,该装置还包括处理单元,配置用于:统计初始权重的分布信息;根据分布信息,确定初始权重中是否存在满足第二预设条件的初始权重;响应于确定存在满足第二预设条件的初始权重,对满足第二预设条件的初始权重进行处理,其中,处理方法包括删除或缩放满足第二预设条件的初始权重。
在一些实施例中,该装置还包括:第二获取单元,配置用于获取目标卷积神经网络的目标卷积层的初始输入信息;第二量化单元,配置用于对初始输入信息进行量化取整,得到整数输入值;第三生成单元,配置用于将整数输入值输入目标卷积层,并与目标卷积层的权重进行卷积运算,生成输出信息。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述第一方面中任一实施例所描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现如上述第一方面中任一实施例所描述的方法。
本申请实施例提供的用于生成卷积神经网络的方法和装置,通过获取卷积神经网络的目标卷积层的初始输入值和初始权重,从而可以根据量化编码的位数,将两者的范围分别划分为预设数目个子区间,进而可以分别生成第一输入值集合和第一权重集合。其中,预设数目与量化编码的位数正相关,且预设数目个子区间中至少部分子区间的区间长度不同。接着,对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,可以生成第二输入值集合和第二权重集合。之后,可以将第二输入值集合作为目标卷积层的输入,并将第二权重集合作为目标卷积层的权重,以进行卷积运算。也就是说,将目标卷积层的输入值和权重均转换为整数。这样,通过迭代训练可以不断地对初始权重进行修正,直至卷积神经网络满足第一预设条件,从而可以将满足第一预设条件的卷积神经网络作为目标卷积神经网络,并存储该目标卷积神经网络。也就是说,目标卷积神经网络的目标卷积层的权重为整数权重。该实施方式有助于丰富卷积神经网络的生成方法。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于生成卷积神经网络的方法的一个实施例的流程图;
图3是根据本申请的用于生成卷积神经网络的装置的一个实施例的结构示意图;
图4是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于生成卷积神经网络的方法或用于生成卷积神经网络的装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端101、102、103,网络104和服务器105。网络104用以在终端101、102、103与服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端101、102、103可以通过网络104与服务器105进行交互,以接收或发送消息等。终端101、102、103上可以安装有各种客户端应用,例如训练神经网络类应用、网页浏览器、搜索类应用、购物类应用和即时通讯工具等。
终端101、102、103可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端101、102、103上显示的各种应用提供支持的后台服务器。后台服务器可以对终端101、102、103发送的目标卷积层的初始输入值和初始权重进行分析处理,以对卷积神经网络进行训练,并且可以将处理结果(例如生成的目标卷积神经网络)发送给终端101、102、103。其中,目标卷积神经网络的目标卷积层的权重为整数。
需要说明的是,本申请实施例所提供的用于生成卷积神经网络的方法一般由服务器105执行,相应地,用于生成卷积神经网络的装置一般设置于服务器105中。
应该理解,图1中的终端、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端、网络和服务器。
继续参见图2,其示出了根据本申请的用于生成卷积神经网络的方法的一个实施例的流程200。该用于生成卷积神经网络的方法可以包括以下步骤:
步骤201,获取卷积神经网络的目标卷积层的初始输入值和初始权重。
在本实施例中,用于生成卷积神经网络的方法运行于其上的电子设备(例如图1所示的服务器105)可以通过多种方法,来获取卷积神经网络的目标卷积层的初始输入值和初始权重。例如通过有线连接方式或无线连接方式,从与其通信连接的终端(例如图1所示的终端101、102、103)、数据库服务器或者云服务器等,来获取上述初始输入值和初始权重。
在本实施例中,卷积神经网络可以是具有各种功能或用途的卷积神经网络,如可以用于人脸检测或人脸识别的卷积神经网络。其可以是已训练好的卷积神经网络,也可以是待训练的卷积神经网络。卷积神经网络一般是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络通常可以包括卷积层(alternating convolution layer)、池层(pooling layer)和全连接层等。这里的目标卷积层可以是目标卷积神经网络中的任意卷积层。
在本实施例中,初始输入值可以是输入目标卷积层的任意输入信息。例如可以是描述人脸图像的输入信息;再例如可以是上一卷积层的输出信息等。而初始权重可以是目标卷积层的任意权重。例如人为设置的初始权重;再例如通过反向传播算法等方法修正后的权重等。在这里,初始输入值和初始权重的值可以是整数值和/或浮点值。
需要说明的是,当某一卷积层的卷积核为1×1,说明该卷积层的输出与输入的大小相同。此时,为了避免将该卷积层的权重量化为整数而引入误差,所以可以不将该卷积层的权重量化为整数。也就是说,目标卷积层可以不包括卷积核为1×1的卷积层。此外,卷积神经网络的存储位置在本申请中并不限制。例如可以存储在电子设备本地,也可以存储在数据库服务器或云服务器上。
步骤202,根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个子区间。
在本实施例中,对于步骤201中获取的初始输入值和初始权重,电子设备可以根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个子区间。其中,预设数目个子区间中至少部分子区间的区间长度不同。这里量化编码的位数可以是电子设备记载、传输信息所用的编码的位数,如二进制编码的位数、十进制编码的位数等。同时,上述预设数目与量化编码的位数正相关。
在本实施例的一些可选地实现方式中,电子设备可以将初始输入值的范围和初始权重的范围随机划分为预设数目个子区间。或者,电子设备可以根据不同的范围区间来确定划分区间的长度,从而可以将初始输入值的范围和初始权重的范围划分为预设数目个子区间。例如位于[0,20]范围内的划分区间的长度为5,而位于[20,30]范围内的划分区间的长度为4。
可选地,电子设备可以根据预设的第一数值,将初始输入值的范围和初始权重的范围划分为预设数目个区间长度不同的子区间。其中,第一数值可以是1以外的任意正整数。
例如量化编码的位数可以为8,即二进制编码的位数为8。若初始权重的范围为[a,b],第一数值为r。则电子设备可以将该范围划分为区间长度分别为(b-a)/r、(b-a)/r2、(b-a)/r3···(b-a)/r256的256个子区间。需要说明的是,此时划分的各子区间的区间长度可以是依次增加或降低的顺序,也可以是上述区间长度中的任一种。
步骤203,根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合。
在本实施例中,电子设备可以根据位于预设数目个子区间中的各输入值和各权重,通过多种方法来分别生成第一输入值集合和第一权重集合。
在本实施例的一些可选地实现方式中,电子设备可以将位于预设数目个子区间中的各初始输入值分别作为第一输入值,从而生成第一输入值集合。同时,可以将位于预设数目个子区间中的各初始权重分别作为第一权重,从而生成第一权重集合。
可选地,电子设备可以采用对数量化方法,即可以以第一数值(如r)为底数,计算各初始输入值(如x)的对数。并且可以将计算结果(如logr x)作为第一输入值,从而生成第一输入值集合。同时,可以根据位于各子区间的各初始权重,确定区间权重,以作为第一权重,从而生成第一权重集合。作为示例,电子设备可以将位于子区间的各初始权重的统计平均值或中值确定为区间权重。
进一步地,电子设备还可以以第一数值(如r)为底数,计算确定出的各区间权重(如y)的对数。并且可以将计算结果(如logr y)作为第一权重,从而生成第一权重集合。
步骤204,对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合。
在本实施例中,电子设备可以遍历第一输入值集合,从而确定其中非整数的第一输入值。然后可以对确定出的非整数的第一输入值进行量化取整,以生成第二输入值集合。并且可以通过相同方式来对第一权重集合中的各第一权重进行量化取整,以生成第二权重集合。在这里,量化取整的方法在本申请中并不限制,如可以采用四舍五入的方法。
在本实施例的一些可选地实现方式中,对于对数量化方法,电子设备可以对第一输入值集合中的各第一输入值进行量化取整,即round(logr x)。并且可以以量化取整后的各第一输入值分别为指数,计算第一数值的指数幂,即rn(n=round(logr x)),以作为第二输入值,生成第二输入值集合。
同时,电子设备可以根据各子区间的顺序,依次对各第一权重建立序号,生成查询表。并可以将各第一权重对应的序号作为第二权重,从而生成第二权重集合。其中,序号为整数。且查询表中序号与第一权重以键值对形式存储。
例如,根据数值大小,由于[a,(b-a)/r]为第一个子区间,所以位于该子区间内的第一权重对应的序号可以为1。而位于其他子区间的第一权重对应的序号可以依次为2、3、4等等。也就是说,通过整数序号来代替权重,这样可以减少卷积神经网络所需占用的存储空间。同时又可以避免对权重进行实际的量化取整处理,从而可以简化处理过程,提高运算效率。而且可以避免因量化取整处理引入误差。
可以理解的是,在一些应用场景中,同样可以将输入值存储在上述查询表中。也就是说,查询表可以覆盖目标卷积层的权重和输入值的范围。具体地,电子设备可以根据各子区间的顺序,依次对各第一输入值建立输入值序号。并且将输入值序号与第一输入值以键值对形式存储在上述查询表中。此时,同样可以将输入值序号作为第二输入值,生成第二输入值集合。其中,输入值序号为整数。
需要说明的是,若第一输入值集合中的第一输入值为logr x,则电子设备可以将输入值序号与第一数值的指数幂以键值对形式存储在上述查询表中。这里的第一数值的指数幂可以是上述的以量化取整后的各第一输入值分别为指数的第一数值的指数幂,即rn(n=round(logr x))。在这里,输入值序号与第一输入值可以是一一对应关系,也可以是一对多的关系,如同一输入值序号可以与位于同一子区间内的各第一输入值对应。
可选地,若第一权重集合中的第一权重为logr y,则电子设备同样可以对各第一权重进行量化取整,即round(logry)。并且可以以量化取整后的各第一权重分别为指数,计算第一数值的指数幂,即rn(n=round(logr y)),以作为第二权重,从而生成第二权重集合。
步骤205,将第二输入值集合作为输入,将第二权重集合作为目标卷积层的权重,进行卷积运算。
在本实施例中,电子设备可以将步骤204中生成的第二权重集合作为目标卷积层的权重,且可以将步骤204中生成的第二输入值集合作为目标卷积层的输入,从而进行卷积运算。
需要说明的是,若第二权重集合中的第二权重为序号,电子设备可以根据第二权重集合中的各第二权重,在生成的查询表中查找到对应的第一权重,从而进行卷积运算。同样,若第二输入值集合中的第二输入值也为序号(即输入值序号),电子设备可以根据第二输入值集合中的各第二输入值,在上述查询表中查找到对应的输入值,即第一输入值或者第一数值的指数幂。
步骤206,通过迭代训练对初始权重进行修正,直至卷积神经网络满足第一预设条件,将卷积神经网络作为目标卷积神经网络,并存储目标卷积神经网络。
在本实施例中,由于卷积神经网络通常需要进行多次训练调整才能达到目标要求,所以电子设备可以利用如反向传播算法等方法,对步骤201中获取的初始权重进行修正。对于修正后初始权重,电子设备可以继续从步骤202开始执行,从而更新第二权重集合。直至卷积神经网络满足第一预设条件,结束卷积神经网络的训练。此时,电子设备可以将目标卷积层的权重为最新的第二权重集合的卷积神经网络,作为目标卷积神经网络。并且可以存储该目标卷积神经网络。上述第一预设条件可以根据实际情况来设置,如量化后目标卷积层的输出结果与原(未量化)输出结果的误差在一定误差范围内。
可以理解的是,若第二权重集合中的各第二权重为序号,则在迭代训练的过程中,第二权重集合可以不变。而是可以根据各子区间的顺序,更新查询表中各序号对应的第一权重。
在本实施例的一些可选地实现方式中,在步骤202根据量化编码的位数,将初始输入值的范围和初始权重的范围分别均匀划分为预设数目个子区间之前,电子设备可以对初始权重中的离群点进行处理,从而可以使权重的分布更加均匀。
具体地,首先,电子设备可以统计初始权重的分布信息;然后,根据分布信息,可以确定初始权重中是否存在满足第二预设条件的初始权重;接着,若确定存在满足第二预设条件的初始权重,可以对满足第二预设条件的初始权重进行处理。其中,处理方式可以是删除或缩放那些满足第二预设条件的初始权重。
这里的缩放方式并不限制,可以是按比例缩放,也可以是缩放至目标权重值等。这里的第二预设条件同样可以根据实际情况设置,如可以是权重值超出平均权重值的预设比例(如5%),还可以是按照权重值由大到小的顺序,排列在大的一端的一定比例(如前5%)的权重。需要说明的是,上述处理过程可以包含在每次迭代训练中,也可以每间隔一定迭代训练次数之后再进行。
在一些应用场景中,在生成目标卷积神经网络之后,电子设备还可以获取该目标卷积神经网络的目标卷积层的初始输入信息;然后,可以对初始输入信息进行量化取整,得到整数输入值;之后,可以将整数输入值输入目标卷积层,并与目标卷积层的权重进行卷积运算,生成输出信息。其中,目标卷积层的权重为整数。也就是说,将输入信息转换为整数后,可以实现整数与整数间的运算,这样有助于提高运算效率。
可以理解的是,通过上述方法得到的目标卷积神经网络,可以实现将浮点数运算转换为定点数运算,这样可以减少内存空间的占用,同时有助于提高运算速度。且通过实验可知,对于通用CPU(Central Processing Unit,中央处理器),其处理速度可以提升至原来的大致两倍。对于FPGA(Field-Programmable Gate Array,现场可编程门阵列),其处理速度基本上可以与图形处理器(Graphics Processing Unit,GPU)同步。而且可以减小能耗。
本实施例提供的用于生成卷积神经网络的方法,通过获取卷积神经网络的目标卷积层的初始输入值和初始权重,从而可以根据量化编码的位数,将两者的范围分别划分为预设数目个子区间,进而可以分别生成第一输入值集合和第一权重集合。其中,预设数目与量化编码的位数正相关,且预设数目个子区间中至少部分子区间的区间长度不同。接着,对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,可以生成第二输入值集合和第二权重集合。之后,可以将第二输入值集合作为目标卷积层的输入,并将第二权重集合作为目标卷积层的权重,以进行卷积运算。也就是说,将目标卷积层的输入值和权重均转换为整数。这样,通过迭代训练可以不断地对初始权重进行修正,直至卷积神经网络满足第一预设条件,从而可以将满足第一预设条件的卷积神经网络作为目标卷积神经网络,并且可以存储该目标卷积神经网络。也就是说,目标卷积神经网络的目标卷积层的权重为整数权重。该实施方式有助于丰富卷积神经网络的生成方法。
进一步参见图3,作为对上述各图所示方法的实现,本申请提供了一种用于生成卷积神经网络的装置的一个实施例。该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例的用于生成卷积神经网络的装置300可以包括:第一获取单元301,配置用于获取卷积神经网络的目标卷积层的初始输入值和初始权重;划分单元302,配置用于根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个子区间,其中,预设数目与量化编码的位数正相关,且预设数目个子区间中至少部分子区间的区间长度不同;第一生成单元303,配置用于根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合;第一量化单元304,配置用于对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合;卷积单元305,配置用于将第二输入值集合作为输入,将第二权重集合作为目标卷积层的权重,进行卷积运算;第二生成单元306,配置用于通过迭代训练对初始权重进行修正,直至卷积神经网络满足第一预设条件,将卷积神经网络作为目标卷积神经网络,并存储目标卷积神经网络。
在本实施例中,第一获取单元301、划分单元302、第一生成单元303、第一量化单元304、卷积单元305和第二生成单元306的具体实现方式及产生的有益效果,可以分别参见图2所示实施例中的步骤201、步骤202、步骤203、步骤204、步骤205和步骤206的相关描述,此处不再赘述。
在本实施例的一些可选的实现方式中,划分单元302可以进一步配置用于:根据预设的第一数值,将初始输入值的范围和初始权重的范围划分为预设数目个区间长度不同的子区间。
可选地,第一生成单元303可以包括:第一生成子单元(图中未示出),配置用于以第一数值为底数,计算各初始输入值的对数,将计算结果作为第一输入值,生成第一输入值集合;第二生成子单元(图中未示出),配置用于根据位于各子区间的各初始权重,确定区间权重,以作为第一权重,生成第一权重集合。
进一步地,第一量化单元304可以包括:第一量化子单元(图中未示出),配置用于对第一输入值集合中的各第一输入值进行量化取整,并以量化取整后的各第一输入值分别为指数,计算第一数值的指数幂,以作为第二输入值,生成第二输入值集合;第二量化子单元(图中未示出),配置用于根据各子区间的顺序,依次对各第一权重建立序号,生成查询表,并将各第一权重对应的序号作为第二权重,生成第二权重集合,其中,序号为整数,且查询表中序号与第一权重以键值对形式存储。
在一些实施例中,该装置300还可以包括处理单元(图中未示出),配置用于:统计初始权重的分布信息;根据分布信息,确定初始权重中是否存在满足第二预设条件的初始权重;响应于确定存在满足第二预设条件的初始权重,对满足第二预设条件的初始权重进行处理,其中,处理方法包括删除或缩放满足第二预设条件的初始权重。
此外,该装置300还可以包括:第二获取单元(图中未示出),配置用于获取目标卷积神经网络的目标卷积层的初始输入信息;第二量化单元(图中未示出),配置用于对初始输入信息进行量化取整,得到整数输入值;第三生成单元(图中未示出),配置用于将整数输入值输入目标卷积层,并与目标卷积层的权重进行卷积运算,生成输出信息。
下面参见图4,其示出了适于用来实现本申请实施例的电子设备的计算机系统400的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括触摸屏、键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一获取单元、划分单元、第一生成单元、第一量化单元、卷积单元和第二生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取卷积神经网络的目标卷积层的初始输入值和初始权重的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取卷积神经网络的目标卷积层的初始输入值和初始权重;根据量化编码的位数,将初始输入值的范围和初始权重的范围分别划分为预设数目个子区间,其中,预设数目与量化编码的位数正相关,且预设数目个子区间中至少部分子区间的区间长度不同;根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合;对第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合;将第二输入值集合作为输入,将第二权重集合作为目标卷积层的权重,进行卷积运算;通过迭代训练对初始权重进行修正,直至卷积神经网络满足第一预设条件,将卷积神经网络作为目标卷积神经网络,并存储目标卷积神经网络。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种用于生成卷积神经网络的方法,包括:
获取卷积神经网络的目标卷积层的初始输入值和初始权重;
根据量化编码的位数,将所述初始输入值的范围和所述初始权重的范围分别划分为预设数目个子区间,其中,所述预设数目与所述量化编码的位数正相关,且所述预设数目个子区间中至少部分子区间的区间长度不同;
根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合;
对所述第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合;
将所述第二输入值集合作为输入,将所述第二权重集合作为所述目标卷积层的权重,进行卷积运算;
通过迭代训练对所述初始权重进行修正,直至所述卷积神经网络满足第一预设条件,将所述卷积神经网络作为目标卷积神经网络,并存储所述目标卷积神经网络。
2.根据权利要求1所述的方法,其中,所述根据量化编码的位数,将所述初始输入值的范围和所述初始权重的范围分别划分为预设数目个子区间,包括:
根据预设的第一数值,将所述初始输入值的范围和所述初始权重的范围划分为预设数目个区间长度不同的子区间。
3.根据权利要求2所述的方法,其中,所述根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合,包括:
以所述第一数值为底数,计算各初始输入值的对数,将计算结果作为第一输入值,生成第一输入值集合;
根据位于各子区间的各初始权重,确定区间权重,以作为第一权重,生成第一权重集合。
4.根据权利要求3所述的方法,其中,所述对所述第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合,包括:
对所述第一输入值集合中的各第一输入值进行量化取整,并以量化取整后的各第一输入值分别为指数,计算所述第一数值的指数幂,以作为第二输入值,生成第二输入值集合;
根据各子区间的顺序,依次对各第一权重建立序号,生成查询表,并将各第一权重对应的序号作为第二权重,生成第二权重集合,其中,所述序号为整数,且所述查询表中序号与第一权重以键值对形式存储。
5.根据权利要求1所述的方法,其中,所述根据量化编码的位数,将所述初始输入值的范围和所述初始权重的范围分别划分为预设数目个子区间之前,所述方法还包括:
统计所述初始权重的分布信息;
根据所述分布信息,确定所述初始权重中是否存在满足第二预设条件的初始权重;
响应于确定存在满足第二预设条件的初始权重,对满足所述第二预设条件的初始权重进行处理,其中,处理方法包括删除或缩放满足第二预设条件的初始权重。
6.根据权利要求1-5之一所述的方法,其中,所述方法还包括:
获取所述目标卷积神经网络的目标卷积层的初始输入信息;
对所述初始输入信息进行量化取整,得到整数输入值;
将所述整数输入值输入所述目标卷积层,并与所述目标卷积层的权重进行卷积运算,生成输出信息。
7.一种用于生成卷积神经网络的装置,包括:
第一获取单元,配置用于获取卷积神经网络的目标卷积层的初始输入值和初始权重;
划分单元,配置用于根据量化编码的位数,将所述初始输入值的范围和所述初始权重的范围分别划分为预设数目个子区间,其中,所述预设数目与所述量化编码的位数正相关,且所述预设数目个子区间中至少部分子区间的区间长度不同;
第一生成单元,配置用于根据位于预设数目个子区间中的各输入值和各权重,分别生成第一输入值集合和第一权重集合;
第一量化单元,配置用于对所述第一输入值集合中的各第一输入值和第一权重集合中的各第一权重分别进行量化取整,生成第二输入值集合和第二权重集合;
卷积单元,配置用于将所述第二输入值集合作为输入,将所述第二权重集合作为所述目标卷积层的权重,进行卷积运算;
第二生成单元,配置用于通过迭代训练对所述初始权重进行修正,直至所述卷积神经网络满足第一预设条件,将所述卷积神经网络作为目标卷积神经网络,并存储所述目标卷积神经网络。
8.根据权利要求7所述的装置,其中,所述划分单元进一步配置用于:
根据预设的第一数值,将所述初始输入值的范围和所述初始权重的范围划分为预设数目个区间长度不同的子区间。
9.根据权利要求8所述的装置,其中,所述第一生成单元包括:
第一生成子单元,配置用于以所述第一数值为底数,计算各初始输入值的对数,将计算结果作为第一输入值,生成第一输入值集合;
第二生成子单元,配置用于根据位于各子区间的各初始权重,确定区间权重,以作为第一权重,生成第一权重集合。
10.根据权利要求9所述的装置,其中,所述第一量化单元包括:
第一量化子单元,配置用于对所述第一输入值集合中的各第一输入值进行量化取整,并以量化取整后的各第一输入值分别为指数,计算所述第一数值的指数幂,以作为第二输入值,生成第二输入值集合;
第二量化子单元,配置用于根据各子区间的顺序,依次对各第一权重建立序号,生成查询表,并将各第一权重对应的序号作为第二权重,生成第二权重集合,其中,所述序号为整数,且所述查询表中序号与第一权重以键值对形式存储。
11.根据权利要求7所述的装置,其中,所述装置还包括处理单元,配置用于:
统计所述初始权重的分布信息;
根据所述分布信息,确定所述初始权重中是否存在满足第二预设条件的初始权重;
响应于确定存在满足第二预设条件的初始权重,对满足所述第二预设条件的初始权重进行处理,其中,处理方法包括删除或缩放满足第二预设条件的初始权重。
12.根据权利要求7-11之一所述的装置,其中,所述装置还包括:
第二获取单元,配置用于获取所述目标卷积神经网络的目标卷积层的初始输入信息;
第二量化单元,配置用于对所述初始输入信息进行量化取整,得到整数输入值;
第三生成单元,配置用于将所述整数输入值输入所述目标卷积层,并与所述目标卷积层的权重进行卷积运算,生成输出信息。
13.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810084084.XA CN108229663A (zh) | 2018-01-29 | 2018-01-29 | 用于生成卷积神经网络的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810084084.XA CN108229663A (zh) | 2018-01-29 | 2018-01-29 | 用于生成卷积神经网络的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108229663A true CN108229663A (zh) | 2018-06-29 |
Family
ID=62668968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810084084.XA Pending CN108229663A (zh) | 2018-01-29 | 2018-01-29 | 用于生成卷积神经网络的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108229663A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800877A (zh) * | 2019-02-20 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 神经网络的参数调整方法、装置及设备 |
CN110009099A (zh) * | 2017-11-03 | 2019-07-12 | 畅想科技有限公司 | 用于深度神经网络的硬件实现的误差分配格式选择 |
CN110874625A (zh) * | 2018-08-31 | 2020-03-10 | 杭州海康威视数字技术股份有限公司 | 一种深度神经网络量化方法及装置 |
CN111126558A (zh) * | 2018-10-31 | 2020-05-08 | 北京嘉楠捷思信息技术有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
CN111260038A (zh) * | 2019-12-16 | 2020-06-09 | 深圳云天励飞技术有限公司 | 卷积神经网络的实现方法、装置、电子设备及存储介质 |
CN109523016B (zh) * | 2018-11-21 | 2020-09-01 | 济南大学 | 面向嵌入式系统的多值量化深度神经网络压缩方法及系统 |
CN111868752A (zh) * | 2018-07-23 | 2020-10-30 | 谷歌有限责任公司 | 神经网络层权重的连续参数化 |
CN112085191A (zh) * | 2019-06-12 | 2020-12-15 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN113222097A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
CN116992032A (zh) * | 2023-09-25 | 2023-11-03 | 之江实验室 | 基于模型自动量化的文本分类方法、系统和存储介质 |
-
2018
- 2018-01-29 CN CN201810084084.XA patent/CN108229663A/zh active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110009099A (zh) * | 2017-11-03 | 2019-07-12 | 畅想科技有限公司 | 用于深度神经网络的硬件实现的误差分配格式选择 |
US11734553B2 (en) | 2017-11-03 | 2023-08-22 | Imagination Technologies Limited | Error allocation format selection for hardware implementation of deep neural network |
US11392823B2 (en) | 2017-11-03 | 2022-07-19 | Imagination Technologies Limited | Error allocation format selection for hardware implementation of deep neural network |
CN110009099B (zh) * | 2017-11-03 | 2021-12-24 | 畅想科技有限公司 | 用于确定表示dnn的层的值的定点数格式的方法和系统 |
CN111868752A (zh) * | 2018-07-23 | 2020-10-30 | 谷歌有限责任公司 | 神经网络层权重的连续参数化 |
CN111868752B (zh) * | 2018-07-23 | 2024-03-12 | 谷歌有限责任公司 | 神经网络层权重的连续参数化 |
CN110874625B (zh) * | 2018-08-31 | 2023-10-27 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法及装置 |
CN110874625A (zh) * | 2018-08-31 | 2020-03-10 | 杭州海康威视数字技术股份有限公司 | 一种深度神经网络量化方法及装置 |
CN111126558A (zh) * | 2018-10-31 | 2020-05-08 | 北京嘉楠捷思信息技术有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
CN111126558B (zh) * | 2018-10-31 | 2024-04-02 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
CN109523016B (zh) * | 2018-11-21 | 2020-09-01 | 济南大学 | 面向嵌入式系统的多值量化深度神经网络压缩方法及系统 |
CN109800877A (zh) * | 2019-02-20 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 神经网络的参数调整方法、装置及设备 |
CN109800877B (zh) * | 2019-02-20 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 神经网络的参数调整方法、装置及设备 |
CN112085189B (zh) * | 2019-06-12 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN112085191A (zh) * | 2019-06-12 | 2020-12-15 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN112085192B (zh) * | 2019-06-12 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN112085191B (zh) * | 2019-06-12 | 2024-04-02 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN112085192A (zh) * | 2019-06-12 | 2020-12-15 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN111260038B (zh) * | 2019-12-16 | 2023-06-13 | 深圳云天励飞技术股份有限公司 | 卷积神经网络的实现方法、装置、电子设备及存储介质 |
CN111260038A (zh) * | 2019-12-16 | 2020-06-09 | 深圳云天励飞技术有限公司 | 卷积神经网络的实现方法、装置、电子设备及存储介质 |
CN113222097A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
CN116992032A (zh) * | 2023-09-25 | 2023-11-03 | 之江实验室 | 基于模型自动量化的文本分类方法、系统和存储介质 |
CN116992032B (zh) * | 2023-09-25 | 2024-01-09 | 之江实验室 | 基于模型自动量化的文本分类方法、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108229663A (zh) | 用于生成卷积神经网络的方法和装置 | |
US11620532B2 (en) | Method and apparatus for generating neural network | |
CN108288089A (zh) | 用于生成卷积神经网络的方法和装置 | |
CN110796190B (zh) | 具有深度学习特征的指数建模 | |
CN108304919A (zh) | 用于生成卷积神经网络的方法和装置 | |
US10942711B2 (en) | Information processing method and information processing apparatus | |
CN110766142A (zh) | 模型生成方法和装置 | |
CN108197652B (zh) | 用于生成信息的方法和装置 | |
CN110175628A (zh) | 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法 | |
CN108256632A (zh) | 信息处理方法和装置 | |
CN102741840B (zh) | 用于对个性化场景建模的方法和装置 | |
CN110069715A (zh) | 一种信息推荐模型训练的方法、信息推荐的方法及装置 | |
CN109190754A (zh) | 量化模型生成方法、装置和电子设备 | |
JP7354463B2 (ja) | データ保護方法、装置、サーバ及び媒体 | |
CN108629823A (zh) | 多视角图像的生成方法和装置 | |
EP4131083A2 (en) | Method and apparatus for generating federated learning model | |
CN107145485A (zh) | 用于压缩主题模型的方法和装置 | |
CN113408797A (zh) | 流转量预测多时序模型生成方法、信息发送方法和装置 | |
CN112650841A (zh) | 信息处理方法、装置和电子设备 | |
CN112434620B (zh) | 场景文字识别方法、装置、设备和计算机可读介质 | |
CN111008213B (zh) | 用于生成语言转换模型的方法和装置 | |
CN116684330A (zh) | 基于人工智能的流量预测方法、装置、设备及存储介质 | |
CN113723712B (zh) | 风电功率预测方法、系统、设备及介质 | |
CN111598597A (zh) | 用于发送信息的方法和装置 | |
CN113762687B (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 |