CN114781634A - 一种基于忆阻器的神经网络阵列的自动映射方法和装置 - Google Patents
一种基于忆阻器的神经网络阵列的自动映射方法和装置 Download PDFInfo
- Publication number
- CN114781634A CN114781634A CN202210701266.3A CN202210701266A CN114781634A CN 114781634 A CN114781634 A CN 114781634A CN 202210701266 A CN202210701266 A CN 202210701266A CN 114781634 A CN114781634 A CN 114781634A
- Authority
- CN
- China
- Prior art keywords
- array
- sub
- calculation
- mapping
- mapped
- 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
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
- 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
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
技术领域
本发明属于新型智能计算领域,涉及一种基于忆阻器的神经网络阵列的自动映射方法和装置。
背景技术
当前对于忆阻器的研究越来越广泛,涉及的领域也各式各样,如安全、数学、人工智能领域。在人工智能领域,忆阻器常常被用来作为神经网络计算的工具与媒介,其高读写速度、低功耗、高并行度的特性被充分的体现出。因为卷积神经网络擅长特征提取并且在图像识别方面有着高识别精确度,例如,2012年由Krizgevsky提出的一种神经网络—Alexnet的识别精度达到了84.6%,因此卷积神经网络在基于忆阻器的神经网路的图像识别应用中尤为广泛。由于之前的研究都是基于规模较小的卷积神经网络模型,例如:MNIST(手写数字的识别))整体计算延时较小或者映射时没有考虑到忆阻器物理阵列大小的局限性,所以主要还是以神经网络层的计算顺序进行整块计算阵列的映射,因此会忽略神经网络的计算阵列在忆阻器物理阵列上的映射的位置对忆阻器的计算延时的影响。但是卷积层的计算通常占到卷积神经网络计算的总量的90%以上,是设计智能芯片需要重点考虑的部分。将多通道的多卷积多层的神经网络自动映射在有限的忆阻器物理阵列中,对减少忆阻器内计算延时和提升计算效率有着重要的意义。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提出了一种基于忆阻器的神经网络阵列的自动映射方法和装置,本发明实现了神经网络在忆阻器上映射的自动化,减少了整体系统所占用的面积,提高忆阻器阵列的算力和物理利用率,其具体技术方案如下:
一种基于忆阻器的神经网络阵列的自动映射方法,包括以下步骤:
步骤一,根据神经网络模型,确定所需忆阻器物理阵列参数以及神经网络模型每层的原始计算阵列大小;
步骤二,根据忆阻器物理阵列的单次运算能计算的最大卷积数,对原始计算阵列进行分割,获得对应每层的子计算阵列;
步骤三,坐标化忆阻器物理阵列,对子计算阵列按照输入向量数,从多到少排列,映射至忆阻器物理阵列;
步骤四,根据步骤二至步骤三的计算阵列的分割记录,对神经网络模型每层的原始计算阵列的输入特征图进行对应的分割,计算出映射后的物理阵列的位置坐标作为所匹配的输入特征图的区域坐标。
进一步地,所述步骤一具体为:
根据神经网络模型的结构,计算出一共所需要忆阻器的物理阵列数量和物理阵列的尺寸;
分析神经网络模型每一层网络层的输入特征图即输入特征向量,以及每一层的网络结构、计算方法和参数,所述网络层包括卷积层、全连接层、池化层和补丁,将神经网络模型的网络层转换成原始计算阵列,所述原始计算阵列为适合忆阻器硬件模型计算的网络层,并得到原始计算阵列的输入向量数即行数,以及输出向量数即列数。
进一步地,所述步骤二具体为:
根据忆阻器物理阵列的单次运算能计算的最大卷积数,对由神经网络模型的卷积层转换的计算阵列进行分割,获得多卷积子计算阵列;
根据忆阻器物理阵列的能够支持的最大输入向量大小,对由神经网络模型的全连接层转换的计算阵列进行分割,获得多向量数子计算阵列。
进一步地,所述坐标化忆阻器物理阵列具体为:把忆阻器物理阵列的特征向量输入设为i和特征向量输出设为o,i表示行数,o表示列数,把位置坐标(i=0,o=0)作为初始化坐标,将坐标(i,o)作为可映射的物理阵列的位置坐标。
进一步地,所述对子计算阵列按照输入向量数,从多到少排列,映射至忆阻器物理阵列,具体为:
对多卷积子计算阵列,按照输入向量数,从多到少进行排列,作为映射的顺序,根据所标记的可映射的物理阵列的位置坐标进行映射,如果成功映射,则更新可映射的物理阵列的位置坐标;在映射多卷积子计算阵列时,若映射空间不足,将多卷积子计算阵列分割成多个单卷积子计算阵列,根据可映射的物理阵列的位置坐标重新映射;在映射单卷积子计算阵列时,若映射空间不足,将单卷积子计算阵列放在卷积层的待映射子计算阵列的映射队列的最后,依照映射队列顺序重新映射时,根据可映射的物理阵列的位置坐标的可用剩余可映射向量数进行按需分割再映射;
对多向量数子计算阵列,按照输入向量数,从多到少进行排列,根据可用映射坐标容器中所提供的坐标来进行映射;如果成功映射,则更新坐标容器中的坐标;在映射多向量数子计算阵列时,若映射空间不足,将多向量数子计算阵列分割成多个单向量数子计算阵列,根据可用剩余向量数进行按需映射。
进一步地,所述多卷积子计算阵列按照输入向量数即行数,从多到少进行排列;如果多卷积子计算阵列的输入向量数相等,再以输出向量数即列数,从多到少进行排列,将排列的结果作为卷积层的待映射子计算阵列的映射队列;按照卷积层的待映射子计算阵列的映射队列,依次对多卷积子计算阵列在所标记的可映射的物理阵列的位置坐标进行映射,如果成功映射,则更新可映射的物理阵列的位置坐标,按照i从大到小对可映射的物理阵列的位置坐标进行排列;如果不成功映射,即卷积层的待映射子计算阵列的映射队列中的某个待映射的子计算阵列,在所有的可映射的物理阵列的位置坐标进行映射,都遇到映射空间不足的情况,且不成功映射的待映射子计算阵列为多卷积核的待映射子计算阵列,则将多卷积核的待映射子计算阵列分割成多个单卷积核的待映射子计算阵列,将根据可映射的物理阵列的位置坐标分割后的多个单卷积核的子计算阵列,插入卷积层的待映射子计算阵列的映射队列中,依照队列顺序重新映射;若不成功的待映射子计算阵列为单卷积核的待映射子计算阵列,将该单卷积核的待映射子计算阵列放在卷积层的待映射子计算阵列的映射队列的最后,依照队列顺序重新映射时,根据可映射的物理阵列的位置坐标的可用剩余可映射向量数进行按需分割再映射。
进一步地,所述多向量数子计算阵列,按照输入向量数,划分成2组;将输入特征向量数大于忆阻器物理阵列能够支持的最大输入向量数的作为全连接层的待分割映射子计算阵列的映射组;将输入特征向量数小于等于忆阻器物理阵列能够支持的最大输入向量数的作为全连接层的待映射子计算阵列的映射组;对这两组的中的阵列,按照输入向量数从多到少进行排列,获得全连接层的待分割映射子计算阵列的映射队列和全连接层的待映射子计算阵列的映射队列;将可映射的物理阵列的位置坐标,按照行数从大到小对可映射的物理阵列的位置坐标进行排列;将待映射子计算阵列的映射队列依次在可映射的物理阵列的位置坐标进行映射,如果成功映射,则更新可映射的物理阵列的位置坐标;如果映射不成功,则将该待映射子计算阵列放入全连接层的待分割映射子计算阵列的映射队列中;将可映射的物理阵列的位置坐标,按照该位置坐标可映射最大物理面积进行排列,将全连接层的待分割映射子计算阵列的映射队列,依次在可映射的物理阵列的位置坐标,进行分割、转换和映射,根据该位置坐标的可输入向量数和可映射最大物理面积,对子计算阵列的输入向量处进行切割,把阵列行数等于该位置坐标的可输入向量数的子计算阵列,根据输入向量方向进行拼接,被分割的子计算阵列可以转换成两个新的子计算阵列,所述两个新的子计算阵列为子计算拼接阵列和切割后的尾巴子计算阵列,把子计算拼接阵列映射在可映射的物理阵列的位置坐标上,更新可映射的物理阵列的位置坐标,将切割后的尾巴子计算阵列放入全连接层的待分割映射子计算阵列的映射队列中。
一种基于忆阻器的神经网络阵列的自动映射装置,包括一个或多个处理器,用于实现所述的一种基于忆阻器的神经网络阵列的自动映射方法。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现所述的一种基于忆阻器的神经网络阵列的自动映射方法。
有益效果:
本发明实现了神经网络在忆阻器上映射的自动化,提高了芯片算力和物理阵列利用率,为芯片设计工程师提供了便利。
附图说明
图1是本发明方法的流程图;
图2是本发明实施例的网络层输入的2张大小为5×5的特征图示意图;
图3是本发明实施例的神经网络模型的某一层的神经网络层的结构示意图;
图4 是本发明实施例的神经网络模型即软件模型中的卷积层的神经网络转换成忆阻器模型中的计算阵列的示意图;
图5是本发明实施例的软件模型中的卷积层转换成忆阻器模型中卷积层的示意图;
图6是本发明实施例的忆阻器物理阵列的输入向量数为单个卷积核的向量数,尺寸为9X3的计算阵列分割后成子计算阵列的结果示意图;
图7是本发明实施例的忆阻器物理阵列的输入向量数大于单个卷积核的向量数并且小于单个通道里所有卷积核的向量数,尺寸为9X3的计算阵列分割后成子计算阵列的结果示意图;
图8是本发明实施例的忆阻器物理阵列的输入向量数等于单个通道里所有卷积核的向量数,尺寸为9X3的计算阵列分割后成子计算阵列的结果示意图;
图9是本发明实施例的忆阻器物理阵列的输入向量数大于等于单个通道里所有卷积核的向量数,尺寸为9X3的计算阵列分割后成子计算阵列的结果示意图;
图10是本发明实施例的全连接层的待映射分割的子计算阵列的结构示意图;
图11是本发明实施例的以一个支持28行28列输入图像的卷积神经网络模型为例,在一个32行32列的忆阻器物理阵列上的映射结果示意图;
图12是本发明实施例的一种基于忆阻器的神经网络阵列的自动映射装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
如图1所示,一种基于忆阻器的神经网络阵列的自动映射方法,以基于忆阻器的神经网络阵列的算力最大化, 忆阻器的物理阵列面积利用率最大化,在有限的忆阻器物理阵列中,忆阻器的计算延时最小化为标准,根据所适配物理阵列的大小来自动分割成不同形状的子计算阵列,并且给出每个计算子阵列的坐标和计算出映射后的子计算阵列所对应的每次计算时输入图像的坐标,具体包括以下步骤:
步骤一,根据神经网络模型,确定所需忆阻器物理阵列参数以及神经网络模型每层的原始计算阵列大小,具体的:
根据给定的神经网络模型的结构,计算出一共所需要忆阻器的物理阵列数量和物理阵列的尺寸;
根据给定的神经网络模型,分析神经网络模型每一层网络层的输入特征图即输入特征向量,以及每一层的网络结构、计算方法和参数,所述网络层包括卷积层、全连接层、池化层和补丁,将神经网络模型的网络层转换成原始计算阵列,所述原始计算阵列为适合忆阻器硬件模型计算的网络层,并得到原始计算阵列的输入向量数即行数,以及输出向量数即列数。
如图2所示,某个给定的神经网络模型的某一层的输入特征图信息:2张大小为5×5即5行5列的输入特征图(Feature Maps)。
如图3所示,某个给定的神经网络模型的某一层网络的结构, 该网络层为卷积层(Convolution Layer),该卷积层由3个卷积通道组成,每个卷积通道有2个卷积核(Convolution Kernels)和一个偏置(bias)组成,每个卷积核的大小为2×2。
如图4所示,将图3中展示的卷积神经网络层转换成原始计算阵列即所对应的忆阻器模型计算的网络层的过程。
如图5所示,神经网络模型的卷积层的每个卷积通道有2个卷积核(ConvolutionKernels)和一个偏置(bias)组成;每个卷积核的大小为2×2;共有3个卷积通道组成的神经网络模型的卷积层(2×(2×2)×3),转换成尺寸为9×3的忆阻器硬件模型中的卷积层,即一个输入向量数为9,输出向量数为3的计算阵列的结果。
步骤二,根据忆阻器物理阵列的单次运算能计算的最大卷积数,对原始计算阵列进行分割,获得对应每层的子计算阵列,具体的:
根据忆阻器物理阵列的单次运算能计算的最大卷积数,对由神经网络模型的卷积层转换的计算阵列进行分割,获得多卷积子计算阵列。
如图6至图9所示,在不同情况下,对由神经网络模型的卷积层转换而成的原始计算阵列进行分割结果。
其中,如图6所示的是物理阵列即忆阻器硬件模型的网络层的输入向量数为单个卷积核的向量数,基于该网络层,物理阵列的输入向量数为4,尺寸为9×3的计算阵列分割成子计算阵列的结果。
如图7所示,物理阵列的输入向量数大于单个卷积核的向量数并且小于单个通道里所有卷积核的向量数,基于该网络层,物理阵列的输入向量数为大于4并且小于8,尺寸为9×3的计算阵列分割后成子计算阵列的结果。
如图8所示,物理阵列的输入向量数等于单个通道里所有卷积核的向量数,基于该网络层,物理阵列的输入向量数为等于8,尺寸为9×3的计算阵列分割后成子计算阵列的结果。
如图9所示,物理阵列的输入向量数大于等于单个通道里所有卷积核的向量数,基于该网络层,物理阵列的输入向量数为大于等于9,计算阵列不分割,计算阵列即为子计算阵列。
根据忆阻器物理阵列的能够支持的最大输入向量大小,对由神经网络模型的全连接层转换的计算阵列进行分割,获得多向量子计算阵列。
步骤三,坐标化忆阻器物理阵列,对子计算阵列按照输入向量数,从多到少排列,映射至忆阻器物理阵列。
把特征向量输入设为i和特征向量输出设为o,i表示行数,o表示列数,则把位置坐标(i=0,o=0)作为初始化坐标,将坐标(i,o)作为可映射的物理阵列的位置坐标。
对多卷积子计算阵列,按照输入向量数,从多到少进行排列,作为映射的顺序;根据所标记的可映射的物理阵列的位置坐标进行映射,如果成功映射,则更新可映射的物理阵列的位置坐标;在映射多卷积子计算阵列时,若映射空间不足,将多卷积子计算阵列分割成多个单卷积子计算阵列,根据可映射的物理阵列的位置坐标重新映射;在映射单卷积子计算阵列时,若映射空间不足,将单卷积子计算阵列放在卷积层的待映射子计算阵列的映射队列的最后,依照映射队列顺序重新映射时,根据可映射的物理阵列的位置坐标的可用剩余可映射向量数进行按需分割再映射。
具体的,对所有的多卷积子计算阵列,按照输入向量数即行数,从多到少进行排列;如果多卷积子计算阵列的输入向量数相等,再以输出向量数即列数,从多到少进行排列,将排列的结果作为卷积层的待映射子计算阵列的映射队列。
按照卷积层的待映射子计算阵列的映射队列,依次对多卷积子计算阵列在所标记的可映射的物理阵列的位置坐标进行映射,如果成功映射,则更新可映射的物理阵列的位置坐标,按照i从大到小对可映射的物理阵列的位置坐标进行排列。
如果卷积层的待映射子计算阵列的映射队列中的某个待映射的子计算阵列,在所有的可映射的物理阵列的位置坐标进行映射,都遇到映射空间不足的情况,说明该待映射的子计算阵列映射不成功。
如果不成功的待映射子计算阵列为多卷积核的待映射子计算阵列,将多卷积核的待映射子计算阵列分割成多个单卷积核的待映射子计算阵列,将根据可映射的物理阵列的位置坐标分割后的多个单卷积核的子计算阵列,按照之前的排列顺序插入卷积层的待映射子计算阵列的映射队列中,依照队列顺序重新映射。
如果不成功的待映射子计算阵列为单卷积核的待映射子计算阵列,将该单卷积核的待映射子计算阵列放在卷积层的待映射子计算阵列的映射队列的最后,依照队列顺序重新映射时,根据可映射的物理阵列的位置坐标的可用剩余可映射向量数进行按需分割再映射。
对所有的全连接层的多向量数子计算阵列,按照输入向量数,从多到少进行排列,根据可用映射坐标容器中所提供的坐标来进行映射;如果成功映射,则更新坐标容器中的坐标;在映射多向量数子计算阵列时,若映射空间不足,将多向量数子计算阵列分割成多个单向量数子计算阵列,根据可用剩余向量数进行按需映射。
具体的,对神经网络模型的全连接层的计算阵列,按照输入向量数,划分成2组;将输入特征向量数(行数)大于忆阻器物理阵列能够支持的最大输入向量数的作为全连接层的待分割映射子计算阵列的映射组;将输入特征向量数(行数)小于等于忆阻器物理阵列能够支持的最大输入向量数的作为全连接层的待映射子计算阵列的映射组;对这两组的中的阵列,按照输入向量数(行数)从多到少进行排列,获得全连接层的待分割映射子计算阵列的映射队列和全连接层的待映射子计算阵列的映射队列。
将可映射的物理阵列的位置坐标,按照行数从大到小对可映射的物理阵列的位置坐标进行排列;将待映射子计算阵列的映射队列依次在可映射的物理阵列的位置坐标进行映射。
如果成功映射,则更新可映射的物理阵列的位置坐标。
如果映射不成功,则将该待映射子计算阵列放入全连接层的待分割映射子计算阵列的映射队列中。
将可映射的物理阵列的位置坐标,按照该位置坐标可映射最大物理面积进行排列,将全连接层的待分割映射子计算阵列的映射队列,依次在可映射的物理阵列的位置坐标,进行分割、转换和映射;根据该位置坐标的可输入向量数和可映射最大物理面积,对子计算阵列的输入向量处进行切割,把阵列行数等于该位置坐标的可输入向量数的子计算阵列,根据输入向量方向进行拼接,被分割的子计算阵列可以转换成两个新的子计算阵列,所述两个新的子计算阵列为子计算拼接阵列和切割后的“尾巴”子计算阵列,把子计算拼接阵列映射在可映射的物理阵列的位置坐标上,更新可映射的物理阵列的位置坐标,将切割后的“尾巴”子计算阵列放入全连接层的待分割映射子计算阵列的映射队列中。
如图10所示,一个输入向量数即行数为577,输出向量数即列数为10的全连接层的待映射分割的子计算阵列,需要映射在输入向量序号为120,输出向量序号为192,可映射最大物理面积为8407的可映射坐标位置,所以需要对子计算阵列进行按需切割和拼接,因为物理阵列的行数为256,因此为了将阵列映射在该坐标位置上,对子计算阵列以136行数(256-120)的长度进行切割,并且最多能映射 6份((256-192)//10)输入特征数为136的阵列。这个输入特征数为577,输出特征数为10的全连接层的待映射分割的子计算阵列可以切割成4个输入向量数为136,输出向量数为10的子计算阵列和1个输入向量数为33,输出向量数为10的“尾巴”子计算阵列;将4个输入向量数为136,输出向量数为10的子计算阵列进行拼接后,可以得到一个136行,40列的子计算拼接阵列。
步骤四,根据步骤二至步骤三的计算阵列的分割记录,对神经网络模型每层的原始计算阵列的输入特征图进行对应的分割,计算出映射后的物理阵列的位置坐标作为所匹配的输入特征图的区域坐标。
具体实施例:
如图11所示,以一个支持28行28列输入图像的卷积神经网络模型为例,在一个32行32列的忆阻器物理阵列上的映射结果。
第1层为卷积层,组数为1,每组的输入通道为1,每个通道的有6个3行3列的卷积,每个卷积有1个偏差,卷积的补丁为1,移动步长为2;
所以输出的特征向量为6张14行14列的特征图,这层神经网络可以转换成输入向量大小为10(行数)和输出向量大小为6(列数)的原始计算阵列即忆阻器硬件模型计算的网络层,因为输入向量大小为10(行数)小于忆阻器物理阵列的32行,所以不分割,这层卷积层可以转换为1个10行6列的子计算阵列,如图11中所示的阵列A)。
第2层为卷积层,组数为2,每组的输入通道为3,每个通道的有3个3行3列的卷积,每个卷积有1个偏差,卷积的补丁为1,移动步长为2;
所以输出的特征向量为6张7行7列的特征图,这层网络可以转换成2个(组)输入向量大小为28(行数)和输出向量大小为3(列数)的原始计算阵列,因为输入向量大小为28(行数)小于忆阻器物理阵列的32行,所以不分割,这层卷积层可以转换为2个28行3列的子计算阵列,如图11中所示的阵列B和阵列C。
第3层为卷积层,组数为1,每组的输入通道为6,每个通道的有4个3行3列的卷积,每个卷积有一个偏差,卷积的补丁为1,移动步长为2;
所以输出的特征向量为6张4行4列的特征图,这层网络可以转换成输入向量大小55(行数)和输出向量大小4(列数)的原始计算阵列,因为输入向量大小为55(行数)大于忆阻器物理阵列的32行并且单个卷积的特征向量数为9,因此在第3个卷积后进行分割,这层卷积层的原始计算阵列分割后可以转换为1个27行3列的子计算阵列,如图11中所示的阵列D,以及1个28行3列的子计算阵列,如图11中所示的阵列E。
第4层为卷积层,组数为2,每组的输入通道为2,每个通道的有3个3行3列的卷积,每个卷积有一个偏差,卷积的补丁为1,移动步长为2;
所以输出的特征向量为6张2行2列的特征图,这层网络可以转换成2个(组)输入向量大小19(行数)和输出向量大小3(列数)的原始计算阵列,因为输入向量大小为19(行数)小于忆阻器物理阵列的32行,所以不分割,这层卷积层可以转换为2个19行3列的子计算阵列,如图11中的所示的阵列F和阵列G。
第5层即最后一层为全连接层,全连接层可以转换成的输入向量数为24(行),输出向量数为 10(列)的原始计算阵列,因为输入向量大小为24(行数)小于忆阻器物理阵列的32行,所以不分割,该全连接层可以转换为1个24行10列的子计算阵列,如图11中所示的阵列H。
与前述一种基于忆阻器的神经网络阵列的自动映射方法的实施例相对应,本发明还提供了一种基于忆阻器的神经网络阵列的自动映射装置的实施例。
参见图12,本发明实施例提供的一种基于忆阻器的神经网络阵列的自动映射装置,包括一个或多个处理器,用于实现上述实施例中的一种基于忆阻器的神经网络阵列的自动映射方法。
本发明一种基于忆阻器的神经网络阵列的自动映射装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图12所示,为本发明的一种基于忆阻器的神经网络阵列的自动映射装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图12所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种基于忆阻器的神经网络阵列的自动映射方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是风力发电机的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于忆阻器的神经网络阵列的自动映射方法,其特征在于,包括以下步骤:
步骤一,根据神经网络模型,确定所需忆阻器物理阵列参数以及神经网络模型每层的原始计算阵列大小;
步骤二,根据忆阻器物理阵列的单次运算能计算的最大卷积数,对原始计算阵列进行分割,获得对应每层的子计算阵列;
步骤三,坐标化忆阻器物理阵列,对子计算阵列按照输入向量数,从多到少排列,映射至忆阻器物理阵列;
步骤四,根据步骤二至步骤三的计算阵列的分割记录,对神经网络模型每层的原始计算阵列的输入特征图进行对应的分割,计算出映射后的物理阵列的位置坐标作为所匹配的输入特征图的区域坐标。
2.如权利要求1所述的一种基于忆阻器的神经网络阵列的自动映射方法,其特征在于,所述步骤一具体为:
根据神经网络模型的结构,计算出一共所需要忆阻器的物理阵列数量和物理阵列的尺寸;
分析神经网络模型每一层网络层的输入特征图即输入特征向量,以及每一层的网络结构、计算方法和参数,所述网络层包括卷积层、全连接层、池化层和补丁,将神经网络模型的网络层转换成原始计算阵列,所述原始计算阵列为适合忆阻器硬件模型计算的网络层,并得到原始计算阵列的输入向量数即行数,以及输出向量数即列数。
3.如权利要求2所述的一种基于忆阻器的神经网络阵列的自动映射方法,其特征在于,所述步骤二具体为:
根据忆阻器物理阵列的单次运算能计算的最大卷积数,对由神经网络模型的卷积层转换的计算阵列进行分割,获得多卷积子计算阵列;
根据忆阻器物理阵列的能够支持的最大输入向量大小,对由神经网络模型的全连接层转换的计算阵列进行分割,获得多向量数子计算阵列。
4.如权利要求3所述的一种基于忆阻器的神经网络阵列的自动映射方法,其特征在于,所述坐标化忆阻器物理阵列具体为:把忆阻器物理阵列的特征向量输入设为i和特征向量输出设为o,i表示行数,o表示列数,把位置坐标(i=0,o=0)作为初始化坐标,将坐标(i,o)作为可映射的物理阵列的位置坐标。
5.如权利要求4所述的一种基于忆阻器的神经网络阵列的自动映射方法,其特征在于,所述对子计算阵列按照输入向量数,从多到少排列,映射至忆阻器物理阵列,具体为:
对多卷积子计算阵列,按照输入向量数,从多到少进行排列,作为映射的顺序,根据所标记的可映射的物理阵列的位置坐标进行映射,如果成功映射,则更新可映射的物理阵列的位置坐标;在映射多卷积子计算阵列时,若映射空间不足,将多卷积子计算阵列分割成多个单卷积子计算阵列,根据可映射的物理阵列的位置坐标重新映射;在映射单卷积子计算阵列时,若映射空间不足,将单卷积子计算阵列放在卷积层的待映射子计算阵列的映射队列的最后,依照映射队列顺序重新映射时,根据可映射的物理阵列的位置坐标的可用剩余可映射向量数进行按需分割再映射;
对多向量数子计算阵列,按照输入向量数,从多到少进行排列,根据可用映射坐标容器中所提供的坐标来进行映射;如果成功映射,则更新坐标容器中的坐标;在映射多向量数子计算阵列时,若映射空间不足,将多向量数子计算阵列分割成多个单向量数子计算阵列,根据可用剩余向量数进行按需映射。
6.如权利要求5所述的一种基于忆阻器的神经网络阵列的自动映射方法,其特征在于,所述多卷积子计算阵列按照输入向量数即行数,从多到少进行排列;如果多卷积子计算阵列的输入向量数相等,再以输出向量数即列数,从多到少进行排列,将排列的结果作为卷积层的待映射子计算阵列的映射队列;按照卷积层的待映射子计算阵列的映射队列,依次对多卷积子计算阵列在所标记的可映射的物理阵列的位置坐标进行映射,如果成功映射,则更新可映射的物理阵列的位置坐标,按照i从大到小对可映射的物理阵列的位置坐标进行排列;如果不成功映射,即卷积层的待映射子计算阵列的映射队列中的某个待映射的子计算阵列,在所有的可映射的物理阵列的位置坐标进行映射,都遇到映射空间不足的情况,且不成功映射的待映射子计算阵列为多卷积核的待映射子计算阵列,则将多卷积核的待映射子计算阵列分割成多个单卷积核的待映射子计算阵列,将根据可映射的物理阵列的位置坐标分割后的多个单卷积核的子计算阵列,插入卷积层的待映射子计算阵列的映射队列中,依照队列顺序重新映射;若不成功的待映射子计算阵列为单卷积核的待映射子计算阵列,将该单卷积核的待映射子计算阵列放在卷积层的待映射子计算阵列的映射队列的最后,依照队列顺序重新映射时,根据可映射的物理阵列的位置坐标的可用剩余可映射向量数进行按需分割再映射。
7.如权利要求5所述的一种基于忆阻器的神经网络阵列的自动映射方法,其特征在于,所述多向量数子计算阵列,按照输入向量数,划分成2组;将输入特征向量数大于忆阻器物理阵列能够支持的最大输入向量数的作为全连接层的待分割映射子计算阵列的映射组;将输入特征向量数小于等于忆阻器物理阵列能够支持的最大输入向量数的作为全连接层的待映射子计算阵列的映射组;对这两组的中的阵列,按照输入向量数从多到少进行排列,获得全连接层的待分割映射子计算阵列的映射队列和全连接层的待映射子计算阵列的映射队列;将可映射的物理阵列的位置坐标,按照行数从大到小对可映射的物理阵列的位置坐标进行排列;将待映射子计算阵列的映射队列依次在可映射的物理阵列的位置坐标进行映射,如果成功映射,则更新可映射的物理阵列的位置坐标;如果映射不成功,则将该待映射子计算阵列放入全连接层的待分割映射子计算阵列的映射队列中;将可映射的物理阵列的位置坐标,按照该位置坐标可映射最大物理面积进行排列,将全连接层的待分割映射子计算阵列的映射队列,依次在可映射的物理阵列的位置坐标,进行分割、转换和映射,根据该位置坐标的可输入向量数和可映射最大物理面积,对子计算阵列的输入向量处进行切割,把阵列行数等于该位置坐标的可输入向量数的子计算阵列,根据输入向量方向进行拼接,被分割的子计算阵列可以转换成两个新的子计算阵列,所述两个新的子计算阵列为子计算拼接阵列和切割后的尾巴子计算阵列,把子计算拼接阵列映射在可映射的物理阵列的位置坐标上,更新可映射的物理阵列的位置坐标,将切割后的尾巴子计算阵列放入全连接层的待分割映射子计算阵列的映射队列中。
8.一种基于忆阻器的神经网络阵列的自动映射装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-7中任一项所述的一种基于忆阻器的神经网络阵列的自动映射方法。
9.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-7中任一项所述的一种基于忆阻器的神经网络阵列的自动映射方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701266.3A CN114781634B (zh) | 2022-06-21 | 2022-06-21 | 一种基于忆阻器的神经网络阵列的自动映射方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701266.3A CN114781634B (zh) | 2022-06-21 | 2022-06-21 | 一种基于忆阻器的神经网络阵列的自动映射方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114781634A true CN114781634A (zh) | 2022-07-22 |
CN114781634B CN114781634B (zh) | 2022-11-04 |
Family
ID=82420932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210701266.3A Active CN114781634B (zh) | 2022-06-21 | 2022-06-21 | 一种基于忆阻器的神经网络阵列的自动映射方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114781634B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063826A (zh) * | 2018-03-19 | 2018-12-21 | 重庆大学 | 一种基于忆阻器的卷积神经网络实现方法 |
CN110110849A (zh) * | 2019-04-29 | 2019-08-09 | 西安电子科技大学 | 基于图分割的行固定数据流映射方法 |
US20200356843A1 (en) * | 2019-05-10 | 2020-11-12 | Hewlett Packard Enterprise Development Lp | Systems and methods for neural network training and deployment for hardware accelerators |
US20210201136A1 (en) * | 2018-04-30 | 2021-07-01 | Hewlett Packard Enterprise Development Lp | Acceleration of Model/Weight Programming in Memristor Crossbar Arrays |
CN113570048A (zh) * | 2021-06-17 | 2021-10-29 | 南方科技大学 | 基于电路仿真的忆阻器阵列神经网络的构建及优化方法 |
CN113870921A (zh) * | 2021-12-02 | 2021-12-31 | 之江实验室 | 一种忆阻器阵列上符号数映射方法 |
CN114418080A (zh) * | 2022-01-28 | 2022-04-29 | Oppo广东移动通信有限公司 | 存算一体运算方法、忆阻器神经网络芯片及存储介质 |
CN114418072A (zh) * | 2022-01-28 | 2022-04-29 | 上海交通大学 | 一种面向多核忆阻器存算一体平台的卷积算子映射方法 |
-
2022
- 2022-06-21 CN CN202210701266.3A patent/CN114781634B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063826A (zh) * | 2018-03-19 | 2018-12-21 | 重庆大学 | 一种基于忆阻器的卷积神经网络实现方法 |
US20210201136A1 (en) * | 2018-04-30 | 2021-07-01 | Hewlett Packard Enterprise Development Lp | Acceleration of Model/Weight Programming in Memristor Crossbar Arrays |
CN110110849A (zh) * | 2019-04-29 | 2019-08-09 | 西安电子科技大学 | 基于图分割的行固定数据流映射方法 |
US20200356843A1 (en) * | 2019-05-10 | 2020-11-12 | Hewlett Packard Enterprise Development Lp | Systems and methods for neural network training and deployment for hardware accelerators |
CN113570048A (zh) * | 2021-06-17 | 2021-10-29 | 南方科技大学 | 基于电路仿真的忆阻器阵列神经网络的构建及优化方法 |
CN113870921A (zh) * | 2021-12-02 | 2021-12-31 | 之江实验室 | 一种忆阻器阵列上符号数映射方法 |
CN114418080A (zh) * | 2022-01-28 | 2022-04-29 | Oppo广东移动通信有限公司 | 存算一体运算方法、忆阻器神经网络芯片及存储介质 |
CN114418072A (zh) * | 2022-01-28 | 2022-04-29 | 上海交通大学 | 一种面向多核忆阻器存算一体平台的卷积算子映射方法 |
Non-Patent Citations (2)
Title |
---|
M.S.TARKOV等: "Mapping weight matrix of a neural network"s layer onto memristor crossbar", 《OPTICAL MEMORY AND NEURAL NETWORKS》 * |
吴雨婷: "忆阻器阵列上的容错驱动神经突触映射方法", 《信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114781634B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593658B2 (en) | Processing method and device | |
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
KR102142889B1 (ko) | 스파스 연결용 인공 신경망 계산 장치와 방법 | |
WO2022037257A1 (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN110443357B (zh) | 卷积神经网络计算优化方法、装置、计算机设备及介质 | |
US20200265300A1 (en) | Processing method and device, operation method and device | |
US20190286980A1 (en) | Cluster compression for compressing weights in neural networks | |
CN112799599B (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
JP7085600B2 (ja) | 画像間の類似度を利用した類似領域強調方法およびシステム | |
TWI766568B (zh) | 用於執行卷積神經網路運算的處理裝置與其操作方法 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN114781634B (zh) | 一种基于忆阻器的神经网络阵列的自动映射方法和装置 | |
CN110555793B (zh) | 高效的深度卷积实现方法及包括该方法的视觉处理方法 | |
CN111126501A (zh) | 一种图像识别方法、终端设备及存储介质 | |
CN112926658B (zh) | 基于二维数据嵌入与邻接拓扑图的图像聚类方法及设备 | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
CN112905954A (zh) | 一种利用fpga bram的cnn模型卷积运算加速计算方法 | |
CN113361511A (zh) | 修正模型的建立方法、装置、设备及计算机可读存储介质 | |
US20230334289A1 (en) | Deep neural network accelerator with memory having two-level topology | |
US20240013040A1 (en) | Output drain path facilitating flexible schedule-based deep neural network accelerator | |
CN110598159A (zh) | 基于有效计算量的局部型栅格空间分析并行计算方法 | |
US20240144633A1 (en) | Image recognition method, electronic device and storage medium | |
US20230229917A1 (en) | Hybrid multipy-accumulation operation with compressed weights | |
US20230368030A1 (en) | Block-wise pruning of weights in deep neural network | |
TWI798591B (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 |