CN116523011B - 基于忆阻的二值神经网络层电路及二值神经网络训练方法 - Google Patents
基于忆阻的二值神经网络层电路及二值神经网络训练方法 Download PDFInfo
- Publication number
- CN116523011B CN116523011B CN202310798688.1A CN202310798688A CN116523011B CN 116523011 B CN116523011 B CN 116523011B CN 202310798688 A CN202310798688 A CN 202310798688A CN 116523011 B CN116523011 B CN 116523011B
- Authority
- CN
- China
- Prior art keywords
- column
- row
- switching module
- input end
- neural network
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 102
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012549 training Methods 0.000 title claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims abstract description 8
- 230000004913 activation Effects 0.000 claims description 41
- 238000010606 normalization Methods 0.000 claims description 32
- 238000011176 pooling Methods 0.000 claims description 17
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 claims description 4
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 22
- 239000011159 matrix material Substances 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 10
- 210000000225 synapse Anatomy 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001902 propagating effect Effects 0.000 description 3
- 230000000946 synaptic effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/048—Activation functions
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本申请涉及一种基于忆阻的二值神经网络层电路及二值神经网络训练方法,该电路可以通过基尔霍夫定律实现向量‑矩阵乘法的并行计算,同时设计了电导值更新电路及更新策略,通过切换行、列输入端口及时序控制,实现前向传播、反向传播、更新过程。不但可以加速神经网络前向过程中的矩阵乘法运算,还可以对反向传播过程中的矩阵乘法运算进行加速。所设计的更新策略,可以在线调整每一列或每一行的忆阻的电导值,实现了在电路上并行调整忆阻的电导值。
Description
技术领域
本申请涉及神经网络技术领域,特别是涉及一种基于忆阻的二值神经网络层电路及二值神经网络训练方法。
背景技术
人工神经网络包含大量矩阵乘法运算,需要大量的算力支持。现有的计算设备大都基于冯-诺依曼架构,该架构的存储和计算是分离的,两者之间需要数据频繁交换,由此带来带宽、延迟和功耗问题,造成计算瓶颈。因此发展具有存算一体能力的新型计算设备,构建新型高效的非冯-诺依曼计算系统,是突破“存储墙”的一个可行方向。忆阻为这种突破提供了一种可能。忆阻是一种新型的电子器件,一般具有两个端口,其电导值可以随外加电流或电压而发生改变,忆阻的这一特性类似于神经网络突触的可塑性,因此可以用忆阻来模拟突触。并且忆阻在外加激励撤去后依然能够保持当前电导状态,具有非易失性。
基于忆阻构建的神经网络计算设备具有存算一体特点,避免了“存储墙”难题,同时具有高度并行性,大大加快了计算速度。但是由于当前忆阻制造技术尚不成熟,忆阻的电导值不能精确调整到某一特定的值,因而在采用忆阻电导值作为浮点数神经网络的权值时,会导致权值表达不准确,进而造成计算误差。忆阻电导值调整误差的存在,影响了忆阻神经网络电路的广泛应用。
二值神经网络的权值只有两个状态,恰好可以用忆阻电导值的高和低两个状态来表示,这样只需要调整忆阻电导值至两种状态,因而受调整误差的影响较小。同时相比浮点数神经网络,二值神经网络的表达能力在某些模式识别任务上只损失了一点。因此基于忆阻的二值神经网络电路解决了基于忆阻的浮点数神经网络存在的忆阻电导值调整不准确导致权值表达不准确的问题。
现有的基于忆阻的二值神经网络电路存在以下问题:每个突触器件数量多、突触结构复杂;采用软件模拟实现,没有实际电路设计,或者没有给出调整忆阻电导值的方式;实现的神经网络层的类型较少。
发明内容
基于此,有必要针对上述技术问题,提供一种基于忆阻的二值神经网络层电路及二值神经网络训练方法。
一种基于忆阻的二值神经网络批归一化层电路,所述电路包括:基于忆阻的交叉阵列、若干个加法器以及激活函数模块。
所述基于忆阻的交叉阵列包括(M+2)*(M+2)的交叉阵列、第一切换模块、第二切换模块、第三切换模块、第四切换模块、第一运放以及第二运放;所述(M+2)*(M+2)的交叉阵列的第一列的每一行有一个第一电阻器,第M+2列的每一行有一个第二电阻器,第一行的第2至M+1列各有一个第三电阻器,第M+2行的第2至M+1列各有一个第四电阻器;所述交叉阵列的第2至M+1列中每列包括两个忆阻器,第i列中的第一个所述忆阻器位于该列的第i行,第二个所述忆阻器位于第M+1行;所述第一切换模块的输出端与第2至第M+1行线输入端连接,所述第二切换模块连接在第M+1行和第M+2行之间,所述第三切换模块与第2至第M+1条列线的输入端连接,所述第四切换模块连接在第M+1列和第M+2列之间;所述第一运放的反向输入端与第二切换模块的第一个输出端连接,所述第一运放的反向输入端通过一个第四电阻器与第M+2行的输入端,所述第一运放的正向输入端接地;所述第二运放的反向输入端与第四切换模块的第一个输出端连接,所述第二运放的反向输入端通过一个第二电阻器与第M+2列的输入端,所述第二运放的正向输入端接地;所述第一切换模块、所述第二切换模块、所述第三切换模块和所述第四切换模块用于采用时序控制开关对前向传播、方向传播、行写电压输入和列写电压输入进行切换。
所述加法器的输出端与第一切换模块的输入端连接,所述加法器的第一输入端接收对应行的输入电压,所述加法器的第二输入端接收平均电压值。
所述基于忆阻的交叉阵列的第2至M+1列的每条列线的输出端连接一个激活函数模块,所述激活函数模块用于将每条列线输出的电流信号转换为电压信号,并实现激活函数的功能;所述激活函数模块的输出端用于连接下一层神经网络。
在其中一个实施例中,所述第一切换模块包括M+1个第一时序开关,所述第一时序开关是两个输入端和一个输出端的时序开关。
第1个至第M个所述第一时序开关的第一个输入端分别与对应的所述加法器的输出端连接,第1个至第M个所述第一时序开关的第二个输出分别用于接收所述交叉阵列的第一行至第M行的写电压。
第M+1个所述第一时序开关的第一个输入端与第M+1个所述加法器的输出端连接,第M+1个所述第一时序开关的第二个输入端接收参考写电压。
在其中一个实施例中,所述第二切换模块包括1个第一时序开关和M个第二时序开关。
所述第一时序开关的一端与所述交叉阵列的第一列的第M+1连接,另一端与所述第一运放的反向输入端连接。
M个所述第二时序开关的输出端分别与所述交叉阵列的第2列至第M+1列的第M+1行连接;每个所述第二时序开关的第一输入端分别用于接收第2列至第M+1列的列写电压;每个所述第二时序开关的第二输入端分别与第2列至第M+1列的第M+2行连接。
在其中一个实施例中,所述第三切换模块包括M个第三时序开关。
每个所述第三时序开关的一端分别与所述交叉阵列的第2列至第M+1列连接,M个所述第三时序开关的另一端分别用于接收神经网络的反向输入电压。
在其中一个实施例中,所述第四切换模块包括M个第四时序开关。
每个所述第四时序开关的一端分别与所述交叉阵列的第2行至第M+1行连接的第M+1列连接,M个所述第四时序开关的另一端分别用于第2行至第M+1行的第M+2列连接。
一种基于忆阻的二值神经网络全连接层电路,所述基于忆阻的二值神经网络全连接层电路包括改进的基于忆阻的交叉阵列和二值激活函数模块。
所述改进的基于忆阻的交叉阵列包括(M+2)*(M+2)的交叉阵列、第一切换模块、第二切换模块、第三切换模块、第四切换模块、第一运放以及第二运放;所述(M+2)*(M+2)的交叉阵列的第一列的每一行有一个第一电阻器,第M+2列的每一行有一个第二电阻器,第一行的第2至M+1列各有一个第三电阻器,第M+2行的第2至M+1列各有一个第四电阻器;所述交叉阵列的第2行至第M+1行与第二列至第M+1列组成的子交叉阵列的每个交叉点包括一个忆阻器;所述第一切换模块的输出端与第2至第M+1行线输入端连接,所述第二切换模块连接在第M+1行和第M+2行之间,所述第三切换模块与第2至第M+1条列线的输入端连接,所述第四切换模块连接在第M+1列和第M+2列之间;所述第一运放的反向输入端与第二切换模块的第一个输出端连接,所述第一运放的反向输入端通过一个第四电阻器与第M+2行的输入端,所述第一运放的正向输入端接地;所述第二运放的反向输入端与第四切换模块的第一个输出端连接,所述第二运放的反向输入端通过一个第二电阻器与第M+2列的输入端,所述第二运放的正向输入端接地;所述第一切换模块、所述第二切换模块、所述第三切换模块和所述第四切换模块用于采用时序控制开关对前向传播、方向传播、行写电压输入和列写电压输入进行切换;
所述改进的基于忆阻的交叉阵列的第M+2行的第二列至第M+1列分别与一个所述二值激活函数模块的输入端连接,所述二值激活函数模块的输出端用于传输基于忆阻的二值神经网络全连接层电路的正向信息至下一层神经网络。
在其中一个实施例中,所述二值激活函数模块包括一级运放和二级运放、第五电阻器、第六电阻器一级第七电阻器。
所述一级运放的反向输入端与所述交叉阵列的第M+2行的对应列连接,所述一级运放的反向输入端通过第五电阻器与所述一级运放的输出端连接,所述一级运放的输出端通过第六电阻器与所述二级运放的反向输入端连接,所述一级运放的正向输入端接地,所述二级运放的正向输入端通过第六电阻器接地,所述二级运放的两个电源端分别输入高、低电平;所述二级运放的输出端用于传输电压信息至下一层神经网络;所述电压信息为:
其中,Vi o为第i列的输出电压,VH和VL分别是运放电源的高低电平,Ii为第i列的电流。
一种基于忆阻的二值神经网络卷积层电路,所述基于忆阻的二值神经网络卷积层电路包括上述的所述改进的基于忆阻的交叉阵列、第二激活函数模块。
所述改进的基于忆阻的交叉阵列的第M+2行的第二列至第M+1列分别与一个所述第二激活函数模块的输入端连接,所述第二激活函数模块的输出端用于传输基于忆阻的二值神经网络卷积层电路的正向信息至下一层神经网络。
所述改进的基于忆阻的交叉阵列的第二行至第M+1行每行的输入信号为输入特征图的一个感受野的多个输入信号。
一种基于忆阻的二值神经网络电路的训练方法,所述二值神经网络电路包括卷积层电路、池化层、第一个批归一化层电路、全连接层电路以及第二个批归一化层电路;其中第一个和第二个批归一化层电路为上述基于忆阻的二值神经网络批归一化层电路;所述卷积层电路为上述基于忆阻的二值神经网络卷积层电路,所述全连接层电路为上述基于忆阻的二值神经网络全连接层电路;所述卷积层电路、所述池化层、第一个所述批归一化层电路、全连接层电路以及第二个所述批归一化层电路依次连接;所述训练方法包括:
采用通用计算电路计算权值的状态,所述状态包括+1和-1。
根据所述状态生成相应的更新电压,通过控制第一切换模块、第二切换模块、第三切换模块以及第四切换模块,将每一层切换到电导值更新状态,将更新电压施加到对应的写端口,将最终的权值状态写入到忆阻电导值,得到可应用于实际任务中的二值神经网络电路。
上述基于忆阻的二值神经网络层电路及二值神经网络训练方法,该电路可以通过基尔霍夫定律实现向量-矩阵乘法的并行计算,同时设计了电导值更新电路及更新策略,通过切换行、列输入端口及时序控制,实现前向传播、反向传播、更新过程。不但可以加速神经网络前向过程中的矩阵乘法运算,还可以对反向传播过程中的矩阵乘法运算进行加速。所设计的更新策略,可以在线调整每一列或每一行的忆阻的电导值,实现了在电路上并行调整忆阻的电导值。
附图说明
图1为一个实施例中基于忆阻的二值神经网络批归一化层电路结构示意图;
图2为另一个实施例中基于忆阻的二值神经网络批归一化层电路结构示意图;
图3为另一个实施例中基于忆阻的二值神经网络批归一化层电路结构示意图;
图4为另一个实施例中改进的基于忆阻的交叉阵列结构示意图;
图5为另一个实施例中调整忆阻突触电导值示例;
图6为一个实施例中基于忆阻的二值神经网络全连接层电路结构示意图;
图7为另一个实施例中二值激活函数模块示意图;
图8为一个实施例中基于忆阻的二值神经网络卷积层电路结构示意图;
图9为一个实施例一种二值神经网络结构示意;
图10为另一个实施例中本发明实施流程图;
图11为另一个实施例中基于忆阻的平均池化层电路结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种基于忆阻的二值神经网络批归一化层电路,该电路包括:基于忆阻的交叉阵列10、若干个加法器20以及激活函数模块30。
基于忆阻的交叉阵列10包括(M+2)*(M+2)的交叉阵列、第一切换模块101、第二切换模块102、第三切换模块103、第四切换模块104、第一运放105以及第二运放106;(M+2)*(M+2)的交叉阵列的第一列的每一行有一个第一电阻器Rs,第M+2列的每一行有一个第二电阻器Rd,第一行的第2至M+1列各有一个第三电阻器Re,第M+2行的第2至M+1列各有一个第四电阻器Rf;交叉阵列的第2至M+1列中每列包括两个忆阻器1001,第i列中的第一个忆阻器1001位于该列的第i行,第二个忆阻器1001位于第M+1行;第一切换模块101的输出端与第2至第M+1行线输入端连接,第二切换模块102连接在第M+1行和第M+2行之间,第三切换模块103与第2至第M+1条列线的输入端连接,第四切换模块104连接在第M+1列和第M+2列之间;第一运放105的反向输入端与第二切换模块102的第一个输出端连接,第一运放105的反向输入端通过一个第四电阻器Rf与第M+2行的输入端,第一运放105的正向输入端接地;第二运放106的反向输入端与第四切换模块104的第一个输出端连接,第二运放106的反向输入端通过一个第二电阻器Rd与第M+2列的输入端,第二运放106的正向输入端接地;第一切换模块101、第二切换模块102、第三切换模块103和第四切换模块104用于采用时序控制开关对前向传播、方向传播、行写电压输入和列写电压输入进行切换。M为大于0的整数。
加法器20的输出端与第一切换模块101的输入端连接,加法器20的第一输入端接收对应行的输入电压,加法器20的第二输入端接收平均电压值。
基于忆阻的交叉阵列10的第2至M+1列的每条列线的输出端连接一个激活函数模块30,激活函数模块30用于将每条列线输出的电流信号转换为电压信号,并实现激活函数的功能;激活函数模块30的输出端用于连接下一层神经网络。
上述基于忆阻的二值神经网络层电路中,该电路可以通过基尔霍夫定律实现向量-矩阵乘法的并行计算,同时设计了电导值更新电路及更新策略,通过切换行、列输入端口及时序控制,实现前向传播、反向传播、更新过程。不但可以加速神经网络前向过程中的矩阵乘法运算,还可以对反向传播过程中的矩阵乘法运算进行加速。所设计的更新策略,可以在线调整每一列或每一行的忆阻的电导值,实现了在电路上并行调整忆阻的电导值。
在其中一个实施例中,如图2所示,第一切换模块包括M+1个第一时序开关,第一时序开关是两个输入端和一个输出端的时序开关。
第1个至第M个第一时序开关的第一个输入端分别与对应的加法器的输出端连接,第1个至第M个第一时序开关的第二个输出分别用于接收交叉阵列的第一行至第M行的写电压。
第M+1个第一时序开关的第一个输入端与第M+1个加法器的输出端连接,第M+1个第一时序开关的第二个输入端接收参考写电压。
在其中一个实施例中,如图2所示,第二切换模块包括1个第一时序开关和M个第二时序开关。
第一时序开关的一端与交叉阵列的第一列的第M+1连接,另一端与第一运放的反向输入端连接。
M个第二时序开关的输出端分别与交叉阵列的第2列至第M+1列的第M+1行连接;每个第二时序开关的第一输入端分别用于接收第2列至第M+1列的列写电压;每个第二时序开关的第二输入端分别与第2列至第M+1列的第M+2行连接。
在其中一个实施例中,如图2所示,第三切换模块包括M个第三时序开关。
每个第三时序开关的一端分别与交叉阵列的第2列至第M+1列连接,M个第三时序开关的另一端分别用于接收神经网络的反向输入电压。
在其中一个实施例中,如图2所示,第四切换模块包括M个第四时序开关。
每个第四时序开关的一端分别与交叉阵列的第2行至第M+1行连接的第M+1列连接,M个第四时序开关的另一端分别用于第2行至第M+1行的第M+2列连接。
在一个具体的实施例中,基于忆阻的二值神经网络批归一化层电路结构如图3所示。批归一化层对层间的输出进行一种类似于归一化的处理,其原理是:
其中,xi为批归一化层的输入,U为一个批次样本的数量,∈为一个很小的正数(作用是防止分母为0),yi是输出,μβ是一个批次样本的平均值,是一个批次样本的方差,γ和β是要学习的参数。
到/>是输入电压,V1 o到/>是输出电压,/>是一个批次输入的平均值,虚线椭圆圈部分是一个加法器,Gγ,1到Gγ,M的电导值均代表参数γ,Gβ,1到Gβ,M的电导值均代表参数β。由图3得:
在一个实施例中,提供了一种基于忆阻的二值神经网络全连接层电路,该基于忆阻的二值神经网络全连接层电路包括改进的基于忆阻的交叉阵列和二值激活函数模块。
改进的基于忆阻的交叉阵列包括(M+2)*(M+2)的交叉阵列、第一切换模块、第二切换模块、第三切换模块、第四切换模块、第一运放以及第二运放;(M+2)*(M+2)的交叉阵列的第一列的每一行有一个第一电阻器,第M+2列的每一行有一个第二电阻器,第一行的第2至M+1列各有一个第三电阻器,第M+2行的第2至M+1列各有一个第四电阻器;交叉阵列的第2行至第M+1行与第二列至第M+1列组成的子交叉阵列的每个交叉点包括一个忆阻器;第一切换模块的输出端与第2至第M+1行线输入端连接,第二切换模块连接在第M+1行和第M+2行之间,第三切换模块与第2至第M+1条列线的输入端连接,第四切换模块连接在第M+1列和第M+2列之间;第一运放的反向输入端与第二切换模块的第一个输出端连接,第一运放的反向输入端通过一个第四电阻器与第M+2行的输入端,第一运放的正向输入端接地;第二运放的反向输入端与第四切换模块的第一个输出端连接,第二运放的反向输入端通过一个第二电阻器与第M+2列的输入端,第二运放的正向输入端接地;第一切换模块、第二切换模块、第三切换模块和第四切换模块用于采用时序控制开关对前向传播、方向传播、行写电压输入和列写电压输入进行切换。
改进的基于忆阻的交叉阵列的第M+2行的第二列至第M+1列分别与一个二值激活函数模块的输入端连接,二值激活函数模块的输出端用于传输基于忆阻的二值神经网络全连接层电路的正向信息至下一层神经网络。
具体的,改进的基于忆阻的交叉阵列结构如图4所示,改进的基于忆阻的交叉阵列是在基于忆阻的交叉阵列的基础上改进得到的,与上述交叉阵列的不同点在于,交叉阵列的第2行至第M+1行与第二列至第M+1列组成的子交叉阵列的每个交叉点包括一个忆阻器。
所设计的基于忆阻的交叉阵列电路如图1所示。该电路可以通过时序控制开关实现前向传播过程、反向传播过程、电导值更新过程的切换。
到/>是前向传播输入电压,来自输入样本或上一个网络层,/>到/>是输出电压,前向传播至下一层。V1 δ到/>是反向传播输入电压,/>到/>是输出电流,可根据需要进行处理后反向传播到上一层。/>到/>是行写电压,/>到/>是列写电压,可根据权值调整误差由外部电路生成。
在前向传播过程,开关S1切换到前向传播输入电压Vi 1到,S2切换到输出电压V1 o到/>,S3闭合,S4打开。由图4得:
每列的输出电流为:
其中n=1,2,...N,Rmn和Gmn分别是第m行第n列忆阻的电阻值和电导值,Gs是电阻Rs的电导值。
在反向传播过程,开关S1、S2、S3断开,S4闭合,反向传播输入电压V1 δ到输入到阵列中,得到输出/>到/>经过反向传播电流处理模块进行处理(如与激活函数的导数相乘等操作,具体实现方式不作要求)后,传播到上一层。
在电导值更新过程,开关S1切换到行写电压到/>,S2切换到列写电压/>到,S3和S4断开。此时可以通过写电压以行并行地形式调整代表权值的忆阻突触的电导值。举例说明,调整过程通过图5示例说明。第一行和第三行的第一列的忆阻M1和M3的电导值需要增大,第二行第一列的忆阻M2的电导值需要减小。设忆阻的正向阈值电压为Von,负向阈值电压为Voff,当忆阻两端施加正电压的幅值超过Von时,忆阻电导值增大,当忆阻两端施加负电压的幅值超过Voff时,忆阻电导值减小,否则电导值不发生变化。调整过程分为两个阶段,分别为增大电导值和减小电导值阶段。在电导值增大阶段,/>和/>幅值为幅值为/>,其中/>为忆阻正向写电压,满足/>。这样M1和M3两端的电压为/>,其电导值被调整为Gon即最大电导值,同时M2两端的电压为,其电导值保持不变。在电导值减小阶段,M2两端的电压为/>,其中/>为忆阻负向写电压,满足/>,其电导值被调整为Goff即最小电导值,而M1和M3两端的电压为/>,其电导值保持不变。上述所施加的行列正向写电压的脉冲宽度时相同,负向写电压的脉冲宽度也是相同的,因为忆阻的电导值只需调整到最大或最小值,而不需要精确调整。这样可实现每一列忆阻电导值的并行调整。如果将行电压与列电压对换,则可以实现每一行忆阻电导值的并行调整。
基于忆阻的二值神经网络全连接层电路如图6所示。全连接层通过权值对输入进行加权求和:
其中xi是第i个输入,yj是第j个输出,bj是第j个偏置,wji是连接第i个输入与第j个输出的权值,f是激活函数。其中wji和bi是要学习的参数。可以写成向量形式:
y=f(Wx+b) (10)
其中x是输入向量,b是偏置向量,y是输出向量,W是权值矩阵。
在前向过程,V1 i到是输入电压,Vb是偏置电压。由图6知:
每列的电流为:
其中n=1,2,...,N。每列的输出电压为:
其中Gmn和GM+1,n是要学习的参数,即忆阻突触的电导值。与(3)对比,相当于yj,相当于输入xi,Gmn-Gs相当于Wij,Vb(GM+1,n-Gs)相当于偏置bj。每列的输出电压为:
其中f为二值激活函数模块表达式,可根据需要将电流转化为电压以及实现激活函数的功能,然后输出电压传播到下一层。
在其中一个实施例中,如图7所示,二值激活函数模块包括一级运放和二级运放、第五电阻器、第六电阻器一级第七电阻器。
一级运放的反向输入端与交叉阵列的第M+2行的对应列连接,一级运放的反向输入端通过第五电阻器与一级运放的输出端连接,一级运放的输出端通过第六电阻器与二级运放的反向输入端连接,一级运放的正向输入端接地,二级运放的正向输入端通过第六电阻器接地,二级运放的两个电源端分别输入高、低电平;二级运放的输出端用于传输电压信息至下一层神经网络;电压信息为:
其中,Vi o为第i列的输出电压,VH和VL分别是运放电源的高低电平,Ii为第i列的电流。反向传播过程与电导值更新过程与忆阻交叉阵列类似。
在一个实施例中,如图8所示,提供了一种基于忆阻的二值神经网络卷积层电路,该基于忆阻的二值神经网络卷积层电路包括上述改进的基于忆阻的交叉阵列、第二激活函数模块。
改进的基于忆阻的交叉阵列的第M+2行的第二列至第M+1列分别与一个第二激活函数模块的输入端连接,第二激活函数模块的输出端用于传输基于忆阻的二值神经网络卷积层电路的正向信息至下一层神经网络。
改进的基于忆阻的交叉阵列的第二行至第M+1行每行的输入信号为输入特征图的一个感受野的多个输入信号。
具体的,卷积层通过卷积核的滑动窗口对特征图每个感受野进行加权求和操作,具体运算为
其中是第j个输出特征图的第p个值,/>是第i个输入特征图的第p个感受野位置为(k1,k2)的值,/>为第j个卷积组的第i个卷积核位置为(k1,k2)的权值,K1和K2分别是卷积核的长和宽大小,M是输入通道数,N是输出通道数。
是第m个输入特征图的第p个感受野的第k个输入,K=K1×K2是卷积核的大小,每一列中/>是第n个输出特征图的第p个值。每一列忆阻代表一个卷积核组,包含K×M个卷积核。由图8得:
其中Gkmn是代表第n个卷积核组的第m个卷积核的第k个值的忆阻的电导值,Gbn是代表偏置的电导值。最后输出为:
在其中一个实施例中,提供了一种基于忆阻的二值神经网络电路的训练方法,二值神经网络电路包括卷积层电路、池化层、第一个批归一化层电路、全连接层电路以及第二个批归一化层电路;其中第一个和第二个批归一化层电路为上述基于忆阻的二值神经网络批归一化层电路;所述卷积层电路为上述基于忆阻的二值神经网络卷积层电路,所述全连接层电路为上述基于忆阻的二值神经网络全连接层电路;卷积层电路、池化层、第一个批归一化层电路、全连接层电路以及第二个批归一化层电路依次连接;训练方法包括:
采用通用计算电路计算权值的的状态,所述状态包括+1和-1。
根据状态生成相应的更新电压,通过控制第一切换模块、第二切换模块、第三切换模块以及第四切换模块,将每一层切换到电导值更新状态,将更新电压施加到对应的写端口,将最终的权值状态写入到忆阻电导值,得到可应用于实际任务中的二值神经网络电路。
具体的,一种二值神经网络结构如图9所示,其中Input表示输入层,Output表示输出层,Conv表示卷积层,Pool表示池化层,Bn表示批归一化层,FC表示全连接层。该网络的所以层均可用上述基于忆阻的神经网络层来构建。
基于忆阻的神经网络层电路,可用来加速人工神经网络的运行,适用于AI芯片等领域。具体实施时,根据任务需要设计神经网络的结构,然后利用所设计的基于忆阻的二值神经网络层电路来构建该神经网络电路。构建过程为:将每个基于忆阻的神经网络层的输出端连接到下一层的输入端,即上一层的输出电压Vo为下一层的输入电压Vi,实现神经网络的前向传播过程;在训练时(包含了多次反向传播过程),忆阻阵列同样可以加速反向传播过程存在的矩阵乘法运算;利用现有的通用计算电路(如CPU)来计算得到权值的的状态,所述状态包括+1和-1,然后生成相应的更新电压,通过控制开关,将每一个层切换到电导值更新状态,将更新电压施加到写端口,实现忆阻电导值的写入。训练完成后,即可将电路应用到实际任务中,实现对神经网络运算的加速。实施流程图如图10所示,虚线矩形框里为本发明内容。
本发明的基于忆阻的二值神经网络电路主要用来加速二值神经网络的前向计算,因为在实际工程应用中,主要使用神经网络的前向传播能力,训练过程(包含多次反向传播)只完成一次即可。
池化层的作用是实现特征不变性、特征降维等。池化主要包括最大池化和平均池化两种。这里采用忆阻阵列实现平均池化。平均池化计算方式如下:
一种基于忆阻的平均池化层电路结构示意图如图11所示。是第p个池化区域的第k个值,每个忆阻的电导值为1/KRa,/>是第p个输出值,/>的值为:
其中K=K1×K2,K1和K2分别是池化核的宽和高。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于忆阻的二值神经网络批归一化层电路,其特征在于,所述电路包括:基于忆阻的交叉阵列、若干个加法器以及激活函数模块;
所述基于忆阻的交叉阵列包括的交叉阵列、第一切换模块、第二切换模块、第三切换模块、第四切换模块、第一运放以及第二运放;所述/>的交叉阵列的第一列的每一行有一个第一电阻器,第N+2列的每一行有一个第二电阻器,第一行的第2至N+1列各有一个第三电阻器,第 M+3行的第2至N+1列各有一个第四电阻器;所述交叉阵列的第2至N+1列中每列包括两个忆阻器,第i列中的第一个所述忆阻器位于该列的第i行,第二个所述忆阻器位于第M+2行;所述第一切换模块的输出端与第2至第 M+2行线输入端连接,所述第二切换模块连接在第 M+2行和第 M+3行之间,所述第三切换模块与第2至第N+1条列线的输入端连接,所述第四切换模块连接在第N+1列和第N+2列之间;所述第一运放的反向输入端与第二切换模块的第一个输出端连接,所述第一运放的反向输入端通过一个第四电阻器与第M+3行的输入端连接,所述第一运放的正向输入端接地;所述第二运放的反向输入端与第四切换模块的第一个输出端连接,所述第二运放的反向输入端通过一个第二电阻器与第N+2列的输入端连接,所述第二运放的正向输入端接地;所述第一切换模块、所述第二切换模块、所述第三切换模块和所述第四切换模块用于采用时序控制开关对前向传播、反向传播、行写电压输入和列写电压输入进行切换;
所述加法器的输出端与第一切换模块的输入端连接,所述加法器的第一输入端接收对应行的输入电压,所述加法器的第二输入端接收平均电压值;
所述基于忆阻的交叉阵列的第2至N+1列的每条列线的输出端连接一个激活函数模块,所述激活函数模块用于将每条列线输出的电流信号转换为电压信号,并实现激活函数的功能;所述激活函数模块的输出端用于连接下一层神经网络。
2.根据权利要求1所述的基于忆阻的二值神经网络批归一化层电路,其特征在于,所述第一切换模块包括M+1个第一时序开关,所述第一时序开关是两个输入端和一个输出端的时序开关;
第1个至第M个所述第一时序开关的第一个输入端分别与对应的所述加法器的输出端连接,第1个至第M个所述第一时序开关的第二个输出分别用于接收所述交叉阵列的第一行至第M行的写电压;
第M+1个所述第一时序开关的第一个输入端与第M+1个所述加法器的输出端连接,第M+1个所述第一时序开关的第二个输入端接收参考写电压。
3.根据权利要求1所述的基于忆阻的二值神经网络批归一化层电路,其特征在于,所述第二切换模块包括1个第一时序开关和N个第二时序开关;
所述第一时序开关的一端与所述交叉阵列的第一列的第M+2行连接,另一端与所述第一运放的反向输入端连接;
N个所述第二时序开关的输出端分别与所述交叉阵列的第2列至第N+1列的第M+2行连接;每个所述第二时序开关的第一输入端分别用于接收第2列至第N+1列的列写电压;每个所述第二时序开关的第二输入端分别与第2列至第N+1列的第M+3行连接。
4.根据权利要求1所述的基于忆阻的二值神经网络批归一化层电路,其特征在于,所述第三切换模块包括N个第三时序开关;
每个所述第三时序开关的一端分别与所述交叉阵列的第2列至第N+1列连接,N个所述第三时序开关的另一端分别用于接收神经网络的反向输入电压。
5.根据权利要求1所述的基于忆阻的二值神经网络批归一化层电路,其特征在于,所述第四切换模块包括M个第四时序开关;
每个所述第四时序开关的一端分别与所述交叉阵列的第2行至第M+1行连接的第N+1列连接,M个所述第四时序开关的另一端分别用于第2行至第M+1行的第N+2列连接。
6.一种基于忆阻的二值神经网络全连接层电路,其特征在于,所述基于忆阻的二值神经网络全连接层电路包括改进的基于忆阻的交叉阵列和二值激活函数模块;
所述改进的基于忆阻的交叉阵列包括的交叉阵列、第一切换模块、第二切换模块、第三切换模块、第四切换模块、第一运放以及第二运放;所述的交叉阵列的第一列的每一行有一个第一电阻器,第M+2列的每一行有一个第二电阻器,第一行的第2至M+1列各有一个第三电阻器,第M+2行的第2至M+1列各有一个第四电阻器;所述交叉阵列的第2行至第M+1行与第二列至第M+1列组成的子交叉阵列的每个交叉点包括一个忆阻器;所述第一切换模块的输出端与第2至第M+1行线输入端连接,所述第二切换模块连接在第M+1行和第M+2行之间,所述第三切换模块与第2至第M+1条列线的输入端连接,所述第四切换模块连接在第M+1列和第M+2列之间;所述第一运放的反向输入端与第二切换模块的第一个输出端连接,所述第一运放的反向输入端通过一个第四电阻器与第M+2行的输入端连接,所述第一运放的正向输入端接地;所述第二运放的反向输入端与第四切换模块的第一个输出端连接,所述第二运放的反向输入端通过一个第二电阻器与第M+2列的输入端连接,所述第二运放的正向输入端接地;所述第一切换模块、所述第二切换模块、所述第三切换模块和所述第四切换模块用于采用时序控制开关对前向传播、反向传播、行写电压输入和列写电压输入进行切换;
所述改进的基于忆阻的交叉阵列的第M+2行的第二列至第M+1列分别与一个所述二值激活函数模块的输入端连接,所述二值激活函数模块的输出端用于传输基于忆阻的二值神经网络全连接层电路的正向信息至下一层神经网络。
7.根据权利要求6所述的基于忆阻的二值神经网络全连接层电路,其特征在于,所述二值激活函数模块包括一级运放和二级运放、第五电阻器、第六电阻器一级第七电阻器;
所述一级运放的反向输入端与所述交叉阵列的第M+2行的对应列连接,所述一级运放的反向输入端通过第五电阻器与所述一级运放的输出端连接,所述一级运放的输出端通过第六电阻器与所述二级运放的反向输入端连接,所述一级运放的正向输入端接地,所述二级运放的正向输入端通过第六电阻器接地,所述二级运放的两个电源端分别输入高、低电平;所述二级运放的输出端用于传输电压信息至下一层神经网络;所述电压信息为:
,
其中,为第i列的输出电压,/>和/>分别是运放电源的高低电平,/>为第i列的电流。
8.一种基于忆阻的二值神经网络卷积层电路,其特征在于,所述基于忆阻的二值神经网络卷积层电路包括权利要求7中所述改进的基于忆阻的交叉阵列、二值激活函数模块;
所述改进的基于忆阻的交叉阵列的第M+2行的第二列至第N+1列分别与一个所述二值激活函数模块的输入端连接,所述二值激活函数模块的输出端用于传输基于忆阻的二值神经网络卷积层电路的正向信息至下一层神经网络;
所述改进的基于忆阻的交叉阵列的第二行至第M+1行每行的输入信号为输入特征图的一个感受野的多个输入信号。
9.一种基于忆阻的二值神经网络电路的训练方法,其特征在于,所述二值神经网络电路包括卷积层电路、池化层、第一个批归一化层电路、全连接层电路以及第二个批归一化层电路;其中第一个和第二个批归一化层电路为权利要求1所述的基于忆阻的二值神经网络批归一化层电路;所述卷积层电路为权利要求8所述的基于忆阻的二值神经网络卷积层电路,所述全连接层电路为权利要求6所述的基于忆阻的二值神经网络全连接层电路;
所述卷积层电路、所述池化层、第一个所述批归一化层电路、全连接层电路以及第二个所述批归一化层电路依次连接;所述训练方法包括:
采用通用计算电路计算权值的状态,所述状态包括+1和-1;
根据所述状态生成相应的更新电压,通过控制第一切换模块、第二切换模块、第三切换模块以及第四切换模块,将每一层切换到电导值更新状态,将更新电压施加到对应的写端口,将最终的权值状态写入到忆阻电导值,得到可应用于实际任务中的二值神经网络电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310798688.1A CN116523011B (zh) | 2023-07-03 | 2023-07-03 | 基于忆阻的二值神经网络层电路及二值神经网络训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310798688.1A CN116523011B (zh) | 2023-07-03 | 2023-07-03 | 基于忆阻的二值神经网络层电路及二值神经网络训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116523011A CN116523011A (zh) | 2023-08-01 |
CN116523011B true CN116523011B (zh) | 2023-09-15 |
Family
ID=87394393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310798688.1A Active CN116523011B (zh) | 2023-07-03 | 2023-07-03 | 基于忆阻的二值神经网络层电路及二值神经网络训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116523011B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472348A (zh) * | 2018-10-23 | 2019-03-15 | 华中科技大学 | 一种基于忆阻交叉阵列的lstm神经网络系统 |
KR20190114212A (ko) * | 2018-03-29 | 2019-10-10 | 국민대학교산학협력단 | 이진값 기반 신경회로망을 위한 단일 컬럼 멤리스터 크로스바 및 cmos 활성화 함수 회로 |
CN111680792A (zh) * | 2020-06-18 | 2020-09-18 | 中国人民解放军国防科技大学 | 激活函数电路、忆阻神经网络及忆阻神经网络的控制方法 |
KR20200113106A (ko) * | 2019-03-22 | 2020-10-06 | 국민대학교산학협력단 | 멤리스터 어레이 회로를 제어하기 위한 게이트 회로를 포함하는 뉴럴 네트워크 시스템 |
CN113469334A (zh) * | 2021-06-29 | 2021-10-01 | 中国地质大学(武汉) | 一种忆阻递归神经网络电路 |
CN114723025A (zh) * | 2022-03-25 | 2022-07-08 | 武汉工程大学 | 一种忆阻反向传播神经网络电路及其控制方法 |
CN114925818A (zh) * | 2022-05-26 | 2022-08-19 | 中国地质大学(武汉) | 一种模拟生物学习的忆阻层级记忆神经网络电路 |
CN115994221A (zh) * | 2023-02-06 | 2023-04-21 | 西南大学 | 一种基于忆阻器的文本情感检测系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI728556B (zh) * | 2019-11-18 | 2021-05-21 | 財團法人工業技術研究院 | 神經元電路及類神經網路晶片 |
-
2023
- 2023-07-03 CN CN202310798688.1A patent/CN116523011B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190114212A (ko) * | 2018-03-29 | 2019-10-10 | 국민대학교산학협력단 | 이진값 기반 신경회로망을 위한 단일 컬럼 멤리스터 크로스바 및 cmos 활성화 함수 회로 |
CN109472348A (zh) * | 2018-10-23 | 2019-03-15 | 华中科技大学 | 一种基于忆阻交叉阵列的lstm神经网络系统 |
KR20200113106A (ko) * | 2019-03-22 | 2020-10-06 | 국민대학교산학협력단 | 멤리스터 어레이 회로를 제어하기 위한 게이트 회로를 포함하는 뉴럴 네트워크 시스템 |
CN111680792A (zh) * | 2020-06-18 | 2020-09-18 | 中国人民解放军国防科技大学 | 激活函数电路、忆阻神经网络及忆阻神经网络的控制方法 |
CN113469334A (zh) * | 2021-06-29 | 2021-10-01 | 中国地质大学(武汉) | 一种忆阻递归神经网络电路 |
CN114723025A (zh) * | 2022-03-25 | 2022-07-08 | 武汉工程大学 | 一种忆阻反向传播神经网络电路及其控制方法 |
CN114925818A (zh) * | 2022-05-26 | 2022-08-19 | 中国地质大学(武汉) | 一种模拟生物学习的忆阻层级记忆神经网络电路 |
CN115994221A (zh) * | 2023-02-06 | 2023-04-21 | 西南大学 | 一种基于忆阻器的文本情感检测系统及方法 |
Non-Patent Citations (2)
Title |
---|
A Highly Robust Binary Neural Network Inference Accelerator Based on Binary Memristors;Yiyang Zhao 等;《Electronics》;第10卷(第21期);全文 * |
基于忆阻交叉阵列的深度神经网络系统及其应用;魏华强;《中国优秀硕士学位论文全文数据库 (信息科技辑)》(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116523011A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10692570B2 (en) | Neural network matrix multiplication in memory cells | |
US10740671B2 (en) | Convolutional neural networks using resistive processing unit array | |
US11409438B2 (en) | Peripheral circuit and system supporting RRAM-based neural network training | |
US20190122105A1 (en) | Training of artificial neural networks | |
EP3627401B1 (en) | Method and device for training neural network | |
Holler et al. | An electrically trainable artificial neural network (ETANN) with 10240'floating gate'synapses | |
AU2020274862B2 (en) | Training of artificial neural networks | |
CN109800876B (zh) | 一种基于NOR Flash模块的神经网络的数据运算方法 | |
US11544540B2 (en) | Systems and methods for neural network training and deployment for hardware accelerators | |
US5101361A (en) | Analog hardware for delta-backpropagation neural networks | |
CN111478703B (zh) | 基于忆阻交叉阵列的处理电路及输出电流的补偿方法 | |
US11386319B2 (en) | Training of artificial neural networks | |
CN110729011B (zh) | 用于类神经网路的存储器内运算装置 | |
US11922169B2 (en) | Refactoring mac operations | |
CN114118390B (zh) | 硬件加速器和混合电阻器忆阻器交叉开关阵列电路 | |
CN116523011B (zh) | 基于忆阻的二值神经网络层电路及二值神经网络训练方法 | |
CN113222131B (zh) | 基于1t1r的可实现带符号权重系数的突触阵列电路 | |
Zhang et al. | Memristive circuit design of quantized convolutional auto-encoder | |
CN115699028A (zh) | 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射 | |
KR102672586B1 (ko) | 인공신경망의 훈련 방법 및 장치 | |
Li | Research on the construction method of neural network model based on memristors | |
CN117610636A (zh) | 一种存内计算存储器人工神经网络的片上训练方法 | |
KR20210113722A (ko) | 트랜스포즈 매트릭스 곱셈이 가능한 매트릭스 곱셈기 구조 및 곱셈방법 | |
CN114186667A (zh) | 一种循环神经网络权重矩阵向忆阻阵列的映射方法 | |
CN115860074A (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 |