CN113011574B - 一种卷积神经网络系统、忆阻器阵列和卷积神经网络 - Google Patents
一种卷积神经网络系统、忆阻器阵列和卷积神经网络 Download PDFInfo
- Publication number
- CN113011574B CN113011574B CN202110302278.4A CN202110302278A CN113011574B CN 113011574 B CN113011574 B CN 113011574B CN 202110302278 A CN202110302278 A CN 202110302278A CN 113011574 B CN113011574 B CN 113011574B
- Authority
- CN
- China
- Prior art keywords
- convolution
- bit lines
- convolution operation
- image block
- current
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0026—Bit-line or column circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0028—Word-line or row circuits
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)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例提供了一种卷积神经网络系统、忆阻器阵列和卷积神经网络,所述系统通过忆阻器阵列中多列位线和多行字线,采用大小为N*N的卷积核对待处理图像中的当前图像块进行卷积运算,包括:根据卷积核的步长在待处理图像上先后选取重叠相邻的两个图像块,确定两个图像块之间复用的多个像素点的特征值;根据复用的多个像素点的特征值,确定前N列位线中复用的多个权值;根据所述多个权值设置忆阻器单元的工作状态和电导;获得前N列位线各自在当前卷积运算周期内输出的电流值,作为卷积结果。本发明实施例提供的卷积神经网络系统,利用图像块之间复用的多个像素点的特征值进行卷积运算,增加了忆阻器阵列在每个周期内的计算量,提高了计算效率。
Description
技术领域
本发明涉及半导体器件领域,特别是涉及一种卷积神经网络系统、忆阻器阵列和卷积神经网络。
背景技术
忆阻器的非易失记忆特性使其具备数据存储能力,而其电导状态可调节的能力使其具备数值计算能力,二者相结合使忆阻器可在同一位置实现计算与存储的融合,实现“存算一体”,从而有望突破传统冯诺依曼计算架构的限制,具有广阔的应用前景。
相关技术提出使用由忆阻器单元和金属导线组成的忆阻器阵列来实现向量和矩阵乘法,通过对忆阻器单元的电导和通断进行设置,由忆阻器阵列输出对应的电流值,模拟数值计算的过程和结果。进一步地,忆阻器阵列将输出的电流值作为神经网络在计算过程中的输出结果,即可以完成神经网络的映射计算。
然而,受到忆阻器阵列的结构特性和神经网络映射计算原理的制约,将神经网络的计算过程映射至忆阻器阵列时,忆阻器阵列的利用率不高,忆阻器阵列在每一个卷积运算周期只能完成有限的计算量,导致忆阻器阵列计算效率低下。
发明内容
鉴于上述问题,本发明实施例提出了一种克服上述问题或者至少部分地解决上述问题的一种卷积神经网络系统、忆阻器阵列和卷积神经网络。
为了解决上述问题,本发明实施例提供了一种卷积神经网络系统,所述系统包括:
由多条位线、多条字线以及忆阻器单元组成的忆阻器阵列,其中,每一行字线和每一列位线交叉连接,连接处设置有所述忆阻器阵列中的一个忆阻器单元;通过所述忆阻器阵列中多列位线和多行字线,采用大小为N*N的卷积核对待处理图像进行卷积运算,包括:
在当前卷积运算周期内,获得采用所述大小为N*N的卷积核对当前图像块进行卷积运算的运算结果,具体包括:
从所述待处理图像选取一个图像块作为当前图像块,根据所述当前图像块上的各个像素点的特征值,向前N*N行字线输入相应大小的电压;
根据所述大小为N*N的卷积核的步长,在所述待处理图像上先后选取重叠相邻的两个图像块,确定重叠相邻的两个图像块之间复用的多个像素点;
根据重叠相邻的两个图像块之间复用的多个像素点,确定前N列位线中的多个权值;
根据所述前N列位线中的多个权值,设置所述前N列位线各自的各个忆阻器单元的工作状态和电导;
获得所述前N列位线各自在所述当前卷积运算周期内输出的电流值,其中,一列位线输出的电流值,即为通过该列上的各个忆阻器单元对应的权值,与所述当前图像块上的对应像素点的特征值相乘并累加的结果;
其中,所述前N列位线中首列位线在所述当前卷积运算周期内输出的电流值,即为采用所述大小为N*N的卷积核对所述当前图像块进行卷积运算的运算结果。
本发明实施例还提供了一种忆阻器阵列,所述忆阻器阵列位于上述实施例任一项所述的卷积神经网络系统中,所述忆阻器阵列包括:多条位线、多条字线以及忆阻器单元;所述忆阻器阵列用于执行如下步骤:
在采用大小为N*N的卷积核进行卷积运算的每个卷积运算周期内,所述忆阻器阵列中每N*N行字线将输入的待处理图像的特征值映射为电压,所述忆阻器阵列中每N列位线上的忆阻器单元将大小为N*N的卷积核在该卷积运算周期内和下一卷积运算周期内需要使用的权值映射为电导;
其中,在相邻的两个卷积运算周期内,所述忆阻器阵列的每N*N行字线和每2N-1列位线共同完成N+1个依次重叠相邻的图像块的卷积运算。
本发明实施例还提供了一种卷积神经网络,所述卷积神经网络位于上述实施例任一项所述的卷积神经网络系统中,所述卷积神经网络包括:大小为N*N的卷积核;所述卷积神经网络用于执行如下步骤:
所述卷积神经网络在待处理图像上以步长N滑动卷积窗口,选取多个不重叠的相邻的大小为N*N的图像块的特征值;
所述卷积神经网络将所述多个不重叠的相邻图像块的特征值分别在多个卷积运算周期内输入忆阻器阵列对应的N*N行字线,并获得所述忆阻器阵列在所述多个卷积运算周期内由对应的N列位线输出的电流值;
所述卷积神经网络根据所述电流值,获得采用所述大小为N*N的卷积核对所述多个不重叠的相邻图像块进行卷积运算的多个运算结果,以及,获得采用所述大小为N*N的卷积核对所述多个不重叠的相邻图像块中所有大小为N*N的组合图像块进行卷积运算的多个运算结果。
从上述技术方案可以看出,本发明实施例提供了一种卷积神经网络系统、忆阻器阵列和卷积神经网络,所述系统通过忆阻器阵列中多列位线和多行字线,采用大小为N*N的卷积核对待处理图像中的当前图像块进行卷积运算,包括:根据卷积核的步长在待处理图像上先后选取重叠相邻的两个图像块,确定两个图像块之间复用的多个像素点的特征值;根据复用的多个像素点的特征值,确定前N列位线中复用的多个权值;根据所述多个权值设置忆阻器单元的工作状态和电导;获得前N列位线各自在当前卷积运算周期内输出的电流值,作为卷积结果。本发明实施例提供的卷积神经网络系统,利用图像块之间复用的多个像素点的特征值进行卷积运算,增加了忆阻器阵列在每个周期内的计算量,减少了忆阻器阵列卷积运算的周期数量,能够有效提高通过忆阻器阵列映射的卷积神经网络系统的计算效率。
附图说明
图1是相关技术中一种忆阻器器件的结构示意图;
图2是相关技术中一种忆阻器阵列的示意图;
图3是相关技术中一种忆阻器阵列应用计算的原理示意图;
图4是相关技术中一种图像卷积运算的示意图;
图5是相关技术中一种图像块卷积运算的示意图;
图6是相关技术中一种忆阻器阵列卷积计算的原理示意图;
图7是本发明实施例提供的一种卷积神经网络系统的结构框图;
图8是本发明实施例提供的一种卷积神经网络系统进行图像卷积运算的步骤流程图;
图9是本发明实施例提供的一种忆阻器阵列卷积运算当前卷积运算周期权值复用的示例图;
图10是本发明实施例提供的一种忆阻器阵列卷积运算下一卷积运算周期权值复用的示例图;
图11是本发明实施例提供的一种忆阻器阵列卷积运算相邻卷积运算周期权值复用的示例图;
图12是本发明实施例提供的一种多卷积核运算的卷积神经网络系统的示例图;
图13是本发明实施例提供的一种多通道运算的卷积神经网络系统的示例图;
图14是本发明实施例提供的一种多卷积核多通道运算的卷积神经网络系统的示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
忆阻器,全称为记忆电阻器,是一种表示磁通与电荷关系的电路器件。但忆阻器并不是通过磁通量和电荷之间的关系来改变电阻,而是通过薄膜中化学物质的性质来改变电阻。忆阻器被认为是电阻、电感和电容之外的第四种电路元器件,它不仅可以根据流经的电荷改变阻值,即使电流停止了仍然可以保持阻值,记忆通过的电荷量,直到通过反向的电流,阻值才会发生变化。
参照图1,图1是相关技术中一种忆阻器器件的结构示意图。如图1所示,该忆阻器器件包含一个上电极、一个下电极以及一层位于两者之间的阻变层,阻变层的材料一般是金属氧化物,常见的有HfO2、TiO2、NiO等。通过对忆阻器施加外部电压,忆阻器可以在高阻态和低阻态之间切换,而用忆阻器单元的高低阻态分别表示逻辑“0”和“1”,即可实现1比特数据的存储功能。
参照图2,图2是相关技术中一种忆阻器阵列的示意图。如图2所示,忆阻器阵列利用包括字线、位线在内的控制导线,对阵列排布的忆阻器单元进行控制,可以实现规模数据的存储和计算。忆阻器阵列的计算原理参照如下公式:
其中,Vj为第j行字线上的电压,Gij为第i行字线第j列位线对应的忆阻器单元的电导,Ii为第i列位线上的电流。即,两组输入的乘累加结果。利用忆阻器的特性,根据基尔霍夫定律,将一组输入作为电压加载在对应的横向的字线上,另一组输入作为电导存储在对应的忆阻器单元中,在对应的位线上得到的电流即为这两组输入的乘累加计算结果,即可以完成一次计算。其中,电导是电阻的倒数。
参照图3,图3是相关技术中一种忆阻器阵列应用计算的原理示意图。如图3所示,将一组输入作为电压V1加载在对应的横向的字线1上,另一组输入作为电导G1存储在对应的忆阻器单元中;将一组输入作为电压V2加载在对应的横向的字线2上,另一组输入作为电导G2存储在对应的忆阻器单元中,在对应的位线上得到的电流G1*V1+G2*V2,即为两次乘累加的计算结果。
因此,可以用于作为存储器的忆阻器阵列不需要额外的计算单元,就可以由自身方便地进行向量乘法运算乃至矩阵乘法运算,实现“存算一体”。忆阻器阵列内的忆阻器单元数量和阵列大小可以根据实际需求自由配置,现在常见的忆阻器阵列大小包括256*256、1152*1152等。
基于相同的基础原理,忆阻器阵列同样可以映射复杂的神经网络运算,包括目前最常见的卷积神经网络。在基础的卷积运算中,当卷积核大小为N*N的卷积神经网络的对输入参数进行卷积处理时,每次卷积需要N*N个输入参数与固定不变的N*N个卷积运算的权值进行乘累加操作,以获得一个输出值。
当利用忆阻器阵列进行卷积运算时,由N*N行忆阻器阵列输入电压对卷积运算的输入参数进行映射,并设置指定列上这N*N行对应的N*N个忆阻器单元的电导,对卷积运算的权值进行映射,得到该列输出的电流,即,卷积运算的输出值。其中,权值,即,卷积核进行卷积运算的卷积权重参数,在数据的卷积运算过程中可以保持固定不变。
参照图4,图4是相关技术中一种图像卷积的示意图。如图4所示,大小为3*3卷积核在二维的输入图像上“滑动”卷积窗口,从卷积窗口内依次选取由像素点1-9组成的输入图像块1、由像素点4-12组成的输入图像块2、由像素点7-15组成的输入图像块3等输入图像上的各个图像块并计算。
参照图5,图5是相关技术中一种图像块卷积运算的示意图。如图5所示,以图像块A的计算为例,当对卷积窗口“滑动”到输入图像的右上角时,将卷积窗口内的图像块A对应的像素点,即,像素点,作为输入参数进行矩阵乘法运算,即,对输入图像的右上角的3*3的图像块A进行卷积运算。如图所示,右上角卷积窗口内该图像块A的图像输入参数依次为2、1、0、1、3、1、2、2、3,权值依次为0、1、2、2、2、0、0、1、2。其中,权值,即,卷积权重参数,是固定不变的,由卷积核决定。卷积核通过将图像块A提供的输入参数和权值进行矩阵乘法运算,获得输出值2*0+1*1+0*2+1*2+3*2+1*0+2*0+2*1+3*2=17。同理,当运算对象是非图像的数据时,也能通过类似的方式选取输入参数,进行卷积运算。
参照图6,图6是相关技术中一种忆阻器阵列卷积计算的原理示意图。如图6所示,当卷积核大小为3*3的卷积神经网络通过忆阻器阵列进行图像识别时,一个卷积核提取大小为3*3的图像块C的像素点的输入参数1-9,与固定的权值1-9分别进行计算,获得计算结果。则对应地,将像素点的输入参数1-9映射为忆阻器阵列第1-9行的输入电压,将权值1-9映射为忆阻器阵列第j列第1-9行上忆阻器的电导,则第j列输出的电流则等效于该图像块C的输出值。
由于忆阻器阵列中每行字线对应的多个忆阻器单元共享该行字线的输入电压,则需要计算的数据的输入参数映射为字线上的电压只能分别单独输入,也就导致在每一个卷积运算周期内,用于输入电压的1-9行字线对应的所有忆阻器单元一定会被占用。而事实上,在整个忆阻器阵列中真正起到计算作用的只有同时对应第1-9行和第j列上的9个忆阻器单元,忆阻器阵列中的其他忆阻器单元都不参与到运算中,而处于闲置状态。同理,忆阻器阵列进行卷积核大小为5×5的卷积运算时,只能用到25个忆阻器单元;进行卷积核大小为7×7的卷积运算时,也只能用到49个忆阻器单元……这对于256*256、1152*1152等大小的忆阻器阵列来说,闲置浪费率是非常惊人的,极大地限制了忆阻器阵列卷积运算的计算效率,阻碍了忆阻器阵列卷积运算的发展和应用。
基于对上述问题的分析,发明人提出一种卷积神经网络系统、忆阻器阵列和卷积神经网络,通过提高忆阻器阵列卷积运算时的电路利用率,增加忆阻器阵列卷积运算在每个卷积运算周期内的计算量,减少忆阻器阵列卷积运算的周期数量,提高忆阻器阵列卷积运算的计算效率。发明构思如下:
如图4所示,基于相关技术中卷积神经网络的计算原理,卷积窗口依次选取的输入图像块1、输入图像块2、输入图像块3等图像块,是彼此重叠相邻的图像块。示例性地,输入图像块1和输入图像块2的重叠部分包括像素点4-9,输入图像块2和输入图像块3的重叠部分包括像素点7-12。卷积核在每一个卷积运算周期内,对一个图像块进行卷积运算。尽管在不同的运算周期,每一个像素点在作矩阵乘法时所对应的权值不同,但在相邻的卷积运算周期,均存在重叠部分的像素点作为输入参数被重复输入过。
有鉴于此,发明人提出忆阻器阵列在进行图像的卷积运算时,确定输入图像上重叠相邻的两个图像块之间复用的像素点,在每一个卷积运算周期内,对应卷积核的大小在多列位线上设置能够用于复用的忆阻器单元的电导,在每个周期内得到能够用于复用的运算结果,以增加每个运算周期内的运算量,避免了像素点的重复计算,提高忆阻器阵列的计算效率。
下面将参考附图并结合实施例来详细说明本发明。
参照图7,图7是本发明实施例提供的一种卷积神经网络系统的结构框图。如图7所示,本发明实施例提供的卷积神经网络系统包括:由多条位线、多条字线以及忆阻器单元组成的忆阻器阵列,其中,每一行字线和每一列位线交叉连接,连接处设置有所述忆阻器阵列中的一个忆阻器单元。
其中,所述卷积神经网络系统中的忆阻器阵列可以是互相连接的多组阵列,一个忆阻器阵列的输出电流值可以通过转换为电压信号,作为下一个忆阻器阵列的输入,也可以转换为数字信号暂存在寄存器内。
本实施例提供的卷积神经网络系统,通过忆阻器阵列映射卷积神经网络的卷积运算,可以将整个卷积神经网络系统最终的输出电流值作为对卷积神经网络最终的输出值,即,对输入的待处理图像的卷积运算结果。
参照图8,图8是本发明实施例提供的一种卷积神经网络系统进行图像卷积运算的步骤流程图。如图8所示,本发明实施例的卷积神经网络系统,通过所述忆阻器阵列中多列位线和多行字线,采用大小为N*N的卷积核对待处理图像进行卷积运算,包括:在当前卷积运算周期内,获得采用所述大小为N*N的卷积核对当前图像块进行卷积运算的运算结果。
在本实施例中,基于忆阻器阵列和卷积运算的特性,遵循忆阻器阵列卷积运算的计算规律,通过卷积窗口的滑动,选取当前图像块,根据当前图像块内所有的像素点的特征值,向前N*N行字线输入相应大小的电压;根据权值设置忆阻器单元的工作状态和电导;通过权值与对应特征值进行矩阵乘法运算得到相乘后累加的结果,即采用所述大小为N*N的卷积核对当前图像块进行卷积运算的运算结果。
在本实施例中,考虑将待处理图像中的各个图像块之间的重叠像素点作为复用像素点,在一个卷积运算周期内,通过计算N列位线的输出值并进行复用,增加每个卷积运算周期内的运算量,以提高计算效率。为此,在当前卷积运算周期内,获得采用所述大小为N*N的卷积核对当前图像块进行卷积运算的运算结果,具体可以包括如下步骤:
步骤S31,从所述待处理图像选取一个图像块作为当前图像块,根据所述当前图像块上的各个像素点的特征值,向前N*N行字线输入相应大小的电压。
其中,本实施例中的待处理图像可以是各类图像,包括单通道图像和多通道图像。当所述待处理图像为单通道图像时,则直接将该待处理图像的像素点的特征值作为卷积运算的输入参数,完成该待处理图像的卷积运算;当所述待处理图像为多通道图像时,可以分别对该待处理图像的每一个通道进行卷积运算,再通过多个通道的计算结果对应的累加,得到该待处理图像的最终输出结果,即,先计算完该待处理图像的一个通道,再计算该待处理图像的另一个通道,再通过多个通道的计算结果对应的累加,得到该待处理图像的最终输出结果。其中,多个通道的计算结果对应的累加,可以由多个前后连接的忆阻器阵列计算完成。
示例性地,当待处理图像为灰度单值图像时,可以直接将该待处理图像的像素点灰度值作为卷积运算的输入参数,完成该待处理图像的卷积运算。当待处理图像为RGB多通道图像时,可以通过三个忆阻器阵列分别该待处理图像对应的红色通道图像、绿色通道图像、蓝色通道图像进行卷积运算,最后对三个通道图像的计算结果进行累加,得到待处理图像的卷积运算结果。
具体地,可以将待处理图像中像素点的特征值等值映射为对应字线上的电压值,也可以将待处理图像中像素点的特征值等比映射为对应字线上的电压值。其中,等比映射的比例可以根据忆阻器阵列的电路特性进行设置。示例性地,假设待处理图像中数个像素点的特征值分别为0、1、3……则对应字线上的输入电压可以等值映射为0V、1mV、3mV,而考虑到所使用的忆阻器阵列适用的电压值和电流值范围,可以将对应字线上的输入电压可以等值映射为0V、10mV、30mV。
步骤S32,根据所述大小为N*N的卷积核的步长,在所述待处理图像上先后选取重叠相邻的两个图像块,确定重叠相邻的两个图像块之间复用的多个像素点。
基于卷积神经网络的运算原理,卷积核的步长通常设置为1,卷积核通常为3*3、5*5、7*7等单数大小。在这种情况下,卷积核根据步长在输入的数据上滑动卷积窗口,依次选取图像块,则选取的相邻图像块一定会有重叠部分,即,重叠相邻的两个图像块之间存在N*(N-1)个公共像素点。而忆阻器阵列如果依次对重叠相邻的图像块进行卷积运算,实际上每一个卷积运算周期内都有N*(N-1)个公共像素点是重复输入的,这就造成了计算资源的浪费和计算效率的低下。
为此,本实施例将卷积窗口选取的重叠相邻的两个图像块之间的公共像素点,作为两个图像块之间复用的多个像素点,以用于根据所述多个像素点的特征值,实现两个相邻卷积运算周期之间运算结果的复用。
如图4所示,示例性地,输入图像块1和输入图像块2之间复用的多个像素点为像素点4-9,输入图像块2和输入图像块3之间复用的多个像素点为像素点7-12。
步骤S33,根据重叠相邻的两个图像块之间复用的多个像素点,确定前N列位线中的多个权值。
针对大小为N*N的卷积核的卷积运算,相关技术在忆阻器阵列的N*N字线上输入电压,但仅用到忆阻器阵列中的一列位线输出电流,作为当前图像块的运算结果。本实施例考虑到对重叠相邻的两个图像块之间复用的多个像素点的特征值进行重复利用,即,对复用的多个像素点对应的多列字线上输入的电压进行重复利用,确定前N列位线中的权值。所述前N列位线中的权值,包括:像素点在当前图像块内对应首列位线中的权值、像素点在当前图像块的重叠图像块内对应第2至N列位线中复用的权值。
其中,所述重叠图像块是所述当前图像块与组合图像块的重叠部分的图像块。所述组合图像块,可以看作相关技术中按照卷积核的步长依次滑动卷积窗口得到的图像块,是与当前图像块存在重叠的图像块。当卷积核大小为N*N时,组合图像块数量等于N-1,N-1个组合图像块与下一图像块也均存在重叠。下一图像块,即,与所述当前图像块不重叠相邻的图像块。
示例性地,当N等于3时,当前图像块与下一图像块之间的组合图像块有两个。
在本实施例中,关于忆阻器阵列位线的序号描述仅涉及算法层面,不一定代表在忆阻器阵列中的实际位置。可选地,首列位线可以是前N列位线中的任意一列。示例性地,当N等于3时,首列位线可以是中间的一列位线,则第2至N列位线是边缘的两列位线。当然,为了便于相邻卷积运算周期对运算结果的复用,各列位线的算法序号与在忆阻器阵列中的实际位置的对应关系,在各个卷积运算周期内都应该是一致的。示例性地,如果在当前卷积运算周期,首列位线是3列位线中间的一列位线,那么在下一卷积运算周期,首列位线也应该是3列位线中间的一列位线。
在本实施例中,可以根据所选用的运算结果复用方式,确定前N列位线中的多个权值。其中,运算结果复用方式是指对所述前N列位线中第2至第N列位线在所述当前卷积运算周期内输出的电流值进行复用时,将当前卷积运算周期的复用运算结果与下一卷积运算周期的复用运算结果相加,或者,将当前卷积运算周期的复用运算结果与上一卷积运算周期的复用运算结果相加。
在一种可选的实施方式中,假设大小为N*N卷积核的权值依次为1至N*N,当前图像块内的像素点相应地依次为1至N*N。若运算结果复用方式是将当前卷积运算周期的复用运算结果与下一卷积运算周期的复用运算结果相加,则前N*N行字线、第1列位线同时对应的N*N个忆阻器单元映射的权值依次为1至N*N,以用于获得当前图像块的运算结果。第N+1至第N*N行字线、第2列位线同时对应的(N-1)*N个忆阻器单元映射的权值依次为1至(N-1)*N,以用于获得当前图像块的右边重叠相邻的第1个图像块中像素点(N-1)*N至第N对应图像的运算结果……第(N-1)*N+1至第N*N行字线、第N列位线同时对应的N个忆阻器单元映射的权值依次为1至N;以用于分别获得当前图像块重叠的N-1个组合图像块对应的N-1个重叠图像块的卷积运算结果。
类似地,若运算结果复用方式是将当前卷积运算周期的复用运算结果与上一卷积运算周期的复用运算结果相加,可以分别在第2至第N列位线上映射权值N+1至N*N到第1至(N-1)*N行字线对应的忆阻器单元、权值2N+1至N*N到第1至2N行字线对应的忆阻器单元……权值(N-1)*N+1至N*N到第1至N行字线对应的忆阻器单元。
参照图9,图9是本发明实施例提供的一种忆阻器阵列卷积运算当前卷积运算周期权值复用的示例图。如图9所示,在本实施例提供的一种示例中,当忆阻器阵列进行卷积核大小为3*3的卷积运算时,前9行字线、第1列位线同时对应的9个忆阻器单元映射的权值依次为1-9,以用于获得当前图像块的运算结果;第4-9行字线、第2列位线同时对应的6个忆阻器单元映射的权值依次为1-6,以用于获得当前图像块的右边重叠相邻的第一个图像块中像素点4-9部分图像的运算结果;第7-9行字线、第3列位线同时对应的3个忆阻器单元映射的权值依次为1-3,以用于获得当前图像块的右边重叠相邻的第二个图像块中像素点7-9部分图像的运算结果。
步骤S34,根据所述前N列位线中的多个权值,设置所述前N列位线各自的各个忆阻器单元的工作状态和电导。
具体地,忆阻器单元的工作状态表示忆阻器单元是否导通,具体包括:导通、断开,可以通过忆阻器单元中的MOS管进行控制。
其中,忆阻器单元的电导,即忆阻器单元中忆阻器器件的电阻的倒数。由于电压与电导之积等于通过的电流值,电压用于表征输入参数,电导用于表征权值,则电流值即输出结果。
示例性地,在首列位线上将权值1-9映射在前9行、首列位线对应的忆阻器单元上时,这些忆阻器单元内的MOS管均保持导通状态,忆阻器单元的电导与权值等值或等比完成映射。例如,若权值为1、3……,对应的忆阻器单元的电导也可以为1、3……
步骤S35,获得所述前N列位线各自在所述当前卷积运算周期内输出的电流值,其中,一列位线输出的电流值,即为通过该列上的各个忆阻器单元对应的权值,与所述当前图像块上的对应像素点的特征值相乘并累加的结果;其中,所述前N列位线中首列位线在所述当前卷积运算周期内输出的电流值,即为采用所述大小为N*N的卷积核对所述当前图像块进行卷积运算的运算结果。
在本实施例中,所述前N列位线中第2至第N列位线在所述当前卷积运算周期内输出的电流值,即为采用所述大小为N*N的卷积核对重叠图像块进行卷积运算的运算结果,也可以看作采用所述大小为N*N的卷积核对复用的多个像素点在组合图像块内的重叠图像块进行卷积运算的运算结果。其中,所述重叠图像块是所述当前图像块与组合图像块的重叠部分的图像块;所述组合图像块包括了当前图像块与不重叠的相邻图像块,即,下一图像块之间的所有组合图像块,其中组合图像块、当前图像块、下一图像块的大小,均与卷积核的大小一致。所述第2至第N列位线是前N列位线中与所述首列位线相对的其他位线。
其中,前N列位线中第2至第N列位线在所述当前卷积运算周期内输出的电流值,可以简称作复用电流值;采用所述大小为N*N的卷积核对重叠图像块进行卷积运算的运算结果,可以简称作复用运算结果。
也就是说,各个组合图像块分别与当前图像块存在重叠,各个组合图像块分别与下一图像块也存在重叠。结合图4所示,示例性地,假设卷积核大小为3*3,当前图像块为输入图像块1,下一图像块可以为输入图像块4,则当前图像块与下一图像块之间的组合图像块,包括输入图像块2、输入图像块3。
通过上述实施例,在一个卷积运算周期内,从忆阻器阵列获得了N列位线的卷积运算结果,即,增加了忆阻器阵列在一个卷积运算周期内的计算量,有效提高了忆阻器阵列卷积运算的效率。
在一种可选的实施方式中,本发明实施例还提供一种卷积运算结果复用的卷积神经网络系统,包括:暂存所述前N列位线中除首列位线以外的第2至第N列位线在所述当前卷积运算周期内输出的电流值;在下一卷积运算周期内,获得采用所述大小为N*N的卷积核对所述当前图像块与下一图像块之间的组合图像块进行卷积运算的多个运算结果。
可选地,可以将所述前N列位线中除首列位线的第2至第N列位线在所述当前卷积运算周期内输出的电流值暂存在寄存器内,以在下一卷积运算周期内从寄存器内读取当前卷积运算周期内输出的电流值。
其中,在下一卷积运算周期内,获得采用所述大小为N*N的卷积核对所述当前图像块与下一图像块之间的组合图像块进行卷积运算的多个运算结果,具体包括如下步骤:
步骤S41,在所述待处理图像上按N个步长滑动卷积窗口,以从所述待处理图像上选取与所述当前图像块相距N*N个像素点的一个不重叠的相邻图像块作为下一图像块,根据所述下一图像块上的各个像素点的特征值,向所述前N*N行字线输入相应大小的电压。
由于在前述步骤中,确定了前N列位线中复用的多个权值,设置了前N列位线各自的各个忆阻器单元的工作状态和电导,获得了采用所述大小为N*N的卷积核对重叠图像块进行卷积运算的运算结果。
为了进一步获得组合图像块完整的运算结果,需要卷积窗口滑动N个步长后对下一图像块进行卷积运算,这样做得到的下一图像块就与组合图像块不存在重叠,保证了每一个像素点的计算均不会发生重复。在下一卷积运算周期,输入新的图像块进行计算,则需要重新输入与下一图像块的像素点的特征值相应大小的电压,用以计算对下一图像块进行卷积运算的运算结果和对所述当前图像块与下一图像块之间的组合图像块的多个运算结果。
步骤S42,根据重叠相邻的两个图像块之间复用的多个像素点,确定第N+1列至第2N-1列位线中复用的多个权值。
在前述步骤中,获得了采用所述大小为N*N的卷积核对重叠图像块进行卷积运算的运算结果,为了进一步获得组合图像块完整的运算结果,可以继续根据重叠相邻的两个图像块之间复用的多个像素点,确定第N+1列至第2N-1列位线中复用的多个权值,以用于计算组合图像块内除重叠图像块以外的缺失图像块。其中,缺失图像块是下一图像块中与该组合图像块的重叠部分的图像块。
在一种可选的实施方式中,假设大小为N*N卷积核的权值依次为1至N*N,下一图像块内的像素点相应地依次为N*N+1至2N*N,本实施例在下一卷积运算周期确定第N+1列至第2N-1列位线中复用的多个权值,若运算结果复用方式是将当前卷积运算周期的复用运算结果与下一卷积运算周期的复用运算结果相加,则前N*N行字线、第1列位线同时对应的N*N个忆阻器单元映射的权值依次为1至至N*N,以用于获得下一图像块的运算结果。第1至第N行字线、第N+1列位线同时对应的N个忆阻器单元映射的权值依次为(N-1)*N+1至N*N……第1至第(N-1)*N行字线、第2N-1列位线同时对应的(N-1)*N个忆阻器单元映射的权值依次为N+1至N*N;以用于获得N-1个重叠图像块的分别对应的N-1个缺失图像块的卷积运算结果。
参照图10,图10是本发明实施例提供的一种忆阻器阵列卷积运算下一卷积运算周期权值复用的示例图。如图10所示,示例性地,当忆阻器阵列进行卷积核大小为3*3的卷积运算时,输入新的图像像素点10-18对应的输入电压,与当前卷积运算周期相同,前9行字线、第1列位线同时对应的9个忆阻器单元映射的权值依次为1-9,以用于获得当前图像块的运算结果;第1-6行字线、第5列位线同时对应的6个忆阻器单元映射的权值依次为4-9,以用于获得当前图像块的左边重叠相邻的第一个图像块中像素点10-15部分图像的运算结果;第1-3行字线、第4列位线同时对应的3个忆阻器单元映射的权值依次为7-9,以用于获得下一图像块的左边重叠相邻的第二个图像块中像素点10-12部分图像的运算结果。
步骤S43,根据第N+1列至第2N-1列位线中复用的多个权值,设置第N+1列至第2N-1列各自的各个忆阻器单元的工作状态和电导。
该步骤参照上述步骤S34中记载的设置方法完成,在此不再赘述。
步骤S44,获得第N+1列至第2N-1列位线各自在所述下一卷积运算周期内输出的电流值,其中,一列位线输出的电流值,即为通过该列上的各个忆阻器单元对应的权值,与所述下一图像块上的对应像素点的特征值相乘并累加的结果。
本实施例通过计算第N+1列至第2N-1列位线各自在所述下一卷积运算周期内输出的电流值,对组合图像块内除重叠图像块以外的缺失图像块进行卷积运算。其中,缺失图像块是下一图像块中与该组合图像块的重叠部分的图像块。
该步骤具体的实施方法参照上述步骤S35中记载的计算方法完成,在此不再赘述。
步骤S45,将暂存的第2至第N列位线在所述当前卷积运算周期内输出的电流值与第N+1列至第2N-1列位线各自在所述下一卷积运算周期内输出的电流值对应相加,作为采用所述大小为N*N的卷积核对所述当前图像块和所述下一图像块的组合图像块进行卷积运算的运算结果。
本实施例将第N+1列至第2N-1列位线各自在所述下一卷积运算周期内输出的电流值,作为组合图像块内除重叠图像块以外的缺失图像块的卷积运算结果。而述前N列位线中第2至第N列位线在所述当前卷积运算周期内输出的电流值,即为采用所述大小为N*N的卷积核对重叠图像块进行卷积运算的运算结果,则将暂存的第2至第N列位线在所述当前卷积运算周期内输出的电流值与第N+1列至第2N-1列位线各自在所述下一卷积运算周期内输出的电流值对应相加,即可获得采用所述大小为N*N的卷积核对所述当前图像块和所述下一图像块的组合图像块进行卷积运算的运算结果。
示例性地,如图4所示,对于由像素点4-12组成的组合图像块1来说,其需要的卷积运算结果是像素点4-12与权值1-9的矩阵乘法运算,假设在当前卷积运算周期内在第2列位线中进行了像素点4-9与权值1-6的矩阵乘法运算,则在下一卷积运算周期内可以在第4列位线上进行像素点10-12与权值7-9的矩阵乘法运算,将当前卷积运算周期第2列位线输出的电流值与下一卷积运算周期第4列位线输出的电流值相加,即得到组合图像块1的卷积运算结果。
通过上述实施例,本发明提供的卷积神经网络系统在两个相邻的卷积运算周期内分别完成两个完整的输入图像块的卷积运算,以及,多个组合图像块各自在两个完整的输入图像块内的重叠部分的卷积运算结果,最终将多个重叠部分的卷积运算结果对应相加,获得两个完整的输入图像块之间的所有组合图像块的卷积运算结果,也就是说,在两个相邻的卷积运算周期内完成多个完整的输入图像块的卷积运算,避免了多次输入重复像素点的浪费,减少了卷积运算周期的数量,有效提高了忆阻器阵列卷积运算的效率。
在下一卷积运算周期,完全可以复用当前卷积运算周期的忆阻器阵列的设置,复用忆阻器的电导和工作状态,利用新输入的电压进行计算,基于此,在一种可选的实施方式中,本发明实施例还提供一种卷积神经网络系统,以对下一图像块进行卷积运算,包括:
在下一卷积运算周期内,获得采用所述大小为N*N的卷积核对所述下一图像块进行卷积运算的运算结果,具体包括:
获得所述前N列位线中首列位线在所述下一卷积运算周期内输出的电流值,该电流值即为采用所述大小为N*N的卷积核对所述下一图像块进行卷积运算的运算结果。
示例性地,如图10所示,在下一卷积运算周期内输入图像像素点10-18对应的电压,结合与当前运算周期相同的首列位线中忆阻器电导对应的权值1-9,首列位线输出的电流值即为采用所述大小为N*N的卷积核对所述下一图像块进行卷积运算的运算结果。
通过本实施例,以相同的权值、不同的输入参数计算每一卷积运算周期的图像块,以实现完整的输入图像块的卷积运算。
在一种可选的实施方式中,本发明提出的一种卷积神经网络系统还可以在同一卷积运算周期通过2N-1列位线,同时计算2N-1个卷积运算结果,具体包括如下步骤:
从所述待处理图像选取一个图像块作为当前图像块,根据所述当前图像块上的各个像素点的特征值,向前N*N行字线输入相应大小的电压;
根据大小为N*N的卷积核的步长,在所述待处理图像上先后选取重叠相邻的两个图像块,确定重叠相邻的两个图像块之间复用的多个像素点;
根据重叠相邻的两个图像块之间复用的多个像素点,确定前2N-1列位线中的多个权值;
根据所述前2N-1列位线中的多个权值,设置所述前2N-1列位线各自的各个忆阻器单元的工作状态和电导;
获得所述前2N-1列位线各自在所述当前卷积运算周期内输出的电流值,其中,一列位线输出的电流值,即为通过该列上的各个忆阻器单元对应的权值,与所述当前图像块上的对应像素点的特征值相乘并累加的结果;
其中,所述前2N-1列位线中第N列位线在所述当前卷积运算周期内输出的电流值,即为采用所述大小为N*N的卷积核对所述当前图像块进行卷积运算的运算结果;所述前2N-1列位线中第1至第N-1列位线在所述当前卷积运算周期内输出的电流值,即为采用所述大小为N*N的卷积核对所述当前图像块与上一图像块的重叠图像块进行卷积运算的运算结果,也可以看作采用所述大小为N*N的卷积核对复用的多个像素点在与上一图像块的组合图像块内的重叠图像块进行卷积运算的运算结果;所述前2N-1列位线中第N+1至第2N-1列位线在所述当前卷积运算周期内输出的电流值,即为采用所述大小为N*N的卷积核对所述当前图像块与下一图像块的重叠图像块进行卷积运算的运算结果,也可以看作采用所述大小为N*N的卷积核对复用的多个像素点在与下一图像块的组合图像块内的重叠图像块进行卷积运算的运算结果。
本领域人员应当明白的是,在本实施例中的前2N-1列位线中只需要保证如下设置即可:设置1列位线用于输出当前图像块的卷积运算结果,设置N-1列位线用于输出当前图像块与上一图像块的重叠图像块的卷积运算结果,设置其他N-1列位线用于输出当前图像块与下一图像块的重叠图像块的卷积运算结果。因此,本实施例所述的第几列位线仅用于方便表述,而不是对位线的具体位置设置的限制。参照图11,图11是本发明实施例提供的一种忆阻器阵列卷积运算相邻卷积运算周期权值复用的示例图。如图11所示,在同一运算周期内,第1列输出的电流值是当前图像块的卷积运算结果,第2-3列输出的电流值用于与下一运算周期内第4-5列位线输出的电流值进行复用分别相加,作为与下一图像块之间的两个组合图像块的计算结果,第4-5列输出的电流值用于与上一运算周期内第2-3列位线输出的电流值进行复用分别相加,作为与上一图像块之间的两个组合图像块的计算结果。
通过本实施例,可以在同一个卷积运算周期内同时计算分别与上一卷积运算周期和下一卷积运算周期进行复用相加的电流值,则实际上在一个运算周期内刚好可以完整地完成3个图像块的卷积运算,相较于相关技术中在一个卷积运算周期只能完成1个图像块的卷积运算,能够有效地增加每个卷积运算周期的计算量,减少整个运算过程中的周期数量,提高忆阻器阵列卷积运算的效率。
参照图12,图12是本发明实施例提供的一种多卷积核运算的卷积神经网络系统的示例图。如图12所示,考虑到还可以同时采用多个卷积核对输入图像进行高效地卷积运算,为此,根据上述实施例,在一种可选的实施方式中,本发明实施例还提供一种多卷积核运算的卷积神经网络系统,包括:
所述忆阻器阵列包括M个位线组,每个位线组包括2N-1列位线;所述M个位线组分别对应M个大小为N*N的卷积核,所述M个大小为N*N的卷积核分别对应不同的特征提取方式;
对所述M个大小为N*N的卷积核中的第m个大小为N*N的卷积核,通过第m个位线组和多行字线,采用第m个大小为N*N的卷积核对待处理图像进行卷积运算,其中,m为1至M之间的任一整数。
如图12所示,当N等于3时,可以由每5列位线对应一个3*3的卷积核,同时对输入图像进行高效地多卷积核的卷积运算。其中,每5列位线分别执行上述实施例中的卷积运算方法。
通过本实施例,可以同时由多个卷积核在同一忆阻器阵列进行卷积运算,进一步提高了卷积核中各列位线上忆阻器单元的利用率,降低计算能耗,提高计算效率。
参照图13,图13是本发明实施例提供的一种多通道运算的卷积神经网络系统的示例图。如图13所示,考虑到还可以同时利用一个忆阻器阵列同时对输入图像的多个通道进行高效地卷积运算,为此,根据上述实施例,在一种可选的实施方式中,本发明实施例还提供一种多通道运算的卷积神经网络系统,包括:
所述待处理图像的通道数是C;所述忆阻器阵列包括C个字线组,每个字线组包括N*N行字线;
对第c个通道的所述待处理图像,通过所述忆阻器阵列中多列位线和第c个字线组,采用大小为N*N的卷积核对第c个通道的所述待处理图像进行卷积运算,其中,c为1至C之间的任一整数。
如图13所示,当N等于3时,可以由每9行字线对应一个通道的图像卷积运算,同时对多通道的输入图像进行高效地多通道的卷积运算。其中,每9行字线分别执行上述实施例中的卷积运算方法。
通过本实施例,可以同时在同一忆阻器阵列进行多个通道图像卷积运算,进一步提高了卷积核中各行字线上忆阻器单元的利用率,降低计算能耗,提高计算效率。
参照图14,图14是本发明实施例提供的一种多通道运算的卷积神经网络系统的示例图。如图14所示,考虑到还可以同时利用一个忆阻器阵列,基于多个卷积核同时对输入图像的多个通道进行高效地卷积运算,在一种可选的实施方式中,本发明实施例还提供一种多卷积核多通道运算的卷积神经网络系统,包括:
所述待处理图像的通道数是C;所述忆阻器阵列包括C个字线组,每个字线组包括N*N行字线;所述忆阻器阵列包括M个位线组,每个位线组包括2N-1列位线;所述M个位线组分别对应M个大小为N*N*C的卷积核,所述M个大小为N*N*C的卷积核分别对应不同的特征提取方式;
对第c个通道的所述待处理图像,以及,对所述M个大小为N*N的卷积核中的第m个大小为N*N*C的卷积核,通过第m个位线组和第c个字线组,采用所述第m个大小为N*N*C的卷积核的第c个通道,对第c个通道的所述待处理图像进行卷积运算,其中,m为1至M之间的任一整数,c为1至C之间的任一整数。
具体地,在本实施例中,当待处理图像为多通道图像时,则卷积运算的卷积核也为相应数量的多通道卷积核,多通道展开后对应的卷积核大小为N*N*C,每个卷积核用于对多通道的图像进行卷积计算。其中,本实施例中的卷积核是能够对多通道图像进行多通道卷积的卷积核。
示例性地,如图14所示,当N等于3时,C等于5时,可以由每5列位线作为一个位线组,对应一个3*3*3的卷积核,由每9行字线作为一个字线组,对应输入图像的一个通道,同时对输入图像进行高效地多卷积核多通道的卷积运算。其中,每5列位线、每9行字线,即每个位线组、字线组,分别执行上述实施例中的卷积运算方法。
通过本实施例,可以同时由多个卷积核在同一忆阻器阵列进行多通道图像的卷积运算,进一步提高了卷积核中各行字线和各列位线上忆阻器单元的利用率,降低计算能耗,提高计算效率。
基于同一发明构思,本发明实施例还提供一种忆阻器阵列,所述忆阻器阵列位于上述任一实施例所述的卷积神经网络系统中,所述忆阻器阵列包括:多条位线、多条字线以及忆阻器单元;所述忆阻器阵列用于执行如下步骤:
在采用大小为N*N的卷积核进行卷积运算的每个卷积运算周期内,所述忆阻器阵列中每N*N行字线将输入的待处理图像的特征值映射为电压,所述忆阻器阵列中每N列位线上的忆阻器单元将大小为N*N的卷积核在该卷积运算周期内和下一卷积运算周期内需要使用的权值映射为电导;
其中,在相邻的两个卷积运算周期内,所述忆阻器阵列的每N*N行字线和每2N-1列位线共同完成N+1个依次重叠相邻的图像块的卷积运算。
参见图11,本实施例中的忆阻器阵列,在当前卷积运算周期,由其中N列位线输出用于与下一卷积运算周期复用的卷积运算结果;在下一卷积运算周期,由其余N-1列位线输出用于与当前卷积运算周期复用的卷积运算结果,可以获得N-1个组合图像块的卷积运算结果,加上当前图像块和下一图像块,可以在相邻的两个卷积运算周期内,完成N+1个图像块的卷积运算。
通过本实施例,对大小为N*N的卷积核,在忆阻器阵列卷积运算中每一卷积运算周期计算2N-1列位线输出的电流值,并将相邻的两个卷积运算周期内输出的电流值进行对应相加,完成数值的复用,提高了每一卷积运算周期的计算量,避免了图像像素点输入参数的重复输入,降低了能耗,提高了计算效率。
基于同一发明构思,本发明实施例还提供一种卷积神经网络,所述卷积神经网络位于上述任一实施例所述的卷积神经网络系统中,所述卷积神经网络包括:大小为N*N的卷积核;所述卷积神经网络用于执行如下步骤:
所述卷积神经网络在待处理图像上以步长N滑动卷积窗口,选取多个不重叠的相邻的大小为N*N的图像块的特征值;
所述卷积神经网络将所述多个不重叠的相邻图像块的特征值分别在多个卷积运算周期内输入忆阻器阵列对应的N*N行字线,并获得所述忆阻器阵列在所述多个卷积运算周期内由对应的N列位线输出的电流值;
所述卷积神经网络根据所述电流值,获得采用所述大小为N*N的卷积核对所述多个不重叠的相邻图像块进行卷积运算的多个运算结果,以及,获得采用所述大小为N*N的卷积核对所述多个不重叠的相邻图像块中所有大小为N*N的组合图像块进行卷积运算的多个运算结果。
通过本实施例,在卷积核大小为N*N的卷积神经网络映射忆阻器阵列运算时,仅需由步长N选取输入参数,即,输入的是不重叠的图像块,避免了图像像素点输入参数的重复输入,并在每一卷积运算周期计算N列位线输出的电流值,获得所述忆阻器阵列在所述多个卷积运算周期内由对应的N列位线输出的电流值,有效减少了卷积运算的周期数量,提高了计算效率。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种卷积神经网络系统、忆阻器阵列和卷积神经网络,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种卷积神经网络系统,其特征在于,所述系统包括:
由多条位线、多条字线以及忆阻器单元组成的忆阻器阵列,其中,每一行字线和每一列位线交叉连接,连接处设置有所述忆阻器阵列中的一个忆阻器单元;通过所述忆阻器阵列中多列位线和多行字线,采用大小为N*N的卷积核对待处理图像进行卷积运算,包括:
在当前卷积运算周期内,获得采用所述大小为N*N的卷积核对当前图像块进行卷积运算的运算结果,具体包括:
从所述待处理图像选取一个图像块作为当前图像块,根据所述当前图像块上的各个像素点的特征值,向前N*N行字线输入相应大小的电压;
根据所述大小为N*N的卷积核的步长,在所述待处理图像上先后选取重叠相邻的两个图像块,确定重叠相邻的两个图像块之间复用的多个像素点;
根据重叠相邻的两个图像块之间复用的多个像素点,确定前N列位线中的多个权值;
根据所述前N列位线中的多个权值,设置所述前N列位线各自的各个忆阻器单元的工作状态和电导;
获得所述前N列位线各自在所述当前卷积运算周期内输出的电流值,其中,一列位线输出的电流值,即为通过该列上的各个忆阻器单元对应的权值,与所述当前图像块上的对应像素点的特征值相乘并累加的结果;
其中,所述前N列位线中首列位线在所述当前卷积运算周期内输出的电流值,即为采用所述大小为N*N的卷积核对所述当前图像块进行卷积运算的运算结果。
2.根据权利要求1所述的卷积神经网络系统,其特征在于,暂存所述前N列位线中第2至第N列位线在所述当前卷积运算周期内输出的电流值;
在下一卷积运算周期内,获得采用所述大小为N*N的卷积核对所述当前图像块与下一图像块之间的组合图像块进行卷积运算的多个运算结果,具体包括:
在所述待处理图像上按N个步长滑动卷积窗口,以从所述待处理图像上选取与所述当前图像块相距N*N个像素点的一个不重叠的相邻图像块作为下一图像块,根据所述下一图像块上的各个像素点的特征值,向所述前N*N行字线输入相应大小的电压;
根据重叠相邻的两个图像块之间复用的多个像素点,确定第N+1列至第2N-1列位线中复用的多个权值;
根据第N+1列至第2N-1列位线中复用的多个权值,设置第N+1列至第2N-1列各自的各个忆阻器单元的工作状态和电导;
获得第N+1列至第2N-1列位线各自在所述下一卷积运算周期内输出的电流值,其中,一列位线输出的电流值,即为通过该列上的各个忆阻器单元对应的权值,与所述下一图像块上的对应像素点的特征值相乘并累加的结果;
将暂存的第2至第N列位线在所述当前卷积运算周期内输出的电流值与第N+1列至第2N-1列位线各自在所述下一卷积运算周期内输出的电流值对应相加,作为采用所述大小为N*N的卷积核对所述当前图像块和所述下一图像块的组合图像块进行卷积运算的多个运算结果。
3.根据权利要求2所述的卷积神经网络系统,其特征在于,
在下一卷积运算周期内,获得采用所述大小为N*N的卷积核对所述下一图像块进行卷积运算的运算结果,具体包括:
获得所述前N列位线中首列位线在所述下一卷积运算周期内输出的电流值,该电流值即为采用所述大小为N*N的卷积核对所述下一图像块进行卷积运算的运算结果。
4.根据权利要求1-3任一所述的卷积神经网络系统,其特征在于,所述忆阻器阵列包括M个位线组,每个位线组包括2N-1列位线;所述M个位线组分别对应M个大小为N*N的卷积核,所述M个大小为N*N的卷积核分别对应不同的特征提取方式;
对所述M个大小为N*N的卷积核中的第m个大小为N*N的卷积核,通过第m个位线组和多行字线,采用第m个大小为N*N的卷积核对待处理图像进行卷积运算,其中,m为1至M之间的任一整数。
5.根据权利要求1-3任一所述的卷积神经网络系统,其特征在于,所述待处理图像的通道数是C;所述忆阻器阵列包括C个字线组,每个字线组包括N*N行字线;
对第c个通道的所述待处理图像,通过所述忆阻器阵列中多列位线和第c个字线组,采用大小为N*N的卷积核对第c个通道的所述待处理图像进行卷积运算,其中,c为1至C之间的任一整数。
6.根据权利要求1-3任一所述的卷积神经网络系统,其特征在于,所述待处理图像的通道数是C;所述忆阻器阵列包括C个字线组,每个字线组包括N*N行字线;所述忆阻器阵列包括M个位线组,每个位线组包括2N-1列位线;所述M个位线组分别对应M个大小为N*N*C的卷积核,所述M个大小为N*N*C的卷积核分别对应不同的特征提取方式;
对第c个通道的所述待处理图像,以及,对所述M个大小为N*N的卷积核中的第m个大小为N*N*C的卷积核,通过第m个位线组和第c个字线组,采用所述第m个大小为N*N*C的卷积核的第c个通道,对第c个通道的所述待处理图像进行卷积运算,其中,m为1至M之间的任一整数,c为1至C之间的任一整数。
7.一种忆阻器阵列,其特征在于,所述忆阻器阵列位于权利要求1-6任一项所述的卷积神经网络系统中,所述忆阻器阵列包括:多条位线、多条字线以及忆阻器单元;所述忆阻器阵列用于执行如下步骤:
在采用大小为N*N的卷积核进行卷积运算的每个卷积运算周期内,所述忆阻器阵列中每N*N行字线将输入的待处理图像的特征值映射为电压,所述忆阻器阵列中每N列位线上的忆阻器单元将大小为N*N的卷积核在该卷积运算周期内和下一卷积运算周期内需要使用的权值映射为电导;
其中,在相邻的两个卷积运算周期内,所述忆阻器阵列的每N*N行字线和每2N-1列位线共同完成N+1个依次重叠相邻的图像块的卷积运算。
8.一种卷积神经网络,其特征在于,所述卷积神经网络位于权利要求1-6任一项所述的卷积神经网络系统中,所述卷积神经网络包括:大小为N*N的卷积核;所述卷积神经网络用于执行如下步骤:
所述卷积神经网络在待处理图像上以步长N滑动卷积窗口,选取多个不重叠的相邻的大小为N*N的图像块的特征值;
所述卷积神经网络将所述多个不重叠的相邻图像块的特征值分别在多个卷积运算周期内输入忆阻器阵列对应的N*N行字线,并获得所述忆阻器阵列在所述多个卷积运算周期内由对应的N列位线输出的电流值;
所述卷积神经网络根据所述电流值,获得采用所述大小为N*N的卷积核对所述多个不重叠的相邻图像块进行卷积运算的多个运算结果,以及,获得采用所述大小为N*N的卷积核对所述多个不重叠的相邻图像块中所有大小为N*N的组合图像块进行卷积运算的多个运算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110302278.4A CN113011574B (zh) | 2021-03-22 | 2021-03-22 | 一种卷积神经网络系统、忆阻器阵列和卷积神经网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110302278.4A CN113011574B (zh) | 2021-03-22 | 2021-03-22 | 一种卷积神经网络系统、忆阻器阵列和卷积神经网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113011574A CN113011574A (zh) | 2021-06-22 |
CN113011574B true CN113011574B (zh) | 2022-11-04 |
Family
ID=76404280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110302278.4A Active CN113011574B (zh) | 2021-03-22 | 2021-03-22 | 一种卷积神经网络系统、忆阻器阵列和卷积神经网络 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113011574B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114332258B (zh) * | 2021-12-22 | 2024-09-13 | 珠海格力电器股份有限公司 | 一种卷积神经网络的高效编码方法、设备、存储介质 |
CN116450998A (zh) * | 2022-01-07 | 2023-07-18 | 清华大学 | 基于忆阻器阵列的数据处理方法、电子装置 |
CN116805370A (zh) * | 2022-03-15 | 2023-09-26 | 清华大学 | 图像识别方法、装置及相关设备 |
CN114399037B (zh) * | 2022-03-24 | 2022-07-15 | 之江实验室 | 基于忆阻器的卷积神经网络加速器核心的模拟方法及装置 |
CN114463161B (zh) * | 2022-04-12 | 2022-09-13 | 之江实验室 | 一种基于忆阻器的神经网络处理连续图像的方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182471B (zh) * | 2018-01-24 | 2022-02-15 | 上海岳芯电子科技有限公司 | 一种卷积神经网络推理加速器及方法 |
CN109460817B (zh) * | 2018-09-11 | 2021-08-03 | 华中科技大学 | 一种基于非易失存储器的卷积神经网络片上学习系统 |
CN112183739B (zh) * | 2020-11-02 | 2022-10-04 | 中国科学技术大学 | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 |
-
2021
- 2021-03-22 CN CN202110302278.4A patent/CN113011574B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113011574A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113011574B (zh) | 一种卷积神经网络系统、忆阻器阵列和卷积神经网络 | |
US9910827B2 (en) | Vector-matrix multiplications involving negative values | |
CN111523658B (zh) | 双位存储单元及其在存内计算的电路结构 | |
US10339202B2 (en) | Resistive memory arrays for performing multiply-accumulate operations | |
TWI744899B (zh) | 運用於類神經網路系統的乘積累加電路之相關控制電路 | |
CN110008440B (zh) | 一种基于模拟矩阵运算单元的卷积运算及其应用 | |
CN109800876B (zh) | 一种基于NOR Flash模块的神经网络的数据运算方法 | |
US10529418B2 (en) | Linear transformation accelerators | |
CN107533862B (zh) | 交叉阵列、图像处理器及计算设备 | |
US10042819B2 (en) | Convolution accelerators | |
US20220351026A1 (en) | Three-dimensional convolution operation device and method based on three-dimensional phase change memory | |
CN113792010A (zh) | 存算一体芯片及数据处理方法 | |
US11544540B2 (en) | Systems and methods for neural network training and deployment for hardware accelerators | |
CN113517007B (zh) | 一种流水处理方法、系统和忆阻器阵列 | |
CN110729011B (zh) | 用于类神经网路的存储器内运算装置 | |
CN113222128A (zh) | 基于忆阻器的2t1r阵列及其并行操作方法和算法 | |
CN115862708A (zh) | 忆阻器阵列的操作方法、数据处理装置 | |
CN113672854B (zh) | 一种基于电流镜和存储单元的存内运算方法、装置及其应用 | |
CN112885963B (zh) | 一种忆阻器交叉阵列 | |
CN113222131B (zh) | 基于1t1r的可实现带符号权重系数的突触阵列电路 | |
US12040016B2 (en) | Crossbar circuits for performing convolution operations | |
US20230043170A1 (en) | Memory device for performing convolution operation | |
CN116386687B (zh) | 一种平衡电压降影响的存储器阵列 | |
CN110390391B (zh) | 一种基于三维卷积神经网络的映射装置及方法 | |
CN116453563A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |