CN110826704A - 一种用于防止神经网络过拟合的处理装置及系统 - Google Patents

一种用于防止神经网络过拟合的处理装置及系统 Download PDF

Info

Publication number
CN110826704A
CN110826704A CN202010029179.9A CN202010029179A CN110826704A CN 110826704 A CN110826704 A CN 110826704A CN 202010029179 A CN202010029179 A CN 202010029179A CN 110826704 A CN110826704 A CN 110826704A
Authority
CN
China
Prior art keywords
memory
neural network
mask matrix
elements
mask
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.)
Granted
Application number
CN202010029179.9A
Other languages
English (en)
Other versions
CN110826704B (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Cambricon Technologies Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202010029179.9A priority Critical patent/CN110826704B/zh
Publication of CN110826704A publication Critical patent/CN110826704A/zh
Application granted granted Critical
Publication of CN110826704B publication Critical patent/CN110826704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning 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

一种用于防止神经网络过拟合的处理装置及系统
技术领域
本披露一般地涉及计算机领域。更具体地,本披露涉及防止神经网络过拟合的处理装置及系统。
背景技术
在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高,但是在测试数据上损失函数比较大,预测准确率较低。
为了解决过拟合问题,一般会采用模型集成的方法,即训练多个模型进行组合。此时,训练模型费时就成为一个很大的问题,不仅训练多个模型费时,测试多个模型也很费时。而舍弃操作(dropout)可以比较有效的缓解过拟合的发生,在模型训练时随机让网络某些隐含层节点的权重不工作,然而在处理不工作的权重时,是进行完卷积后才决定丢弃,这样的卷积运算是没有必要的,因此一种可以减少访存资源和计算资源的技术方案是该技术领域中需要解决的问题。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本披露的方案提供了一种防止神经网络过拟合的处理装置及系统。
在一个方面中,本披露提供一种防止神经网络过拟合的处理装置,包括:随机数生成器、运算器及存储器。随机数生成器配置成生成用于对神经网络中的目标层执行舍弃操作的随机数;运算器配置成根据所述随机数来生成掩模矩阵(mask);以及存储器配置成与所述运算器协作,以至少执行以下操作:根据所述掩模矩阵来选取保存于所述处理装置外部的神经网络数据,以及存储所述随机数、掩模矩阵和所述神经网络数据中的至少一项,以用于参与所述目标层训练计算。
在另一个方面中,本披露提供一种用于训练神经网络的系统,包括:网络运算器配置成执行所述神经网络的训练操作;以及前述的处理装置,其中所述处理装置配置成接收来自所述网络运算器的指令以生成所述随机数,并且将输入副本和选取的神经网络数据发送到所述网络运算器以供执行训练操作。
利用本披露防止神经网络过拟合的处理装置及系统,可以提前计算随机数和掩模,并保存备用,缩短运算时间、节省输出入资源及运算资源。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是本披露实施例卷积神经网络的示意图;
图2是本披露实施例防止神经网络过拟合的系统的结构图;
图3是本披露实施例通过掩模进行丢弃操作的示意图;
图4是本披露实施例通过掩模进行丢弃操作的示意图;
图5是本披露实施例在使用随机数进行读取任务时的示意图;
图6是本披露实施例通过掩模进行丢弃操作的示意图;
图7是本披露实施例通过掩模进行丢弃操作的示意图;
图8是本披露实施例拼接或转移操作的示意图;
图9是本披露实施例集成电路装置的结构图;以及
图10是本披露实施例板卡的结构图。
具体实施方式
卷积神经网络通常由以下四种层结构组成:输入层、卷积层(convolutionlayer)、池化层(pooling layer)、全连接层(fully connected layer)。图1是示出卷积神经网络100的四层结构示意图。
输入层102是自输入图像中截取部分信息,转化成特征矩阵方式呈现,其中载有对应该部分信息的特征。
卷积层104配置成接收来自输入层102的特征矩阵,通过卷积操作对输入图像进行特征抽取。虽然图1的卷积层104仅显示一层结构,但实际运用时可以建制多层卷积层,前半部的卷积层用以捕捉图像局部、细节信息,即输出图像的每个像素只是感受到输入图像很小范围数值进行计算的结果,后面的卷积层感受范围逐层加大,用于捕获图像更复杂、更抽象的信息。经过多个卷积层的运算,最后得到图像在各个不同尺度的抽象表示。
虽然通过卷积操作,完成了对输入图像的特征抽取,但特征图像信息量太大,维数过高,不仅计算耗时,而且容易导致过拟合。
池化层106配置成对图像的某一个区域用一个值代替,这值通常是该区域所有数值里的最大值或平均值。如果采用最大值,称为最大池化;如果采用平均值,称为均值池化。通过池化,在不至于损失过多信息的前提下,可以缩减模型大小、提高计算速度。
全连接层108在整个卷积神经网络100中起到分类器的作用,相当于特征空间变换,把前面所有有用的信息提取整合,再加上激活函数的非线性映射,多层全连接层理论上可以模拟任何非线性变换,以基于不同的分类做信息比对,借以判断输入图像是否相似于比对的标的。同样地,由于全连接层108处理的信息量太大,容易导致过拟合。
在现今常用的神经网络框架中,如TensorFlow、Pytorch、caffe等,为了解决过拟合问题,一般会采取舍弃操作。所谓舍弃操作是指在深度学习网络的训练过程中,对于神经网络单元按照一定的概率将其暂时从网络中丢弃。对于随机梯度下降来说,由于是随机丢弃的,故而每一个迷你批(mini-batch)都在训练不同的网络。至于舍弃操作和部分稀疏算法的实现,都是在随机数生成后,紧挨着掩模的计算来进行的。
如果完全按照前述神经网络框架的代码的编译和执行顺序,是要等到上一层执行完毕,舍弃操作才会执行随机数生成和计算掩模。如果掩模取到0的位置,其实不需要计算,因为结果直接为0,对应的数据在输入前执行的运算也没有意义,导致访存资源和计算资源的浪费。
以目标层为全连接层使用舍弃操作为例,在进行舍弃操作时,是先计算神经元矩阵
Figure 863827DEST_PATH_IMAGE002
后,把计算结果y节点传送到全连接层的舍弃操作层中,接着随机舍弃一部分。被舍弃掉的y节点不参与计算,既然如此,计算会被舍弃掉的
Figure 200874DEST_PATH_IMAGE002
便是徒然耗费资源。
本披露的技术方案提前找出将被舍弃的y节点所对应的数据x或权重w,直接不读进记忆体中,亦不执行 运算,进而节省输出入及运算资源。
本披露实施例提供一种防止神经网络过拟合的系统,其结构如图2所示,系统20包括网络运算器200及处理装置202。网络运算器200配置成执行神经网络计算需要的运算和访存,其包括计算器204、控制器206及存储器208。处理装置202配置成生成随机数,其包括随机数生成器210、运算器212、存储器214及收发器216。
计算器204配置成分离出生成随机数所需的规则或预先能获取的随机数生成部分,编码产生相应信息,发送至随机数生成器210,由随机数生成器210生成所需的随机数。随机数生成后,随机数生成器210返回部分信息给计算器204,这些信息包括随机数列表、目录等。
随机数生成器210配置成生成用于对神经网络中的目标层执行舍弃操作的随机数。基于响应来自计算器204的编码信息,随机数生成器210获得与生成随机数相关的参数,这些参数包括随机数特性、用于访问随机数的索引等,而随机数特性包括:随机数的数量或随机数数组的维度,用于确定需要生成的随机数总数;随机数服从的分布,用于确定随机数生成算法;随机数数据类型,用于确定随机数的保存类型,以便于该随机数参与后续的运算及访存;随机数在网络中参与运算或访存的位置,用于确定不同随机数的处理优先级,例如生成网络第N层所需的随机数时,在下一次迭代的前传、反传进行中,第N-1个层所需的各个随机数应生成完毕。
控制器206配置成启动运算器212以生成掩模。
运算器212配置成根据随机数生成器210生成的随机数来生成掩模矩阵,还配置成基于掩模矩阵来更新参与目标层训练计算的输入数据,其中输入数据是训练过程中目标层的前一层的输出。
在数字图像处理中的掩模概念是对待处理的图像(即输入数据)进行遮挡,来控制图像处理的区域或处理过程。在此实施例中,掩模主要用于屏蔽,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算。掩模是由0和1组成的二维矩阵,进行掩模时,1值区域会被访问,0值区域被屏蔽,即不被计算。
在生成掩模矩阵时,运算器212本身设定有一阈值,在自随机数生成器210接收到随机数后,响应控制器206的启动信号,将每个随机数和阈值做比较,如随机数小于阈值,则该随机数所处的位置的掩模值设定为0;如随机数不小于阈值,则该随机数所处的位置的掩模值设定为1。通过此方式生成掩模矩阵。
除了生成掩模矩阵,运算器212还能执行其他简单的任务,像是获得待选择目标、地址、时序检查等。
存储器214配置成与运算器212协作,以至少执行以下操作:根据生成的掩模矩阵来选取保存于网络运算器200的神经网络数据,存储器214可以是缓冲区、专用存储器、通用存储器等多种类型存储结构,其用以存储:随机数生成结果,为需要的数据类型;随机数属性信息,包括数据类型、数组维度、该类型随机数的编号;随机数标识,包括所需随机数的运算和访存在网络运算器200中的位置,使网络运算器200确定所需的随机数;有效性标识,用于标记随机数是否已经使用,以及后续是否还需要;生成掩模后计算得到的访存地址;由随机数经过某些运算或变换得到的结果;神经网络数据等。
存储器208可以是缓冲区、专用存储器、通用存储器等多种类型存储结构,其用以存储:随机数生成器210返回给计算器204的信息,包括随机数列表、目录等,供后续网络运算器200需要时取出使用;自处理装置202返回的掩模矩阵。
此实施例在使用随机数进行读取任务时,将可能是神经网络数据x矩阵或w矩阵作为输入数据与掩模相乘,只需要读入掩模的1值区域的数据即可。
运算器212配置成获取存储参与目标层训练计算的神经网络数据的内存初始地址,存储器214根据掩模矩阵和初始地址来获取参与目标层训练计算的神经网络数据的内存访问地址,从内存访问地址读取神经网络数据。
运算器212根据掩模来计算新的访存地址。更详细来说,在输入数据附加上掩模矩阵后,只需读取其中对应掩模的1值区域的元素,这些元素可能是连续的或不连续的或部分连续部分不连续的,基本是随机产生的。
如果留下待运算的元素是不连续的分布在矩阵中,在进行运算时,不连续的访问不能充分发挥内存高带宽的优势,反而会受制于耗费过大的存取资源以致于延迟了实际访问的时间。为避免访存粒度过低,存储器214对掩模后矩阵进行非定长的划分。如果是1较为稠密的区域,则直接访存或划分多个大小合适的数列进行访存,而1较为稀疏的区域,则取较小的数列进行访存;如果是0的连续区域则跳过。
以图3为例,输入数据302是8个数值的数列,掩模矩阵304是
Figure 172558DEST_PATH_IMAGE004
矩阵,运算器212会判断掩模矩阵304中元素0的分布情况来决定如何生成输入数据的输入副本。当运算器212确定掩模矩阵304的每行元素中存在超过预定数目的元素0,在此实施例中,预定数目可以是5,而掩模矩阵304每行有6个0,超过预定数目,表示元素1在掩模矩阵304中分布的非常松散,在此情况下,利用每行元素分别来生成输入数据302的一个输入副本,因此产生3个输入副本306、308、310,用于参与所述目标层训练计算。
在另一种情况下,如图4所示,输入数据402同样是8个数值的数列,掩模矩阵404是
Figure 659034DEST_PATH_IMAGE004
矩阵。当运算器212确定掩模矩阵404的元素1集中分布于掩模矩阵中的一个或多个子矩阵内,例如集中在子矩阵406内,则将该子矩阵406内的元素0修改为元素1,形成矩阵408,并且利用矩阵408的任一行元素来生成输入数据402的一个输入副本410。如图所示,由于矩阵408的后4列均为0,没有计算的必要,因此输入副本410中将输入数据402的x4至x7全设定为0,用于参与所述目标层训练计算。
图5是示出前述以块或子矩阵为基准产生输入副本的实施方式的示意图。如果掩模矩阵存在许多元素1集中的子矩阵时,运算器212遍历掩模矩阵,在划分过程中跳过连续的多个元素0,将多个连续的元素1划分到一个块,以及根据元素0和1的分布密集度来确定是否将元素0与元素1划分到一个块中,以生成N个大块数据的访存地址502,再根据已生成的随机数决定条件判断504,例如基于随机数产生一个不大于N的数值的指令,该指令的跳转由选择器506执行到数值对应的位置,以决定哪个大块数据被留下来,哪些被丢弃。
留下来的大块数据508尚存在有为0的元素,此实施例将大块数据508内的元素0修改为元素1,并且利用掩模矩阵的任一行元素来生成输入数据的一个输入副本,即图4的输入副本410,用于参与目标层训练计算。
运算器212会根据掩模来计算新的访存地址。更详细来说,在输入数据附加上掩模矩阵后,只需读取其中对应掩模的1值区域的元素,这些元素可能是连续的或不连续的或部分连续部分不连续的,基本是随机产生的。以图6为例,输入数据602是
Figure 137289DEST_PATH_IMAGE006
矩阵,附加上掩模矩阵604后,得到掩模后矩阵606,从原本49个矩阵元素待运算,降至仅需运算15个矩阵元素。
由图6的掩模后矩阵606可知,其留下待运算的元素是不连续的分布在矩阵中,在进行运算时,不连续的访问不能充分发挥内存高带宽的优势,反而会受制于耗费过大的存取资源以致于延迟了实际访问的时间。
可选地,为避免访存粒度过低,在获得掩模后矩阵之前,存储器214对生成的一个或多个副本矩阵进行非定长的划分,以舍弃部分0元素,根据划分后的副本得到掩模后矩阵。具体进行非定长划分指的是:如果是1较为稠密的区域,则直接访存或划分多个大小合适的数列进行访存,而1较为稀疏的区域,则取较小的数列进行访存;如果是0的连续区域则跳过。
更详细来说,存储器214在决定非定长的划分时,将所述掩模矩阵划分成包括至少一个元素1的一个或多个块,每个块包括相同或不同数目的元素1。可采取以下规则:遍历所述掩模矩阵,并且在划分过程中跳过连续的多个元素0,将多个连续的元素1划分到一个块,以及根据元素0和1的分布密集度来确定是否将元素0与元素1划分到一个块中。
具体来说,所述连续0元素的数量可以是根据实际需要预设的一个值,当所述连续0元素的数量少于预设的值时,元素0与元素1可以划分到一个块中。
可选地,为了减少访存,我们可以设定划分的每个块最小块的数量不小于某个预设值。
可选地,所述划分规则也可以是:以行为单位,遇到1时进行划分。
举例来说,我们设定划分的每个块最短的数列为连续2个元素,最长数列为连续4个元素;数列中最后1个元素如为0,则该数列仅能包括连续2个元素;如行的最后一个元素为1,则将倒数第二个为0的元素涵盖进来。根据以上规则,图6的掩模矩阵604实际上需要访问的数列如图7的矩阵702中的灰色部分所示,对应至掩模后矩阵606实际上需要访问的数列如图7的矩阵704中的灰色部分所示,灰色部分的元素即为关键元素。需注意的是,以上的规则仅为示例,系统可依实际状况决定之,例如最长及最短数列可变、以列或块为单位、当遇到连续多个0时在第一个0处划分一个块等。
依前述规则,需要访问的数列所对应的掩模仍然包括为0的元素,如果为0的比例低,可直接使用这样的数据,并将掩模元素为0所对应的输入数据元素设置为0,如矩阵706所示,以生成输入数据的输入副本。
可选地,如果需要访问的数列所对应的掩模仍然包括为0的元素比较多,我们可以接着进行合适的映射机制进行数据拼接或数据转移,将块中的0元素继续舍弃。以读取访存来说,这样拼接或转移操作会在访问存储器214后执行。图8是示出本披露实施例拼接或转移操作的示意图。存储器214可以包括一种先进先出缓冲器802及读写头804。先进先出缓冲器802依序将需访问的元素读入,如果是为1的元素,会发送信号给读写头804,读写头804将存储器214中的特定存储单元806内的一个特定位址分配给该元素。如果是为0的元素,读写头804跳过不处理,因此为0的元素不会被存储。换言之,读写头804配置成利用掩模矩阵作为读写操作的使能信号,仅将元素1所对应的神经网络数据顺序地读取到存储单元806内连续的存储地址内,最后将所有为1的元素拼接在一块,在存储单元806连续的存储地址内形成输入数据的一个输入副本。
另外,此实施例的存储器214可以包括多个读写头804,可以将掩模矩阵划分成多个组,每个组包括相同数目的元素1,多个读写头804与多个组相对应,并行地将多个组中的仅元素1所对应的神经网络数据顺序地读取到存储单元806内连续的存储地址内,以生成输入数据的一个输入副本。
通过以上的多种方式,运算器212得以更新并简化参与目标层训练计算的输入数据。
回到图2,收发器216配置成将前述输入副本和选取参与目标层训练计算的神经网络数据发送到网络运算器200,使得网络运算器200可以执行神经网络目标层训练计算。目标层训练计算结束后,收发器216再从网络运算器200接收执行训练后更新的神经网络数据,存储至存储器214。
此实施例在使用随机数进行写入任务时,对于那些掩模元素为0的部分,由于不参与计算,可直接写入存储器214即可。更详细来说,将欲写入的矩阵与掩模相乘,掩模元素为0的位址的数据维持不变或改写为0。在确定不存在其他数据要写入这些位址的前提下,提前将这些地址的元素写入对应地址。也就是说,对连续的0或连续的不参与计算的数据,可提前写入至存储器214。
至于待计算或待修改的数据,为避免访存粒度过小,在存储器214中对数据进行拼接,传送至存储器208再由计算器204做访存。写入的拼接方式与读取的拼接方式类似,不同处在于,读取操作是使用先进先出缓冲器写入,跳过为0的元素,而写入操作是采用插队方式来插入掩模中为0的元素,以及不参与计算的可提前存储的元素数据。其他元素在计算完成后,同样经过插队写入,完成所有元素排列在原有位置的结构。插队写入与排队写入的操作类似,同样都以掩模作为使能信号,差异处在于排队写入是跳过数据,插队写则是跳过地址。
综上所述,存储器214向存储单元806或内存写回更新的神经网络数据时,首先根据掩模矩阵将掩模矩阵中连续的多个元素0对应的神经网络数据连续地写入到存储单元806或内存的存储地址内,再根据掩模矩阵将掩模矩阵中剩余元素对应的神经网络数据写入到存储单元或内存的对应存储地址内。
此实施例在使用随机数进行写入任务时,还有其他方案可以根据随机数进行选择。例如,在写回时,用随机数或随机数计算得到的结果获得要写回的地址,进行连续地址的写入。
此实施例进行完丢弃操作后,数据已经完成参与计算前的拼接,保留所有应参与运算的数据,而剔除所有不参与运算的数据。利用本披露防止神经网络过拟合的处理装置及系统,可以提前计算随机数和掩模,并保存备用,缩短运算时间、节省输出入资源及运算资源。
图9是示出根据本披露实施例的集成电路装置900的结构图。如图所示,集成电路装置900包括系统902,系统902可以是图2系统20。另外,集成电路装置900还包括通用互联接口904和其他处理装置906。
在此实施例中,其他处理装置906可以是中央处理器、图形处理器、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目不做限制而是依实际需要来确定。在特定的情况下,其他处理装置906可以作为系统902与外部数据和控制的接口,执行包括但不限于数据搬运,完成对机器学习运算装置的开启、停止等的基本控制。
根据此实施例的技术方案,通用互联接口904可以用于在系统902与其他处理装置906间传输数据和控制指令。例如,系统902可以经由通用互联接口904从其他处理装置906中获取所需的输入数据,写入系统902片上的存储装置。进一步,系统902可以经由通用互联接口904从其他处理装置906中获取控制指令,写入系统902片上的控制缓存。替代地或可选地,通用互联接口904也可以读取系统902的存储模块中的数据并传输给其他处理装置906。
可选地,集成电路装置900还可以包括存储装置908,其可以分别与系统902和其他处理装置906连接。在一个或多个实施例中,存储装置908可以用于保存系统902和其他处理装置906的数据,尤其适用于所需要运算的数据在系统902或其他处理装置906的内部存储中无法全部保存的数据。
根据应用场景的不同,本披露的集成电路装置900可以作为手机、机器人、无人机、视频采集等设备的SOC片上系统,从而有效地降低核心面积,提高处理速度并降低整体的功耗。在此情况下,集成电路装置900的通用互联接口904与设备的某些部件相连接。此处所指的某些部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。
在一些实施例里,本披露还公开了一种芯片或集成电路芯片,其包括了集成电路装置900。在另一些实施例里,本披露还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本披露还公开了一种板卡,其包括了上述芯片封装结构。参阅图10,其提供了前述的示例性板卡1000,板卡1000除了包括上述芯片1002以外,还可以包括其他的配套部件,该配套部件可以包括但不限于:存储器件1004、接口装置1006和控制器件1008。
存储器件1004与芯片封装结构内的芯片1002通过总线连接,用于存储数据。存储器件1004可以包括多组存储器1010。每一组存储器1010与芯片1002通过总线连接。每一组存储器1010可以是DDR SDRAM(“Double Data Rate SDRAM”,双倍速率同步动态随机存储器)。
不同于图10所示,在一个实施例中,存储器件1004可以包括4组存储器1010。每一组存储器1010可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片1002内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中的64比特用于传输数据,8比特用于ECC校验。
在一个实施例中,每一组存储器1010可以包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在芯片1002中设置控制DDR的控制器,用于对每个存储器1010的数据传输与数据存储的控制。
接口装置1006与所述芯片封装结构内的芯片1002电连接。接口装置1006用于实现芯片1002与外部设备1012(例如服务器或计算机)之间的数据传输。在一个实施例中,接口装置1006可以为标准PCIE接口。例如,待处理的数据由服务器通过标准PCIE接口传递至芯片1002,实现数据转移。在另一个实施例中,接口装置1006还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,能够实现转接功能即可。另外,芯片1002的计算结果仍由接口装置1006传送回外部设备1012。
控制器件1008与芯片1002电连接,以便对芯片1002的状态进行监控。具体地,芯片1002与控制器件1008可以通过SPI接口电连接。控制器件1008可以包括单片机(“MCU”,Micro Controller Unit)。芯片1002可以包括多个处理芯片、多个处理核或多个处理电路,并且可以带动多个负载。由此,芯片1002可以处于多负载和轻负载等不同的工作状态。通过控制器件1008可以实现对芯片1002中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,本披露还公开了一种电子设备或装置,其包括了上述板卡1000。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当... 时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。

Claims (13)

1.一种防止神经网络过拟合的处理装置,包括:
随机数生成器,其配置成生成用于对神经网络中的目标层执行舍弃操作的随机数;
运算器,其配置成根据所述随机数来生成掩模矩阵;以及
存储器,其配置成与所述运算器协作,以至少执行以下操作:
根据所述掩模矩阵来选取保存于所述处理装置外部的神经网络数据;以及
存储所述随机数、掩模矩阵和所述神经网络数据中的至少一项,以用于参与所述目标层训练计算。
2.根据权利要求1所述的处理装置,其中所述运算器还配置成基于所述掩模矩阵来更新参与所述目标层训练计算的输入数据,其中所述输入数据是训练过程中所述目标层的前一层的输出。
3.根据权利要求2所述的处理装置,其中所述掩模矩阵包括0和1两种类型的元素,并且在更新所述输入数据中,所述运算器配置成:
当确定所述掩模矩阵的每行元素中存在超过预定数目的元素0,则利用每行元素来生成输入数据的一个输入副本,以便将多个输入副本用于参与所述目标层训练计算;或者
当确定所述掩模矩阵的所述元素1集中分布于所述掩模矩阵中的一个或多个子矩阵内,则将该一个或多个子矩阵内的元素0修改为元素1,并且利用所述掩模矩阵的任一行元素来生成所述输入数据的一个输入副本,以便将所述一个输入副本用于参与所述目标层训练计算。
4.根据权利要求3所述的处理装置,其中在生成所述输入数据的输入副本中,所述运算器配置成将所述输入数据中、与所述掩模矩阵的元素0相对应的输入数据元素修改为0。
5.根据权利要求4所述的处理装置,其中所述运算器配置成获取存储参与所述目标层训练计算的所述神经网络数据的内存初始地址,所述存储器配置成根据所述掩模矩阵和初始地址来获取参与所述目标层训练计算的所述神经网络数据的内存访问地址,以从所述内存访问地址读取所述神经网络数据。
6.根据权利要求5所述的处理装置,其中所述存储器包括存储单元,并且所述存储器进一步配置成:
根据所述掩模矩阵中的元素1的分布,将所述掩模矩阵划分成包括至少一个元素1的一个或多个块,每个块包括相同或不同数目的元素1;以及
以所述块为长度,连续地读取与所述块中的元素相对应的内存访问地址中的所述神经网络数据到所述存储单元。
7.根据权利要求6所述的处理装置,其中在将所述掩模矩阵划分成一个或多个块中,所述存储器配置成:
遍历所述掩模矩阵,并且在划分过程中跳过连续的多个元素0,将多个连续的元素1划分到一个块,以及根据元素0和1的分布密集度来确定是否将元素0与元素1划分到一个块中。
8.根据权利要求7所述的处理装置,其中所述存储器还包括一个读写头,所述存储器配置成:
通过利用所述一个读写头,仅将所述块中的元素1所对应的神经网络数据顺序地读取到存储单元内连续的存储地址内。
9.根据权利要求7所述的处理装置,其中所述存储器包括多个读写头,所述存储器配置成:
将所述多个块划分成多个组,每个组包括相同数目的元素1;以及
通过利用与所述多个组相对应的所述多个读写头,并行地将多个组中的仅元素1所对应的神经网络数据顺序地读取到存储单元内连续的存储地址内。
10.根据权利要求8或9所述的处理装置,其中所述读写头配置成利用所述掩模矩阵作为读写操作的使能信号,以将仅元素1所对应的神经网络数据顺序地读取到存储单元内连续的存储地址内。
11.根据权利要求10所述的处理装置,其进一步包括收发器,其配置成:
将所述输入副本和选取参与目标层训练计算的神经网络数据发送到网络运算器,以用于网络运算器执行神经网络目标层训练计算;以及
从所述网络运算器接收执行所述训练后更新的神经网络数据。
12.根据权利要求11所述的处理装置,其中所述存储器还配置成向所述存储单元或内存写回所述更新的神经网络数据,包括:
首先根据所述掩模矩阵将所述掩模矩阵中连续的多个元素0对应的神经网络数据连续地写入到存储单元或内存的存储地址内;以及
根据所述掩模矩阵将所述掩模矩阵中剩余元素对应的神经网络数据写入到所述存储单元或内存的对应存储地址内。
13.一种用于训练神经网络的系统,包括:
网络运算器,其配置成执行所述神经网络的训练操作;以及
根据权利要求1-12任意一项所述的用于防止所述神经网络过拟合的处理装置,
其中所述处理装置配置成接收来自所述网络运算器的指令以生成所述随机数,并且将输入副本和选取的神经网络数据发送到所述网络运算器以供执行训练操作。
CN202010029179.9A 2020-01-13 2020-01-13 一种用于防止神经网络过拟合的处理装置及系统 Active CN110826704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010029179.9A CN110826704B (zh) 2020-01-13 2020-01-13 一种用于防止神经网络过拟合的处理装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010029179.9A CN110826704B (zh) 2020-01-13 2020-01-13 一种用于防止神经网络过拟合的处理装置及系统

Publications (2)

Publication Number Publication Date
CN110826704A true CN110826704A (zh) 2020-02-21
CN110826704B CN110826704B (zh) 2020-11-13

Family

ID=69546479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010029179.9A Active CN110826704B (zh) 2020-01-13 2020-01-13 一种用于防止神经网络过拟合的处理装置及系统

Country Status (1)

Country Link
CN (1) CN110826704B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046597A1 (en) * 2016-08-09 2018-02-15 International Business Machines Corporation True random generator (trng) in ml accelerators for nn dropout and initialization
CN107886164A (zh) * 2017-12-20 2018-04-06 东软集团股份有限公司 一种卷积神经网络训练、测试方法及训练、测试装置
CN109934132A (zh) * 2019-02-28 2019-06-25 北京理工大学珠海学院 基于随机丢弃卷积数据的人脸识别方法、系统及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046597A1 (en) * 2016-08-09 2018-02-15 International Business Machines Corporation True random generator (trng) in ml accelerators for nn dropout and initialization
CN107886164A (zh) * 2017-12-20 2018-04-06 东软集团股份有限公司 一种卷积神经网络训练、测试方法及训练、测试装置
CN109934132A (zh) * 2019-02-28 2019-06-25 北京理工大学珠海学院 基于随机丢弃卷积数据的人脸识别方法、系统及存储介质

Also Published As

Publication number Publication date
CN110826704B (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US11775430B1 (en) Memory access for multiple circuit components
CN110298443B (zh) 神经网络运算装置及方法
KR20210002676A (ko) 집약성을 개선하기 위한 머신 학습 모델들의 수정
CN112799599B (zh) 一种数据存储方法、计算核、芯片和电子设备
CN111027691A (zh) 用于神经网络运算的计算装置及其集成电路板卡
US20220108150A1 (en) Method and apparatus for processing data, and related products
CN113313247B (zh) 基于数据流架构的稀疏神经网络的运算方法
CN111144564A (zh) 对神经网络执行训练的设备及其集成电路板卡
CN115129460A (zh) 获取算子硬件时间的方法、装置、计算机设备和存储介质
CN110826704B (zh) 一种用于防止神经网络过拟合的处理装置及系统
CN111144559A (zh) 用于训练神经网络的设备、方法和集成电路板卡
US20220121908A1 (en) Method and apparatus for processing data, and related product
US20230259780A1 (en) Neural network sparsification apparatus and method and related product
CN113238976B (zh) 缓存控制器、集成电路装置及板卡
US11086634B2 (en) Data processing apparatus and method
CN111198714B (zh) 重训练方法及相关产品
CN113238975A (zh) 优化深度神经网络的参数的内存、集成电路及板卡
CN114692865A (zh) 一种神经网络量化训练方法、装置及相关产品
CN114580625A (zh) 用于训练神经网络的方法、设备和计算机可读存储介质
CN113112009A (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN111258537A (zh) 一种防止数据溢出的方法、装置和芯片
CN116781484B (zh) 数据处理方法、装置、计算机设备及存储介质
CN111047024A (zh) 一种计算装置及相关产品
CN113159100B (zh) 电路故障诊断方法、装置、电子设备和存储介质
US20240354162A1 (en) Graph orchestrator for neural network execution

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201013

Address after: Room 611-194, R & D center building, China (Hefei) international intelligent voice Industrial Park, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province

Applicant after: Anhui Cambrian Information Technology Co., Ltd

Address before: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences

Applicant before: Zhongke Cambrian Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant