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

技术编号:20797819 阅读:65 留言:0更新日期:2019-04-06 11:26
本申请公开了一种卷积神经网络的训练方法验证方法及装置,在对神经网络进行训练时,对前向计算中的激活计算进行了改进,将传统技术中的若激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/10,改进为激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/2

A Training Method, Verification Method and Device of Convolutional Neural Network

This application discloses a method and device for verifying the training method of convolutional neural network. When training the neural network, the activation calculation in forward calculation is improved. If the input data of activation calculation in traditional technology is less than 0, the input data is modified to 1/10 of the input data, and the input data of activation calculation is improved to be less than 0. Value, then the input data is modified to 1/2 of the input data

【技术实现步骤摘要】
一种卷积神经网络的训练方法、验证方法及装置
本申请涉及深度学习领域,特别是涉及一种卷积神经网络的训练方法。验证方法及装置。
技术介绍
目前,深度学习在图像检测、语音识别等领域的应用越来越广泛,卷积神经网络是深度学习的一种重要算法。由于卷积神经网络的计算量比较大,因此相对来讲计算效率比较低。而卷积神经网络的计算效率在一定程度上限制了其在一些场景例如手机等终端设备中的应用。因此,如何提升卷积神经网络的计算效率,是目前急需解决的问题。
技术实现思路
本申请所要解决的技术问题是如何提升卷积神经网络的计算效率,提供一种卷积神经网络的训练方法、验证方法及装置。第一方面,本申请实施例提供了一种卷积神经网络的训练方法,所述方法包括:第一步:初始化神经网络的各个卷积核参数的初始值;第二步:按照所述神经网络的结构进行前向计算;其中,所述前向计算中的激活计算具体为:若所述激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/2n,其中n为正整数;若所述激活计算的输入数据为大于或者等于0的值,则保持所述输入数据的值不变;第三步:判断所述神经网络的损失函数是否达到给定阈值,或者,所述神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;第四步:按照所述神经网络的神经网络结构进行反向传播计算;第五步:按照所述神经网络的神经网络结构更新所述神经网络的卷积核参数的权重;第六步:返回执行所述第二步进行训练;第七步:保存所述神经网络对应的网络结构以及训练得到的神经网络模型。可选的,所述n=3或者,所述n=4。第二方面,本申请实施例提供了一种卷积神经网络的验证方法,应用于ARM处理器,所述方法包括:获取目标输入数据;将所述目标输入数据作为神经网络模型的输入,计算得到所述卷积神经网络的输出结果;其中,所述神经网络模型为利用如权利要求1-2任意一项的方法训练得到的。可选的,在计算得到所述卷积神经网络的输出结果的过程中,包括激活计算;所述激活计算具体包括:利用ARM处理器的单指令、多数据扩展结构NEON的比较函数,确定所述激活计算的输入数据是否小于0;如果是,则将所述小于0的输入数据执行取反操作,并将取反之后得到的数据执行向左移位n位的操作;将执行所述向左移位n位的操作之后得到的数据执行取反操作。可选的,在计算得到所述卷积神经网络的输出结果的过程中,包括最大池化;所述最大池化具体包括:利用ARM处理器的单指令、多数据扩展结构NEON的取最大值函数,确定所述池化的输入数据中的最大值。第三方面,本申请实施例提供了一种卷积神经网络的训练装置,所述装置包括:初始化单元,用于初始化神经网络的各个卷积核参数的初始值;前向计算单元,用于按照所述神经网络的结构进行前向计算;其中,所述前向计算中的激活计算具体为:若所述激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/2n,其中n为正整数;若所述激活计算的输入数据为大于或者等于0的值,则保持所述输入数据的值不变;判断单元,用于判断所述神经网络的损失函数是否达到给定阈值,或者,所述神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;反向传播计算单元,用于按照所述神经网络的神经网络结构进行反向传播计算;权重更新单元,用于按照所述神经网络的神经网络结构更新所述神经网络的卷积核参数的权重;循环单元,用于返回执行所述第二步进行训练;保存单元,用于保存所述神经网络对应的网络结构以及训练得到的神经网络模型。可选的,所述n=3或者,所述n=4。第四方面,本申请实施例提供了一种卷积神经网络的验证装置,应用于ARM处理器,所述装置包括:获取单元,用于获取目标输入数据;计算单元,用于将所述目标输入数据作为神经网络模型的输入,计算得到所述卷积神经网络的输出结果;其中,所述神经网络模型为利用如权利要求1-2任意一项的方法训练得到的。可选的,在计算得到所述卷积神经网络的输出结果的过程中,包括激活计算;所述激活计算具体包括:利用ARM处理器的单指令、多数据扩展结构NEON的比较函数,确定所述激活计算的输入数据是否小于0;如果是,则将所述小于0的输入数据执行取反操作,并将取反之后得到的数据执行向左移位n位的操作;将执行所述向左移位n位的操作之后得到的数据执行取反操作。可选的,在计算得到所述卷积神经网络的输出结果的过程中,包括最大池化;所述最大池化具体包括:利用ARM处理器的单指令、多数据扩展结构NEON的取最大值函数,确定所述池化的输入数据中的最大值。与现有技术相比,本申请实施例具有以下优点:本申请实施例提供的卷积神经网络的训练方法,在对神经网络进行训练时,对前向计算中的激活计算进行了改进,将传统技术中的若激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/10,改进为激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/2n,其中,n为正整数。因为将一个数据修改为原来的1/2n,可以通过移位操作来实现,效率远远高于将一个数据修改为原来的1/10。因此,利用本申请实施例提供的训练方法训练得到神经网络模型,在进行前向运算时,由于在进行激活计算时提升了计算效率,因此,整个神经网络模型的计算效率也得到了提升。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种卷积神经网络的训练方法的流程示意图;图2为本申请实施例提供的一种卷积神经网络的验证方法的流程示意图;图3为本申请实施例提供的一种激活计算的计算方法的流程示意图;图4为本申请实施例中一种卷积神经网络的训练装置的结构示意图;图5为本申请实施例中一种卷积神经网络的验证装置的结构示意图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。一方面,本申请的专利技术人经过研究发现,现有技术中,由于卷积神经网络的计算量比较大,因此相对来讲计算效率比较低。而卷积神经网络的计算效率在一定程度上限制了其在一些场景例如手机等终端设备中的应用。因此,如何提升卷积神经网络的计算效率,是目前急需解决的问题。另一方面,本申请的专利技术人经过研究发现,在传统技术中,卷积神经网络的前向计算中的激活计算在具体实现时,是若激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/10。而由于计算机存储的均为二进制数据,将一个数据修改为原来的1/10,操作效率比较低。若将一个数据修改为原来的1/2n,操作效率会提升很多。鉴于此,本申请实施例提供了一种卷积神经网络的训练方法,在对神经网络进行训练时,对前向计算中的激活计算进行了改进,将传统技术中的若激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入本文档来自技高网
...

【技术保护点】
1.一种卷积神经网络的训练方法,其特征在于,所述方法包括:第一步:初始化神经网络的各个卷积核参数的初始值;第二步:按照所述神经网络的结构进行前向计算;其中,所述前向计算中的激活计算具体为:若所述激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/2n,其中n为正整数;若所述激活计算的输入数据为大于或者等于0的值,则保持所述输入数据的值不变;第三步:判断所述神经网络的损失函数是否达到给定阈值,或者,所述神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;第四步:按照所述神经网络的神经网络结构进行反向传播计算;第五步:按照所述神经网络的神经网络结构更新所述神经网络的卷积核参数的权重;第六步:返回执行所述第二步进行训练;第七步:保存所述神经网络对应的网络结构以及训练得到的神经网络模型。

【技术特征摘要】
1.一种卷积神经网络的训练方法,其特征在于,所述方法包括:第一步:初始化神经网络的各个卷积核参数的初始值;第二步:按照所述神经网络的结构进行前向计算;其中,所述前向计算中的激活计算具体为:若所述激活计算的输入数据为小于0的值,则将所述输入数据修改为所述输入数据的1/2n,其中n为正整数;若所述激活计算的输入数据为大于或者等于0的值,则保持所述输入数据的值不变;第三步:判断所述神经网络的损失函数是否达到给定阈值,或者,所述神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;第四步:按照所述神经网络的神经网络结构进行反向传播计算;第五步:按照所述神经网络的神经网络结构更新所述神经网络的卷积核参数的权重;第六步:返回执行所述第二步进行训练;第七步:保存所述神经网络对应的网络结构以及训练得到的神经网络模型。2.根据权利要求1所述的方法,其特征在于,所述n=3或者,所述n=4。3.一种卷积神经网络的验证方法,其特征在于,应用于ARM处理器,所述方法包括:获取目标输入数据;将所述目标输入数据作为神经网络模型的输入,计算得到所述卷积神经网络的输出结果;其中,所述神经网络模型为利用如权利要求1-2任意一项的方法训练得到的。4.根据权利要求3所述的方法,其特征在于,在计算得到所述卷积神经网络的输出结果的过程中,包括激活计算;所述激活计算具体包括:利用ARM处理器的单指令、多数据扩展结构NEON的比较函数,确定所述激活计算的输入数据是否小于0;如果是,则将所述小于0的输入数据执行取反操作,并将取反之后得到的数据执行向左移位n位的操作;将执行所述向左移位n位的操作之后得到的数据执行取反操作。5.根据权利要求3所述的方法,其特征在于,在计算得到所述卷积神经网络的输出结果的过程中,包括最大池化;所述最大池化具体包括:利用ARM处理器的单指令、多数据扩展结构NEON的取最大值函数,确定所述池化的输入数据中的最大值。6.一种卷积神经网络的训练装置,其特征在于,...

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

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

1