[发明专利]一种用于执行卷积神经网络训练的装置和方法有效
申请号: | 201610283838.5 | 申请日: | 2016-04-29 |
公开(公告)号: | CN107341547B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 陈云霁;支天;刘少礼;郭崎;陈天石 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06N3/08 | 分类号: | G06N3/08 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 周天宇 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 执行 卷积 神经网络 训练 装置 方法 | ||
本公开提供了一种执行卷积神经网络训练的装置和方法,其中装置部分包括了互连模块、主运算模块、以及多个从运算模块。对于每一层来说,首先对输入神经元向量依据卷积窗口进行数据选择,然后依据选择得到的来自前一层的数据和来自后一层的数据梯度作为本装置运算单元的输入,计算并且更新卷积核,其次依据卷积核、数据的梯度以及激活函数的导函数,计算得到本装置输出的数据梯度,并且存入存储器以输出给前一层进行反向传播计算。本公开将参与计算的数据和权重参数暂存在高速暂存存储器上,使得可以更加灵活有效地支持卷积神经网络反向运算,提升包含大量访存应用的执行性能。
技术领域
本公开涉及一种用于执行卷积神经网络训练的装置和方法,用于根据卷积神经网络反向运算指令高效灵活地执行卷积神经网络反向运算,能够很好地解决当前计算机领域越来越多的算法包含大量卷积神经网络反向运算的问题。
背景技术
卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简单、训练参数少和适应性强、平移、旋转、缩放等特点。由于CNN/DNN的特征检测层通过训练数据进行学习,所以在使用CNN/DNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。
本公开提供的卷积神经网络训练算法的流程图,如图1所示,其流程包括两个阶段:
第一阶段,向前传播阶段:
a)从样本集中取一个样本(X,Yp),将X输入网络;
b)计算相应的实际输出Op。
在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果):
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
第二阶段,向后传播阶段
a)算实际输出Op与相应的理想输出Yp的差;
b)按极小化误差的方法反向传播调整权矩阵。
在已有的计算机领域应用中,与卷积运算相关的应用十分普遍。本公开专注于卷积神经网络,目前可以执行此种运算的主流装置如下:
在现有技术中,一种进行卷积神经网络反向运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行卷积神经网络反向运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行卷积神经网络反向运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。
在另一种现有技术中,使用图形处理器(GPU)来进行向量计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行卷积神经网络反向运算。然而,上述方案中,GPU片上缓存太小,在进行大规模卷积神经网络反向运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。
发明内容
(一)要解决的技术问题
本公开的目的在于,提供一种支持卷积神经网络训练的装置,解决现有技术中存在的受限于片间通讯、片上缓存不够等问题。
(二)技术方案
本发明的一个方面提供了一种用于执行卷积神经网络反向训练的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、多个从运算模块,其中:
指令存储单元用于存储指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610283838.5/2.html,转载请声明来源钻瓜专利网。