CN110610227A - 人工神经网络调整方法及神经网络计算平台 - Google Patents
人工神经网络调整方法及神经网络计算平台 Download PDFInfo
- Publication number
- CN110610227A CN110610227A CN201810618272.6A CN201810618272A CN110610227A CN 110610227 A CN110610227 A CN 110610227A CN 201810618272 A CN201810618272 A CN 201810618272A CN 110610227 A CN110610227 A CN 110610227A
- Authority
- CN
- China
- Prior art keywords
- rule
- zero
- ann
- convolution
- channels
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 160
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012549 training Methods 0.000 claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims description 68
- 238000010586 diagram Methods 0.000 claims description 26
- 238000009472 formulation Methods 0.000 claims description 5
- 239000000203 mixture Substances 0.000 claims description 5
- 238000013527 convolutional neural network Methods 0.000 abstract description 23
- 230000001788 irregular Effects 0.000 abstract description 6
- 238000013461 design Methods 0.000 abstract description 5
- 230000001133 acceleration Effects 0.000 abstract description 4
- 230000000694 effects Effects 0.000 abstract description 3
- 239000010410 layer Substances 0.000 description 112
- 230000006870 function Effects 0.000 description 13
- 230000004913 activation Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000011176 pooling Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
-
- 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/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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
提出了一种人工神经网络(ANN)调整方法和相应的计算平台。所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道,所述方法包括:制定稀疏化规则,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布;向所述ANN施加所述稀疏化规则;以及基于多个批次训练的迭代调整获取符合所述稀疏化规则的经训练的ANN。本发明充分利用卷积神经网络的权重稀疏性,通过软硬件一体化设计方法,将不规则稀疏的权重训练为规则稀疏权重,并进一步配合专用稀疏加速硬件,达到数倍等效性能提高的效果,并在同时通过有效降低功耗。
Description
技术领域
本发明涉及深度学习,尤其涉及对人工神经网络的调整方法和装置,以及相关的神经网络计算平台。
背景技术
近年来,基于人工神经网络(ANN,Artificial Neural Network),尤其是卷积神经网络(CNN,Convolutional Neural Network)的方法在很多应用中都取得了极大的成功。在计算机视觉领域,特别是针对图像分类问题,CNN的引入使得图像分类的精度大幅提高。
虽然基于人工神经网络的方法具有先进的性能,但与传统方法相比需要更多的计算和内存资源。尤其随着神经网络的发展,大型神经网络具有越来越多的层级和数据量,这为神经网络的部署带来了巨大的挑战。为了在嵌入式的小型系统上加载由深度神经网络方法实现的例如高精度实时目标识别功能,需要对神经网络进行优化来降低资源使用量。
鉴于现有神经网络参数具备大量冗余的事实,业已通过诸如神经网络定点化等的手段大幅降低了使用神经网络执行推理的复杂度,但仍然希望对神经网络的计算速度进行进一步地优化。
由此,需要一种能够充分利用神经网络的特性来优化神经网络的推理计算速度的方案。
发明内容
本发明充分利用卷积神经网络的权重稀疏性,通过软硬件一体化设计方法,将不规则稀疏的权重训练为规则稀疏权重,并进一步配合专用稀疏加速硬件,达到数倍等效性能提高的效果,并在同时通过有效降低功耗。
根据本发明的一个方面,提出了一种人工神经网络(ANN)调整方法,所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道,所述方法包括:制定稀疏化规则,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布;向所述ANN施加所述稀疏化规则;以及基于多个批次训练的迭代调整获取符合所述稀疏化规则的经训练的ANN。由此,上述规则零值分布能够在后续推理阶段用于省略部署上述经训练的ANN的计算平台的并行计算次数,由此提升系统效率。
所述稀疏化规则可以包括:将在所述经训练的ANN执行推理阶段并行执行卷积计算的N个通道的卷积核的同一位置置零,其中,N是大于等于2的整数,优选地,可以包括将同一CONV层的N个相邻通道的卷积核的同一位置置零。由此便于利用通道方式并行度进行计算时的计算步骤省略。
N的取值至少部分由用于部署所述经训练的ANN以执行推理的神经网络计算平台的卷积计算模块的并行度决定。优选地,N的取值至少部分由所述卷积计算模块中每个计算单元中包含的乘法器个数决定。由此,能够基于硬件实现进行网络训练,并且反过来提升硬件执行效率。
稀疏化规则还可以进一步包括:在所述N个相邻通道的在前或在后N个相邻通道的所述同一位置不置零。由此避免网络的不易收敛。
N的取值可以至少部分基于每个CONV层的通道数而逐层变化。优选地,稀疏化规则还可以包括:基于在先初步训练的权重或经验值确定所述权重的稀疏程度;以及基于所述稀疏程度确定卷积核中置零的位置数量和/或位置分布。由此,可以制定出更为符合具体应用的稀疏化规则。
上述稀疏化规则可以直接用于ANN的初始训练,也可用于ANN的微调。因此优选地,本发明的调整方法还可以包括在向所述ANN施加所述稀疏化规则之前,对所述ANN的权重进行初始训练。
另外,本发明的调整方法还可以包括获取用于指示所述经训练的ANN中权值的具体零值分布的零值分布表,例如零标志表,以方便后续跳过对相应零值的计算。
根据本发明的另一个方面,提出了一种神经网络计算平台,包括:规则稀疏权重缓存,用于缓存使用稀释化规则训练得到的人工神经网络(ANN)的规则稀疏权重,其中,所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布;输入特征图缓存,用于缓存输入特征图;卷积计算模块,用于对所述规则稀疏权重和所述输入特征图进行卷积计算以得到中间结果或输出特征图,其中,基于所述至少一个所述CONV层的多个通道的权重零值分布,所述卷积计算单元省略至少一个时钟周期的并行计算;以及中间结果或输出特征图缓存,用于缓存所述中间结果或输出特征图。
所述规则稀疏权重可以包括:待由所述卷积计算模块并行执行卷积计算的N个通道的同一位置为零的卷积核,其中,N是大于等于2的整数;优选地,可以包括:在同一CONV层的N个相邻通道的同一位置为零的卷积核。
N的取值可以至少部分由所述卷积计算模块的并行度决定,例如由所述卷积计算模块中每个计算单元中包含的乘法器个数决定。
优选地,规则稀疏权重可以在所述N个相邻通道的在前或在后N个相邻通道的所述同一位置上不为零。优选地,N的取值至少部分基于每个CONV层的通道数而逐层变化。
另外,规则稀疏权重中连续为零的具体位置和/或数量还可基于在先初步训练的权重或经验值的稀疏程度确定。
本发明的计算平台还可以包括:零值分布缓存,用于缓存用于指示所述经训练的ANN中权值的规律零值分布的零值分布表;以及地址控制器,用于将所述规则稀疏权重和所述输入特征图分别从所述规则稀疏权重缓存和所述输入特征图缓存送入所述卷积计算模块进行卷积计算,并且跳过所述零值分布表中指示的与所述规律零值分布相关的卷积计算。
所述零值分布表可以是存储用于指示在同一CONV层的N个相邻通道的卷积核中在同一位置连续为零的零值位置的零标志表,并且,所述地址控制器可以基于所述零值位置省略所述卷积计算模块中至少一个计算单元的至少一个时钟周期的并行计算。
优选地,神经网络计算平台可以至少部分由FPGA、GPU和/或ASIC实现。
根据本发明的又一个方面,提出了一种人工神经网络(ANN)调整装置,所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道,所述调整装置包括:规则制定装置,用于制定稀疏化规则,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布;规则施加装置,用于向所述ANN施加所述稀疏化规则;以及迭代训练装置,用于基于多个批次训练的迭代调整获取符合所述稀疏化规则的经训练的ANN。
所述规则制定装置制定的所述稀疏化规则可以包括:将在所述经训练的ANN执行推理阶段将行执行卷积计算的同一CONV层的N个相邻通道的卷积核的同一位置置零,其中,N是大于等于2的整数。
所述N的取值可以至少部分由用于部署所述经训练的ANN以执行推理的神经网络计算平台的卷积计算模块中每个计算单元中包含的乘法器个数决定。
上述调整装置还可以包括零值分布获取装置,用于获取用于指示所述经训练的ANN中权值的具体零值分布的零值分布表。
根据本发明的又一个方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的神经网络调整方法。
根据本发明的另一个方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的神经网络调整方法。
由此,本发明的ANN调整方案能够基于后续部署ANN的具体硬件结构来灵活制定能够充分利用权重的稀疏度减少硬件平台并行计算次数的稀疏化规则。上述稀疏化规则使得卷积核中的零值沿着通道方向规则分布,从而有助于在执行高通道并行度推理时整体计算效率的提升。在相应的计算平台中,可以利用ANN调整方案得到的零标志表方便地实现对全零权值段计算的跳过,由此能够以极小的开销实现神经网络推理效率的提升。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了典型的CNN的示意图。
图2示出了根据本发明一个实施例的ANN调整方法的流程图。
图3示出了卷积操作的一个例子。
图4示出了包含多个通道的CONV层的一个例子。
图5示出了在通道方向上进行并行计算的一个例子。
图6示出了应用本发明原理的通道方向上零值规则排列的一个例子。
图7示出了基于图6的经重新标注例。
图8示出了根据本发明一个实施的软硬件一体化设计方法的示意图。
图9示出了根据本发明一个实施例的神经网络计算平台。
图10示出了组成卷积计算模块的单个计算单元的结构图。
图11A和11B分别示出了利用常规不规则稀疏权重和本发明的规则稀疏权重进行卷积计算所需时间的例子。
图12示出了根据本发明一个实施例的ANN调整装置的示意图。
图13示出了根据本发明一个实施例可用于实现上述调整方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本申请的方案适用于各种人工神经网络(ANN),包括深度神经网络(DNN)、循环神经网络(RNN)与卷积神经网络(CNN)。以下以CNN为例进行一定程度的背景说明。
CNN基本概念
如图1所示,典型的CNN由一系列有序运行的层(Layer)组成。
CNN神经网络由输入层、输出层和多个隐藏层串联组成。CNN的第一层读取输入值,例如输入图像,并输出一系列的激活值(也可称为特征图)。下面的层读取由上一层产生的激活值,并输出新的激活值。最后一个分类器(classifier)输出该输入图像可能属于的每一类别的概率。
这些层大致可分为带权重的层(如卷积层、全连接层、批量归一化层等)和不带权重的层(如池化层、ReLU层、Softmax层等)。CONV层(Convolutional layers,卷积层)以一系列特征图作为输入,并以卷积内核卷积获得输出激活值。池化层(Pooling layer)通常与CONV层相连,用于输出每个特征图中的每个分区(sub area)的最大值或平均值,由此通过亚采样降低计算量,同时保持某种程度的位移、尺度和形变不变性。一个CNN中可以包括卷积层和池化层之间的多个交替,由此逐步降低空间分辨率并增加特征映射的数量。CONV层之间也可以不经过池化层直接相连。随后可以连接至至少一个全连接层(FC),通过应用于输入特征向量上的线性变换,得到包括多个特征值的一维向量输出。
总体来说,带权重的层的操作可以表示为:
Y=WX+b,
其中W为权重值,b为偏置,X为输入激活值,Y为输出激活值。
不带权重的层的操作可以表示为:
Y=f(X),
其中f(X)为非线性函数。
在此,“权重”(weights)指代隐藏层中的参数。在CNN网络中,可以将权重认为是针对每一卷积层尺寸可以有所变化,针对每一卷积层的每个通道取值也可以有所变化的卷积核。从广义上理解,权重还可以包括偏置,并且是通过训练过程习得的数值,并且在推理时保持不变;激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。与权重值不同,激活值的分布会根据输入数据样本而动态变化。
如图所示,在特征值被送入FC层之前,从输入特征图(输入图像)开始的各个层都具有多个通道(channel),用以表征输入图像的不同特征。在输入为彩色图像时,输入特征图通常具有RGB三个通道,同一层内不同通道的特征值与尺寸相同但取值可以不同的卷积核(权重)分别进行卷积计算以生成该层的输出特征值,随后该特征值被送入通道数与卷积核大小可以不同的下一CONV层(Layer 1)中进行进一步的特征提取。重复上述过程直至Layer 7的输出被送入FC层。如图所示,在输入特征图中的W、H和C分别指代宽、高和通道三个维度。上述箭头可以指代具体计算顺序或计算并行度(尤其是在高并行度计算平台上进行计算的情况下)。
第一个FC层可以是用于将各个通道的特征提取为一个一维特征向量的全连接层。第二个FC层则可以是用于进行分类的分类器。
在部署使用CNN进行推理(例如,图像分类)之前,首先需要对CNN进行训练。通过训练数据的大量导入,确定神经网络模型各层的参数,例如权重和偏置。
CNN的训练
训练模型表示通过有标签样本来学习(确定)所有权重和偏置的理想值。这些确定了的权重和偏置则能够在神经网络部署阶段对输入的特征值进行高准确率的推理,例如,对输入的图片进行正确的分类。
在监督式学习中,机器学习算法通过检查多个样本并尝试找出可最大限度地减少损失的模型来学习参数,这一过程称为经验风险最小化。
损失是对不良预测的惩罚。即,损失可以是一个表示对于单个样本而言模型预测的准确程度的数值。如果模型的预测完全准确,则损失为零,否则损失会较大。训练模型的目标是从所有样本中找到一组平均损失“较小”的权重和偏差。
在神经网络的训练过程中,为了量化目前的权重和偏置是否能够让网络输入拟合所有的网络输入,需要定义一个损失函数。由此,训练网络的目的可以转变为最小化权重和偏置的损失函数的过程。通常,使用梯度下降算法(多层神经网络训练中,使用反向传播算法)来实现上述最小化的过程。图1所示的最后的Softmax层即可以看作是用于进行反向传播训练的损失函数。
在反向传播算法中,涉及前向传播和反向传播的重复迭代过程。前向传播过程是层间神经元通过权值矩阵的连接使得刺激(特征值)经每一层的激励函数不断由前一层向下一层传递的过程。而在反向传播中,本层的误差需要由下一层的误差反向推导。由此通过上述正向和反向传播的迭代过程不断调整权重和偏置,使得损失函数逐渐接近最小值,从而完成对神经网络的训练。
本发明的ANN调整方案
近些年来,人工神经网络(ANN),尤其是卷积神经网络(CNN)在目标检测、图像分类等领域都取得了重大进展。但随着大型神经网络具有越来越多的层级和数据量,使得神经网络的部署,尤其是在嵌入式的小型系统上的部署变得愈发具有挑战性。
有鉴于此,本发明充分利用卷积神经网络的权重稀疏性,通过软硬件一体化设计方法,将不规则稀疏的权重训练为规则稀疏权重,并进一步配合专用稀疏加速硬件,达到数倍等效性能提高的效果,并在同时通过有效降低功耗。
为此,本发明首先提出了一种人工神经网络(ANN)调整方法。ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道。图2示出了根据本发明一个实施例的ANN调整方法的示意性流程图。
在步骤S210,制定稀疏化规则,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布。
随后,在步骤S220,向所述ANN施加所述稀疏化规则。在步骤S230,基于多个批次训练的迭代调整获取符合所述稀疏化规则的经训练的ANN。
由此获取的经训练的ANN随后可以部署在相应的神经网络硬件平台上,该硬件平台能够充分利用上述权重的零值分布规则性,来实现省略与上述零值相关的乘加操作的有益效果。
为了方便对本发明的权重稀疏规则化方案的理解,图3示出了卷积操作的一个例子。如图3所示,使用一个3x3的卷积核,以步长1对一个5x5的特征图进行卷积计算。图的左侧示出了第一次卷积计算,中间示出了第二次卷积计算,依次类推。根据卷积计算的定义可知,每次具体的卷积计算可以分解成多次乘加计算。在经过9次卷积计算后,得到图3右侧的经卷积的特征图。这9次的卷积计算之间不存在依赖关系,因此可以在利用高并行度计算平台进行计算时,在单次操作中完成执行(并行度M通常可以达到数千量级)。
图3可以看作是CONV层多个通道中的一个通道,图4则示出了包含多个通道的CONV层的一个例子。如图4所示,该CONV层(或其一部分)包含8个通道,其中使用尺寸相同但取值不一定相同的卷积核分别与每个通道的特征图进行卷积运算。在此假设每个通道都对应于一个5x5的特征图,并使用一个3x3的卷积核以步长1进行卷积计算,则需要8x9(72)次卷积计算得到8个3x3的输出特征图。这72次卷积计算之间同样不存在依赖关系,因此也可以在利用高并行度计算平台进行计算时,在单次操作(至少是少于72次的操作)中完成执行。
由于这8个通道之间,以及每个通道之间的各次卷积计算不存在依赖关系,因此可以根据具体实现选择不同方向的并行度。在如图4中箭头C所示选择通道方向的并行度进行计算。
图5示出了在通道方向上进行并行计算的一个例子。图中右侧的8组数据表示沿着通道方向从输入特征图中取出的用于进行乘加计算的部分数据,例如可以是如图4虚线所示取出的数据。图中左侧的8组数据表示分别用于这8个通道的特征值卷积运算的卷积核。为了方便说明,图5示出了2x2尺寸的卷积核,但可以理解的是,卷积核及其对应的特征值数据也可以具有任意需要的尺寸,例如3x3,5x5等等。
应该理解的是,根据卷积运算的定义,单次卷积运算所需的特征图数据大小与该通道的卷积核大小相同,如图3所示。换句话说,图5右侧从特征图中取出的数据尺寸应当与卷积核大小相同。另外,在每一个卷积层中,针对不同通道的卷积核通常具有相同的尺寸大小。
在通道方向(C方向)上的并行运算中,能够在少于8次的运算中完成对如图5所示8组数据的卷积运算,例如,在4次,2次甚至单次运算中完成。随后,可以按照具体的实现方案,沿着H和W方向取出新的特征图数据,或是继续沿着C方向取出新的卷积核和特征图数据,并进行后续是乘加运算。
在图5左侧的图示中,使用网格纹表示该位置的权重取值不为零,并且使用空白格表示该位置的权重取值为零。在图5右侧的图示中,灰格表示本发明对特征图中的稀疏度暂不利用。
如图5左侧所示,在常规神经网络训练得到的权重中,存在大量的零(即,高稀疏度,在某些网络中能够达到40%甚至更高),但这些零值呈不规则分布。
为了对神经网络的权重(卷积核)中存在大量零值的这一事实加以充分利用,本发明通过在神经网络训练中施加规则(例如,经由损失函数)以获取至少一个CONV层的多个通道具有关联的规则零值分布的权重(卷积核)。上述权重中的零值规则性分布能够与部署阶段的专用加速硬件相配合,节省并行运算的次数。优选地,本发明可以对神经网络中的全部CONV层的所有或大部分通道都施加上述规则,以充分利用卷积核的稀疏度来提升后续推理阶段的计算效率。
在一个实施例中,上述稀疏化规则可以包括将在所述经训练的ANN执行推理阶段并行执行卷积计算的N个通道的卷积核的同一位置置零,其中,N是大于等于2的整数。在一个优选实施例中,上述在经训练的ANN执行推理阶段并行执行卷积计算的N个通道可以是同一CONV层的N个相邻通道的卷积核。在其他实施例中,N可以取其他值,并且N个通道可以不相邻,只要其在推理计算阶段被例如同一个乘加单元(MAC)在单次并行计算中执行即可。
图6示出了应用本发明原理的通道方向上零值规则排列的一个例子。类似于图5,图6同样在左侧示出了8组卷积核,在右侧示出了相应的8组特征值数据。但与图5的不同之处在于,本发明引入上述稀疏化规则来调整权重,从而得到了规则稀疏权重。如图6所示,施加的规则可以是将同一CONV层的N个相邻通道的卷积核的同一位置置零,在此,N等于4(即,通道C方向计算并行度P_CH=4)。
上述稀疏化规则例如可以在神经网络的训练或微调过程中应用于损失函数,以使得训练或微调得到的权重具有针对CONV层多个通道的规则零值分布。在一个实施例中,在向ANN施加稀疏化规则之前,可以对ANN的权重进行初始训练,例如,训练得到图5左侧所示的零值呈不规则分布的初始权重。随后,可向神经网络的损失函数施加诸如使得通道C方向上4个相邻通道的卷积核在同一位置上为零的约束,并且经过多个批次的迭代微调得到如图6左侧所示的零值呈规则分布的规则稀疏权重。在另一个实施例中,可以直接向损失函数施加上述稀疏化规则,而无需初始的训练步骤。可以根据例如神经网络的收敛难易程度等灵活选择在施加上述规则之前是否需要初始训练步骤。
为了方便后续描述,可以以P_CH(=4)长度为基本单位将图6左侧所示的卷积核的各段分别标记为K0,K1,..,K7。同理,将图6右侧所示的输入特征图各段分别标记为F0,F1,…,F7。由此得到经重新标注的图7。
虽然图6左侧示出的2x2卷积核呈现出零值对角分布(即,如图7所示,K0和K6以及K3和K5取值为零),应该理解的是上述分布只是一个例子,而非对零值取值位置的限制。例如,在一个8通道且卷积核尺寸为2x2的CONV层中,施加的规则可以仅仅是在通道c_0到c_3的四个相邻卷积核以及在通道c_4到c_7的四个相邻卷积核中,尽量在同一位置(例如,左上、右上、左下和/或右下)训练出都为零值。换句话说,在本发明的一个实施例中,施加的稀疏化规则可以仅仅是要求在K0,K1,..,K7中尽量训练出全部为零值的段,而对具体哪一段为零或者全部为零段所占比例不做要求。
在优选实施例中,可对要施加的稀疏化规则进行进一步的规则。在一个实施例中,稀疏化规则还可以包括:在N个相邻通道的在前或在后N个相邻通道的同一位置不置零。在图7的示例中,例如可以规定K0和K1,K2和K3,K4和K5,以及K6和K7不同时为零。
在一个实施例中,稀疏化规则还可以包括:基于在先初步训练的权重或经验值确定所述权重的稀疏程度;以及基于所述稀疏程度确定卷积核中置零的位置数量和/或位置分布。在图7的示例中,例如基于初步训练得到的权重或是基于经验值可知,权重的稀疏度为50%,则可以进一步规定通道c_0到c_3的四段K0、K2、K4和K6中有两段全部为零,而在通道c_4到c_7的四段K1、K3、K5和K7中也有两段全部为零。另外,还可以基于具体的应用场景,对具体为零的位置分布进行规定。
如上所述,根据图2训练所得的规则零值分布的权重能够在部署有上述神经网络的硬件上实现推理阶段省略与上述零值相关的卷积操作(由多个并行的乘加组成)的有益效果。由此,在一个实施例中,N的取值至少部分由用于部署所述经训练的ANN以执行推理的神经网络计算平台的卷积计算模块的并行度决定。更进一步地,N的取值可以至少部分由卷积计算模块中每个计算单元中包含的乘法器个数决定。
对于人工神经网络,尤其是一般由数个甚至数百个级联的层组成的深度神经网络而言,随着层数的加深,特征图的大小和通道数以及权重的大小会有所变化。通常在分类网络中,浅层的特征图较大,通道数较少,而到了深层,特征图的尺寸变得较小,通道数则大幅增加。对用于特征提取的神经网络而言,还可能出现随着层数的加深,特征图数据量先变小再变大,通道数变多再变少的情况。因此,为了优化神经网络整体的计算效率,在同一神经网络的不同CONV可能会以不同的策略来执行并行度计算,因此N的取值还至少部分基于每个CONV层的通道数而逐层变化。
另外,虽然图6和图7的示例中将方向计算并行度P_CH设为4,并且为了方便说明将W和H方向计算并行度为P_W=1,P_H=1,但是应该理解的是,图6和7只是为了方便说明本发明原理的示意性简化图。在实际应用中,可以通过堆叠多个本发明的并行方案并共享权重/特征图实现通常为上千甚至更高的单次运算并行度。
为了部署本发明的调整方法训练得到的ANN的硬件平台在推理阶段能够方便地利用上述规则分布的零值来实现计算省略,本发明的ANN调整方法还可以包括获取用于指示所述经训练的ANN中权值的具体零值分布的零值分布表。在一个实施例中,上述零值分布表可以是使用零标志(例如,0和1)来表示经P_CH=N切割的权重的各个部分是否为零的零标志表。表1示出了指示如图6和图7所示规则零值分布的零标志表,其中每段(P_CH长度)用1比特来表示该段是否含有非零值,即0表示本段全零,1表示本段有非零值。
k0 | k1 | k2 | k3 | k4 | k5 | k6 | k7 |
0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
表1
上述零值分布表(例如,零标志表)随后可以用于部署了上述经训练的ANN(例如,CNN)的硬件平台执行优化的神经网络推理计算。图8示出了根据本发明一个实施的软硬件一体化设计方法的示意图。如图所示,可以通过稀疏规则化重训练原始权重,从而得到规则稀疏权重以及零标志表,并将其作为CNN推理计算的输入。
如下将结合图9-11描述用于部署如上调整得到的ANN的神经网络计算平台。
图9示出了根据本发明一个实施例的神经网络计算平台。计算平台900包括规则稀疏权重缓存910、输入特征图缓存920、卷积计算模块930和中间结果或输出特征图缓存940。
规则稀疏权重缓存910可以用于缓存使用稀释化规则训练得到的人工神经网络(ANN)的规则稀疏权重。同样的,所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道,并且所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布。输入特征图缓存920用于缓存输入特征图。卷积计算模块930可以用于对所述规则稀疏权重和所述输入特征图进行卷积计算以得到中间结果或输出特征图,其中,基于所述至少一个所述CONV层的多个通道的权重零值分布,所述卷积计算单元省略至少一个时钟周期的并行计算。中间结果或输出特征图缓存940则可用于缓存所述中间结果或输出特征图。
在一个实施例中,上述规则稀疏权重缓存910、输入特征图缓存920和中间结果或输出特征图缓存940可由可动态配置片上缓存实现,例如,输入特征图缓存920和中间结果或输出特征图缓存940可由相同的特征图缓存实现,或者片上缓存可以根据特征图和权重的相对数据量灵活变换为权重缓存或特征图缓存。
如图9所示,该计算平台900还可以可选地包括零值分布缓存950和地址控制器960。零值分布缓存960可以用于缓存用于指示所述经训练的ANN中权值的规律零值分布的零值分布表。在一个实施例中,零值分布缓存960可以存储用于指示在同一CONV层的N个相邻通道的卷积核中在同一位置连续为零的零值位置的零标志表。地址控制器960可以用于将规则稀疏权重和输入特征图分别从规则稀疏权重缓存910和输入特征图缓存920送入所述卷积计算模块930进行卷积计算,并且跳过所述零值分布表(例如,零标志表)中指示的与规律零值分布相关的卷积计算。
具体地,地址控制器960可以发出读命令以读取零值分布缓存950中的零值分布数据,例如,图中所示的零标志表中对应于卷积核各段的零标志数据。随后,基于上述零标志,地址控制器960可以通过向规则稀疏权重缓存910和输入特征图缓存920发出跳过与零标志对应的权重和特征图数据的读命令,而仅从规则稀疏权重缓存910和输入特征图缓存920读取零标志不为零的稀疏权重数据和特征图数据并将其送入卷积计算模块930。由此,能够基于零标志表中的零值位置省略所述卷积计算模块中至少一个计算单元的多个时钟周期的并行计算。
在一个实施例中,该规则稀疏权重可以包括待由所述卷积计算模块并行执行卷积计算的N个通道的同一位置为零的卷积核,其中,N是大于等于2的整数,优选地,可以包括在同一CONV层的N个相邻通道的同一位置为零的卷积核。在一个实施例中,规则稀疏权重中连续为零的具体位置和/或数量可以基于在先初步训练的权重或经验值的稀疏程度确定。在一个实施例中,规则稀疏权重在N个相邻通道的在前或在后N个相邻通道的所述同一位置上不为零。在一个实施例中,N的取值可以至少部分基于每个CONV层的通道数而逐层变化。
N的取值至少部分由卷积计算模块930的并行度决定。优选地,N的取值可以至少部分由卷积计算模块930中每个计算单元中包含的乘法器个数决定。图10示出了组成卷积计算模块的单个计算单元的结构图。如图所示,计算单元可以是具有四个乘法器和一个加法器的MAC阵列(乘加计算单元)。
由于每个MAC阵列包含4个乘法器,因此该MAC阵列每次可完成一段(P_CH长度=4)权重与一段特征图(P_CH长度=4)的乘加。图11A和11B分别示出了利用常规不规则稀疏权重和本发明的规则稀疏权重进行卷积计算所需时间的例子。其中,图11A的计算利用的是例如图5所示的权重和特征图数据,图11B的计算则利用图6和7所示的权重和特征图数据。如图11A所示,使用图10所示的单个MAC阵列需要8个时钟周期(cycle)才可以输出8个2x2卷积核与8个2x2特征值数据的最终乘加结果。如图11B所示,由于零标志表(表1)中值为0的段被跳过,因此单个MAC阵列仅需4个时钟周期就可以输出8个2x2卷积核与8个2x2特征值数据的最终乘加结果。
优选地,本发明的神经网络计算平台至少部分由FPGA、GPU和/或ASIC实现。例如,本发明的神经网络计算平台可以是专用的FPGA或ASIC神经网络芯片。
本发明的上述ANN调整方法还可由ANN调整装置实现。图12示出了根据本发明一个实施例的ANN调整装置的示意图。所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道。
ANN调整装置1200可以包括规则制定装置1210、规则施加装置1220和迭代训练装置1230。规则制定装置1230可以用于制定稀疏化规则,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布。规则施加装置1220可以用于向所述ANN施加所述稀疏化规则。迭代训练装置1230则可用于基于多个批次训练的迭代调整获取符合所述稀疏化规则的经训练的ANN。
规则制定装置1210制定的稀疏化规则可以包括:在所述经训练的ANN执行推理阶段将行执行卷积计算的同一CONV层的N个相邻通道的卷积核的同一位置置零,其中,N是大于等于2的整数。
N的取值至少部分由用于部署所述经训练的ANN以执行推理的神经网络计算平台的卷积计算模块中每个计算单元中包含的乘法器个数决定。
优选地,该ANN调整装置还可以包括零值分布表获取装置1240,后者用于获取用于指示所述经训练的ANN中权值的具体零值分布的零值分布表,例如,上述零标志表。
图13示出了根据本发明一个实施例可用于实现上述调整方法的计算设备的结构示意图。
参见图13,计算设备1300包括存储器1310和处理器1320。
处理器1310可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1320可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1320可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器1310可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器1320或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1310可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1310可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1310上存储有可处理代码,当可处理代码被处理器1320处理时,可以使处理器1320执行上文述及的神经网络调整方法。
在实际使用中,上述计算设备1300可以是包括大容量存储装置1310和CPU 1320的通用计算设备,上述设备用于执行神经网络的训练。而根据本发明的调整方案获取的用于分类的神经网络则可在至少部分由FPGA、GPU和/或ASIC实现的定点计算平台上执行。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可由执行规定的功能或操作的专用的基于硬件的系统实现,或者可由专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (27)
1.一种人工神经网络(ANN)调整方法,所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道,所述方法包括:
制定稀疏化规则,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布;
向所述ANN施加所述稀疏化规则;以及
基于多个批次训练的迭代调整获取符合所述稀疏化规则的经训练的ANN。
2.如权利要求1所述的方法,其中,所述稀疏化规则包括:
将在所述经训练的ANN执行推理阶段并行执行卷积计算的N个通道的卷积核的同一位置置零,其中,N是大于等于2的整数。
3.如权利要求2所述的方法,其中,所述N的取值至少部分由用于部署所述经训练的ANN以执行推理的神经网络计算平台的卷积计算模块的并行度决定。
4.如权利要求3所述的方法,其中,所述N的取值至少部分由所述卷积计算模块中每个计算单元中包含的乘法器个数决定。
5.如权利要求2所述的方法,其中,所述稀疏化规则包括:
将同一CONV层的N个相邻通道的卷积核的同一位置置零。
6.如权利要求5所述的方法,其中,所述稀疏化规则还包括:
在所述N个相邻通道的在前或在后N个相邻通道的所述同一位置不置零。
7.如权利要求5所述的方法,其中,所述N的取值至少部分基于每个CONV层的通道数而逐层变化。
8.如权利要求2所述的方法,其中,所述稀疏化规则还包括:
基于在先初步训练的权重或经验值确定所述权重的稀疏程度;以及
基于所述稀疏程度确定卷积核中置零的位置数量和/或位置分布。
9.如权利要求1所述的方法,还包括:
在向所述ANN施加所述稀疏化规则之前,对所述ANN的权重进行初始训练。
10.如权利要求1所述的方法,还包括:
获取用于指示所述经训练的ANN中权值的具体零值分布的零值分布表。
11.一种神经网络计算平台,包括:
规则稀疏权重缓存,用于缓存使用稀释化规则训练得到的人工神经网络(ANN)的规则稀疏权重,其中,所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布;
输入特征图缓存,用于缓存输入特征图;
卷积计算模块,用于对所述规则稀疏权重和所述输入特征图进行卷积计算以得到中间结果或输出特征图,其中,基于所述至少一个所述CONV层的多个通道的权重零值分布,所述卷积计算单元省略至少一个时钟周期的并行计算;以及
中间结果或输出特征图缓存,用于缓存所述中间结果或输出特征图。
12.如权利要求11所述的计算平台,其中,所述规则稀疏权重包括:
待由所述卷积计算模块并行执行卷积计算的N个通道的同一位置为零的卷积核,其中,N是大于等于2的整数。
13.如权利要求12所述的计算平台,其中,所述N的取值至少部分由所述卷积计算模块的并行度决定。
14.如权利要求13所述的计算平台,其中,所述N的取值至少部分由所述卷积计算模块中每个计算单元中包含的乘法器个数决定。
15.如权利要求12所述的计算平台,其中,所述规则稀疏权重包括:
在同一CONV层的N个相邻通道的同一位置为零的卷积核。
16.如权利要求5所述的计算平台,其中,所述规则稀疏权重在所述N个相邻通道的在前或在后N个相邻通道的所述同一位置上不为零。
17.如权利要求15所述的计算平台,其中,所述N的取值至少部分基于每个CONV层的通道数而逐层变化。
18.如权利要求12所述的计算平台,其中,所述规则稀疏权重中连续为零的具体位置和/或数量基于在先初步训练的权重或经验值的稀疏程度确定。
19.如权利要求11所述的计算平台,还包括:
零值分布缓存,用于缓存用于指示所述经训练的ANN中权值的规律零值分布的零值分布表;以及
地址控制器,用于将所述规则稀疏权重和所述输入特征图分别从所述规则稀疏权重缓存和所述输入特征图缓存送入所述卷积计算模块进行卷积计算,并且跳过所述零值分布表中指示的与所述规律零值分布相关的卷积计算。
20.如权利要求19所述的计算平台,其中,所述零值分布表是存储用于指示在同一CONV层的N个相邻通道的卷积核中在同一位置连续为零的零值位置的零标志表,并且,
所述地址控制器基于所述零值位置省略所述卷积计算模块中至少一个计算单元的至少一个时钟周期的并行计算。
21.如权利要求11所述的计算平台,所述神经网络计算平台至少部分由FPGA、GPU和/或ASIC实现。
22.一种人工神经网络(ANN)调整装置,所述ANN包括多个卷积层(CONV层)并且每个CONV层具有多个通道,所述调整装置包括:
规则制定装置,用于制定稀疏化规则,所述稀疏化规则用于调整至少一个所述CONV层的多个通道的权重具有关联的规则零值分布;
规则施加装置,用于向所述ANN施加所述稀疏化规则;
迭代训练装置,用于基于多个批次训练的迭代调整获取符合所述稀疏化规则的经训练的ANN。
23.如权利要求22所述的装置,其中,所述规则制定装置制定的所述稀疏化规则包括:
将在所述经训练的ANN执行推理阶段将行执行卷积计算的同一CONV层的N个相邻通道的卷积核的同一位置置零,其中,N是大于等于2的整数。
24.如权利要求23所述的装置,其中,所述N的取值至少部分由用于部署所述经训练的ANN以执行推理的神经网络计算平台的卷积计算模块中每个计算单元中包含的乘法器个数决定。
25.如权利要求22所述的装置,还包括:
零值分布获取装置,用于获取用于指示所述经训练的ANN中权值的具体零值分布的零值分布表。
26.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-10中任一项所述的方法。
27.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810618272.6A CN110610227B (zh) | 2018-06-15 | 2018-06-15 | 人工神经网络调整方法及神经网络计算平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810618272.6A CN110610227B (zh) | 2018-06-15 | 2018-06-15 | 人工神经网络调整方法及神经网络计算平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110610227A true CN110610227A (zh) | 2019-12-24 |
CN110610227B CN110610227B (zh) | 2022-07-26 |
Family
ID=68887965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810618272.6A Active CN110610227B (zh) | 2018-06-15 | 2018-06-15 | 人工神经网络调整方法及神经网络计算平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110610227B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112132275A (zh) * | 2020-09-30 | 2020-12-25 | 南京风兴科技有限公司 | 一种并行计算方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372724A (zh) * | 2016-08-31 | 2017-02-01 | 西安西拓电气股份有限公司 | 一种人工神经网络算法 |
CN107609641A (zh) * | 2017-08-30 | 2018-01-19 | 清华大学 | 稀疏神经网络架构及其实现方法 |
CN107633125A (zh) * | 2017-09-14 | 2018-01-26 | 北京仿真中心 | 一种基于带权有向图的仿真系统并行性识别方法 |
US20180129935A1 (en) * | 2016-11-07 | 2018-05-10 | Electronics And Telecommunications Research Institute | Convolutional neural network system and operation method thereof |
-
2018
- 2018-06-15 CN CN201810618272.6A patent/CN110610227B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372724A (zh) * | 2016-08-31 | 2017-02-01 | 西安西拓电气股份有限公司 | 一种人工神经网络算法 |
US20180129935A1 (en) * | 2016-11-07 | 2018-05-10 | Electronics And Telecommunications Research Institute | Convolutional neural network system and operation method thereof |
CN107609641A (zh) * | 2017-08-30 | 2018-01-19 | 清华大学 | 稀疏神经网络架构及其实现方法 |
CN107633125A (zh) * | 2017-09-14 | 2018-01-26 | 北京仿真中心 | 一种基于带权有向图的仿真系统并行性识别方法 |
Non-Patent Citations (2)
Title |
---|
SICHENG LI: "An FPGA Design Framework for CNN Sparsification and Acceleration", 《2017 IEEE 25TH ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES (FCCM)》 * |
王亮: "神经网络敏感性的定义分类研究", 《河北大学学报(自然科学版)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112132275A (zh) * | 2020-09-30 | 2020-12-25 | 南京风兴科技有限公司 | 一种并行计算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110610227B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413255B (zh) | 人工神经网络调整方法和装置 | |
US20180260709A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
CN110555450B (zh) | 人脸识别神经网络调整方法和装置 | |
WO2022037705A1 (en) | Method and system for hierarchical weight-sparse convolution processing | |
US11645512B2 (en) | Memory layouts and conversion to improve neural network inference performance | |
US11704556B2 (en) | Optimization methods for quantization of neural network models | |
US20190311266A1 (en) | Device and method for artificial neural network operation | |
EP4128066A1 (en) | Feature reordering based on sparsity for improved memory compression transfers during machine learning jobs | |
Moon et al. | FPGA-based sparsity-aware CNN accelerator for noise-resilient edge-level image recognition | |
CN110716751B (zh) | 高并行度计算平台、系统及计算实现方法 | |
CN110610227B (zh) | 人工神经网络调整方法及神经网络计算平台 | |
US11568248B2 (en) | Feature reordering based on similarity for improved memory compression transfers during machine learning jobs | |
US20220253709A1 (en) | Compressing a Set of Coefficients for Subsequent Use in a Neural Network | |
US20220230064A1 (en) | Calibration of analog circuits for neural network computing | |
US20220147826A1 (en) | Method and system for convolution with workload-balanced activation sparsity | |
CN115461754A (zh) | 深度过参数化 | |
CN110765413A (zh) | 矩阵求和结构及神经网络计算平台 | |
CN110598723A (zh) | 人工神经网络调整方法和装置 | |
US20220261652A1 (en) | Training a Neural Network | |
US20230325665A1 (en) | Sparsity-based reduction of gate switching in deep neural network accelerators | |
CN116157808B (zh) | 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的系统和方法 | |
US20240020517A1 (en) | Real-time inference of temporal down-sampling convolutional networks | |
US20240211533A1 (en) | Systems and methods for matrix operation selector based on machine learning | |
US20240028900A1 (en) | Energy Efficient Computations Using Bit-Sparse Data Representations | |
US20230221994A1 (en) | Dynamic uncompression for channel-separable operation in neural network |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200908 Address after: Unit 01-19, 10 / F, 101, 6 / F, building 5, yard 5, Anding Road, Chaoyang District, Beijing 100029 Applicant after: Xilinx Electronic Technology (Beijing) Co.,Ltd. Address before: 100083, 17 floor, four building four, 1 Wang Zhuang Road, Haidian District, Beijing. Applicant before: BEIJING DEEPHI INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |