CN110147873A - 卷积神经网络的处理器及训练方法 - Google Patents

卷积神经网络的处理器及训练方法 Download PDF

Info

Publication number
CN110147873A
CN110147873A CN201810504948.9A CN201810504948A CN110147873A CN 110147873 A CN110147873 A CN 110147873A CN 201810504948 A CN201810504948 A CN 201810504948A CN 110147873 A CN110147873 A CN 110147873A
Authority
CN
China
Prior art keywords
data
active coating
coding
module
input data
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
CN201810504948.9A
Other languages
English (en)
Other versions
CN110147873B (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.)
Cambricon Technologies Corp Ltd
Beijing Zhongke Cambrian Technology Co Ltd
Original Assignee
Beijing Zhongke Cambrian Technology Co 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 Beijing Zhongke Cambrian Technology Co Ltd filed Critical Beijing Zhongke Cambrian Technology Co Ltd
Priority to CN201810504948.9A priority Critical patent/CN110147873B/zh
Priority to US16/962,110 priority patent/US11995556B2/en
Priority to EP19802694.0A priority patent/EP3796189A4/en
Priority to PCT/CN2019/087446 priority patent/WO2019219083A1/zh
Publication of CN110147873A publication Critical patent/CN110147873A/zh
Application granted granted Critical
Publication of CN110147873B publication Critical patent/CN110147873B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Error Detection And Correction (AREA)
  • Image Analysis (AREA)

Abstract

本公开提供了一种卷积神经网络的处理器及训练方法;其中,该卷积神经网络的处理器,包括:编码模块,用于对激活层的输入数据或输出数据进行编码;计算模块,与所述编码模块连接,用于进行来自前向传播的运算和来自反向传播的运算;其中,在后向传播时,所述计算模块用于根据编码结果对偏导数进行运算处理。本公开卷积神经网络的处理器及训练方法有效节约了内存,减少了对内存的输入输出次数,优化了卷积神经网络的性能,保证了卷积神经网络预测的准确性。

Description

