【技术实现步骤摘要】
一种神经网络训练方法和装置
本申请数据处理领域,并且更具体地,涉及一种神经网络训练方法和装置。
技术介绍
神经网络(如深度神经网络)在计算机视觉、自然语言处理、大数据挖掘等领域得到广泛应用。神经网络计算具有如下两个典型特点:1)计算密集神经网络主要进行的运算为多维矩阵乘法,其计算复杂度一般为O(N3),即完成对N个数据的操作需要耗费的时间跟N的三次方成正比。例如,22层的googlenet(谷歌网络,一种神经元网络结构,由谷歌的研究者提出)一般需要6GFLOPS(Floating-pointOperationsPerSecond,每秒所执行的浮点运算)的计算量。因此对计算硬件和性能优化提出了较高要求。2)访存密集首先,神经网络的训练过程往往需要依赖海量的训练数据,如imagenet2012包含1400万幅图片;其次,神经网络包含上亿级的神经元的连接参数,尤其在训练过程中需要频繁更新;再者,神经网络在运算过程中会产生大量的中间结果,如梯度信息。训练数据、连接权重、中间结果等大量数据的访存开销对于数据存储结构和计算性能优化提出迫切要求。新兴的RRAM器件(阻变式存储器,ResistiveRandomAccessMemory)被认为是提升神经网络计算能效的器件之一。首先,RRAM是一种非易失性的存储器,且具备较高的集成密度,相比闪存FLASH设备有更高的存取速度,且耗电量更低,更合适于进行靠近处理器的数据存取,从而十分适合应用于手机终端等设备中的非易失性的数据存储介质。再者,RRAM存储单元利用阻值可变特性能够表征多值,而非传统存储单元的0和1二值。基于RRAM ...
【技术保护点】
1.一种神经网络训练方法,其特征在于,应用于阻变存储器(Resistive Random Access Memory,RRAM)上,所述方法包括:将神经网络中第r层的神经元输入值
【技术特征摘要】
1.一种神经网络训练方法,其特征在于,应用于阻变存储器(ResistiveRandomAccessMemory,RRAM)上,所述方法包括:将神经网络中第r层的神经元输入值<ri1、ri2……rin>输入到所述RRAM中,根据所述RRAM中的过滤器(filter)对所述神经元输入值<ri1、ri2……rin>进行计算,得到所述神经网络中第r层的神经元输出值<ro1、ro2……rom>,其中,n为大于0的正整数,m为大于0的正整数;根据所述RRAM的核值、所述神经网络中第r层的神经元输入值<ri1、ri2……rin>、所述神经网络中第r层的神经元输出值<ro1、ro2……rom>以及所述神经网络中第r层的反向传播误差值<B1、B2……Bm>进行计算,得到所述神经网络中第r层的反向传播更新值<C1、C2……Cm>;其中,所述RRAM的核值为所述RRAM中的过滤器的矩阵值,所述神经网络中第r层的反向传播误差值<B1、B2……Bm>是根据所述神经网络第r层的神经元输出值<ro1、ro2……rom>和所述神经网络第r层的神经元参考输出值<rt1、rt2……rtm>得到的;将所述神经网络中第r层的反向传播更新值<C1、C2……Cm>与预设阈值进行比较,当所述神经网络中第r层的反向传播更新值<C1、C2……Cm>大于所述预设阈值,则根据所述神经网络中第r层的反向传播更新值<C1、C2……Cm>对所述RRAM中的过滤器进行更新。2.如权利要求1所述的方法,其特征在于,所述预设阈值为静态阈值或动态阈值;当所述预设阈值为静态阈值时,所述神经网络中所有层级的预设阈值的值相同,当所述预设阈值为动态阈值时,所述神经网络中不同层级的预设阈值的值不同或部分不同。3.如权利要求1或2所述的方法,其特征在于,对所述RRAM进行错误测试,输出所述RRAM的硬错误分布图,根据所述RRAM的硬错误分布图对所述神经网络进行数据重排。4.如权利要求3所述的方法,其特征在于,所述根据所述RRAM的硬错误分布图对所述神经网络进行数据重排包括:将所述神经网络的稀疏数据排布到所述RRAM上恒为0的硬错误区域。5.如权利要求3或4所述的方法,其特征在于,所述对所述RRAM进行错误测试,输出所述RRAM的硬错误分布图包括:对所述RRAM中各个单元分别写入测试值,将所述各个单元的测试值与所述各个单元的实际读出值分别进行比较,得到所述RRAM中各个单元的硬错误情况,所述RRAM中各个单元的硬错误情况构成所述RRAM的硬错误分布图。6.如权利要求2至5任一所述的方法,其特征在于,所述当所述预设阈值为动态阈值时,所述神经网络中不同层级的预设阈值的值不同或部分不同,具体的,所述神经网络中不同层级的预设阈值的值不同包括:所述预设阈值的值随所述神经网络层级的由后至前逐层递减;所述神经网络中不同层级的预设阈值的值部分不同包括:所述神经网络中靠前层级的预设阈值的值小于所述神经网络中靠后层级的预设阈值的值,其中,所述神经网络中靠前层级为靠近所述神经网络输入层的层级,具体为第1层至第X层;所述神经网络中靠后层级为靠近所述神经网络输出层的层级,具体为第R-X层至第R层,其中,所述R为所述神经网络的总层数,X大于1且小于R。7.一种神经网络训练装置,其特征在于,应用于阻变存储器(ResistiveRandomAccessMemory,RRAM)上,所述装置包括:前向计算模块,用于将神经网络中第r层的神经元输入值<ri1、ri2……rin>输入到所述RRAM中,根据所述RRAM中的过滤器(filter)对所述神经元输入值<ri1、ri2……rin>进行计算,得到所述神经网络中第R层的神经元输出值<ro1、ro2……rom>,其中,n为大于0的正整数,m为大于0的正整数;反向计算模块,用于根据所述RRAM的核值、所述神经网络中第r层的神经元输入值<ri1、ri2……rin>、所述神经网络中第r层的神经元输出值<ro1、ro2……rom>以及所述神经网络中第r层的反向传播误差值<B1、B2……Bm>进行计算,得到所述神经网络中第r层的反向传播更新值<C1、C2……Cm>;其中,所述RRAM的核值为所述RRAM中的过滤器的矩阵值,所述神经网络中第r层的反向传播误差值<B1、B2……Bm>是根据所述神经网络第r层的神经元输出值<ro1、ro2……rom>和所述神经网络第r层的神经元参考输出值<rt1、rt2……rtm>得到的;比较模块,用于将所述神经网络中第r层的反向传播更新值<C1、C2……Cm>与预设阈值进行比较;更新模块,用于当所述神经网络中第r层的反向传播更新值<C1、C2……Cm>大于所述预设阈值,则根据所述神经网络中第r层的反向传播更新值<C1、C2……Cm>对所述RRAM中的过滤器进行更新。8.如权利要求7所述的装置,其特征在于,所述装置还包括阈值生成...
【专利技术属性】
技术研发人员:姚骏,刘武龙,汪玉,夏立雪,
申请(专利权)人:华为技术有限公司,清华大学,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。