CN113592065A - 一种二值神经网络的训练方法及训练装置 - Google Patents
一种二值神经网络的训练方法及训练装置 Download PDFInfo
- Publication number
- CN113592065A CN113592065A CN202110769341.5A CN202110769341A CN113592065A CN 113592065 A CN113592065 A CN 113592065A CN 202110769341 A CN202110769341 A CN 202110769341A CN 113592065 A CN113592065 A CN 113592065A
- Authority
- CN
- China
- Prior art keywords
- basic block
- layer
- binary
- neural network
- basic
- 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
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
- G06N3/045—Combinations of networks
-
- 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/08—Learning methods
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
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种二值神经网络的训练方法及训练装置。
背景技术
二值神经网络(BNN)具有1位的权值和激活,由于其计算效率高、内存需求低,是部署在边缘设备上的良好选择。在过去的十年中,深度神经网络(DNNs),特别是深度卷积神经网络(DCNNs)彻底改变了计算机视觉,广泛应用于各种计算机视觉任务,包括图像分类、目标检测和语义分割。性能最好的DNNs需要消耗大量数据和能量,依赖于拥有大量消耗能量的处理器集群的云中心来加快处理速度,这极大地阻碍了它们在边缘设备上的部署,如智能手机、汽车、可穿戴设备和物联网,这些设备的计算资源非常有限。因此,在过去的几年里,大量的研究致力于发展DNN压缩技术,以追求计算效率和预测精度之间令人满意的平衡。
在各种DNN压缩技术中,首先由首创的二值神经网络(Binary Neuralnetwork,BNNs)因其具有快速计算、低功耗和节省内存等优点而受到越来越多的关注。在BNN中,神经网络传播过程的权重和激活被量化为1位(即两个值),从而在cpu上节省最多32×的内存占用,在cpu上高达64×倍加速。然而,BNN的主要缺点是,准确性落后于其全精度对等网络。这是因为二值由于具有极端离散性的有限表征能力,不可避免地会造成严重的信息损失。此外,二值操作的不连续性给深度网络的优化也带来了困难。其中,提高BNN预测性能的一个流行方向是通过减少由二值函数引起的量化误差,使二值运算模拟其全精度对应网络的行为。例如,XNOR-Net首先引入了二值权值和激活的比例因子,使二值卷积的输出可以像使用原始的全精度权值和激活一样,以使其接近实值卷积的结果。该方法使得BNN的性能大大优于其原始版本BNN(44.2%vs 27.9%在ImageNet数据集上使用AlexNet架构的Top-1精度)。由于XNOR-Net的显著成功,随后出现了一系列的方法,要么寻找更好的比例因子,要么提出新的优化策略,以进一步减少量化误差。具体来说,XNOR-Net++改进了尺度因子的计算方法,将其作为模型参数,可以从目标损失中进行端到端的学习。而Real-to-Bin则提出了根据单个输入样本动态计算比例因子的方法,该方法更加灵活。另一方面,IR-Net在训练过程中逐步将用于二值的反向传播函数从身份映射演化为原始的符号函数,避免了训练初期较大的量化误差。BONN增加了贝叶斯损失,鼓励权值核遵循以每个高斯为中心的每个量化值的高斯混合模型,从而获得更高的精度。其他旨在减少量化误差的工作有ABC-Net,Bi-RealNet,ProxyBNN等。但,不论是采用何种方法,训练出的二值神经网络的稳定性和准确性还是不够理想
发明内容
有鉴于此,本发明实施例所解决的技术问题在于提供一种二值神经网络的训练方法,包括:
确定所述二值神经网络,所述二值神经网络从输入层到输出层的方向上包括多个基本块,每个所述基本块包括二值激活函数层、二值卷积层、批处理归一化层及叠加处理层,其中,当前基本块中的二值卷积层的输出端直接接入所述当前基本块的批处理归一化层的输入端,所述当前基本块中的批处理归一化层的输出端和前一基本块的批处理归一化层的输出端同时接入至所述当前基本块的叠加处理层的输入端,所述当前基本块的叠加处理层的输出端与下一基本块的叠加处理层的输入端相连,所述当前基本块的叠加处理层用于将上一基本块的批处理归一化层的输出内容和当前基本块中的批处理归一化层的输出内容进行叠加处理,并输入到所述下一基本块的叠加处理层中;
对所述二值神经网络进行训练。
可选地,所述多个基本块包括相邻的第一基本块和第二基本块,所述第一基本块与所述第二基本块之间连接有相同的带参数激活函数;
多个相邻的所述第一基本块与第二基本块组成基本单元,相邻的所述基本单元之间连接有线性整流函数。
可选地,所述对所述二值神经网络进行训练,包括:
利用目标恒等函数,分别对所述第一基本块和所述第二基本块进行比例参数配置,使得所述第一基本块具有第一比例参数,所述第二基本块具有第二比例参数,其中,所述目标恒等函数指示所述第一基本块和所述第二基本块形成的结构在经由参数配置后的输入和输出等于其未经参数配置后的输入和输出;
对经由参数配置后的所述第一基本块、所述第二基本块以及两者之间的带参数激活函数层进行训练。
可选地,所述对所述二值神经网络进行训练,包括:
为所述二值神经网络中的每个基本块中的二值卷积层配置群数目相同的二值卷积群;
基于所述二值卷积群,对每个基本块中的二值卷积层进行参数调整,以对所述二值神经网络进行训练。
可选地,所述确定所述二值神经网络,包括:
确定神经网络模型;
对所述神经网络模型进行去比例因子处理,得到所述二值神经网络。
可选地,所述神经网络模型为Bi-Real Net神经网络模型。
本发明另一实施例同时提供一种训练装置,包括:
确定模块,用于确定所述二值神经网络,所述二值神经网络从输入层到输出层的方向上包括多个基本块,每个所述基本块包括二值激活函数层、二值卷积层、批处理归一化层及叠加处理层,其中,当前基本块中的二值卷积层的输出端直接接入所述当前基本块的批处理归一化层的输入端,所述当前基本块中的批处理归一化层的输出端和前一基本块的批处理归一化层的输出端同时接入至所述当前基本块的叠加处理层的输入端,所述当前基本块的叠加处理层的输出端与下一基本块的叠加处理层的输入端相连,所述当前基本块的叠加处理层用于将上一基本块的批处理归一化层的输出内容和当前基本块中的批处理归一化层的输出内容进行叠加处理,并输入到所述下一基本块的叠加处理层中;
训练模块,用于对所述二值神经网络进行训练。
可选地,所述多个基本块包括相邻的第一基本块和第二基本块,所述第一基本块与所述第二基本块之间连接有相同的带参数激活函数;
多个相邻的所述第一基本块与第二基本块组成基本单元,相邻的所述基本单元之间连接有线性整流函数。
可选地,所述训练模块还用于:
利用目标恒等函数,分别对所述第一基本块和所述第二基本块进行比例参数配置,使得所述第一基本块具有第一比例参数,所述第二基本块具有第二比例参数,其中,所述目标恒等函数指示所述第一基本块和所述第二基本块形成的结构在经由参数配置后的输入和输出等于其未经参数配置后的输入和输出;
对经由参数配置后的所述第一基本块、所述第二基本块以及两者之间的带参数激活函数层进行训练。
可选地,所述训练模块还用于:
为所述二值神经网络中的每个基本块中的二值卷积层配置群数目相同的二值卷积群;
基于所述二值卷积群,对每个基本块中的二值卷积层进行参数调整,以对所述二值神经网络进行训练。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比值绘制的。附图中:
图1为本申请的一个实施例提供的二值神经网络的训练方法示意图;
图2为本申请的另一实施例提供的二值神经网络的结构示意图;
图3为本申请的另一实施例提供的全参数线性整流函数的演变函数图;
图4为本申请的另一实施例提供的实验对比图;
图5为本申请的另一实施例提供的实验对比图;
图6为本申请的另一实施例提供的的实验对比图;
图7为本申请的另一实施例提供的训练装置的结构框图。
具体实施方式
下面结合本发明实施例附图进一步说明本发明实施例具体实现。图1为本申请的一个实施例提供的二值神经网络的训练方法示意图。如图1所示,本发明实施例提供一种二值神经网络的训练方法,包括:
确定二值神经网络,二值神经网络从输入层到输出层的方向上包括多个基本块,每个基本块包括二值激活函数层、二值卷积层、批处理归一化层及叠加处理层,其中,当前基本块中的二值卷积层的输出端直接接入当前基本块的批处理归一化层的输入端,当前基本块中的批处理归一化层的输出端和前一基本块的批处理归一化层的输出端同时接入至当前基本块的叠加处理层的输入端,当前基本块的叠加处理层的输出端与下一基本块的叠加处理层的输入端相连,当前基本块的叠加处理层用于将上一基本块的批处理归一化层的输出内容和当前基本块中的批处理归一化层的输出内容进行叠加处理,并输入到下一基本块的叠加处理层中;
对二值神经网络进行训练。
本实施例中的二值神经网络与以往的神经网络相比,去除了比例因子,同时调整了各个层的输入与输出端的连接关系,经过本实施例中上述设置方式形成的二值神经网络的鉴别能力得到了有效的增强,即准确性得到了有效增强。
具体地,目前的二值神经网络都是要求减小量化误差,一个非常基本的思想是引入几个缩放因子来重新加权二值卷积的输出,这样缩放后的输出就可以像使用实值运算一样接近结果。然而,随着量化误差的减小,BNN(二值神经网络)的鉴别能力将被削弱。如图所示,在MNIST数据集上使用4层结构(初始采用全精度卷积层、基本块结构、一个全连接(FC)层)进行实验,记录的精度和量化误差(称为Q误差)基于5种不同情况运行时的精度情况。首先在线性情况下(linear),采用全精度权值和激活函数,量化误差为0。在XNOR-Net情况下,对二值卷积层采用设置比例因子,而在PI神经网络中,无比例因子。与线性和PI两种情况下相比,PI虽然由于二值而产生较大的量化误差,但精度较高。同时,通过设置比例因子使最小化XNOR-Net的量化误差后,并没有为二值神经网络带来明显的精度增益。也就是,当量化误差优化为0时,二值神经网络中唯一的非线性函数是二值函数,如果带尺度因子的二值卷积能很好地模拟极端情况下(量化误差等于0)的实值卷积,则二值函数的非线性将被消除,从而阻碍BNNs的判别能力。因此可知,非线性二值函数具有潜在的判别能力,即使在不使用其他非线性模块(如ReLU(线性整流函数))的情况下也能实现较高的精度。故本实施例中去除了比例因子,不再限制量化误差必须为0,同时本实施例中改变了批处理归一化层(BN层)的输入与输出端的连接关系,使得批处理归一化层(BN)在二值卷积处理之后,可在二值运算的获取和量化误差的减少之间起到微妙的平衡作用,进而提高二值神经网络的精度。
进一步地,本实施例在确定二值神经网络时,包括:
确定神经网络模型;
对神经网络模型进行去比例因子处理,得到二值神经网络。
可选地,本实施例中的神经网络模型为Bi-Real Net神经网络模型,当然也可为其他类型的神经网络模型。
进一步地,如图2所示,本实施例中的多个基本块包括相邻的第一基本块和第二基本块,第一基本块与第二基本块之间连接有相同的带参数激活函数;
多个相邻的第一基本块与第二基本块组成基本单元,相邻的基本单元之间连接有线性整流函数。
例如,线性整流函数可以为ReLU函数,而带参数激活函数可以为全参数的ReLU函数。本实施例中之所以采用上述设置方式是因为非线性二值可能不足以使二值神经网络成为高度判别结构。为了提高神经网络精度,本实施例采用了与现有技术中普遍存在的,在BNNs中大量采用PReLU(带参数的线性整流函数)来增强辨别能力的趋势相反的方法,提出减少,控制线性整流函数的使用,以使ReLU函数可以具有更好的整流性能。例如,在PI神经网络中的PreLU(带参数的ReLU函数)层和ReLU层上分别添加了PReLU层和ReLU层,即增加线性整流函数的使用。如图4所示,PI神经网络的精度并没有实现进一步的增强,而继续结合表1,ReLU函数由于具有更强的非线性能力,故其带来了额外的精度增益。但是,ReLU函数也并非多多益善,其很容易造成大的不可逆的信息崩溃,导致训练恶化和分化,特别是对于大规模数据集上的BNN的训练。故为了缓解这种情况,本实施例提出应控制ReLU函数的数量以保证训练的稳定性的结论。因此,本实施例为了进一步提高BNN的判别能力,同时保证其稳定性,提出带参数激活函数,具体可为全参数ReLU函数,简称FPReLUs。本实施例中每相邻的第一基本块和第二基本块之间均设置有FPReLUs,而并非ReLU函数。但是FPReLUs的线性调整力度有限,为了提高非线性,本实施例中将多个第一基本块与第二基本块设置形成基本单元,每个基本单元内包含的基本块数量不限,可根据实际情况而定,相邻两个基本单元之间可通过ReLU函数相连。
进一步地,本实施例对二值神经网络进行训练,包括:
利用目标恒等函数,分别对第一基本块和第二基本块进行比例参数配置,使得第一基本块具有第一比例参数,第二基本块具有第二比例参数,其中,目标恒等函数指示第一基本块和第二基本块形成的结构在经由参数配置后的输入和输出等于其未经参数配置后的输入和输出;
对经由参数配置后的第一基本块、第二基本块以及两者之间的带参数激活函数层进行训练。
例如,如图3所示,具体训练时可从一个恒等函数开始,逐渐演变,通过可学习的斜率以补偿激活层两侧的非线性。
进一步地,本实施例对二值神经网络进行训练,包括:
为二值神经网络中的每个基本块中的二值卷积层配置群数目相同的二值卷积群;
基于二值卷积群,对每个基本块中的二值卷积层进行参数调整,以对二值神经网络进行训练。
具体地,由于参数和特征的极端量化,二值神经网络的压缩能力较差为解决该技术问题,本实施例优选采用齐次群卷积对神经网络进行训练,以通过增加BNN容量,从而获得更高的精度。另外,本实施例为了确定群卷积与BNN容量之间的关系,进行了如下实验:首先将原有的二值卷积转换为二值群卷积,改变群数,同时保持总体计算成本不变(每组信道数随着群数的增加而减少)。其次,分别对不同深度的BNN采用同一种策略,进一步研究深度变化对BNN的影响。在这些BNN中,保持所有二值卷积层具有相同的组号(即齐次版本)。此外,避免使用繁重的全精度操作(例如,初始的全精度卷积层很窄,仅在简化块的捷径中使用平均池化),以使二值神经网络结构紧凑、计算效率高。通过上述实验得到的结论是,随着BNN深度的增加(例如具有34层或更多的BNN),群卷积对BNN容量的增加有积极的影响,并带来更好的预测性能。
进一步地,为了验证本实施例中的二值神经网络的精度与稳定性更佳,本实施例在每四个基本块中插入一个ReLU函数,在其他基本块之间插入FPReLU函数。所有的模型训练用Adam优化器,epochs为60,在Pytorch环境下,学习速率从0.01开始,初始学习速率为0.01,BNN基线采用多步衰减方式(在epoch为45和55,衰减速率为0.1),BNN组采用余弦形状方案(训练结束时接近于0)。将所有二值卷积层的权值衰减设为0,训练中使用STE。本次实验是在具有挑战性的ImageNet基准(ILSVRC 2012)上进行的。首先,对本实施例的BNN进行基线消融实验,由于缺乏适当的非线性引入,Bi-Real Net网络结构在朴素训练方案下退化。通过去掉比例因子,精度得到提高,这表明对于大规模数据集,有意减少量化误差可能没有必要。接着,基于着重于不同非线性模块的有效性实验确定出ReLU函数仍然是本实施例中BNN的使用首选,因为它具有更强的判别能力。进一步地,例如,如图5所示,在本实施例的BNN中仅插入4个ReLUs(4=16/4)时,其Top-1的准确率就比所有块都与PReLU函数连接的BNN高0.7%。由于ReLU函数是PReLU函数的一个特例,这表明ReLU函数已经是PReLU函数的一个不错的局部最优解,其具有很强的非线性,可使得BNN的优化更加容易。同时,如果ReLU函数的使用是无限的,那么BNN也很容易出现分歧,这说明二值体系结构与全精度对等体不同,二值神经网络应该避免滥用而导致特征空间中出现严重的信息崩溃。
本实施例中通过控制ReLUs的个数,同时引入较弱的非线性函数,从而直接而有效的控制非线性,既能使模型的判别能力最大化,又能保证模型的稳定性,即通过在基本块间设置全参数ReLU函数,而在基本单元间设置来实现ReLU函数实现。与采用PReLU的方法相比,本实施例提出的采用全参数ReLU函数的方法能够更好地满足非线性要求,该全参数ReLU函数可以从一个单位映射演化而来,并通过逐步调整其形状来补偿非线性,从而获得更高的精度,同时使BNN也获得更高的精度。
进一步地,可通过约束计算成本不变,扩大FTBNN模型容量实现准确性和计算成本之间的权衡。例如,不使用组卷积的最简单的FTBNN组模型(即,group=1)可以有效地超过FTBNN基线(top-1精度为61.9%vs.60.2%,计算预算为90M vs.163M)。从图6中可以看出,对于相对较浅的二值网络,不同的预算约束对群卷积都没有影响。而增加组数显然可以引入更好的拟合,这表明BNN的表征能力增加。这一现象可以在34层中发现。另一方面,这种对更深层次网络的积极影响可以使验证集具有更高的准确性,这意味着BNN的辨别能力也随之增强。在深度BNN上,组=5的实验都比组=1执行的实验有明显的准确率提升,例如Layer=34的准确率从61.0%提高到62.5%,Layer=44的准确率从63.3%提高到65.3%。因此,本实施例中的二值神经网络的容量应相对较大,或者说,对于需使用大容量的二值神经网络时,本实施例中训练形成的二值神经网络的稳定性及准确性更高。
如图6所示,经实验可知,本实施例中的即使与使用多个基或分支的方法相比,也能够获得更好的性能,同时具有更少的计算开销,提高了训练的有效性和效率。此外,与ReActNet神经网络相比,其基于ResNet-18的top-1准确率为65.9%。但是,ReActNet采用了包含知识精馏的多步训练,而本申请都是通过epoch=60从头训练得到的,并且达到了65.5%top-1的精度,故综合比较可知,基于本申请训练方法得到的二值神经网络的综合能力更佳。
综上,本实施例中通过去除二值神经网络中的比例因子,控制线性整流函数的使用数量,并插入全参数线性整流函数,以及使用齐次群卷积参与训练的方法有效提高了训练的有效性及效率,提升了训练后的二值神经网络的稳定性及准确性。
如图7所示,本发明另一实施例同时提供一种训练装置,包括:
确定模块,用于确定二值神经网络,二值神经网络从输入层到输出层的方向上包括多个基本块,每个基本块包括二值激活函数层、二值卷积层、批处理归一化层及叠加处理层,其中,当前基本块中的二值卷积层的输出端直接接入当前基本块的批处理归一化层的输入端,当前基本块中的批处理归一化层的输出端和前一基本块的批处理归一化层的输出端同时接入至当前基本块的叠加处理层的输入端,当前基本块的叠加处理层的输出端与下一基本块的叠加处理层的输入端相连,当前基本块的叠加处理层用于将上一基本块的批处理归一化层的输出内容和当前基本块中的批处理归一化层的输出内容进行叠加处理,并输入到下一基本块的叠加处理层中;
训练模块,用于对二值神经网络进行训练。
可选地,多个基本块包括相邻的第一基本块和第二基本块,第一基本块与第二基本块之间连接有相同的带参数激活函数;
多个相邻的第一基本块与第二基本块组成基本单元,相邻的基本单元之间连接有线性整流函数。
可选地,训练模块还用于:
利用目标恒等函数,分别对第一基本块和第二基本块进行比例参数配置,使得第一基本块具有第一比例参数,第二基本块具有第二比例参数,其中,目标恒等函数指示第一基本块和第二基本块形成的结构在经由参数配置后的输入和输出等于其未经参数配置后的输入和输出;
对经由参数配置后的第一基本块、第二基本块以及两者之间的带参数激活函数层进行训练。
可选地,训练模块还用于:
为二值神经网络中的每个基本块中的二值卷积层配置群数目相同的二值卷积群;
基于二值卷积群,对每个基本块中的二值卷积层进行参数调整,以对二值神经网络进行训练。
可选地,确定模块还用于:
确定神经网络模型;
对所述神经网络模型进行去比例因子处理,得到所述二值神经网络。
可选地,神经网络模型为Bi-Real Net神经网络模型。
本实施例的装置用于实现前述多个方法实施例中相应的方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
进一步地,本申请另一实施例还提供一种电子设备,包括:
一个或多个处理器;
存储器,配置为存储一个或多个程序;
当该一个或多个程序被该一个或多个处理器执行时,使得该一个或多个处理器实现上述方法。
本申请一实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。应理解,本实施例中的各个方案具有上述方法实施例中对应的技术效果,此处不再赘述。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可执行指令在被执行时使至少一个处理器执行诸如上文所述实施例中的方法。应理解,本实施例中的各个方案具有上述方法实施例中对应的技术效果,此处不再赘述。
本申请实施例可以应用于以多种设备,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)其他具有数据交互功能的电子设备。
至此,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种二值神经网络的训练方法,其特征在于,包括:
确定所述二值神经网络,所述二值神经网络从输入层到输出层的方向上包括多个基本块,每个所述基本块包括二值激活函数层、二值卷积层、批处理归一化层及叠加处理层,其中,当前基本块中的二值卷积层的输出端直接接入所述当前基本块的批处理归一化层的输入端,所述当前基本块中的批处理归一化层的输出端和前一基本块的批处理归一化层的输出端同时接入至所述当前基本块的叠加处理层的输入端,所述当前基本块的叠加处理层的输出端与下一基本块的叠加处理层的输入端相连,所述当前基本块的叠加处理层用于将上一基本块的批处理归一化层的输出内容和当前基本块中的批处理归一化层的输出内容进行叠加处理,并输入到所述下一基本块的叠加处理层中;
对所述二值神经网络进行训练。
2.根据权利要求1所述的方法,其中,所述多个基本块包括相邻的第一基本块和第二基本块,所述第一基本块与所述第二基本块之间连接有相同的带参数激活函数;
多个相邻的所述第一基本块与第二基本块组成基本单元,相邻的所述基本单元之间连接有线性整流函数。
3.根据权利要求2所述的方法,其中,所述对所述二值神经网络进行训练,包括:
利用目标恒等函数,分别对所述第一基本块和所述第二基本块进行比例参数配置,使得所述第一基本块具有第一比例参数,所述第二基本块具有第二比例参数,其中,所述目标恒等函数指示所述第一基本块和所述第二基本块形成的结构在经由参数配置后的输入和输出等于其未经参数配置后的输入和输出;
对经由参数配置后的所述第一基本块、所述第二基本块以及两者之间的带参数激活函数层进行训练。
4.根据权利要求1所述的方法,其中,所述对所述二值神经网络进行训练,包括:
为所述二值神经网络中的每个基本块中的二值卷积层配置群数目相同的二值卷积群;
基于所述二值卷积群,对每个基本块中的二值卷积层进行参数调整,以对所述二值神经网络进行训练。
5.根据权利要求1所述的方法,其中,所述确定所述二值神经网络,包括:
确定神经网络模型;
对所述神经网络模型进行去比例因子处理,得到所述二值神经网络。
6.根据权利要求5所述的方法,其中,所述神经网络模型为Bi-Real Net神经网络模型。
7.一种训练装置,其特征在于,包括:
确定模块,用于确定所述二值神经网络,所述二值神经网络从输入层到输出层的方向上包括多个基本块,每个所述基本块包括二值激活函数层、二值卷积层、批处理归一化层及叠加处理层,其中,当前基本块中的二值卷积层的输出端直接接入所述当前基本块的批处理归一化层的输入端,所述当前基本块中的批处理归一化层的输出端和前一基本块的批处理归一化层的输出端同时接入至所述当前基本块的叠加处理层的输入端,所述当前基本块的叠加处理层的输出端与下一基本块的叠加处理层的输入端相连,所述当前基本块的叠加处理层用于将上一基本块的批处理归一化层的输出内容和当前基本块中的批处理归一化层的输出内容进行叠加处理,并输入到所述下一基本块的叠加处理层中;
训练模块,用于对所述二值神经网络进行训练。
8.根据权利要求7所述的训练装置,其中,所述多个基本块包括相邻的第一基本块和第二基本块,所述第一基本块与所述第二基本块之间连接有相同的带参数激活函数;
多个相邻的所述第一基本块与第二基本块组成基本单元,相邻的所述基本单元之间连接有线性整流函数。
9.根据权利要求8所述的训练装置,其中,所述训练模块还用于:
利用目标恒等函数,分别对所述第一基本块和所述第二基本块进行比例参数配置,使得所述第一基本块具有第一比例参数,所述第二基本块具有第二比例参数,其中,所述目标恒等函数指示所述第一基本块和所述第二基本块形成的结构在经由参数配置后的输入和输出等于其未经参数配置后的输入和输出;
对经由参数配置后的所述第一基本块、所述第二基本块以及两者之间的带参数激活函数层进行训练。
10.根据权利要求7所述的训练装置,其中,所述训练模块还用于:
为所述二值神经网络中的每个基本块中的二值卷积层配置群数目相同的二值卷积群;
基于所述二值卷积群,对每个基本块中的二值卷积层进行参数调整,以对所述二值神经网络进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110769341.5A CN113592065A (zh) | 2021-07-07 | 2021-07-07 | 一种二值神经网络的训练方法及训练装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110769341.5A CN113592065A (zh) | 2021-07-07 | 2021-07-07 | 一种二值神经网络的训练方法及训练装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113592065A true CN113592065A (zh) | 2021-11-02 |
Family
ID=78246213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110769341.5A Pending CN113592065A (zh) | 2021-07-07 | 2021-07-07 | 一种二值神经网络的训练方法及训练装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113592065A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114049539A (zh) * | 2022-01-10 | 2022-02-15 | 杭州海康威视数字技术股份有限公司 | 基于去相关二值网络的协同目标识别方法、系统及装置 |
-
2021
- 2021-07-07 CN CN202110769341.5A patent/CN113592065A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114049539A (zh) * | 2022-01-10 | 2022-02-15 | 杭州海康威视数字技术股份有限公司 | 基于去相关二值网络的协同目标识别方法、系统及装置 |
CN114049539B (zh) * | 2022-01-10 | 2022-04-26 | 杭州海康威视数字技术股份有限公司 | 基于去相关二值网络的协同目标识别方法、系统及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12073309B2 (en) | Neural network device and method of quantizing parameters of neural network | |
CN108304921B (zh) | 卷积神经网络的训练方法及图像处理方法、装置 | |
US10628345B2 (en) | Enhancing processing performance of a DNN module by bandwidth control of fabric interface | |
CN108345580B (zh) | 一种词向量处理方法及装置 | |
US10929746B2 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
US20200097828A1 (en) | Processing method and accelerating device | |
US20210089871A1 (en) | Processing system and method for binary weight convolutional neural network | |
CN107944545B (zh) | 应用于神经网络的计算方法及计算装置 | |
CN112860758A (zh) | 搜索方法、装置、电子设备及计算机存储介质 | |
CN113592065A (zh) | 一种二值神经网络的训练方法及训练装置 | |
CN115660070A (zh) | 一种对抗生成神经网络压缩方法 | |
CN116151363A (zh) | 分布式强化学习系统 | |
WO2024159917A1 (zh) | 数据处理方法、装置及设备 | |
CN117540825A (zh) | 基于强化学习的预训练模型的构建方法及装置和电子设备 | |
CN107247704A (zh) | 词向量处理方法、装置以及电子设备 | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
CN116402113A (zh) | 一种任务执行的方法、装置、存储介质及电子设备 | |
CN112418388A (zh) | 一种实现深度卷积神经网络处理的方法及装置 | |
CN111788582A (zh) | 电子设备及其控制方法 | |
CN113222121B (zh) | 一种数据处理方法、装置及设备 | |
WO2021233389A1 (zh) | 增强深度学习模型鲁棒性的方法及装置 | |
CN112132272B (zh) | 神经网络的计算装置、处理器和电子设备 | |
JP7551665B2 (ja) | 高精度のニューラル処理要素 | |
CN110929871A (zh) | 博弈决策方法和系统 | |
CN114723024A (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 |