卷积神经网络的处理器及训练方法
本发明是2018年5月18日所提出的申请号为201810486460.8、发明名称为《编码存储装置及方法、处理器及训练方法》的发明专利申请的分案申请。
技术领域
本公开涉及人工智能技术领域,尤其涉及一种卷积神经网络的处理器及训练方法。
背景技术
卷积神经网络(Convolutional Neural Network,缩写CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,近年来被广泛用于图像处理,语音处理,以及模式识别等领域。强大数据资源的可利用性及其本身良好的可并行性使得卷积神经网络发展迅速,受到广泛关注。随着网络层数的增加,对内存的需求也越来越大。可用的内存大小成为了限制神经网络型号的瓶颈。
现有的技术通常是减少模型大小,因权重并不是神经网络训练中的主要内存占用,导致不能有效减少内存占用。或者在中央处理器(Central Processing Unit,缩写CPU)和图形处理器(Graphics Processing Unit,缩写GPU)的内存之间来回拷贝数据结构,这样会增加性能开销。
发明内容
(一)要解决的技术问题
为了解决或者至少部分缓解上述技术问题,本公开提供了一种卷积神经网络的处理器及训练方法。
(二)技术方案
根据本公开的一个方面,提供了一种卷积神经网络的处理器,包括:
编码模块,用于对激活层的输入数据或输出数据进行编码;
计算模块,与所述编码模块连接,用于进行来自前向传播的运算和来自反向传播的运算;其中,在后向传播时,所述计算模块用于根据编码结果对偏导数进行运算处理。
在一些实施例中,在前向传播时,所述计算模块用于根据所述激活层的输入数据计算经由激活函数处理得到的所述激活层的所述输出数据。
在一些实施例中,所述的处理器还包括:存储模块,用于将所述编码结果存储在特征映射图中。
在一些实施例中,所述的处理器还包括:I/O模块,用于实现激活层与相邻层之间的数据传递以及编码模块、存储模块和计算模块的数据输入与输出。
在一些实施例中,所述编码模块包括:
比较器,用于将激活层的输入数据与一参照数据进行比较;以及
编码器,用于根据比较结果对所述激活层的输入数据或输出数据进行编码。
在一些实施例中,所述参照数据为一常数或所述激活层的输出数据。
在一些实施例中,所述参照数据为激活层的输出数据,若激活层的输入数据与输出数据相等,则将输出数据编码为1;否则,编码为0;或
所述参照数据为一常数,该常数取0,若输入数据大于0,则将输入数据编码为1;否则,编码为0。
在一些实施例中,所述编码采用0/1编码、以位为单位进行存储。
在一些实施例中,根据所述激活层的输入数据计算经由激活函数处理得到的所述激活层的所述输出数据,具体计算公式如下:
f(x)=max(x,αx),其中,x表示激活层的输入数据,f(x)表示激活层的输出数据,α表示所述激活函数的参数;
式中,所述激活函数为线性整流函数(Rectified Linear Unit,ReLU)或带泄露整流函数(Leaky Rectified Linear Unit,Leaky ReLU)。
在一些实施例中,所述激活函数为线性整流函数,α取值在0~0.35的范围内。
在一些实施例中,在后向传播时,所述计算模块用于根据编码结果对偏导数进行运算处理:若编码结果为1,则对当前偏导数dy不做运算处理,直接将dy传递给I/O模块;若编码结果为0,则将当前偏导数dy与所述激活函数的参数α相乘,得到dy1,并把所得dy1传递给I/O模块。
根据本公开的另一个方面,提供了一种芯片,其包括所述的卷积神经网络的处理器。
根据本公开的另一个方面,提供了一种电子设备,其包括所述的芯片。
根据本公开的另一个方面,提供了一种卷积神经网络的训练方法,包括;
编码模块对激活层的输入数据或输出数据进行编码;
在后向传播时,计算模块获取当前偏导数对应的编码结果及根据编码结果进行偏导数运算处理。
在一些实施例中,所述的训练方法还包括:
在前向传播时,计算模块根据激活层的输入数据计算经由激活函数处理得到的激活层的输出数据。
在一些实施例中,所述的训练方法还包括:在编码之后,将将所述编码结果存储在特征映射图中。
在一些实施例中,所述编码模块对激活层的输入数据或输出数据进行编码的步骤包括:
将激活层的输入数据与一参照数据进行比较;以及
根据比较结果对所述激活层的输入数据或输出数据进行编码。
在一些实施例中,所述参照数据为一常数或激活层的输出数据。
在一些实施例中,所述参照数据为输出数据,若激活层的输入数据与输出数据相等,则将输出数据编码为1;否则,编码为0;或
所述参照数据为一常数,该常数取0,若输入数据大于0,则将输入数据编码为1;否则,编码为0。
在一些实施例中,在所述获取当前偏导数对应的编码结果的步骤中,根据当前偏导数dy的位置取特征映射图的对应位置的编码,所述偏导数dy的位置根据矩阵或数组相对地址获得。
在一些实施例中,根据激活层的输入数据计算经由激活函数处理得到的激活层的输出数据,具体计算公式如下:f(x)=max(x,αx),式中,x表示输入数据,f(x)表示输出数据,α表示激活函数的参数;
其中,所述激活函数为线性整流函数(Rectified Linear Unit,ReLU)或带泄露整流函数(Leaky Rectified Linear Unit,Leaky ReLU)。
在一些实施例中,在所述根据编码结果进行偏导数运算处理的步骤中,若编码为1,则对当前偏导数dy不做运算处理,直接将dy传递给I/O模块;若编码为0,则将当前偏导数dy与所用激活函数等式中的α相乘,得到结果dy1,并把所得结果dy1传递给I/O模块。
根据本公开的一个方面,提供了一种卷积神经网络的编码存储装置,包括:存储模块和编码模块,该编码模块包括比较器和编码器;其中,所述比较器用于将激活层的输入数据与一参照数据进行比较,所述编码器用于根据比较结果对所述激活层的输入数据或输出数据进行编码。
在一些实施例中,所述存储模块用于将编码结果存储在特征映射图中、存储所述比较结果和存储激活函数的参数α。
在一些实施例中,所述参照数据为一常数或激活层的输出数据。
在一些实施例中,所述参照数据为激活层的输出数据,若激活层的输入数据与输出数据相等,则将输出数据编码为1;否则,编码为0;或
所述参照数据为一常数,该常数取0,若输入数据大于0,则将输入数据编码为1;否则,编码为0。
在一些实施例中,所述编码采用0/1编码、以位为单位进行存储。
根据本公开的另一个方面,提供了一种卷积神经网络的处理器,其包括所述的编码存储装置,还包括:
计算模块,用于进行来自前向传播的运算和来自反向传播的运算;其中,在前向传播时,所述计算模块用于根据所述激活层的输入数据计算经由激活函数处理得到的所述激活层的所述输出数据;在后向传播时,所述计算模块用于根据编码结果对偏导数进行运算处理。
在一些实施例中,所述的处理器,还包括:I/O模块,用于激活层与相邻层之间的数据传递,存储模块与计算模块之间的数据传递,以及编码存储装置的数据输入与输出。
在一些实施例中,根据所述激活层的输入数据计算经由激活函数处理得到的所述激活层的所述输出数据,具体计算公式如下:
f(x)=max(x,αx),其中,x表示激活层的输入数据,f(x)表示激活层的输出数据,α表示所述激活函数的参数;
式中,所述激活函数为线性整流函数(Rectified Linear Unit,ReLU)或带泄露整流函数(Leaky Rectified Linear Unit,Leaky ReLU)。
在一些实施例中,所述激活函数为线性整流函数,α取值在0~0.35的范围内。
在一些实施例中,在后向传播时,所述计算模块用于根据编码结果对偏导数进行运算处理:若编码结果为1,则对当前偏导数dy不做运算处理,直接将dy传递给I/O模块;若编码结果为0,则将当前偏导数dy与所述激活函数的参数α相乘,得到dy1,并把所得dy1传递给I/O模块。
根据本公开的另一个方面,提供了一种卷积神经网络的编码存储方法,包括:
将激活层的输入数据与一参照数据进行比较;以及
根据比较结果对所述激活层的输入数据或输出数据进行编码。
在一些实施例中,所述的卷积神经网络的编码存储方法还包括:存储所述比较结果、编码结果和激活函数的参数α;其中,所述编码结果存储在特征映射图中。
在一些实施例中,所述参照数据为一常数或激活层的输出数据。
在一些实施例中,所述参照数据为输出数据,若激活层的输入数据与输出数据相等,则将输出数据编码为1;否则,编码为0;或
所述参照数据为一常数,该常数取0,若输入数据大于0,则将输入数据编码为1;否则,编码为0。
根据本公开的另一个方面,提供了一种卷积神经网络的训练方法,包括;
在前向传播时,根据激活层的输入数据计算经由激活函数处理得到的激活层的输出数据;
在后向传播时,获取当前偏导数对应的编码结果及根据编码结果进行偏导数运算处理。
在一些实施例中,所述的训练方法还包括:将运算处理结果输出。
在一些实施例中,在所述获取当前偏导数对应的编码结果的步骤中,根据当前偏导数dy的位置取特征映射图的对应位置的编码,所述偏导数dy的位置根据矩阵或数组相对地址获得。
在一些实施例中,根据激活层的输入数据计算经由激活函数处理得到的激活层的输出数据,具体计算公式如下:f(x)=max(x,αx),式中,x表示输入数据,f(x)表示输出数据,α表示激活函数的参数;
其中,所述激活函数为线性整流函数(Rectified Linear Unit,ReLU)或带泄露整流函数(Leaky Rectified Linear Unit,Leaky ReLU)。
在一些实施例中,在所述根据编码结果进行偏导数运算处理的步骤中,若编码为1,则对当前偏导数dy不做运算处理,直接将dy传递给I/O模块;若编码为0,则将当前偏导数dy与所用激活函数等式中的α相乘,得到结果dy1,并把所得结果dy1传递给I/O模块。
根据本公开的另一个方面,提供了一种芯片,其包括所述的卷积神经网络的编码存储装置或所述的卷积神经网络的处理器。
根据本公开的另一个方面,提供了一种电子设备,其包括所述的芯片。
(三)有益效果
从上述技术方案可以看出,本公开卷积神经网络的处理器及训练方法至少具有以下有益效果其中之一:
(1)采用本公开处理器及训练方法,无需对任何影响预测结果的参数做出修改,因此不会影响卷积神经网络预测的准确性。
(2)在前向传播时已经对激活层的输入和输出进行了比较,因此在反向传播时只需要判断编码结果,不需要调出前向传播时激活层的输入和输出结果以选择求偏导数的方式。因此本公开减少了对内存的输入输出次数,优化了卷积神经网络的性能。
(3)本公开将激活层的特征映射图中的数据进行编码存储,将浮点数32位的数据压缩至1位表示,有效节约了内存。
附图说明
图1为依据本公开实施例编码存储装置方框图。
图2为依据本公开实施例处理器方框图。
图3为依据本公开另一实施例处理器方框图。
图4为依据本公开卷积神经网络的编码存储方法流程图。
图5为依据本公开实施例数据前向传播时的数据流向图。
图6为依据本公开实施例卷积神经网络的训练方法流程图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。
需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。此外,以下实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本公开。
在一实施例中,本公开提供了一种卷积神经网络的编码存储装置,如图1所示,该卷积神经网络的编码存储装置包括:存储模块和编码模块,该编码模块包括比较器和编码器;其中,所述比较器用于将激活层的输入数据与一参照数据进行比较,所述编码器用于根据比较结果对所述激活层的输入数据或输出数据进行编码。所述存储模块用于将编码结果存储在特征映射图中,还可用于存储比较结果及存储激活函数的参数α。
在一实施例中,本公开提供了一种卷积神经网络的处理器,如图2所示,该卷积神经网络的处理器包括:编码模块,用于对激活层的输入数据或输出数据进行编码;以及计算模块,与所述编码模块连接,用于进行来自前向传播的运算和来自反向传播的运算;其中,在后向传播时,所述计算模块用于根据编码结果对偏导数进行运算处理。此外,在前向传播时,所述计算模块用于根据所述激活层的输入数据计算经由激活函数处理得到的所述激活层的所述输出数据。
在一实施例中,所述编码模块可包括上述比较器以及上述编码器;所述比较器用于将激活层的输入数据与一参照数据进行比较,所述编码器用于根据比较结果对所述激活层的输入数据或输出数据进行编码。
在一实施例中,所述卷积神经网络的处理器也可进一步包括上述存储模块,用于将编码结果存储在特征映射图中、存储所述比较结果和存储激活函数的参数α。
上述实施例中,所述参照数据是为了对输入数据大小进行比较而作为参照的数据,具体可以为一常数或激活层的输出数据。所述编码采用0/1编码、以位为单位进行存储。
可选的,所述参照数据为激活层的输出数据,若激活层的输入数据与输出数据相等,则将输出数据编码为1;否则,编码为0;或所述参照数据为一常数,该常数取0,若输入数据大于0,则将输入数据编码为1;否则,编码为0。
在一实施例中,本公开还提供了一种卷积神经网络的处理器,其除了包括上述编码模块、上述存储模块以及上述计算模块之外,还可包括:I/O模块。所述I/O模块用于激活层与相邻层之间的数据传递,存储模块与计算模块之间的数据传递,编码模块、计算模块、存储模块的数据输入与输出。
具体的,如图3所示,本实施例处理器包括:I/O模块A、计算模块B、编码模块C及存储模块D。所有模块均可通过硬件电路实现。
其中,所述I/O模块A,即输入输出模块,该模块用于激活层与相邻层(指该神经网络中相邻的网络层,可以为卷积层、激活层、全连接层等)之间的数据传递,传递输入数据到计算模块与编码模块,以及接收计算结果,并且参与存储模块数据的读写操作的数据传递。
计算模块B,在前向传播过程中,计算输入数据经激活函数处理的结果,交给I/O模块向后传递;在后向传播过程中,对取出的编码结果(也称编码数据)进行判断,为1时将传入的偏导数交给I/O模块,继续向后传播;为0时计算当前传入偏导数与激活函数的参数α之积,然后将计算结果交给I/O模块向后传播。当然,此处编码方式不限制于0/1编码,可以为多值编码,也可以为其它占用多位存储空间的编码方式等。编码可以以位为单位进行存储,所述编码方式将浮点数占用32位存储的数据压缩至1位表示,有效节约了内存。
编码模块C,包括比较器和编码器,其中,比较器比较输入数据与输出数据的比较结果,然后将其传播编码器。编码器接收比较结果将比较结果进行编码输入数据与计算结果相等时,也就是输入数据大于0的数据,将其编码为1,然后将编码存储至存储模块;否则,将输入数据编码为0并将该编码存储至存储模块。
存储模块D,存储了编码数据,以及激活函数的参数α等数据。接收来自编码模块的数据编码,等待后向传播时将编码取出至I/O模块,取出后释放该编码内存。参数α在后向传播时取出,参与偏导数求解运算。
上述实施例中,对于所述计算模块,在前向传播时,根据激活层的输入数据计算经由激活函数处理得到的所述激活层的输出数据,具体计算公式如下:
f(x)=max(x,αx),其中,x表示激活层的输入数据,f(x)表示激活层的输出数据,α表示所述激活函数的参数;
式中,所述激活函数可以为线性整流函数(Rectified Linear Unit,ReLU)或带泄露整流函数(Leaky Rectified Linear Unit,Leaky ReLU)。若所述激活函数为线性整流函数,α取值优选在0~0.35的范围内。
在后向传播时,根据编码结果对偏导数进行运算处理:若编码结果为1,则对当前偏导数dy不做运算处理,直接将dy传递给I/O模块;若编码结果为0,则将当前偏导数dy与所述激活函数的参数α相乘,得到dy1,并把所得dy1传递给I/O模块。
在一实施例中,本公开还提供了一种卷积神经网络的编码存储方法,如图4所示,包括:将激活层的输入数据与一参照数据进行比较;以及根据比较结果对所述激活层的输入数据或输出数据进行编码。其中,所述参照数据为一常数或激活层的输出数据。
具体而言,所述参照数据为输出数据,若激活层的输入数据与输出数据相等,则将输出数据编码为1;否则,编码为0;或所述参照数据为一常数,该常数取0,若输入数据大于0,则将输入数据编码为1;否则,编码为0。
进一步的,所述的卷积神经网络的编码存储方法还包括:存储所述比较结果、编码结果和激活函数的参数α;其中,所述编码结果存储在特征映射图中。
在一实施例中,本公开还提供了一种卷积神经网络的训练方法,包括;
编码模块对激活层的输入数据或输出数据进行编码;
在后向传播时,计算模块获取当前偏导数对应的编码结果及根据编码结果进行偏导数运算处理。
另外,所述的训练方法还包括:在前向传播时,计算模块根据激活层的输入数据计算经由激活函数处理得到的激活层的输出数据。
在一实施例中,在所述训练方法中,所述编码模块对激活层的输入数据或输出数据进行编码的步骤包括:
将激活层的输入数据与一参照数据进行比较;以及
根据比较结果对所述激活层的输入数据或输出数据进行编码
在一实施例中,本公开还提供了一种卷积神经网络的训练方法,包括;
在前向传播时,根据激活层的输入数据计算经由激活函数处理得到的激活层的输出数据;
在后向传播时,获取当前偏导数对应的编码结果及根据编码结果进行偏导数运算处理。
上述实施例中,所述的训练方法还包括:将运算处理结果输出。
具体的,如图5-6所示,本公开卷积神经网络的训练方法包括以下步骤:
S1,前向传播至激活层,上一层的输出数据(即神经网络中的上一层网络,就卷积神经网络而言,上一层一般为卷积层或者池化层,相应的,上一层的输出数据即经卷积运算或池化处理的数据)作为本激活层的输入数据,使用I/O模块将其输入至计算模块和编码模块的比较器之中,转步骤S2;
S2,输入数据通常情况下为一组数据,通常用矩阵形式表示,但不限制于矩阵表示,可为链表,队列等数据结构。将计算模块中的输入数据通过激活函数进行运算,得到运算结果f(x),转步骤S3;
其中,计算模块每个计算单元每次只计算单个输入数据,设输入数据为x,输出数据的计算公式如下:
f(x)=max(x,αx),
式中,α表示激活函数的参数,为一常数,优选的,取值在[0,0.35]之间;
S3,将运算结果f(x)传递给I/O模块和编码模块的比较器,I/O模块将数据传递给下一层(即神经网络中排在当前激活层的下一层网络,可为卷积层、池化层等)网络;比较器比较输出结果f(x)与数据x相等,将比较结果传递给编码器,转步骤S4;否则,转步骤S5;
S4,编码模块的编码器将结果编码为1,并存储在特征映射图(Feature Map)的对应位置中,其中特征映射图可存储的编码数量应与传递至激活层的数据量相等,转步骤S6;
S5,编码器将该结果编码为0,存储在特征映射图中,转步骤S6;
S6,反向传播至激活层,设当前偏导数为dy,根据当前偏导数dy位置,取特征映射图的对应位置的编码,如果所得编码为1,转步骤S7;否则转步骤S8;其中偏导数dy的位置可根据矩阵或数组等数据结构相对地址获得,但不限于此种获取方式;
S7,对当前偏导数dy不做运算处理,直接将dy传递给I/O模块,转步骤S9;
S8,将当前偏导数dy与所用激活函数等式中的α相乘,得到结果dy1,并把所得结果dy1传递给I/O模块,转步骤S9;
S9,I/O模块输出数据。
本公开将前向传播过程中激活层的输入与输出进行比较,将比较结果进行编码存储,在后向传播过程中直接根据编码结果进行偏导数求解,缩小了内存占用,减少了访存次数,并且对网络预测结果的精确度无影响。
需要说明的是,上述实施例中,编码模块的比较器是将激活层的输入数据与输出数据进行比较,编码器根据比较结果对激活层的输出数据进行编码,但本公开并不限于此,编码模块的比较器还可以是将激活层的输入数据与一常数等参照数据进行比较,编码器根据比较结果对激活层的输入数据进行编码,其效果与上述实施例中的方式是等价的,也就是说本公开并不限于仅对输入数据与输出数据进行比较,也不仅限于对输出数据进行编码。
另外,本公开中的特征映射图中的数据并不限于所述激活层的输出数据(激活层处理之后直接存储的数据),还包括编码处理后的所述激活层的输出数据(激活层处理之后经编码处理之后再存储的数据)。
在一些实施例里,本公开还提供了一种芯片,其包括了上述编码存储装置或处理器。
在一些实施例里,本公开还提供了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本公开还提供了一种板卡,其包括了上述芯片封装结构。
在一些实施例里,本公开还提供了一种电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (22)

1.一种卷积神经网络的处理器,包括:
编码模块,用于对激活层的输入数据或输出数据进行编码;
计算模块,与所述编码模块连接,用于进行来自前向传播的运算和来自反向传播的运算;其中,在后向传播时,所述计算模块用于根据编码结果对偏导数进行运算处理。
2.根据权利要求1所述的处理器,其中,在前向传播时,所述计算模块用于根据所述激活层的输入数据计算经由激活函数处理得到的所述激活层的所述输出数据。
3.根据权利要求1或2所述的处理器,还包括:存储模块,用于将所述编码结果存储在特征映射图中。
4.根据权利要求3所述的处理器,还包括:I/O模块,用于实现激活层与相邻层之间的数据传递以及编码模块、存储模块和计算模块的数据输入与输出。
5.根据权利要求1至4中任一项所述的处理器,其中,所述编码模块包括:
比较器,用于将激活层的输入数据与一参照数据进行比较;以及
编码器,用于根据比较结果对所述激活层的输入数据或输出数据进行编码。
6.根据权利要求5所述的处理器,其中,所述参照数据为一常数或所述激活层的输出数据。
7.根据权利要求6所述的处理器,其中,
所述参照数据为激活层的输出数据,若激活层的输入数据与输出数据相等,则将输出数据编码为1;否则,编码为0;或
所述参照数据为一常数,该常数取0,若输入数据大于0,则将输入数据编码为1;否则,编码为0。
8.根据权利要求1至7中任一项所述的处理器,其中,所述编码采用0/1编码、以位为单位进行存储。
9.根据权利要求2至8中任一项所述的处理器,其中,根据所述激活层的输入数据计算经由激活函数处理得到的所述激活层的所述输出数据,具体计算公式如下:
f(x)=max(x,αx),其中,x表示激活层的输入数据,f(x)表示激活层的输出数据,α表示所述激活函数的参数;
式中,所述激活函数为线性整流函数(Rectified Linear Unit,ReLU)或带泄露整流函数(Leaky Rectified Linear Unit,Leaky ReLU)。
10.根据权利要求9所述的处理器,其中,所述激活函数为线性整流函数,α取值在0~0.35的范围内。
11.根据权利要求1至10中任一项所述的处理器,其中,在后向传播时,所述计算模块用于根据编码结果对偏导数进行运算处理:若编码结果为1,则对当前偏导数dy不做运算处理,直接将dy传递给I/O模块;若编码结果为0,则将当前偏导数dy与所述激活函数的参数α相乘,得到dy1,并把所得dy1传递给I/O模块。
12.一种芯片,其包括如权利要求1至11中任一项所述的卷积神经网络的处理器。
13.一种电子设备,其包括如权利要求12所述的芯片。
14.一种卷积神经网络的训练方法,包括;
编码模块对激活层的输入数据或输出数据进行编码;
在后向传播时,计算模块获取当前偏导数对应的编码结果及根据编码结果进行偏导数运算处理。
15.根据权利要求14所述的训练方法,还包括:
在前向传播时,计算模块根据激活层的输入数据计算经由激活函数处理得到的激活层的输出数据。
16.根据权利要求14至15中任一项所述的训练方法,还包括:在编码之后,将将所述编码结果存储在特征映射图中。
17.根据权利要求14至16中任一项所述的训练方法,所述编码模块对激活层的输入数据或输出数据进行编码的步骤包括:
将激活层的输入数据与一参照数据进行比较;以及
根据比较结果对所述激活层的输入数据或输出数据进行编码。
18.根据权利要求17所述的训练方法,其中,所述参照数据为一常数或激活层的输出数据。
19.根据权利要求18所述的训练方法,其中,
所述参照数据为输出数据,若激活层的输入数据与输出数据相等,则将输出数据编码为1;否则,编码为0;或
所述参照数据为一常数,该常数取0,若输入数据大于0,则将输入数据编码为1;否则,编码为0。
20.根据权利要求14至19中任一项所述的训练方法,其中,在所述获取当前偏导数对应的编码结果的步骤中,根据当前偏导数dy的位置取特征映射图的对应位置的编码,所述偏导数dy的位置根据矩阵或数组相对地址获得。
21.根据权利要求15至20中任一项所述的训练方法,其中,根据激活层的输入数据计算经由激活函数处理得到的激活层的输出数据,具体计算公式如下:f(x)=max(x,αx),式中,x表示输入数据,f(x)表示输出数据,α表示激活函数的参数;
其中,所述激活函数为线性整流函数(Rectified Linear Unit,ReLU)或带泄露整流函数(Leaky Rectified Linear Unit,Leaky ReLU)。
22.根据权利要求14至21中任一项所述的训练方法,其中,在所述根据编码结果进行偏导数运算处理的步骤中,若编码为1,则对当前偏导数dy不做运算处理,直接将dy传递给I/O模块;若编码为0,则将当前偏导数dy与所用激活函数等式中的α相乘,得到结果dy1,并把所得结果dy1传递给I/O模块。
CN201810504948.9A 2018-05-18 2018-05-18 卷积神经网络的处理器及训练方法 Active CN110147873B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810504948.9A CN110147873B (zh) 2018-05-18 2018-05-18 卷积神经网络的处理器及训练方法
US16/962,110 US11995556B2 (en) 2018-05-18 2019-05-17 Video retrieval method, and method and apparatus for generating video retrieval mapping relationship
EP19802694.0A EP3796189A4 (en) 2018-05-18 2019-05-17 VIDEO RECOVERY METHOD, AND METHOD AND APPARATUS FOR GENERATING A VIDEO RECOVERY MAPPING RELATION
PCT/CN2019/087446 WO2019219083A1 (zh) 2018-05-18 2019-05-17 视频检索方法及视频检索映射关系生成方法、装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810504948.9A CN110147873B (zh) 2018-05-18 2018-05-18 卷积神经网络的处理器及训练方法
CN201810486460.8A CN110147872B (zh) 2018-05-18 2018-05-18 编码存储装置及方法、处理器及训练方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810486460.8A Division CN110147872B (zh) 2018-05-18 2018-05-18 编码存储装置及方法、处理器及训练方法

Publications (2)

Publication Number Publication Date
CN110147873A true CN110147873A (zh) 2019-08-20
CN110147873B CN110147873B (zh) 2020-02-18

Family

ID=67589177

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810486460.8A Active CN110147872B (zh) 2018-05-18 2018-05-18 编码存储装置及方法、处理器及训练方法
CN201810504948.9A Active CN110147873B (zh) 2018-05-18 2018-05-18 卷积神经网络的处理器及训练方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810486460.8A Active CN110147872B (zh) 2018-05-18 2018-05-18 编码存储装置及方法、处理器及训练方法

Country Status (1)

Country Link
CN (2) CN110147872B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111461293B (zh) * 2020-03-17 2023-06-06 湖南大学 基于gpu的深度神经网络模型训练方法、装置和计算机设备

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0583217A2 (en) * 1992-08-11 1994-02-16 Hitachi Europe Limited Optimisation of feedforward neural networks
CN101882238A (zh) * 2010-07-15 2010-11-10 长安大学 基于sopc的小波神经网络处理器
US20140142929A1 (en) * 2012-11-20 2014-05-22 Microsoft Corporation Deep neural networks training for speech and pattern recognition
CN104102919A (zh) * 2014-07-14 2014-10-15 同济大学 一种有效防止卷积神经网络过拟合的图像分类方法
CN105681628A (zh) * 2016-01-05 2016-06-15 西安交通大学 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法
CN106022468A (zh) * 2016-05-17 2016-10-12 成都启英泰伦科技有限公司 人工神经网络处理器集成电路及该集成电路的设计方法
CN106295799A (zh) * 2015-05-12 2017-01-04 核工业北京地质研究院 一种深度学习多层神经网络的实现方法
CN107153873A (zh) * 2017-05-08 2017-09-12 中国科学院计算技术研究所 一种二值卷积神经网络处理器及其使用方法
WO2017185394A1 (zh) * 2016-04-29 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行全连接层神经网络反向训练的装置和方法
CN107609641A (zh) * 2017-08-30 2018-01-19 清华大学 稀疏神经网络架构及其实现方法
CN107636693A (zh) * 2015-03-20 2018-01-26 弗劳恩霍夫应用研究促进协会 针对人工神经网络的相关性分数指派
CN107729998A (zh) * 2017-10-31 2018-02-23 中国科学院计算技术研究所 一种用于神经网络处理器的方法
CN107832840A (zh) * 2017-10-31 2018-03-23 中国科学院计算技术研究所 一种用于神经网络处理器的方法
WO2018058509A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Dynamic neural network surgery

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430830A (en) * 1994-08-22 1995-07-04 Motorola, Inc. Adaptive weight adjusting circuit for an neural network
DE69932962T2 (de) * 1998-01-21 2007-02-01 Sony Corp. Kodierungsverfahren und Speicheranordnung
JP5115965B2 (ja) * 2007-10-01 2013-01-09 独立行政法人理化学研究所 ニューロン装置、神経回路網装置、非負整数符号化装置、整数クラスタ装置、フィードバック制御装置、ならびに、プログラム
US10262259B2 (en) * 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
CN105550749A (zh) * 2015-12-09 2016-05-04 四川长虹电器股份有限公司 一种新型网络拓扑结构的卷积神经网络的构造方法
CN106991477B (zh) * 2016-01-20 2020-08-14 中科寒武纪科技股份有限公司 一种人工神经网络压缩编码装置和方法
CN105894046B (zh) * 2016-06-16 2019-07-02 北京市商汤科技开发有限公司 卷积神经网络训练及图像处理的方法和系统、计算机设备
US10621486B2 (en) * 2016-08-12 2020-04-14 Beijing Deephi Intelligent Technology Co., Ltd. Method for optimizing an artificial neural network (ANN)
CN106682731A (zh) * 2017-01-13 2017-05-17 首都师范大学 卷积神经网络的加速方法及装置
CN107256424B (zh) * 2017-05-08 2020-03-31 中国科学院计算技术研究所 三值权重卷积网络处理系统及方法
CN107729990B (zh) * 2017-07-20 2021-06-08 上海寒武纪信息科技有限公司 支持离散数据表示的用于执行正向运算的装置及方法
CN107861757B (zh) * 2017-11-30 2020-08-25 上海寒武纪信息科技有限公司 运算装置以及相关产品
CN108038815B (zh) * 2017-12-20 2019-12-17 深圳云天励飞技术有限公司 集成电路

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0583217A2 (en) * 1992-08-11 1994-02-16 Hitachi Europe Limited Optimisation of feedforward neural networks
CN101882238A (zh) * 2010-07-15 2010-11-10 长安大学 基于sopc的小波神经网络处理器
US20140142929A1 (en) * 2012-11-20 2014-05-22 Microsoft Corporation Deep neural networks training for speech and pattern recognition
CN104102919A (zh) * 2014-07-14 2014-10-15 同济大学 一种有效防止卷积神经网络过拟合的图像分类方法
CN107636693A (zh) * 2015-03-20 2018-01-26 弗劳恩霍夫应用研究促进协会 针对人工神经网络的相关性分数指派
CN106295799A (zh) * 2015-05-12 2017-01-04 核工业北京地质研究院 一种深度学习多层神经网络的实现方法
CN105681628A (zh) * 2016-01-05 2016-06-15 西安交通大学 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法
WO2017185394A1 (zh) * 2016-04-29 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行全连接层神经网络反向训练的装置和方法
CN106022468A (zh) * 2016-05-17 2016-10-12 成都启英泰伦科技有限公司 人工神经网络处理器集成电路及该集成电路的设计方法
WO2018058509A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Dynamic neural network surgery
CN107153873A (zh) * 2017-05-08 2017-09-12 中国科学院计算技术研究所 一种二值卷积神经网络处理器及其使用方法
CN107609641A (zh) * 2017-08-30 2018-01-19 清华大学 稀疏神经网络架构及其实现方法
CN107729998A (zh) * 2017-10-31 2018-02-23 中国科学院计算技术研究所 一种用于神经网络处理器的方法
CN107832840A (zh) * 2017-10-31 2018-03-23 中国科学院计算技术研究所 一种用于神经网络处理器的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈云霁: "《从人工智能到神经网络处理器》", 《领导科学论坛》 *

Also Published As

Publication number Publication date
CN110147873B (zh) 2020-02-18
CN110147872A (zh) 2019-08-20
CN110147872B (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
CN108416327B (zh) 一种目标检测方法、装置、计算机设备及可读存储介质
CN109032669A (zh) 神经网络处理装置及其执行向量最小值指令的方法
CN110163357A (zh) 一种计算装置及方法
CN108334944B (zh) 一种人工神经网络运算的装置及方法
CN109376852A (zh) 运算装置及运算方法
CN110163334A (zh) 集成电路芯片装置及相关产品
CN109903350A (zh) 图像压缩方法及相关装置
CN110163350A (zh) 一种计算装置及方法
CN110147249A (zh) 一种网络模型的计算方法及装置
CN109886087A (zh) 一种基于神经网络的活体检测方法及终端设备
CN108021232A (zh) 一种大脑皮层电信号解码的方法和装置
WO2024032009A1 (zh) 一种基于模型演进的环境感知方法
CN109117455A (zh) 计算装置及方法
CN110147873A (zh) 卷积神经网络的处理器及训练方法
CN109359542A (zh) 基于神经网络的车辆损伤级别的确定方法及终端设备
CN109740729A (zh) 运算方法、装置及相关产品
CN108921291A (zh) 面向脑电信号处理的低功耗计算架构
CN115860113B (zh) 一种自对抗神经网络模型的训练方法及相关装置
CN110647356A (zh) 运算装置及相关产品
CN109416743A (zh) 一种用于识别人为动作的三维卷积装置
CN108280746A (zh) 一种基于双向循环神经网络的产品设计方法
CN110472734A (zh) 一种计算装置及相关产品
CN113112400B (zh) 一种模型训练方法及模型训练装置
CN112766475B (zh) 处理部件及人工智能处理器
CN111382848B (zh) 一种计算装置及相关产品

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing

Applicant after: Zhongke Cambrian Technology Co., Ltd

Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing

Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant