CN108665061B - 数据处理装置和用于卷积计算的计算设备 - Google Patents
数据处理装置和用于卷积计算的计算设备 Download PDFInfo
- Publication number
- CN108665061B CN108665061B CN201710192750.7A CN201710192750A CN108665061B CN 108665061 B CN108665061 B CN 108665061B CN 201710192750 A CN201710192750 A CN 201710192750A CN 108665061 B CN108665061 B CN 108665061B
- Authority
- CN
- China
- Prior art keywords
- memristor
- voltage signal
- data processing
- value
- resistance value
- 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
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)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明实施例提供了一种数据处理装置和用于卷积计算的计算设备,该数据处理装置包括:第一转换单元,第一转换单元包括忆阻器,该第一转换单元用于将接收的第一电压信号转换为电流信号,该第一电压信号小于忆阻器的阈值电压,该电流信号为第一电压信号和忆阻器的电导值相乘的结果;复位单元,复位单元与忆阻器相连时,用于控制忆阻器的阻值达到忆阻器阻值的最大值或最小值;阻值调整单元,阻值调整单元与忆阻器相连时,用于在复位单元控制忆阻器的阻值达到忆阻器阻值的最大值或最小值的情况下,调整忆阻器的阻值。本发明实施例通过数据处理装置,实现了乘法运算的功能,并能够简便快捷的改变忆阻器的电导值。
Description
技术领域
本申请涉及数据处理领域,并且更具体地,涉及数据处理装置和用于卷积计算的计算设备。
背景技术
卷积神经网络是一种特殊的深层神经网络模型,这种网络结构可以有效地降低反馈神经网络的复杂性,例如,在图像处理领域,卷积神经网络避免了对图像的复杂的前期预处理,可以直接输入原始图像,使处理过程更为简单。
卷积神经网络主要包括卷积层、池化层和全连接层,其中,卷积层主要用于对输入矩阵执行卷积操作,该卷积操作主要为将输入矩阵与另一个矩阵进行卷积计算,得到该输入矩阵每个元素的特征值,该另一个矩阵为该卷积计算的卷积核,该卷积核也可以称为权矩阵,权矩阵中的每一个元素为一个权值,现有技术中,进行卷积计算的卷积核一般情况下为固定的卷积核模板,即卷积核中的权值不能根据不同的需要进行改变,进一步导致卷积计算的计算速度较低,且能耗较大,不方便卷积计算的操作。
发明内容
本申请提供一种数据处理装置和用于卷积计算的计算设备,能够实现将输入数据与卷积计算的卷积核的权值进行相乘的功能,而且能够简便快捷的实现卷积核的权值改变的功能,提高了卷积计算的效率,降低了功耗。
第一方面,提供了一种数据处理装置,该数据处理装置包括第一转换单元,所述第一转换单元包括忆阻器,所述第一转换单元用于将接收的第一电压信号基于所述忆阻器转换为电流信号,所述第一电压信号小于所述忆阻器的阈值电压,所述电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果;复位单元,所述复位单元与所述忆阻器相连,所述复位单元用于控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值;阻值调整单元,所述阻值调整单元与所述忆阻器相连,所述阻值调整单元用于在所述复位单元控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值。
在本发明实施例中,通过上述数据处理装置,可以实现将第一转换单元的输入电压信号与忆阻器的电导值进行相乘的功能,且能够方便快捷的改变忆阻器的电导值,相当于可以实现将输入矩阵中的元素与卷积核中的元素相乘,且可以改变卷积核的权值的功能。
结合第一方面,在第一方面的第一种实现方式中,所述阻值调整单元用于根据接收的第二电压信号,调整所述忆阻器的阻值,所述第二电压信号大于或等于所述忆阻器的阈值电压。
结合第一方面,第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述阻值调整单元为三态门,所述三态门包括控制端、接收端和输出端;所述控制端用于接收大于或等于三态门的开启电压的电压信号,所述接收端用于接收第二电压信号,所述第二电压信号大于或等于所述忆阻器的阈值电压,所述输出端用于向所述忆阻器输入所述第二电压信号以调整所述忆阻器的阻值。
结合第一方面,第一方面的第一种和第二种实现方式,在第一方面的第三种实现方式中,该阻值调整单元的输入端的输入的电压信号为可编程的脉冲信号。
结合第一方面,第一方面的第一种和第二种实现方式,在第一方面的第四种实现方式中,所述复位单元用于接收负向电压信号以控制所述忆阻器的阻值达到所述忆阻器阻值的最大值;或所述复位单元用于接收正向电压信号以控制所述忆阻器的阻值达到所述忆阻器阻值的最小值。
第二方面,提供了一种用于卷积计算的计算设备,所述计算设备用于对矩阵Am×n和矩阵Bm×n进行卷积计算,所述计算设备包括:运算单元,所述运算单元包括m×n个数据处理装置,其中数据处理装置包括:第一转换单元,所述第一转换单元包括忆阻器,所述第一转换单元用于将接收的第一电压信号基于所述忆阻器转换为电流信号,所述第一电压信号小于所述忆阻器的阈值电压,所述电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果;复位单元,所述复位单元与所述忆阻器相连,所述复位单元用于控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值;阻值调整单元,所述阻值调整单元与所述忆阻器相连,所述阻值调整单元用于在所述复位单元控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值;所述运算单元用于将m×n个数据处理装置中的每个数据处理装置接收的第一电压信号转换为第一电流信号,并根据所述第一电流信号确定第二电流信号,所述第一电压信号为所述m×n个数据处理装置中每个数据处理装置接收的电压信号,所述m×n个数据处理装置与所述矩阵Am×n中的m×n个元素一一对应,所述m×n个数据处理装置中的每个数据处理装置接收的第一电压信号为所述矩阵Am×n中的与所述每个数据处理装置对应的元素的数值转换的电压信号,所述第一电流信号为所述m×n个数据处理装置中的每个数据处理装置输出的电流信号,且所述第一电流信号为所述第一电压信号与所述忆阻器的电导值的乘积,所述m×n个数据处理装置中的忆阻器的电导值与所述矩阵Bm×n中的m×n个元素一一对应,所述第二电流信号为所述m×n个数据处理装置中的每个数据处理装置输出的所述第一电流信号之和;第二转换单元,所述第二转换单元与所述运算单元相连,所述第二转换单元用于将所述运算单元的输出的所述第二电流信号转换成第二电压信号,所述第二电压信号为所述矩阵Am×n和矩阵Bm×n进行卷积运算的结果。
在本发明实施例中,通过运算单元可以实现矩阵Am×n和矩阵Bm×n进行卷积计算的功能,可以将复杂的卷积计算通过硬件电路的方式实现,使得卷积计算更为方便快捷,且能够实现并行计算的功能,提高了卷积计算的效率。
结合第二方面,在第二方面的第一种实现方式中,运算单元包括m个相互并联的支路,该m个支路中的每个支路包括n个数据处理装置,所述运算单元用于将所述m个相互并联的支路中输出的第三电流信号转换为第二电流信号,所述第二电流信号为所述m个支路中每个支路输出的所述第三电流信号之和,所述第三电流信号为所述每个支路中的n个所述数据处理装置中的每个数据处理装置的输出的所述第一电流信号之和。
结合第二方面,第二方面的第一种实现方式,在第二方面的第二种实现方式中,第二转换单元包括定值电阻,该定值电阻用于将运算单元的输出端输出的第二电流信号转换成所述第二电压信号。
在本发明实施例中,通过转换单元的定制电阻,将运算单元输出的电流信号转换为电压信号,以便于对卷积计算的结果的进一步处理。
第三方面,提供一种数据处理的方法,所述方法包括:将第一电压信号转换为电流信号,所述第一电压信号小于忆阻器的阈值电压,所述电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果;控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值;在所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值。
结合第三方面,在第三方面的第一种实现方式中,所述在所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值,包括:在所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,根据第二电压信号调整所述忆阻器的阻值,所述第二电压信号大于或等于所述忆阻器的阈值电压。
结合第三方面,第三方面的第一种实现方式,在第三方面的第二种实现方式中,所述控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值,包括:在接收的电压信号为负向电压信号时,根据所述负向电压信号控制所述忆阻器的阻值达到忆阻器阻值的最大值;或在接收的电压信号为正向电压信号时,基于所述正向电压信号控制所述忆阻器的阻值达到忆阻器阻值的最小值。
第四方面,提供一种卷积计算的方法,所述方法用于对矩阵Am×n和矩阵Bm×n进行卷积计算,所述方法用于卷积计算的计算设备,所述计算设备包括m×n个数据处理装置,所述方法包括:将第一电压信号转换为第一电流信号,所述第一电压信号为所述m×n个数据处理装置中的每个数据处理装置接收的电压信号,所述m×n个数据处理装置与所述矩阵Am×n中的m×n个元素一一对应,所述m×n个数据处理装置中的每个数据处理装置接收的第一电压信号为所述矩阵Am×n中的与所述每个数据处理装置对应的元素的数值转换的电压信号,所述第一电流信号为所述m×n个数据处理装置中的每个数据处理装置输出的电流信号,且所述第一电流信号为所述第一电压信号与所述忆阻器的电导值的乘积,所述m×n个数据处理装置中的忆阻器的电导值与所述矩阵Bm×n中的m×n个元素一一对应;根据所述第一电流信号确定第二电流信号,所述第二电流信号为所述m×n个数据处理装置中的每个数据处理装置的输出端输出的第一电流信号之和;将所述第二电流信号转换为第二电压信号,所述第二电压信号为所述矩阵Am×n和矩阵Bm×n进行卷积运算的结果;其中,所述数据处理装置包括:第一转换单元,所述第一转换单元包括忆阻器,所述第一转换单元用于将接收的第一电压信号基于所述忆阻器转换为电流信号,所述第一电压信号小于所述忆阻器的阈值电压,所述电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果;复位单元,所述复位单元与所述忆阻器相连,所述复位单元用于控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值;阻值调整单元,所述阻值调整单元与所述忆阻器相连,所述阻值调整单元用于在所述复位单元控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值。
结合第四方面,第四方面的第一种实现方式,所述计算设备包括运算单元,所述运算单元包括m个相互并联的支路,所述m个支路中的每个支路包括n个所述数据处理装置,所述根据所述第一电流信号确定第二电流信号,包括:根据所述每个支路中的n个所述数据处理装置的输出端输出的所述第一电流信号,确定第三电流信号,所述第三电流信号为所述每个支路中的n个所述数据处理装置的输出端输出的第一电流信号之和;根据所述m个支路中的每个支路的输出端输出的第三电流信号,确定第二电流信号,所述第二电流信号为所述m个支路中每个支路的输出端输出的第三电流信号之和。
结合第四方面,第四方面的第一种实现方式,在第四方面的第二种实现方式中,所述计算设备包括第二转换单元,所述第二转换单元包括定值电阻,所述将所述第二电流信号转换为第二电压信号,包括:根据所述定值电阻,将所述第二电流信号装换为第二电压信号。
第五方面,提供一种数据处理装置,包括存储器和处理器,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码以实现上述第一方面及所述第一方面的各实现方式中的各个模块的功能。
第六方面,提供一种用于卷积计算的计算设备,包括存储器和处理器,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码以实现上述第二方面及所述第二方面的各实现方式中的各个模块的功能。
第七方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储指令,当其在计算机上运行时,使得计算机执行上述各方面所述的各个模块的功能。
附图说明
图1是传统的进行卷积计算的过程的示意图;
图2是本发明实施例中进行卷积计算的过程的示意图;
图3是本发明实施例的数据处理装置的示意性结构图;
图4是本发明实施例的数据处理装置的另一示意性结构图;
图5是本发明实施例的用于卷积计算的计算设备的示意性结构图;
图6是本发明实施例的用于卷积计算的计算设备的另一示意性结构图;
图7是本发明实施例的数据处理装置的再一示意性结构图;
图8是本发明实施例的用于卷积计算的计算设备的再一示意性结构图;
图9是本发明实施例的数据处理方法的示意性流程图;
图10是本发明实施例的卷积计算的流程图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行描述。
为了便于理解,先对涉及卷积计算的卷积神经网络进行详细介绍。
卷积神经网络一般包括多个神经网络层,各神经网络层可以实现不同的运算或操作。常见的神经网络层包括卷积层、池化层、全连接层等。相邻神经网络层的组合方式有多种,比较常见的组合方式包括:卷积层-卷积层和卷积层-池化层-卷积层。卷积层主要用于对输入矩阵执行卷积操作,池化层主要用于对输入矩阵执行池化操作。无论是卷积操作还是池化操作,均可对应一个核,其中卷积操作对应的核可以称为卷积核。下面主要对本发明实施例涉及的卷积操作进行详细描述。
卷积操作主要用于图像处理领域,在图像处理领域,输入矩阵也可称为特征图。卷积操作对应一个卷积核。卷积核也可称为权矩阵,权矩阵中的每个元素为一个权值。在卷积过程中,输入矩阵会被滑动窗口划分成许多与权矩阵大小相同的子矩阵,每个子矩阵与权矩阵进行矩阵乘法,得到的结果即为每个子矩阵中的数据元素的加权求和。
在传统的卷积计算时,卷积算计算的表达式可以用如下公式表示:
上式表示一个r1×c1的矩阵A和一个r2×c2的矩阵B进行卷积计算的算法,上式为矩阵A中的一个元素进行一次卷积计算的公式,可以将该公式中的矩阵A看作输入矩阵,矩阵B看作为卷积核,在运用该公式进行卷积计算时,首先需要将该卷积核矩阵即矩阵B绕其中心元素顺时针旋转180°,然后再将旋转后的矩阵B与矩阵A进行矩阵乘法,对整个矩阵A进行卷积计算时,需要在矩阵A的边缘进行补0操作,或者是补边缘元素操作,再使用滑动窗口将该矩阵A划分为多个与矩阵B纬度相同的子矩阵,每个子矩阵与矩阵B进行矩阵乘法,最终得到的结果为该多个子矩阵中每个子矩阵的数据元素的加权求和。
为了便于理解,下面结合图1对传统的卷积计算过程进行说明。
如图1所示,输入矩阵A为一个5×5的矩阵,卷积核B为一个3×3的矩阵,在进行卷积运算之前,需要将卷积核B绕其中心元素Y22顺时针旋转180°,得到矩阵C,由于要对整个输入矩阵A进行卷积计算,所以在进行矩阵乘法之前,需要对输入矩阵A的边缘元素进行补0操作,然后将矩阵C在输入矩阵上滑动,使矩阵C的中心元素Y22位于要获取特征值的输入矩阵A的元素处,将输入矩阵划分为多个与矩阵C大小相同的子矩阵,将该多个子矩阵分别与矩阵C进行矩阵乘法,得到的矩阵即为输入矩阵A与矩阵B进行卷积计算的结果。例如,对上述输入矩阵进行卷积计算时,首先将卷积核矩阵即矩阵B绕其中心元素Y22顺时针旋转180°得到矩阵C,然后给输入矩阵A的边缘补两行和两列0,最后,用矩阵C在输入矩阵A上滑动,第一次滑动时,矩阵C的中心元素Y22放置在输入矩阵A的元素X11处,以元素X11为中心元素,在输入矩阵A上截取一个与矩阵C大小相同的子矩阵,将该截取的子矩阵与矩阵C进行矩阵乘法,即将两个矩阵的对应位置的元素相乘再求和,得到第一次卷积计算的结果,然后再次将矩阵C在输入矩阵A上滑动,将矩阵C的中心元素Y22放置在输入矩阵A的元素X12,同样,以元素X12为中心,截取一个与矩阵C大小相同的子矩阵,再将该子矩阵与矩阵C做矩阵乘法,得到第二次卷积计算的结果,以此类推,直至将矩阵C的中心元素Y22放置在输入矩阵A的元素X55,得到第二十五次卷积计算的结果,即完成了对该输入矩阵做卷积运算的操作,将每次卷积计算的结果得到的矩阵即为输出矩阵。
然而,大多数输入矩阵的边缘元素的特征值对整个输入矩阵的影响较小,可以忽略,不进行计算,且大多数卷积核为对称的卷积核,所以可以不进行卷积核的旋转操作,这样就可以大大减少对一个矩阵进行卷积操作的次数。
因此,本发明实施例对卷积计算的公式进行了简化,简化后的公式如下式所示:
上式为输入矩阵中的一个元素进行一次卷积计算的公式,根据上式所示,在进行卷积计算时,无需将卷积核旋转180°,也无需给输入矩阵的边缘进行补0操作,直接用卷积核矩阵在输入矩阵上滑动,卷积核矩阵的中心元素放置在输入矩阵中要获取特征值的元素的上方,截取多个与卷积核矩阵大小相同的子矩阵,再将该多个子矩阵与卷积核矩阵进行矩阵乘法即可。
为了便于理解,下面结合图2对本发明实施例中经简化之后的卷积计算的过程进行说明。
如图2所示,输入矩阵A为一个5×5的矩阵,卷积核B为一个3×3的矩阵,第一次进行卷积计算时,将卷积核B的中心元素Y22放置在输入矩阵A的元素X22上方,将输入矩阵A以X22为中心,划分出一个与卷积核B大小相同的子矩阵,将划分出的与卷积核B大小相同的子矩阵与卷积核B进行矩阵乘法,得到第一次卷积计算的结果,以此类推,只用获取输入矩阵A的中间元素的特征值,按照图2所示的方式进行9次卷积计算,即可得到输出矩阵,该输出矩阵中的每个元素为输入矩阵的中间元素与卷积核进行卷积计算的结果,避免了对输入矩阵进行补0操作,节省了卷积计算的次数。
现有技术中,在对输入矩阵进行卷积操作时,一个输入矩阵所用的卷积核可以为同一个,在提取不同的特征时,可以用不同的卷积核进行卷积操作,然而,在现有技术中,由于卷积计算的设备或电路中的卷积核模板为固定的,所以在用不同的卷积核进行卷积计算时,可能需要不同的计算设备或电路,在本发明实施例中,使用忆阻器的电导值作为该卷积核的权值,在忆阻器的阻值随着所加电压或电流发生变化时,卷积核的权值也相应的发生变化,因此,改变忆阻器的阻值,可以得到不同的卷积核模板,从而可以进行不同的卷积计算。
图3所示为本发明实施例的一种数据处理装置300的示意性结构图。如图3所示,该数据处理装置包括:
第一转换单元310,该第一转换单元310包括输入端、忆阻器和输出端。
可选的,在一些实施例中,该第一转换单元310的输入端用于接收第一电压信号,该第一电压信号小于忆阻器的阈值电压。
应理解,由于该输入端接收的电压信号小于该忆阻器的阈值电压,所以在第一转换单元310的输入端接收该第一电压信号时,该忆阻器的阻值不会发生变化。
可选的,在一些实施例中,该输入端接收的第一电压信号有可能大于忆阻器的阈值电压,在这种情况下,可以对该输入端接收的电压信号先进行处理,再输入到该第一转换单元310的输入端,该处理的方法例如可以给该输入的电压信号乘一个比例系数,使该输入电压缩小到小于忆阻器的阈值电压,例如,在输入端接收的电压信号为图像的像素值时,由于像素值一般为0~255的范围内,有可能超过忆阻器的阈值电压,所以可以给该像素值乘以一个比例系数,例如该比例系数可以是1/10,使该像素值缩小10倍,再将该进行处理的像素值作为第一电压信号输入到输入端。
应理解,由于忆阻器型号的不同,该忆阻器的阈值电压也相应的不同,所以对输入电压进行处理的比例系数也随着忆阻器的不同而不同。
可选的,在一些实施例中,该忆阻器用于将所述第一电压信号转换为电流信号,所述电流信号为第一电压信号和忆阻器的电导值相乘的结果。
可选的,在一些实施例中,该第一转换单元的输出端用于输出上述电流信号,该电流信号为该第一转换单元的输入端接收的第一电压信号和忆阻器的电导值相乘的结果。
应理解,可以将该第一转换单元310中的输入端输入的第一电压信号看作为要进行卷积运算的输入矩阵中的元素值转换成的电压信号,该第一转换单元310中的忆阻器的电导值看作为卷积核的权值,由于忆阻器可以将输入的电压信号转换成电流信号,该电流信号为忆阻器的电导值与该输入端输入的第一电压信号相乘的结果,所以可以将该第一转换单元310看作可以实现输入矩阵中元素与卷积核中的权值进行一次对应位置元素相乘的操作,因此,该第一转换单元310可以实现矩阵乘法时对应元素相乘的操作,多个该第一转换单元310所得的结果求和即为一次卷积计算的结果,其中,多个第一转换单元310中的忆阻器的电导值既可以看作为一个卷积核中的权值。
可选的,在一些实施例中,该第一转换单元310还包括一个定值电阻,该定值电阻位于该第一转换单元310的输入端与忆阻器之间,用于防止该第一转换单元310的输入端施加的电压过高,导致忆阻器的损坏。
可选的,在一些实施例中,该第一转换单元310还包括一个单刀单掷开关,在该单刀单掷开关闭合时,可以获取该第一转换单元310中的电流信号,即输入端输入的电压信号与忆阻器的电导值进行乘积的结果。
复位单元320,该复位单元与忆阻器相连,用于控制忆阻器的阻值达到所述忆阻器阻值的最大值或最小值。
上文提到可以将多个第一转换单元310中的忆阻器的电导值看作为一个卷积核的权值,本发明实施例中需要对该卷积核的权值进行改变,使卷积计算在不改变计算设备或计算电路的情况下,可以使用不同的卷积核,进行不同的卷积运算,本发明实施例将忆阻器的电导值作为卷积核的权值,因此,需要对数据处理装置300中的忆阻器的电导值进行改变。
应理解,忆阻器的电导值为忆阻器的阻值的倒数,所以,对忆阻器的电导值进行改变,即是对忆阻器的阻值进行改变。
可选的,在一些实施例中,在对忆阻器的阻值进行改变之前,需要先对该忆阻器的阻值进行复位操作,使忆阻器的阻值达到的阻值达到所述忆阻器阻值的最大值或最小值。
应理解,根据忆阻器的特性,忆阻器在外加电压大于或等于忆阻器的阈值电压的情况下,忆阻器的阻值可以随着外加电压的变化而变化。一般情况下,在外加电压为单向正向电压时,忆阻器的阻值会随外加电压的持续时间单调递减,在外加电压为单向负电压的时候,则忆阻器的阻值会随外加电压的持续时间单调递增,所以本发明实施例在对忆阻器的阻值进行改变之前,可以先将忆阻器的阻值控制在该阻值的最大值或最小值,在忆阻器的阻值在最大值的时候,需要调整忆阻器的阻值,得到目标阻值的时候,只需要向忆阻器施加单向的正向电压使当前忆阻器的阻值逐渐减小,即可以得到所目标阻值,在忆阻器的阻值在最小值的时候,需要调整忆阻器的阻值,得到目标阻值的时候,只需要向忆阻器施加单向的负向电压使当前忆阻器的阻值逐渐增大,即可以得到所需要的阻值,即在忆阻器的阻值达到最大值或最小值的时候,需要调整忆阻器的阻值时,只需向忆阻器施加单向的电压即可,使得调整忆阻器的阻值更为简便。
例如,忆阻器的阻值范围为0欧到200欧,当前忆阻器的阻值为50欧,用户需要将忆阻器的阻值调整为70欧,此时,可以给该忆阻器先施加一个负向电压信号,使忆阻器的阻值持续变化为忆阻器的最大值200欧,然后再给该忆阻器施加正向电压,使其阻值逐渐减小,达到目标值70欧,或者首先给忆阻器施加一个正向电压信号,使忆阻器的阻值持续变化为忆阻器的最小值0欧,然后再给该忆阻器施加负向电压,使其阻值逐渐减增大,达到目标值70欧。
应理解,如果不对当前的忆阻器的阻值进行复位的话,需要反复切换忆阻器施加的电压的方向,例如,当前忆阻器的电阻值为50欧,第一次将忆阻器的阻值调整为70欧时,需要给忆阻器施加负向电压信号,使忆阻器的逐渐阻值增大至70欧,如果第二次需要将忆阻器的阻值调整到40欧时,由于不对忆阻器的阻值进行复位操作,所以当前阻值为70欧,此时需要向忆阻器施加正向电压信号,使忆阻器的阻值逐渐减小至40欧,因此,这样需要反复切换忆阻器施加的电压的方向,使得忆阻器的阻值调整变得较为复杂。在本发明实施例中,在每次需要调整忆阻器的阻值时,首先将忆阻器的阻值调整到最大值或最小值,再施加同一个方向的电压,使忆阻器的阻值调整为目标阻值,使得阻值调整更为简便。
可选的,在一些实施例中,该复位单元的输入端输入电压信号,该电压信号可以为负向的电压信号或者也可以为正向电压信号。
可选的,在一些实施例中,在该复位单元的输入端输入的电压信号为负向电压信号时,该复位单元可以控制该忆阻器的阻值达到最大值。
可选的,在一些实施例中,在该复位单元的输入端输入的电压信号为正向电压信号时,该复位单元可以控制该忆阻器的阻值达到最小值。
阻值调整单元330,该阻值调整单元与忆阻器相连,用于在忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整忆阻器的阻值。
应理解,忆阻器的阻值可以根据外加电压或电流的变化而变化,而断电后,其忆阻器的阻值仍为断电前的大小,即断电之后,忆阻器的阻值不会发生变化。本发明实施例采用的忆阻器为阈值忆阻器,该阈值忆阻器在外加电压大于或等于该忆阻器的阈值电压时,可以根据外加电压或电流的不同,改变忆阻器的阻值,在外加电压小于该忆阻器的阈值电压时,该忆阻器的阻值保持不变。
不同于现有技术的是,在本发明实施例中,通过该阻值调整单元330可以简便快捷的调整该忆阻器的阻值,从而改变忆阻器的电导值,即方便快捷的可以改变卷积计算时的卷积核,无需改变该卷积计算的设备或计算电路,使得卷积计算更加简便,计算速度更快。
该阻值调整单元330包括输入端和输出端,该输出端用于接收电压信号,该电压信号为大于或等于忆阻器的阈值电压的信号,该输出端与忆阻器相连,用于输出该输入端接收的电压信号。
在阻值调整单元330的输入端接收的电压信号大于或等于忆阻器的阈值电压时,根据忆阻器的特性,该忆阻器的阻值可以随着该外加电压而变化,在该外加电压为单向的正电压时,忆阻器的阻值随该外加电压的持续而单调递减,在该外加电压为单向的负电压时,忆阻器的阻值随该外加电压的持续而单调递增。
应理解,该忆阻器的阻值与外加电压的持续时间成函数关系,在需要调整忆阻器的阻值时,可以根据需要的忆阻器的阻值,设计外加电压的持续时间和外加电压的方向。
具体的,在忆阻器的阻值达到忆阻器阻值的最大值的情况下,在需要改变忆阻器的阻值时,该阻值调整单元的输入端接收的电压信号为正向的电压信号,以使忆阻器的阻值逐渐减小达到目标阻值,在忆阻器的阻值达到忆阻器阻值的最小值的情况下,在需要改变忆阻器的阻值时,该阻值调整单元的输入端接收的电压信号为负向的电压信号,以使忆阻器的阻值逐渐增大达到目标阻值。可选的,在一些实施例中,该阻值调整单元330可以为三态门,该三态门的输出端与忆阻器相连,该三态门用于对忆阻器的阻值进行改变。
可选的,在一些实施例中,该三态门的控制端用于接收电压信号,该电压信号大于或等于数据处理装置该三态门的开启电压,在控制端施加的电压大于或等于三态门的开启电压时,三态门处于导通状态。
可选的,在一些实施例中,该三态门的输入端用于接收电压信号,该输入端接收的电压信号大于或等于忆阻器的阈值电压,根据需要调整的忆阻器的阻值的大小,确定该外加电压的持续时间。
可选的,在一些实施例中,由于忆阻器的阻值随外加电压的持续时间的不同而不同,所以该输入端输入的电压信号可以为可编程的脉冲信号,用户可以根据需要的忆阻器的阻值,确定该脉冲信号的持续时间,即确定该脉冲信号的高电平或低电平持续的时间,从而改变忆阻器的阻值。
应理解,在该阻值调整单元为三态门时,可以通过该三态门的控制端控制三态门的导通时间,即可以控制三态门的输入端输入的电压信号持续的时间,例如,当前需要达到的忆阻器的阻值所需要的外加电压的持续时间为5秒,但阻值调整单元的输入端输入的电压信号的周期为10秒,此时可以使用三态门作为阻值调整单元,三态门的控制端可以控制输入端在输入电压信号持续5秒种之后,控制该阻值调整单元的输出端处于高阻抗状态,即该控制端的输入电压低于三态门的开启电压或为0,在这种情况下,该阻值调整单元相当于没有与忆阻器连接,所以忆阻器的阻值就可以保持在外加电压为5秒时达到的阻值,即该三态门可以方便的控制忆阻器的外加电压的持续时间,简化忆阻器阻值调整的过程。
可选的,在一些实施例中,该数据处理装置300还包括单刀双掷开关,该单刀双掷开关用于控制将该忆阻器接入复位单元或者阻值调整单元,从而实现对忆阻器阻值的调整。
图4所示为本发明实施例的数据处理装置300的另一示意性结构图。
具体的,如图4所示的数据处理装置300,在单刀单掷开关闭合,单刀双掷开关开启时,该数据处理装置300用于进行乘法运算,即该第一转换单元310的输入端的输入电压信号基于忆阻器,将该输入的电压信号转换成电流信号,该电流信号为该输入的电压信号与忆阻器的电导值的乘积,该第一转换单元310的输出端用于输出该电流信号。
在需要改变忆阻器的阻值,从而改变忆阻器的电导值时,首先开启单刀单掷开关,然后将单刀双掷开关置于复位单元的一侧,即接通复位单元与忆阻器的连接,复位单元的输入端接收负电压信号或正向电压信号,该负电压信号或正向电压信号控制忆阻器的阻值达到忆阻器阻值的最大值或最小值。
在忆阻器的阻值达到忆阻器阻值的最大值或最小值之后,将单刀双掷开关置于阻值调整单元的一侧,即接通阻值调整单元的输出端与忆阻器,该阻值调整单元可以为三态门,三态门的控制端接收大于或等于三态门的开启电压的电压信号,在三态门的控制端接收的电压信号大于或等于三态门的开启电压时,三态门导通,该三态门的输入端接收大于或等于忆阻器的阈值电压的电压信号,例如,该电压信号可以为可编程的脉冲信号,忆阻器在该输入的电压信号的控制下,改变忆阻器的阻值。
在本发明实施例中,该数据处理装置300的第一转换单元可以实现将输入电压信号基于该第一转换单元中的忆阻器转换成电流信号,该电流信号为该电压信号与该忆阻器的电导值的乘积,即可以实现卷积计算中输入矩阵中的一个元素和卷积核中的一个元素相乘的功能,且该数据处理装置300还可以通过复位单元和阻值调整单元,调整第一转换单元中的忆阻器的电导值,相当于可以改变卷积计算中卷积核的模板,因此,在该数据处理装置300为多个时,该多个数据处理装置300可以实现输入矩阵与卷积核进行卷积运算的操作。
图5所示为本发明实施例的用于卷积计算的计算设备500,该计算设备可用于对矩阵Am×n和矩阵Bm×n进行卷积计算,如图5所示,该计算设备500包括:
运算单元510,该运算单元510用于将m×n个数据处理装置300中的每个数据处理装置300接收的第一电压信号转换为第一电流信号,并根据该第一电流信号确定第二电流信号。
其中,该第一电压信号为m×n个数据处理装置300中每个数据处理装置300接收的电压信号,该第一电流信号为m×n个数据处理装置300中的每个数据处理装置300输出的电流信号,且该第一电流信号为第一电压信号与忆阻器的电导值的乘积,该第二电流信号为m×n个数据处理装置300中的每个数据处理装置300输出的所述第一电流信号之和。
可选的,在一些实施例中,该运算单元包括m×n个上述的数据处理装置300,该m×n个上述的数据处理装置300用于对矩阵Am×n和矩阵Bm×n中的元素进行乘法运算。
可选的,在一些实施例中,该m×n个数据处理装置300中每个数据处理装置300的第一转换单元的输入端接收电压信号,该电压信号小于忆阻器的阈值电压。
可选的,在一些实施例中,该m×n个数据处理装置的多个输入端接收的电压信号中的有些电压信号可能大于忆阻器的阈值电压,有些电压信号小于忆阻器的阈值电压,例如,在该输入端接收的电压信号为图像的像素值时,该像素值中的有些数值可能大于或等于忆阻器的阈值电压,在这种情况下,可以对该输入端接收的图像的多个像素值同时乘以一个比例系数,使该多个输入信号均缩小相同的倍数,使得那些大于或等于忆阻器阈值电压的电压信号缩小到小于忆阻器的阈值电压,再将该多个电压信号输入到每个数据处理装置的输入端。
应理解,由于对输入电压信号的处理是m×n个数据处理装置中的每个数据处理装置的输入电压信号都进行了相同的处理,所以并不影响进行卷积计算之后的结果。
可选的,在一些实施例中,该m×n个数据处理装置300中每个数据处理装置300的第一转换单元的输入端接收的电压信号可以为矩阵Am×n中的数值。
可选的,在一些实施例中,该m×n个数据处理装置与矩阵Am×n中的m×n个元素一一对应,该m×n个数据处理装置中的每个数据处理装置接收的电压信号为矩阵Am×n中的与每个数据处理装置对应的元素的数值转换的电压信号。
可选的,在一些实施例中,该m×n个数据处理装置300中每个数据处理装置300的输出端输出的信号为电流信号,该电流信号为输入的电压信号与忆阻器的电导值的乘积,即数据处理装置300的第一转换单元310实现的功能,该m×n个数据处理装置中的忆阻器的电导值与矩阵Bm×n中的m×n个元素一一对应。
可选的,在一些实施例中,该m×n个数据处理装置300中每个数据处理装置300的输入端输入的电压信号可以同时输入,实现并行计算的功能。
应理解,该m×n个数据处理装置300中每个数据处理装置300的输入端输入的电压信号可以是同时输入,也可以分别输入,由于同时输入可以实现并行计算,提高卷积计算的速度,所以本发明实施例以同时输入为例进行说明,但本发明实施例并不限定于此。
可选的,在一些实施例中,该忆阻器的电导值可以为矩阵Bm×n中的数值。
可选的,在一些实施例中,在矩阵Bm×n为进行卷积计算的卷积核时,该忆阻器的电导值即为卷积核中的权值,因此,该计算设备所包含的卷积核可以为一个m×n的卷积核。
可选的,在一些实施例中,该运算单元510的输出端输出的信号为电流信号,该电流信号为该m×n个数据处理装置300中每个数据处理装置300的输出端输出的电流信号之和。
可选的,在一些实施例中,运算单元510可以包括m个相互并联的支路,m个相互并联的支路中的每个支路包括n个上文所述的数据处理装置300。
可选的,在一些实施例中,该m个相互并联的支路中每个支路的输出端输出信号为电流信号,该电流信号为每个支路中的N个数据处理装置300中的每个数据处理装置300的输出端输出的电流信号之和。
可选的,在一些实施例中,运算单元510的输出端输出的电流信号为该m个支路中每个支路输出的电流信号之和。
第二转换单元520,该第二转换单元520与运算单元510的输出端相连,该第二转换单元520用于将运算单元510的输出端输出的电流信号转换成电压信号,该电压信号即为矩阵Am×n和矩阵Bm×n进行卷积运算的结果。
可选的,在一些实施例中,第二转换单元520包括定值电阻,该定值电阻用于将运算单元510的输出端输出的电流信号转换成电压信号。
应理解,由于卷积运算主要用于卷积神经网络的卷积层,而一般情况下,卷积神经网络的结构为一层卷积层接一层池化层的结构,因此,这里将运算单元510输出的电流信号转换成电压信号,以便于作为下一步池化层的输入信号使用。
图6所示为本发明实施例的用于卷积计算的计算设备500的另一示意性结构图。
为了便于理解,下文将结合图6对该计算设备500进行卷积计算的具体过程进行详细的介绍。
图6所示的计算设备用于对矩阵Am×n和矩阵Bm×n进行卷积计算,如图6所示,矩阵Am×n为一个5×5的矩阵,矩阵Bm×n为一个3×3的矩阵,矩阵Bm×n为卷积核,在矩阵Am×n和矩阵Bm×n进行卷积计算时,应用上述用于卷积计算的计算设备500,可以得到该卷积计算的结果,此时,该计算设备500的运算单元510包括3条支路,该3条支路的每个支路包括3个数据处理装置300。
具体的,进行第一次卷积计算时,第一条支路的每个数据处理装置300的输入电压信号依次为X11、X12、X13,忆阻器的电导值分别为W11、W12、W13,该第一条支路的输出端输出的电流信号为X11 W11+X12 W12+X13 W13。
应理解,该输入电压信号依次为X11、X12、X13为矩阵Am×n中的第一行的前三个元素的数值转换成的电压信号,该转换的方法可以为给该矩阵Am×n中的第一行的前三个元素的数值分别乘以一个比例系数,使转换后得到的电压信号X11、X12、X13小于忆阻器的阈值电压。
第二条支路的每个数据处理装置300的输入电压信号依次为X21、X22、X23,忆阻器的电导值分别为W21、W22、W23,该第一条支路的输出端输出的电流信号为X21 W21+X22 W22+X23W23。
同样的,该输入电压信号依次为X21、X22、X23为矩阵Am×n中的第二行的前三个元素的数值转换成的电压信号,该转换的方法可以为给该矩阵Am×n中的第二行的前三个元素的数值分别乘以一个比例系数,使转换后得到的电压信号X21、X22、X23小于忆阻器的阈值电压。
第三条支路的每个数据处理装置300的输入电压信号依次为X31、X32、X33,忆阻器的电导值分别为W31、W32、W33,该第一条支路的输出端输出的电流信号为X31 W31+X32 W32+X33W33。
同样的,该输入电压信号依次为X31、X32、X33为矩阵Am×n中的第三行的前三个元素的数值转换成的电压信号,该转换的方法可以为给该矩阵Am×n中的第三行的前三个元素的数值分别乘以一个比例系数,使转换后得到的电压信号X31、X32、X33小于忆阻器的阈值电压。
因此,在本次卷积计算中,该运算单元510的输出端的输出电流信号为X11 W11+X12W12+X13 W13+X21 W21+X22 W22+X23 W23+X31 W31+X32 W32+X33 W33。
经过运算单元510得到输出电流信号之后,再经过第二转换单元520将该输出的电流信号转换为电压信号,经过第二转换单元520的转换,该计算设备最终得到的输出电压为R(X11 W11+X12 W12+X13 W13+X21 W21+X22 W22+X23 W23+X31 W31+X32 W32+X33 W33)。
上述卷积计算为进行第一次卷积计算得到的结果,该结果为输入矩阵Am×n的元素X22进行卷积计算得到的特征值,即该输入矩阵Am×n中的一个中间元素,本发明实施例不对输入矩阵的边缘元素进行卷积计算,节省卷积计算的次数,提高卷积计算的速度。
应理解,该计算设备500也可以对输入矩阵的边缘元素进行卷积计算,因为在对输入矩阵的边缘元素进行卷积计算时,需要对输入矩阵的边缘进行补0操作,所以可以将该计算设备500中的数据处理装置300的第一转换单元的输入端输入的电压信号相应的设置为0。
相应的,在进行第二次卷积计算时,第一条支路的每个数据处理装置300的输入电压信号可以依次改变为X12、X13、X14,忆阻器的电导值分别为W11、W12、W13,该第一条支路的输出端输出的电流信号为X12 W11+X13 W12+X14 W13。
应理解,该输入电压信号依次为X12、X13、X14为矩阵Am×n中的第一行的第二个第三个和第四个元素的数值转换成的电压信号,该转换的方法可以为给该矩阵Am×n中的第一行的第二个第三个和第四个元素的数值分别乘以一个比例系数,使转换后得到的电压信号X12、X13、X14小于忆阻器的阈值电压。
第二条支路的每个数据处理装置300的输入电压信号依次改变为X22、X23、X24,忆阻器的电导值分别为W21、W22、W23,该第一条支路的输出端输出的电流信号为X22 W21+X23 W22+X24W23。
同样的,该输入电压信号依次为X22、X23、X24为矩阵Am×n中的第二行的第二个第三个和第四个元素的数值转换成的电压信号,该转换的方法可以为给该矩阵Am×n中的第二行的第二个第三个和第四个元素的数值分别乘以一个比例系数,使转换后得到的电压信号X22、X23、X24小于忆阻器的阈值电压。
第三条支路的每个数据处理装置300的输入电压信号依次改变为X32、X33、X34,忆阻器的电导值分别为W31、W32、W33,该第一条支路的输出端输出的电流信号为X32 W31+X33 W32+X34 W33。
同样的,该输入电压信号依次为X32、X33、X34为矩阵Am×n中的第三行的第二个第三个和第四个元素的数值转换成的电压信号,该转换的方法可以为给该矩阵Am×n中的第三行的第二个第三个和第四个元素的数值分别乘以一个比例系数,使转换后得到的电压信号X32、X33、X34小于忆阻器的阈值电压。
因此,在本次卷积计算中,该运算单元510的输出端的输出电流为X12 W11+X13 W12+X14 W13+X22 W21+X23 W22+X24 W23+X32 W31+X33W32+X34 W33。
在经过运算单元510得到输出电流之后,再经过第二转换单元520将该输出的电流信号转换为电压信号,经过第二转换单元520的转换,该计算设备最终得到的输出电压为R(X12 W11+X13 W12+X14 W13+X22 W21+X23 W22+X24 W23+X32 W31+X33W32+X34 W33)。
依此次类推,在进行下一次卷积计算时,改变计算设备500中的数据处理装置300的第一转换单元的输入端的电压信号的值,使之与要需要进行卷积计算的输入矩阵的值相对应,由于卷积神经网络的权值共享性,在对通过各输入矩阵进行卷积计算时,所用的卷积核为同一个,因此不需要改变忆阻器的电导值,直至计算出该输入矩阵的所有元素的特征值。
在对一个输入矩阵进行卷积计算完之后,如果需要变换不同的卷积核,再进行下一个输入矩阵的卷积计算时,可以根据需要的卷积核的权值,改变计算设备500中的M×N个数据处理装置300中每个数据处理装置300的忆阻器的阻值,从而改变忆阻器的电导值,得到不同的卷积核。
在需要改变计算设备500中的m×n个数据处理装置300中每个数据处理装置300的忆阻器的电导值时,可以通过数据处理装置300中的复位单元320和阻值调整单元330,改变数据处理装置300的忆阻器的阻值,改变忆阻器的阻值的具体方法上文已经进行了详细的叙述,在此不再赘述。
因此,在本发明实施例中,可以通过改变数据处理装置300中的忆阻器的阻值,从而改变忆阻器的电导值,获得不同的卷积核模板,进行不同的卷积计算,使得卷积计算更为灵活,提高了卷积计算的速度。
图7是根据本发明实施例的数据处理装置700的示意性结构图。如图7所示,所述装置700包括存储器710和处理器720,所述存储器710和处理器720之间通过内部连接通路互相通信,传递控制和/或数据信号。
所述存储器710用于存储程序代码;
所述处理器720用于调用所述程序代码以实现本发明上述各实施例中的各模块的功能。
在本发明实施例中,处理器720可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integratedCircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。
图8是根据本发明实施例的用于卷积计算的计算设备800的示意性结构图。如图8所示,所述装置800包括存储器810和处理器820,所述存储器810和处理器820之间通过内部连接通路互相通信,传递控制和/或数据信号。
所述存储器810用于存储程序代码;
所述处理器820用于调用所述程序代码以实现本发明上述各实施例中的各模块的功能。
在本发明实施例中,处理器820可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integratedCircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。
本发明实施例提供了一种计算机可读存储介质,用于存储计算机程序代码,该计算机程序包括用于执行上述图3和图4中本发明实施例的数据处理装置所执行的指令。该可读存储介质可以是只读存储器(read-only memory,ROM)或随机存取存储器(randomaccess memory,RAM),本发明实施例对此不做限制。
在本发明实施例中,可以全部或部分地通过软件,硬件,固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地按照本发明实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线路(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)光介质(例如数字通用光盘(DigitalVideo Disc,DVD)),或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本发明实施例还提供了一种计算机可读存储介质,用于存储计算机程序代码,该计算机程序包括用于执行上述图5和图6中本发明实施例的用于卷积计算的计算设备所执行的指令。该可读存储介质可以是只读存储器(read-only memory,ROM)或随机存取存储器(random access memory,RAM),本发明实施例对此不做限制。
在本发明实施例中,可以全部或部分地通过软件,硬件,固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地按照本发明实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线路(Digital Subscriber Line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)光介质(例如数字通用光盘(DigitalVideo Disc,DVD),或者半导体介质(例如固态硬盘(Solid State Disk,SSD)等。
上文结合图1-图8,详细描述了本发明实施例的装置实施例,下文结合图9和图10,详细描述本发明实施例的方法实施例,应理解,方法侧的描述与装置侧的描述相互对应,为了简洁,适当省略重复的描述。
图9所示为本发明实施例的数据处理的方法900的示意性流程图,该方法900由上述数据处理装置300执行,该方法900包括:
910,将第一电压信号装换为电流信号;
920,控制忆阻器的阻值达到忆阻器阻值的最大值或最小值;
930,在忆阻器的阻值达到忆阻器阻值的最大值或最小值的情况下,调整忆阻器的阻值。
可选的,在一些实施例中,该第一电压信号小于忆阻器的阈值电压,该电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果。
可选的,在一些实施例中,该第一电压信号为上述数据处理装置300的第一转换单元310的输入端接收的电压信号,该电流信号为上述数据处理装置300的第一转换单元的输出端输出的电流信号。
可选的,在一些实施例中,控制所述忆阻器的阻值达到忆阻器阻值的最大值或最小值由上述数据处理装置300的复位单元320执行。
可选的,在一些实施例中,在上述数据处理装置300的复位单元320的输入端输入的电压信号为负向电压信号时,控制该忆阻器的阻值达到忆阻器阻值的最大值。
可选的,在一些实施例中,在上述数据处理装置300的复位单元320的输入端输入的电压信号为正向电压信号时,控制该忆阻器的阻值达到忆阻器阻值的最小值。
可选的,在一些实施例中,在忆阻器的阻值达到忆阻器阻值的最大值或最小值的情况下,调整忆阻器的阻值由上述数据处理装置300的阻值调整单元330执行。
可选的,在一些实施例中,该阻值调整单元330的输入端输入的电压信号大于或等于忆阻器的阈值电压,输出端输出该输入端输出的电压信号。
可选的,在一些实施例中,该阻值调整单元330的输入端接收的电压信号可以为可编程的脉冲信号。
可选的,在一些实施例中,该阻值调整单元330可以为三态门。
可选的,在一些实施例中,在阻值调整单元330为三态门时,三态门的控制端接收的电压信号大于或等于三态门的开启电压,保证三态门的导通。
可选的,在一些实施例中,该三态门的控制端可以控制三态门的输入电压的持续时间。
图10所示为本发明实施例的用于卷积计算的方法1000的示意性流程图,该方法1000用于对矩阵Am×n和矩阵Bm×n进行卷积计算,该方法1000由上述用于卷积计算的计算设备500执行,该方法1000包括:
1010,将第一电压信号转换为第一电流信号;
1020,根据第一电流信号确定第二电流信号;
1030,将第二电流信号转换为第二电压信号。
可选的,在一些实施例中,该步骤1010由上述用于卷积计算的计算设备500中的运算单元510执行。
可选的,在一些实施例中,该用于执行该方法1000的计算设备包括m×n个数据处理装置300。
可选的,在一些实施例中,该第一电压信号为m×n个数据处理装置中每个数据处理装置接收的电压信号,该m×n个数据处理装置与矩阵Am×n中的m×n个元素一一对应,该m×n个数据处理装置中的每个数据处理装置接收的第一电压信号为所述矩阵Am×n中的与每个数据处理装置对应的元素的数值转换的电压信号。
可选的,在一些实施例中,第一电流信号为该m×n个数据处理装置中的每个数据处理装置输出的电流信号,且第一电流信号为该第一电压信号与忆阻器的电导值的乘积,该m×n个数据处理装置中的忆阻器的电导值与矩阵Bm×n中的m×n个元素一一对应。
可选的,在一些实施例中,该第二电流信号为计算设备500中的运算单元输出的电流信号。
可选的,在一些实施例中,第二电流信号为m×n个数据处理装置中的每个数据处理装置的输出端输出的第一电流信号之和。
可选的,在一些实施例中,上述用于卷积计算的计算设备500的运算单元510包括m个相互并联的支路,该m个支路中的每个支路包括n个所述数据处理装置,此时,根据第一电流信号确定第二电流信号可以为:将每个支路中的n个所述数据处理装置的输出端输出的所述第一电流信号相加,得到第三电流信号,该第三电流信号为该m个支路中的每个支路的输出端输出的电流信号;将m个支路中的每个支路的输出端输出的第三电流信号相加,得到第二电流信号,该第二电流信号为上述用于卷积计算的计算设备500中的运算单元510的输出端输出的电流信号。
可选的,在一些实施例中,上述用于卷积计算的计算设备500的第二转换单元520包括定值电阻,此时,将第二电流信号转换为第二电压信号可以为:根据该定值电阻,将该第二电流信号转换为第二电压信号。应理解,本文中术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种数据处理装置,其特征在于,所述数据处理装置包括:
第一转换单元,所述第一转换单元包括忆阻器,所述第一转换单元用于将接收的第一电压信号基于所述忆阻器转换为电流信号,所述第一电压信号小于所述忆阻器的阈值电压,所述电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果;
复位单元,所述复位单元与所述忆阻器相连,所述复位单元用于控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值;
阻值调整单元,所述阻值调整单元与所述忆阻器相连,所述阻值调整单元用于在所述复位单元控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值。
2.根据权利要求1所述的数据处理装置,其特征在于,所述阻值调整单元用于根据接收的第二电压信号,调整所述忆阻器的阻值,所述第二电压信号大于或等于所述忆阻器的阈值电压。
3.根据权利要求2所述的数据处理装置,其特征在于,所述阻值调整单元为三态门,所述三态门包括控制端、接收端和输出端;
所述控制端用于接收大于或等于三态门的开启电压的电压信号,所述接收端用于接收第二电压信号,所述第二电压信号大于或等于所述忆阻器的阈值电压,所述输出端用于向所述忆阻器输入所述第二电压信号以调整所述忆阻器的阻值。
4.根据权利要求1至3中任一项所述的数据处理装置,其特征在于,所述复位单元用于接收负向电压信号以控制所述忆阻器的阻值达到所述忆阻器阻值的最大值;或者,
所述复位单元用于接收正向电压信号以控制所述忆阻器的阻值达到所述忆阻器阻值的最小值。
5.一种用于卷积计算的计算设备,其特征在于,所述计算设备用于对矩阵Am×n和矩阵Bm×n进行卷积计算,所述计算设备包括:
运算单元,所述运算单元包括m×n个数据处理装置,其中所述数据处理装置包括:
第一转换单元,所述第一转换单元包括忆阻器,所述第一转换单元用于将接收的第一电压信号基于所述忆阻器转换为电流信号,所述第一电压信号小于所述忆阻器的阈值电压,所述电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果;
复位单元,所述复位单元与所述忆阻器相连,所述复位单元用于控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值;
阻值调整单元,所述阻值调整单元与所述忆阻器相连,所述阻值调整单元用于在所述复位单元控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值;
所述运算单元用于将m×n个数据处理装置中的每个数据处理装置接收的第一电压信号转换为第一电流信号,并根据所述第一电流信号确定第二电流信号,所述第一电压信号为所述m×n个数据处理装置中每个数据处理装置接收的电压信号,所述m×n个数据处理装置与所述矩阵Am×n中的m×n个元素一一对应,所述m×n个数据处理装置中的每个数据处理装置接收的第一电压信号为所述矩阵Am×n中的与所述每个数据处理装置对应的元素的数值转换的电压信号,所述第一电流信号为所述m×n个数据处理装置中的每个数据处理装置输出的电流信号,且所述第一电流信号为所述第一电压信号与所述忆阻器的电导值的乘积,所述m×n个数据处理装置中的忆阻器的电导值与所述矩阵Bm×n中的m×n个元素一一对应,所述第二电流信号为所述m×n个数据处理装置中的每个数据处理装置输出的所述第一电流信号之和;
第二转换单元,所述第二转换单元与所述运算单元相连,所述第二转换单元用于将所述运算单元的输出的所述第二电流信号转换成第二电压信号,所述第二电压信号为所述矩阵Am×n和矩阵Bm×n进行卷积运算的结果。
6.根据权利要求5所述的计算设备,其特征在于,所述运算单元包括m个相互并联的支路,所述m个支路中的每个支路包括n个所述数据处理装置,
所述运算单元用于将所述m个相互并联的支路中输出的第三电流信号转换为第二电流信号,所述第二电流信号为所述m个支路中每个支路输出的所述第三电流信号之和,所述第三电流信号为所述每个支路中的n个所述数据处理装置中的每个数据处理装置的输出的所述第一电流信号之和。
7.根据权利要求5或6所述的计算设备,其特征在于,所述第二转换单元包括定值电阻,所述定值电阻用于将所述运算单元的输出的所述第二电流信号转换成所述第二电压信号。
8.一种数据处理方法,其特征在于,所述方法包括:
将第一电压信号转换为电流信号,所述第一电压信号小于忆阻器的阈值电压,所述电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果;
控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值;
在所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值。
9.根据权利要求8所述的方法,其特征在于,所述在所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值,包括:
在所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,根据第二电压信号调整所述忆阻器的阻值,所述第二电压信号大于或等于所述忆阻器的阈值电压。
10.根据权利要求8或9所述的方法,其特征在于,所述控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值,包括:
在接收的电压信号为负向电压信号时,根据所述负向电压信号控制所述忆阻器的阻值达到忆阻器阻值的最大值;或
在接收的电压信号为正向电压信号时,根据所述正向电压信号控制所述忆阻器的阻值达到忆阻器阻值的最小值。
11.一种用于卷积计算的方法,其特征在于,所述方法用于对矩阵Am×n和矩阵Bm×n进行卷积计算,所述方法用于卷积计算的计算设备,所述计算设备包括m×n个数据处理装置,所述方法包括:
将第一电压信号转换为第一电流信号,所述第一电压信号为所述m×n个数据处理装置中的每个数据处理装置接收的电压信号,所述m×n个数据处理装置与所述矩阵Am×n中的m×n个元素一一对应,所述m×n个数据处理装置中的每个数据处理装置接收的第一电压信号为所述矩阵Am×n中的与所述每个数据处理装置对应的元素的数值转换的电压信号,所述第一电流信号为所述m×n个数据处理装置中的每个数据处理装置输出的电流信号,且所述第一电流信号为所述第一电压信号与忆阻器的电导值的乘积,所述m×n个数据处理装置中的忆阻器的电导值与所述矩阵Bm×n中的m×n个元素一一对应;
根据所述第一电流信号确定第二电流信号,所述第二电流信号为所述m×n个数据处理装置中的每个数据处理装置的输出的所述第一电流信号之和;
将所述第二电流信号转换为第二电压信号,所述第二电压信号为所述矩阵Am×n和矩阵Bm×n进行卷积运算的结果;
其中,所述数据处理装置包括:
第一转换单元,所述第一转换单元包括忆阻器,所述第一转换单元用于将接收的第一电压信号基于所述忆阻器转换为电流信号,所述第一电压信号小于所述忆阻器的阈值电压,所述电流信号为所述第一电压信号和所述忆阻器的电导值相乘的结果;
复位单元,所述复位单元与所述忆阻器相连,所述复位单元用于控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值;
阻值调整单元,所述阻值调整单元与所述忆阻器相连,所述阻值调整单元用于在所述复位单元控制所述忆阻器的阻值达到所述忆阻器阻值的最大值或最小值的情况下,调整所述忆阻器的阻值。
12.根据权利要求11所述的方法,其特征在于,所述计算设备包括运算单元,所述运算单元包括m个相互并联的支路,所述m个支路中的每个支路包括n个所述数据处理装置,
所述根据所述第一电流信号确定第二电流信号,包括:
根据所述每个支路中的n个所述数据处理装置的输出的所述第一电流信号,确定第三电流信号,所述第三电流信号为所述每个支路中的n个所述数据处理装置的输出的第一电流信号之和;
根据所述第三电流信号,确定第二电流信号,所述第二电流信号为所述m个支路中每个支路的输出的第三电流信号之和。
13.根据权利要求11或12所述的方法,其特征在于,所述计算设备包括第二转换单元,所述第二转换单元包括定值电阻,
所述将所述第二电流信号转换为第二电压信号,包括:
根据所述定值电阻,将所述第二电流信号装换为第二电压信号。
14.一种数据处理设备,其特征在于,包括:存储器用于存储程序代码;
处理器用于调用所述存储器存储的程序代码以实现权利要求8-13任选一所述的方法中的各模块的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710192750.7A CN108665061B (zh) | 2017-03-28 | 2017-03-28 | 数据处理装置和用于卷积计算的计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710192750.7A CN108665061B (zh) | 2017-03-28 | 2017-03-28 | 数据处理装置和用于卷积计算的计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108665061A CN108665061A (zh) | 2018-10-16 |
CN108665061B true CN108665061B (zh) | 2021-06-15 |
Family
ID=63785854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710192750.7A Active CN108665061B (zh) | 2017-03-28 | 2017-03-28 | 数据处理装置和用于卷积计算的计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108665061B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI735873B (zh) * | 2018-10-24 | 2021-08-11 | 旺宏電子股份有限公司 | 用以執行乘積和運算之半導體裝置 |
CN109543831B (zh) * | 2018-11-21 | 2024-03-19 | 复旦大学 | 忆阻器交叉阵列分压等效扩展阻态数目的结构及相关方法 |
CN109740744A (zh) * | 2018-12-13 | 2019-05-10 | 南京邮电大学 | 基于忆阻器矩阵的指定元素权值运算方法 |
EP3767967B1 (en) | 2019-07-15 | 2023-08-23 | Nokia Technologies Oy | Remote sensing |
CN111681696B (zh) * | 2020-05-28 | 2022-07-08 | 中国科学院微电子研究所 | 基于非易失存储器的存储和数据处理方法、装置及设备 |
CN111988031B (zh) * | 2020-08-28 | 2022-05-20 | 华中科技大学 | 一种忆阻存内矢量矩阵运算器及运算方法 |
CN112735494B (zh) * | 2021-01-04 | 2022-09-30 | 中国人民解放军国防科技大学 | 忆阻器阻值调控方法、装置、计算机终端及存储介质 |
US11388356B1 (en) * | 2021-04-12 | 2022-07-12 | Tetramem Inc. | AI fusion pixel sensor using memristors |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542334B (zh) * | 2012-01-14 | 2014-05-21 | 中国人民解放军国防科学技术大学 | 基于忆阻器的汉明网电路 |
CN103455843B (zh) * | 2013-08-16 | 2016-03-02 | 华中科技大学 | 一种反馈型人工神经网络训练方法及计算系统 |
KR20150034900A (ko) * | 2013-09-26 | 2015-04-06 | 삼성전자주식회사 | 뉴런 회로들을 연결하는 시냅스 회로, 뉴로모픽 회로를 구성하는 단위 셀 및 뉴로모픽 회로 |
US20150286925A1 (en) * | 2014-04-08 | 2015-10-08 | Qualcomm Incorporated | Modulating plasticity by global scalar values in a spiking neural network |
CN105224986B (zh) * | 2015-09-29 | 2018-01-23 | 清华大学 | 基于忆阻器件的深度神经网络系统 |
CN106530210B (zh) * | 2016-10-31 | 2019-09-06 | 北京大学 | 基于阻变存储器件阵列实现并行卷积计算的设备和方法 |
-
2017
- 2017-03-28 CN CN201710192750.7A patent/CN108665061B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108665061A (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108665061B (zh) | 数据处理装置和用于卷积计算的计算设备 | |
US10664745B2 (en) | Resistive processing units and neural network training methods | |
US11886378B2 (en) | Computer architecture with resistive processing units | |
Eshraghian et al. | Analog weights in ReRAM DNN accelerators | |
US11409438B2 (en) | Peripheral circuit and system supporting RRAM-based neural network training | |
EP3267355A1 (en) | Vector-matrix multiplications involving negative values | |
US20170228345A1 (en) | Analog Co-Processor | |
CN108345939A (zh) | 基于定点运算的神经网络 | |
US10042819B2 (en) | Convolution accelerators | |
KR20210096679A (ko) | 인코딩된 데이터를 디코딩하기 위한 신경망 및 시스템 | |
CN111460365B (zh) | 一种基于忆阻线性神经网络的方程组求解器及其操作方法 | |
Hikawa et al. | Improved learning performance of hardware self-organizing map using a novel neighborhood function | |
CN111353122A (zh) | 可做内乘积运算的存储器储存装置及其操作方法 | |
CN109360154A (zh) | 一种卷积神经网络生成方法及图像的超分辨率方法 | |
CN111125616A (zh) | 一种二维离散傅里叶变换运算电路及运算方法 | |
US20200380350A1 (en) | Analog neural network systems | |
US11922169B2 (en) | Refactoring mac operations | |
CN113807493A (zh) | 执行浮点运算的神经网络设备及其操作方法 | |
CN111126555A (zh) | 神经网络模型训练方法、装置、设备及存储介质 | |
US11886972B2 (en) | Non-volatile memory accelerator for artificial neural networks | |
US11960565B2 (en) | Add-mulitply-add convolution computation for a convolutional neural network | |
US11556770B2 (en) | Auto weight scaling for RPUs | |
CN114118390A (zh) | 用于柔性电导交叉开关的系统 | |
US20220310069A1 (en) | Methods and devices for irregular pruning for automatic speech recognition | |
JPWO2018168293A1 (ja) | 重み符号固定学習装置 |
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 |