一种卷积神经网络训练方法及装置制造方法及图纸

技术编号:20867990 阅读:29 留言:0更新日期:2019-04-17 09:38
本申请公开了一种卷积神经网络的训练方法及装置,采用第一神经网络和第二神经网络同时训练的方式。在训练过程中,第二神经网络的卷积核参数是第一神经网络对自身的卷积核参数进行量化之后传递给第二神经网络的;第一神经网络的卷积核参数的权重的更新,受到第二神经网络的约束,具体地,用于第一神经网络的卷反向传播计算中的第三差值Delta1′,是利用第二神经网络的损失函数计算得到的第二差值Delta2,更新利用第一神经网络的损失函数确定的第一差值Delta1得到的。利用本申请实施例的方法,可以同时训练得到原始卷积神经网络模型和量化卷积神经网络模型。无需用户手动执行加载原始卷积神经网络模型的步骤,提升了得到量化卷积神经网络模型的效率。

【技术实现步骤摘要】
一种卷积神经网络训练方法及装置
本申请涉及深度学习领域,特别是涉及一种卷积神经网络训练方法及装置。
技术介绍
随着科学技术的发展,深度学习在图像检测以及语音识别等领域体现出巨大的优势。卷积神经网络是深度学习的一种重要算法。但是由于卷积神经网络模型的计算量巨大,因此在一些应用场景例如在嵌入式设备中无法直接使用,而需要对原始卷积神经网络模型进行量化,以减少卷积神经网络模型的计算量。目前,可以采用如下方式对原始卷积神经网络模型进行量化:第一步:通过如下步骤A1-A7训练原始卷积神经网络模型。A1:按照正态分布随机初始化卷积神经网络的各个卷积核初始值数据。A2:按照卷积神经网络结构前向计算。A3:如果损失函数达到给定阈值,执行A7,否则,执行A4。A4:按照卷积神经网络结构反向传播计算。A5:按照卷积神经网络结构更新卷积核等权重。A6:重复A2、A3、A4和A5反复进行训练。A7:保存卷积神经网络的模型数据,模型数据即为卷积神经网络结构以及各个卷积核相关值。第二步:通过如下步骤B1-B7利用第一步生成的原始卷积神经网络模型生成量化模型。B1:加载原始卷积神经网络模型(此为用户手动执行的步骤)。B2:根据量化方法对加载的网络模型参数进行量化。B3:评估B2中的量化结果即量化卷积神经网络模型的识别效果。B4:如果B3中评估的识别效果达到目标,跳转到B7。B5:更新量化卷积神经网络模型的参数。B6:重复B2、B3、B4和B5反复进行训练。B7:保存卷积神经网络模型的模型数据。第三步:比较第二步生成的量化卷积神经网络模型的识别效果和第一步原始卷积神经网络模型的识别效果,如果二者相差太大,则反复执行以上第一步和第二步的训练工作,直至二者之间的差距满足条件为止。由此可见,目前对原始卷积神经网络进行量化的方式,由于上述第二步中包含需要用户手动执行的步骤,因此在反复执行以上第一步和第二步的训练工作时,需要用户反复手动执行加载原始卷积神经网络模型的步骤,得到量化卷积神经网络模型的效率比较低。
技术实现思路
本申请所要解决的技术问题是由于需要用户手动载入原始卷积神经网络模型,使得得到量化卷积神经网络模型的效率比较低,提供一种卷积神经网络训练方法及装置。第一方面,本申请实施例提供了一种卷积神经网络训练方法,包括如下步骤:第一步:初始化第一神经网络的各个卷积核参数的取值;第二步:按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化方法,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;第三步:判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;第四步:按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;第五步:按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;第六步:返回执行所述第二步进行训练;第七步:保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。可选的,所述利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,包括:利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。可选的,利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′,包括:Delta1′=Delta1*(1-alpha)+Delta2*alpha;其中,所述alpha为大于等于0,且小于等于1的值。可选的,所述方法还包括:保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。可选的,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型;所述方法还包括:获取输入数据;分别将所述输入数据作为所述第一神经网络模型和所述第二神经网络模型的输入,得到所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果;判断所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果之间的符合程度是否满足预设条件。第二方面,本申请实施例提供了一种卷积神经网络训练装置,包括:初始化单元,用于初始化第一神经网络的各个卷积核参数的取值;前向计算与传递单元,用于按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化装置,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;第一判断单元,用于判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;反向传播计算单元,用于按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;权重更新单元,用于按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;循环单元,返回执行所述第二步进行训练;第一保存单元,用于保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。可选的,所述利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,包括:利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。可选的,利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′,包括:Delta1′=Delta1*(1-alpha)+Delta2*alpha;其中,所述alpha为大于等于0,且小于等于1的值。可选的,所述装置还包括:第二保存单元,用于保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。可选的,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型;本文档来自技高网
...

【技术保护点】
1.一种卷积神经网络训练方法,其特征在于,包括如下步骤:第一步:初始化第一神经网络的各个卷积核参数的取值;第二步:按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化方法,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;第三步:判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;第四步:按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;第五步:按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;第六步:返回执行所述第二步进行训练;第七步:保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。...

【技术特征摘要】
1.一种卷积神经网络训练方法,其特征在于,包括如下步骤:第一步:初始化第一神经网络的各个卷积核参数的取值;第二步:按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化方法,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;第三步:判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;第四步:按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;第五步:按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;第六步:返回执行所述第二步进行训练;第七步:保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。2.根据权利要求1所述的方法,其特征在于,所述利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,包括:利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。3.根据权利要求2所述的方法,其特征在于,利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′,包括:Delta1′=Delta1*(1-alpha)+Delta2*alpha;其中,所述alpha为大于等于0,且小于等于1的值。4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。5.根据权利要求4所述的方法,其特征在于,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型;所述方法还包括:获取输入数据;分别将所述输入数据作为所述第一神经网络模型和所述第二神经网络模型的输入,得到所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果;判断所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果之间的符合程度是否满足预设条件。6.一种卷积神经网络训练装置,其特征在于,包括:初始化单元,用于初始化第一...

【专利技术属性】
技术研发人员:贾书军程帅袁淮刘威
申请(专利权)人:东软睿驰汽车技术沈阳有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1