CN113841162B - 深度神经网络中的深度优先卷积 - Google Patents
深度神经网络中的深度优先卷积 Download PDFInfo
- Publication number
- CN113841162B CN113841162B CN202080037223.9A CN202080037223A CN113841162B CN 113841162 B CN113841162 B CN 113841162B CN 202080037223 A CN202080037223 A CN 202080037223A CN 113841162 B CN113841162 B CN 113841162B
- Authority
- CN
- China
- Prior art keywords
- layer
- width
- receptive field
- input tensor
- input
- 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 description 33
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 40
- 238000011176 pooling Methods 0.000 claims description 18
- 238000010606 normalization Methods 0.000 claims description 8
- 239000010410 layer Substances 0.000 description 389
- 210000002569 neuron Anatomy 0.000 description 31
- 239000013598 vector Substances 0.000 description 28
- 230000008569 process Effects 0.000 description 22
- 239000011159 matrix material Substances 0.000 description 17
- 238000013527 convolutional neural network Methods 0.000 description 16
- 238000012549 training Methods 0.000 description 14
- 239000012792 core layer Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000005284 excitation Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000023886 lateral inhibition Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007774 longterm Effects 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
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000002087 whitening effect 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
-
- 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/047—Probabilistic or stochastic 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
- Surface Acoustic Wave Elements And Circuit Networks Thereof (AREA)
Abstract
在一个实施例中,深度优先深度卷积网络(DCN)具有第一卷积层和第二卷积层,第一卷积层具有第一第一层内核并且适于对第一输入进行卷积,第二卷积层具有第一第二层内核并且适于对第二层输入进行卷积。一种用于DCN的方法,包括:发起在第一卷积层中的、第一输入张量与第一第一层内核的卷积,以生成第二输入张量的值条带,并且在第一卷积层中的卷积完成之前,发起在第二卷积层中的、第二输入与第一第二层内核的卷积,以生成用于第三层的值条带。
Description
根据35U.S.C.§119的优先权要求
本专利申请要求享有于2019年6月17日提交的题为“DEPTH-FIRST CONVOLUTIONIN DEEP NEURAL NETWORKS”的非临时申请No.16/443,695的优先权,该申请被转让给本申请的受让人,并由此通过引用的方式明确地并入本文。
技术领域
本公开内容总体上涉及人工神经网络,并且更具体而言,涉及深度神经网络中的卷积。
背景技术
人工神经网络可以由互连的人工神经元(例如,神经元模型)群组组成,人工神经网络可以是计算设备或由计算设备执行的方法的表示。神经网络可以用于各种应用和/或设备,诸如网际协议(IP)相机、物联网(IoT)设备、自主车辆和/或服务机器人。
人工神经网络中的各个人工神经元或节点可以通过取得输入数据并对数据执行简单运算来仿真生物神经元。对输入数据执行的简单运算的结果被选择性地传递到其它节点。权重值与网络中的每个节点相关联,并且这些值约束了输入数据如何与输出数据相关。例如,每个节点的输入可以乘以对应的权重值,并且可以对乘积求和。乘积之和可以通过可选的偏置来调整,并且可以对结果应用激励函数,从而产生节点的输出信号或“输出激励”。权重值最初可以由通过网络的训练数据的迭代流来确定(例如,权重值是在训练阶段期间建立的,在训练阶段中,网络学习如何通过特定类别的典型输入数据特性来识别这些特定类别)。
存在不同类型的人工神经网络,诸如递归神经网络(RNN)、多层感知器(MLP)神经网络、卷积神经网络(CNN)等。RNN的工作原理是保存一个层的输出并将该输出反馈回到输入以帮助预测该层的结果。在MLP神经网络中,可以将数据馈入到输入层,并且一个或多个隐藏层提供对数据的提取级别。然后,可以基于所提取的数据在输出层上进行预测。MLP可以特别适合于其中为输入分配了类别或标签的分类预测问题。
卷积神经网络(CNN)是一种类型的前馈人工神经网络。卷积神经网络可以包括人工神经元的集合,每个人工神经元具有感受野(receptive field)(例如,输入空间的空间局部区域),并且这些人工神经元共同地用重叠的区块(tile)对输入空间进行区块划分。卷积神经网络具有许多应用。特别地,CNN已经广泛地用于模式识别和分类领域。一种类型的卷积神经网络是深度卷积网络(DCN)。深度神经网络是在输入层和输出层之间具有多个隐藏层的神经网络。
在分层神经网络架构(例如,MLP和DCN)中,第一层人工神经元的输出成为第二层人工神经元的输入,第二层人工神经元的输出成为第三层人工神经元的输入,并且依此类推。可以训练卷积神经网络以识别特征的层次。卷积神经网络架构中的计算可以分布在处理节点群上,其可以被配置在一个或多个计算链中。这些多层架构可以一次一层地训练,并且可以使用反向传播来微调。如上所述,训练是一个在其中调整和设置神经网络的权重值,以使得神经网络能够通过学习到的输入数据特性来识别特定类别的阶段。在训练了神经网络之后,它可以用于推断,其中网络使用设置的权重值来对新的输入进行分类。
训练是一个高计算强度的过程,其通常在服务器系统上执行,因为边缘设备(例如,移动计算设备或智能电话)通常缺乏存储器、计算和功率资源来实际执行训练。推断的计算强度明显低得多,并且可以由边缘设备较好地完成。经训练的模型可以用于推断而无需进一步的训练。然而,注意,尽管进一步训练不是必需的,但是可以采用来自推断设备本身或来自外部输入的新输入来进一步微调经训练的模型。尽管推断比训练计算强度低,然而相对于移动计算设备执行的其他任务来说,它仍计算强度较大,并且因此期望用于减少计算负荷的系统和方法。
发明内容
本公开内容的某些方面涉及一种用于使用深度卷积网络的计算机实现的方法。该深度卷积网络包括:第一卷积层,被配置为使用第一层内核对第一层输入张量进行卷积以生成第二层输入张量;第二卷积层,被配置为使用第二层内核对第二层输入张量进行卷积以生成第三层输入张量;以及第三层,被配置为接收第三层输入张量。第一层内核具有第一层内核长度和第一层内核宽度。第一层输入张量具有第一层输入长度和第一层输入宽度。第二层输入张量具有第二层输入长度和第二层输入宽度。第二层内核具有第二层内核长度和第二层内核宽度。该方法包括:将第一层内核与第一输入张量的第一第一层拉伸感受野(stretched receptive field)进行卷积,以生成用于第二层输入张量的第一条带(strip)的值,随后将第二层内核与第二输入张量的第一第二层拉伸感受野进行卷积,以生成用于第三层输入张量的第一条带的值,并且随后将第一层内核与第一输入张量的第二第一层拉伸感受野进行卷积,以生成用于第二层输入张量的第二条带的值。第一层感受野具有等于第一层内核长度的长度和大于第一层内核宽度的第一层拉伸感受野宽度。第二层感受野具有等于第二层内核长度的长度和大于第二层内核宽度的第二层拉伸感受野宽度。
本公开内容的某些方面涉及一种用于使用深度卷积网络的计算设备。该深度卷积网络包括:第一卷积层,被配置为使用第一层内核对第一层输入张量进行卷积以生成第二层输入张量;第二卷积层,被配置为使用第二层内核对第二层输入张量进行卷积以生成第三层输入张量;以及第三层,被配置为接收第三层输入张量。第一层内核具有第一层内核长度和第一层内核宽度。第一层输入张量具有第一层输入长度和第一层输入宽度。第二层输入张量具有第二层输入长度和第二层输入宽度。第二层内核具有第二层内核长度和第二层内核宽度。该计算设备被配置为:将第一层内核与第一输入张量的第一第一层拉伸感受野进行卷积,以生成用于第二层输入张量的第一条带的值,随后将第二层内核与第二输入张量的第一第二层拉伸感受野进行卷积,以生成用于第三层输入张量的第一条带的值,并且随后将第一层内核与第一输入张量的第二第一层拉伸感受野进行卷积以生成用于第二层输入张量的第二条带的值。第一层感受野具有等于第一层内核长度的长度和大于第一层内核宽度的第一层拉伸感受野宽度。第二层感受野具有等于第二层内核长度的长度和大于第二层内核宽度的第二层拉伸感受野宽度。
本公开内容的某些方面针对一种用于使用深度卷积网络的计算设备。该深度卷积网络包括:第一卷积层,被配置为使用第一层内核对第一层输入张量进行卷积以生成第二层输入张量;第二卷积层,被配置为使用第二层内核对第二层输入张量进行卷积以生成第三层输入张量;以及第三层,被配置为接收第三层输入张量。第一层内核具有第一层内核长度和第一层内核宽度。第一层输入张量具有第一层输入长度和第一层输入宽度。第二层输入张量具有第二层输入长度和第二层输入宽度。第二层内核具有第二层内核长度和第二层内核宽度。该计算设备包括:用于将第一层内核与第一输入张量的第一第一层拉伸感受野进行卷积以生成用于第二层输入张量的第一条带的值的单元,用于随后将第二层内核与第二输入张量的第一第二层拉伸感受野进行卷积以生成用于第三层输入张量的第一条带的值的单元,以及用于随后将第一层内核与第一输入张量的第二第一层拉伸感受野进行卷积以生成用于第二层输入张量的第二条带的值的单元。第一层感受野具有等于第一层内核长度的长度和大于第一层内核宽度的第一层拉伸感受野宽度。第二层感受野具有等于第二层内核长度的长度和大于第二层内核宽度的第二层拉伸感受野宽度。
本公开内容的某些方面涉及一种包括指令的非暂时性计算机可读介质,这些指令在由至少一个处理器执行时使该处理器执行用于使用深度卷积网络的方法。该深度卷积网络包括:第一卷积层,被配置为使用第一层内核对第一层输入张量进行卷积以生成第二层输入张量;第二卷积层,被配置为使用第二层内核对第二层输入张量进行卷积以生成第三层输入张量;以及第三层,被配置为接收第三层输入张量。第一层内核具有第一层内核长度和第一层内核宽度。第一层输入张量具有第一层输入长度和第一层输入宽度。第二层输入张量具有第二层输入长度和第二层输入宽度。第二层内核具有第二层内核长度和第二层内核宽度。该方法包括:将第一层内核与第一输入张量的第一第一层拉伸感受野进行卷积,以生成用于第二层输入张量的第一条带的值,随后将第二层内核与第二输入张量的第一第二层拉伸感受野进行卷积,以生成用于第三层输入张量的第一条带的值,并且随后将第一层内核与第一输入张量的第二第一层拉伸感受野进行卷积,以生成用于第二层输入张量的第二条带的值。第一层感受野具有等于第一层内核长度的长度和大于第一层内核宽度的第一层拉伸感受野宽度。第二层感受野具有等于第二层内核长度的长度和大于第二层内核宽度的第二层拉伸感受野宽度。
在审阅整个申请之后,本公开内容的其他方面、优点和特征可变得显而易见。
附图说明
图1是可以用于实现本公开内容的实施例的示例性片上系统(SoC)的示意图。
图2A是示例性完全连接的神经网络层的图示。
图2B是示例性局部连接的神经网络层的图示。
图2C是示例性卷积神经网络层的图示。
图2D是被设计为从图像中识别视觉特征的深度卷积网络(DCN)的具体示例的图示。
图3是示例性深度卷积网络(DCN)的方框图图示。
图4是根据本公开内容的实施例,在DCN中的1维卷积层的深度优先卷积处理的几个阶段的示例性进展的图示。
图5是根据本公开内容的另一实施例,在DCN中的2维卷积层的深度优先卷积处理的几个阶段的示例性进展的图示。
图6是根据本公开内容的实施例的示例性过程的流程图。
具体实施方式
参考附图,描述了本公开内容的若干示例性方面。词语“示例性”在本文中用于表示“用作示例、实例或举例说明”。本文中描述为“示例性”的任何方面不一定被解释为优选的或优于其他方面。
图1是可用于实现本公开内容的实施例的示例性片上系统(SoC)100的示意图。SoC100包括中央处理单元(CPU)102或多核CPU、图形处理单元(GPU)104、数字信号处理器(DSP)106、神经处理单元(NPU)108、连接块110、多媒体处理器112、传感器处理器114、图像信号处理器(ISP)116、存储器块118和可选的导航模块120中的一个或多个。
变量(例如,节点输入和权重)、数据、指令、系统参数等可存储于与NPU 108相关联的存储器块中、与CPU 102相关联的存储器块中、与GPU104相关联的存储器块中、与DSP 106相关联的存储器块中、存储器块118中,或可分布于多个块中。
连接块110可以包括第五代(5G)连接、第四代长期演进(4G LTE)连接、Wi-Fi连接、USB连接、蓝牙连接等。多媒体处理器112可以例如检测并识别手势。在一种实施方式中,NPU在CPU 102、DSP 106和/或GPU104中实施。导航模块120可以包括全球定位系统。
SoC 100和/或其组件可以被配置为根据下面讨论的本公开内容的各个方面来执行深度优先卷积运算。通过使用深度优先卷积,计算设备可以增加推断效率,从而允许设备减少数据传送(例如,读取和写入)操作的数量、利用现有硬件处理更大的输入(例如,图像)、和/或使用更少的硬件处理常规大小的输入。
深度学习架构可以通过进行学习以在每层中在相继更高的提取级别处表示输入,来执行对象识别任务,从而构建针对输入数据的有用特征表示。这样,深度学习解决了传统机器学习的主要瓶颈。在深度学习出现之前,针对对象识别问题的机器学习方法会严重依赖于人工设计的特征(并且可能与浅分类器相结合)。浅分类器可以是两类别的线性分类器,例如,其中输入值(例如,输入向量分量)的加权和可以与阈值进行比较以预测该输入属于哪一类别。人工设计的特征可以是由具有领域专业知识的工程师针对具体问题领域定制的模板或内核。相反,深度学习架构可以进行学习以表示与人类工程师可能设计的特征类似的特征,但是是通过训练。此外,深度网络可以进行学习以表示和识别人类可能没有考虑到的新类型的特征。
深度学习架构可以学习特征层次。例如,如果用视觉数据呈现,则第一层可以进行学习以识别输入流中的相对简单的特征,例如边缘。在另一示例中,如果用听觉数据呈现,则第一层可以进行学习以识别特定频率中的频谱功率。将较低(即较早)层的输出作为输入的较高(即后续)层可以进行学习以识别特征的组合,诸如视觉数据的简单形状或听觉数据的声音组合。例如,较高层可以进行学习以表示视觉数据中的复杂形状或听觉数据中的词语。更高层可以进行学习以识别常见的视觉对象或口语短语。
当应用于具有自然层次结构的问题时,深度学习架构可以执行得特别好。例如,机动车辆的分类可以受益于首先学习以识别车轮、挡风玻璃和其他特征。这些特征可以在较高层以不同的方式组合以识别例如小汽车、卡车和/或飞机。
神经网络可以被设计成具有各种连接模式。在前馈网络中,信息从较低层传递到较高层,其中,在较低层中的每个神经元与在较高层中的神经元通信。如上所述,可以在前馈网络的连续的层中建立层次表示。神经网络还可以具有循环或反馈(也称为自顶向下)连接。在循环连接中,可以将来自给定层中的神经元的输出传送到相同层中的另一神经元。在识别跨按顺序传递到神经网络的一个以上输入数据块的模式时,循环架构可能是有帮助的。从给定层中的神经元到较低层中的神经元的连接被称为反馈(或自顶向下)连接。当高级概念的识别可帮助区分输入的特定低级特征时,具有许多反馈连接的网络可能是有帮助的。
神经网络的层之间的连接可以是完全连接的或局部连接的。图2A示出了完全连接的神经网络段202的示例。在完全连接的神经网络段202中,第一层中的神经元可以将其输出传送到第二层中的每个神经元,使得第二层中的每个神经元将从第一层中的每个神经元接收输入。图2B示出了局部连接的神经网络段204的示例。在局部连接的神经网络段204中,第一层中的神经元可以连接到第二层中的有限数量的神经元。更一般地,局部连接的神经网络段204的局部连接层可以被配置成使得一个层中的每个神经元将具有相同或相似的连接模式,但是具有可拥有不同值的连接强度(例如,210、212、214和216)。局部连接的连接模式可以引起较高层中的空间上有区别的区域,因为给定区域中的较高层神经元可以接收通过针对网络的总输入的受限部分的属性进行训练而被调谐的输入。
局部连接的神经网络的一个示例是卷积神经网络。图2C示出了卷积神经网络段206的示例。卷积神经网络段206可以被配置成使得与第二层中的每个神经元的输入相关联的连接强度被共享(例如208)。卷积神经网络可以很好地适合于其中输入的空间位置有意义的问题。可以根据本公开内容的各个方面来使用卷积神经网络段206。
图2D示出了DCN 200的详细示例,其被设计为根据从诸如车载摄像机的图像捕获设备230输入的图像226中识别视觉特征。可以训练当前示例的DCN 200以识别交通标志和在交通标志上提供的数字。当然,可以训练DCN 200以用于其他任务,诸如识别车道标志以识别交通信号灯。
可以用有监督的学习来训练DCN 200。在训练期间,可以向DCN 200提供图像的张量表示,诸如限速标志的图像226,并且随后可以计算前向传递以产生输出222。图像的张量表示可以包括针对图像的每个像素的、表示像素的颜色和亮度信息的信息。注意,在本文中,术语图像可以用作图像的张量表示的简写。DCN 200可以包括特征提取部分和分类部分。在接收到图像226时,卷积层232可以将卷积核(未示出)应用于张量以生成第一特征映射集合218。作为示例,用于卷积层232的卷积核可以是5×5内核,其生成28×28个特征映射。在本示例中,由于在卷积层232处将四个不同的卷积核应用于图像226,因此在第一特征映射集合218中生成四个不同的特征映射。卷积核也可被称为滤波器或卷积滤波器。
第一特征映射集合218可以由池化(pooling)层(未示出)进行子采样,以生成第二特征映射集合220。例如,所述池化可以是仅选择一组输入中的最大值的最大池化,或者是仅选择一组输入的平均值的平均池化。池化层减小了第一特征映射集合218中每一个特征映射的大小。即,第二特征映射集合220中每一个的特征映射大小(诸如14×14)比第一特征映射集合218的大小(诸如28×28)更小。减小的大小在降低存储器消耗的同时向后续层提供类似的信息。第二特征映射集合220可以进一步经由一个或多个后续卷积层(未示出)来进行卷积,以生成一个或多个后续特征映射集合(未示出)。
在图2D的示例中,第二特征映射集合220被完全连接并被平坦化以生成第一特征向量224。此外,第一特征向量224被完全连接以生成第二特征向量228。第二特征向量228的每个特征可以包括与图像226的可能特征(诸如“符号”、“60”和“100”)相对应的数字。softmax函数(未示出)可以将第二特征向量228中的数字转换成概率。这样,DCN 200的输出222是图像226包括一个或多个特征的概率。
在本示例中,输出222中对于“符号”和“60”的概率高于输出222中的其他输出(诸如“30”、“40”、“50”、“70”、“80”、“90”和“100”)的概率。在训练之前,由DCN 200产生的输出222可能是不正确的。因此,可以计算输出222和目标输出之间的误差。目标输出是图像226的真实情况(例如,“符号”和“60”)。然后可以调整DCN 200的权重,以便DCN 200的输出222与目标输出更接近地对准。
为了调整权重,学习算法可以计算权重的梯度向量。梯度可以指示:如果权重被调整则误差将会增大或减小的量。在顶层,梯度可以直接对应于连接倒数第二层中的激活神经元与输出层中的神经元的权重的值。在较低层中,梯度可以取决于权重的值和较高层的所计算的误差梯度。然后可以调整权重以减小误差。这种调整权重的方式可以被称为“反向传播”,因为它涉及通过神经网络的“反向传递”。
实际上,可以针对少量示例来计算权重的误差梯度,使得所计算的梯度近似于真实的误差梯度。这种近似方法可以被称为随机梯度下降。可以重复随机梯度下降,直到整个系统的可达到误差率已经停止降低或者直到误差率已经达到目标水平。在学习之后,可以向DCN提供新图像,并且通过网络的前向传递可以产生输出222,该输出222可以被认为是DCN的推断或预测。
DCN已经实现了许多任务的现有技术水平的性能。可以使用有监督的学习来训练DCN,其中输入和输出目标对于许多范例都是已知的,并且用于通过使用梯度下降法来修改网络的权重。
DCN可以是前馈网络。此外,如上所述,从DCN的第一层中的神经元到下一较高层中的一组神经元的连接是在第一层中的神经元之间共享的。DCN的前馈和共享连接可以被用于快速处理。DCN的计算负荷可以例如比包括循环或反馈连接的类似大小的神经网络的计算负荷小得多。
可以将卷积网络的每一层的处理认为是空间上不变的模板或基投影。如果首先将输入分解成多个通道,诸如彩色图像的红色、绿色和蓝色通道,则可以将针对该输入所训练的卷积网络认为是三维的,具有沿图像的轴的两个空间维度,及捕获彩色信息的第三维度。可以将卷积连接的输出认为是形成后续层中的特征映射,其中特征映射(例如,220)的每个元素从先前层中的一系列神经元(例如,特征映射218)和多个通道中的每个通道接收输入。可以通过校正线性单元(ReLU)以非线性(诸如校正,max(0,x))进一步处理特征映射中的值。ReLU用于滤除任何负值,其被替换为零。来自相邻神经元的值可以被进一步池化,这对应于下采样,并且可以提供附加的局部不变性和维数减小。
图3是示出示例性深度卷积网络350的方框图。深度卷积网络350可以基于连接性和权重共享而包括多个不同类型的层。如图3所示,深度卷积网络350包括三个卷积块354,即卷积块354(1)、354(2)和354(3)。每个卷积块354包括相应的卷积层(CONV)层356,并且可以可选地包括归一化层(LNorm)358和最大池化层(MAX POOL)360。例如,卷积块354(1)包括CONV 356(1)、LNorm 358(1)和MAX POOL 360(1),而卷积块354(2)包括卷积层356(1),但不包括相应的归一化层或最大池化层。
卷积层356可以包括一个或多个卷积滤波器(内核),每个卷积滤波器包括权重集,权重集可被应用到输入张量(诸如输入数据352),以生成同样是张量的相应的特征映射(未示出)。如下进一步所述,将内核卷积应用到输入张量涉及将内核扫过输入张量,将内核的权重乘以输入张量的相应值,并将乘积相加,以生成结果得到的特征映射的相应值。卷积层356可以包括或者随后紧接着非线性激励层(未示出),该非线性激励层执行非线性函数,诸如例如非线性校正(ReLU)、阶跃函数、Sigmoid函数或tanh函数。执行非线性函数有助于提高DCN 350的准确率和效率。
归一化层358可以对由前面的卷积滤波器输出的每一个特征映射进行归一化。例如,归一化层358可以提供白化或横向抑制。最大池化层360可以仅选择输入群集中的最大值以用于传播,以针对局部平移不变性提供空间上的下采样聚合。即,最大池化允许由感受野的最大激励表征整个感受野,而不考虑该最大激励在感受野内的精确定位。注意,可以使用诸如例如平均池化层之类的其他下采样层来代替任何最大池化层360。
尽管图3中仅示出了三个卷积块354(1)-(3),但是本公开内容不限于此,并且可替换地,可以在深度卷积网络350中包括具有组成层的任意组合的任意数量的卷积块354。
深度卷积网络350还可以包括一个或多个完全连接层362,诸如层362(1)(标记为“FC1”)和层362(2)(标记为“FC2”)。完全连接层用于或平坦化和分类,如上文参考图2D所述。深度卷积网络350可以进一步包括多项逻辑回归(MLR)层364,其例如可以实施softmax函数以为输出分类特征集合中的每一个输出分类特征提供概率。
深度卷积网络350的层356、358、360、362、364中的任何两个连续层之间的变换是基于训练期间更新的权重和偏置(未示出)的。每个层(例如356、358、360、362、364)的输出可以用作深度卷积网络350中的层(例如356、358、360、362、364)中的后续层的输入,以从提供给卷积块中的第一个354(1)的输入数据352(例如,图像、音频、视频、传感器数据和/或其他输入数据)中学习层次化的特征表示。深度卷积网络350的输出是针对输入数据352的分类366。分类366可以是概率集合,其中每个概率是输入数据包括来自分类特征集合中的特征的概率。
在由DCN 350对图像进行的示例性常规处理中,图像数据将从诸如芯片外DRAM模块的相对低速的保持存储器中提取出来,并上传到诸如NPU108的紧耦合存储器(TCM)(未示出)的相对高速的操作存储器或其它本地存储器,并作为输入数据352提供。TCM可以被实施为例如静态随机存取存储器(SRAM)。除图像数据外,第一卷积层356(1)的内核的权重也将从保持存储器中提取到操作存储器中。在这些提取之后,将使用卷积块354(1)的卷积层356(1)的内核来对整个图像进行卷积,结果由相应的ReLU进行滤波,由归一化层358(1)进行归一化,并由最大池化层360(1)进行聚集,以生成将形成卷积块354(2)的输入的特征映射。在卷积块354(1)的处理期间,将这些特征映射写入保持存储器。在卷积块354(1)对输入数据352的处理完成之后,将这些特征映射从保持存储器中提取出来,并上传到操作存储器中以用于由卷积块354(2)进行处理。该处理需要大的操作存储器,以用于处理大的输入张量和大的权重张量。此外,数据在保持存储器和操作存储器之间的来回移动耗费资源高,限制了性能,并且消耗功率。
在本公开内容的一个方面,使用深度优先卷积来最小化处理特定大小的输入所需的操作存储器的大小,并最小化用于在保持存储器和操作存储器之间传送数据的存储器带宽。深度优先卷积包括:在当前层的卷积处理完成之前开始下一卷积层的卷积处理。此外,在当前层的卷积终止之前,根据当前处理感受野的需要来上传输入值,并且在不再需要时丢弃输入值。
图4是如下所述的几个阶段DCN(n)中所示的,在DCN 401中的1维卷积层的深度优先卷积处理的几个阶段的示例性进展400的图示。DCN 401包括层402、403、404和405。层402、403和404中的每一层是执行局部滤波的层,所述局部滤波诸如例如卷积、池化或按元素滤波。层402、403、404和405在任何两个相邻层之间可以具有中间层(未示出),诸如例如非线性层、归一化层和/或池化层。
注意,层402、403、404和405在图4中由其输入向量表示。在一个实施例中,层402、403、404和405对应于图3的层356(1)、356(2)、356(3)和362(1),其中,层402、403和404是卷积层。在一个实施例中,层402使用3抽头(即,3权重)内核(未示出)来与输入向量的相应3元素感受野407进行卷积。
在处理DCN的第一阶段401(1),将层402的输入向量的三个元素406(1)从保持存储器读入操作存储器中以形成感受野407(1)。另外,将层402的内核的权重从保持存储器读入操作存储器。感受野407(1)与层402的第一内核进行矩阵相乘,以生成用于层403的输出值408(1)。该处理可以由二维对角图案化漏斗420(1)直观地表示,其基部是感受野407(1),并且其顶点或主干是输出值408(1)。一般地,任何局部滤波步骤(诸如卷积或池化)都可以直观地表示为锥体或漏斗,其基部是感受野,并且其顶点或主干是输出。
注意,层402使用一个元素的跨距。在处理DCN的随后第二阶段401(2)中,将层402的输入向量的下一元素406(2)从保持存储器读入操作存储器以形成下一感受野407(2),该感受野407(2)相对于第一阶段DCN 401(1)的感受野407(1)偏移一个元素。感受野407(2)随后与层402的第一内核进行矩阵相乘,以生成用于层403的输出值408(2)。由于不再需要层402的输入向量的第一值421(2),因此将其在操作存储器中的点(以棋盘图案示出)释放并重新用于任何其他元素。
在处理DCN的随后第三阶段401(3)中,将层402的输入向量的下一元素406(3)从保持存储器读入操作存储器以形成下一感受野407(3),其随后与层402的第一内核进行矩阵相乘以生成用于层403的输出值408(3)。用于层402的输入向量的第二元素421(3)的操作存储器点可以被释放并重新使用。层403也使用3抽头内核(未示出)。由于已经确定了值408(1)-(3),它们形成感受野409(3),然后该感受野409(3)与层403的第一内核进行矩阵相乘,以生成用于层404的输出值410(3)。该处理由对角图案化漏斗422(3)示出。
在处理DCN的随后第四阶段401(4)中,将层402的输入向量的下一元素406(4)从保持存储器读入操作存储器以形成下一感受野407(4),然后将其与层402的第一内核进行矩阵相乘,以生成用于层403的输出值408(4)。用于层402的输入向量的第三元素421(4)的操作存储器点可以被释放并重新使用。使用新生成的值408(4),将感受野409(4)与层403的第一内核进行矩阵相乘,以生成用于层404的输出值410(4)。用于值408(1)的操作存储器点(现在以棋盘图案示出)现在可以被释放并重新使用。
在处理DCN的随后第五阶段401(5)中,将层402的输入向量的下一个元素406(5)读入操作存储器以形成下一感受野407(5),将其与层402的第一内核进行矩阵相乘,以生成用于层403的输出值408(5)。由输入向量的元素406(2)使用的操作存储器点现在可以被释放并重新使用。使用新生成的值408(5),将层403的感受野409(5)与层403的第一内核进行矩阵相乘,以生成用于层404的输出值410(5)。用于值408(2)的操作存储器点可以被释放并重新使用。层404也使用3抽头内核(未示出)。由于已经确定了层404的值410(3)-(5),它们形成感受野411(5),将其与层404的第一内核进行矩阵相乘,以生成用于层405的输出值412(5)。该处理由对角图案化漏斗423(5)示出。
在处理DCN的随后第六阶段401(6)中,将层402的输入向量的下一元素406(6)读入操作存储器以形成下一感受野407(6),将其与层402的第一内核进行矩阵相乘,以生成用于层403的输出值408(6)。用于输入向量的元素406(3)的操作存储器点可以被释放并重新使用。使用新生成的值408(6),将感受野409(6)与层403的第一内核进行矩阵相乘,以生成用于层404的输出值410(6)。用于值408(3)的操作存储器点可以被释放并重新使用。使用新生成的值410(6),将感受野411(6)与层404的第一内核进行矩阵相乘,以生成用于层405的输出值412(6)。由值410(3)使用的操作存储器点可以被释放并重新使用。可以将先前生成的值412(5)(现在以网格图案示出)写入保持存储器,并且可以释放并重新使用操作存储器中的对应点。
在处理DCN的随后第n阶段401(n)中,其中n>6,将层402的输入向量的第n个元素406(n)读入操作存储器以形成感受野407(n),将其与层402的第一内核进行矩阵相乘以生成用于层403的输出值408(n)。用于输入向量的元素406(n-3)的操作存储器点可以被释放并重新使用。使用新生成的值408(n),将感受野409(n)与层403的第一内核进行矩阵相乘,以生成用于层404的输出值410(n)。用于值408(n-3)的操作存储器点可以被释放并重新使用。使用新生成的值410(n),将感受野411(n)与层404的第一内核进行矩阵相乘,以生成用于层405的输出值412(n)。由值410(n-3)使用的操作存储器点可以被释放并重新使用。可以将先前生成的值412(n-1)写入保持存储器,并且可以释放并重新使用操作存储器中的对应点。
如果元素406(n)是层402的输入向量的最后元素,则随后,可以释放并重新使用由层402、403、404和405使用的所有剩余的操作存储器点,其中首先将层405的生成值412(n)写入保持存储器。可以看出,在该说明性示例中,对层402的输入向量进行处理以生成用于层405的值需要:(1)从保持存储器中仅读取该输入向量的元素以及层402、403和404的内核的权重,(2)向保持存储器仅写入层405的经计算的值,以及(3)在处理期间在操作存储器中仅保存层402、403和404的内核的权重、感受野407、409和411中的值以及相应的值412。
相比之下,使用逐层地处理DCN 401的常规方法将需要更多的读取和写入操作以及大得多的操作存储器。具体而言,常规处理将需要从保持存储器中读取层402的输入向量的所有元素连同相应的内核权重,将它们全部存储在操作存储器中,将层403的所有元素写入到保持存储器中,然后从保持存储器中读取层403的所有元素连同相应的内核权重,将它们全部存储在操作存储器中,然后将层404的所有元素写入到保持存储器中,然后从保持存储器中读取层404的所有元素连同相应的内核权重,将它们全部存储在操作存储器中,然后将层405的所有元素写入到保持存储器中。
使用深度优先卷积,可以同时处理操作存储器的大小所允许数量的层。该数量可以是预定的,或者可以使用所谓的贪婪算法来动态地确定,其中,在操作存储器被保留用于层的感受野和权重之后,确定操作存储器是否能够支持下一层的感受野和内核,并且如果能够,则将下一层添加到深度优先卷积。如果不能,则可以在完成了正在进行的深度优先卷积过程之后,将下一层的计算值写入保持存储器以便进一步处理。无论同时处理的层数是多少,或者无论选择的数量是多少,深度优先层集合中的最后一个层可以被称为截止层,其值被写出到保持存储器。在DCN 401的上述实施方式中,截止层是层405。
注意,使用大于1的步长,在一层中具有多个通道(例如,使用多个滤波器),或者处理多维张量,将会改变需要存储在操作存储器中的元素的相应数量,然而,总体方法—在仍处理当前层的同时在随后的层中执行卷积和其它运算—将保持基本相同。
在一个实施例中,层402、403、404和405可以分别对应于图2D的层232、218、220和224,其中,层402、403和404是卷积层,并且输入张量和内核是二维数组。在该实施例中,可以将图4视为示出了层402、403、404和405的横截面,其中,可以将卷积过程形象化为细长的楔形,该楔形具有二维锥形或漏斗形形式的第一横截面和梯形形式的第二横截面,其中,如下所述,感受野可以是拉伸感受野。
图5是示例性DCN 501中的2维卷积层的深度优先卷积处理的几个阶段的示例性进展500的图示。DCN 501包括三个卷积层502、503和504和第四层505,其中这四层例如可以分别对应于图2D的网络200的层232、218、220和224,或者图3的网络350的层356(1)-(3)和362(1)。注意,DCN 501可以具有在任何两个连续卷积层之间的居间非卷积层(未示出),诸如例如非线性层、归一化层和/或池化层。
每个卷积层接收具有长度x(i)和宽度y(i)的输入张量,并使用具有长度x(k)和宽度y(k)的内核。注意,本文中使用长度x和宽度y作为张量的第一维度和张量的正交的第二维度的简写,而并不表示物理测量值。在常规卷积处理中,使用具有与内核相同的尺寸的感受野来处理输入张量,DCN 501使用具有长度x(k)和宽度y(i)的拉伸感受野。即,DCN 501的层的拉伸感受野具有与相应内核相同的长度和与相应输入张量相同的宽度。注意,对于任何特定层,可以选择长度轴和宽度轴,使得长度x(i)大于或等于宽度y(i)。如图5所示,第一层502接收长度502(x(i))为15且宽度502(y(i))为13(即15×13)的输入张量,使用长度502(x(k))为3且宽度为3(即3×3)的内核(未示出),以及长度502(x(k))为3且宽度502(y(i))为13(即3×13)的拉伸感受野506。
在处理DCN的第一阶段501(1)中,将输入张量的502(x(k))×502(y(i))(即,3×13=39)个元素从保持存储器提取到操作存储器中以形成感受野506(1)。将感受野与层502的第一内核进行卷积,以生成用于层503的第二层输入张量的输入条带507(1)。输入条带507(1)是11元素向量的形式或者长度为一且宽度503(y(i))为11的矩阵的形式。如可以看出的,从感受野506生成输入条带507可以直观地表示为楔形510,其基部是感受野506,其顶点是条带507。
在处理DCN的第二阶段501(2)中,从保持存储器提取输入张量的宽度为502(y(i))或13个附加元素的条带,以便与一些先前提取的元素一起形成拉伸感受野506(2)。将拉伸感受野506(2)与层502的第一内核进行卷积,以生成用于层503的第一第二层输入张量的输入条带507(2)。由层502的输入张量的元素条带508(2)使用的操作存储器点可以被释放并重新使用,因为任何未来的卷积都将不需要那些值。应当注意,一旦完成了前一阶段的相应计算,并且在从保持存储器中提取输入张量的附加元素之前,就可以释放上述操作存储器点以及任何其它操作存储器点。
在处理DCN的第三阶段501(3)中,从保持存储器提取输入张量的另一502(y(i))或13个附加元素,以便与一些先前提取的元素一起形成感受野506(3),将感受野506(3)与层502的第一内核进行卷积,以生成用于第一第二层输入张量的输入条带507(3)。由层502的输入张量的元素508(3)使用的操作存储器点可以被释放并重新使用。
卷积层503使用3×3的内核,并且因此,拉伸感受野512具有为3的长度503(x(k))和为11的宽度503(y(i))(即,3×11)。通过处理DCN的第三阶段501(3),已经生成了用于拉伸感受野512(3)的所有元素,并且由此,感受野512(3)可以与层503的第一内核进行卷积,以生成用于层504的第三层输入张量的输入条带509(3)。输入条带509(3)是11元素向量的形式或者长度为一且宽度504(y(i))为11的矩阵的形式。注意,层503的卷积可以涉及使用填充(未示出)来生成具有与层503的输入相同尺寸的层504的输出(而不是假设不使用填充则会产生的较小输出)。
在随后的阶段(未示出),将以与以上参考层502描述的相同的方式,释放并重新使用由层503的不再需要的元素条带所使用的存储器点。在进一步的后续阶段中,一旦层504具有足够的输入元素以填充整个拉伸感受野(未示出)并提供用于层505的输入张量的值,就将同样的处理应用于层504。注意,例如,如果没有足够的操作存储器来存储层505的输入张量的值,则可以将其写出到保持存储器。卷积层502、503和504将先后地连续地对它们各自的输入张量进行卷积,直到这三层的卷积完成为止。然后,可以将层505的输入张量从保持存储器中读入到操作存储器中,以便进一步处理。
注意,在一些具有有限的操作存储器的实施方式中,可以使用多个相应的拉伸感受野以代替单个拉伸感受野,其中每个拉伸感受野被拉伸至相应输入张量的宽度的一部分。这将需要一些附加处理以适当地将部分拉伸的感受野拼接在一起,但是大部分处理将是如上参考图5的DCN 501所述的。注意,就本公开内容的实施方式仅在一个维度上移动滑动的拉伸感受野的程度而言,可以因此避免重叠锥体的重新计算。
如上所述,上述层中的任何层可以具有多个内核(例如,用于多个通道),这将产生用于后续层的多个对应输入张量(例如,特征映射)。以上说明仅描述了每层的第一内核以简化说明。在一层中具有多个内核的DCN将基本上如上所述地针对每个内核进行操作。
图6是根据本公开内容的实施例的过程600的流程图。过程600开始于将第一第一层内核以及第一层输入的一部分从保持存储器提取到操作存储器中(步骤601)。该过程继续使用第一第一层内核和提取到的部分来开始第一层输入的卷积处理以生成用于第一第二层输入的值条带(步骤602)。在完成第一层输入的卷积之前,该过程提取第一第二层内核,并使用第一第二层内核来开始第一第二层输入的卷积处理,以生成用于第一第三层输入的值(步骤603)。该过程继续提取第一层输入的部分,先后地对第一层输入和第一第二层输入执行卷积,并且释放并重新使用包含不再需要的值的操作存储器点(步骤604)。该过程继续直到第一层输入的卷积和第一第二层输入的卷积完成,以生成完整的第一第三层输入(步骤605)。
结合本文所述的方面描述的各种说明性电路可在集成电路(IC)中或用集成电路(IC)来实施,所述集成电路诸如处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以实现为计算器件的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP内核、或者任何其它这种配置。
还应注意,描述了本文任何示例性方面中描述的操作步骤以提供示例。所描述的操作可以以不同于所说明的顺序的许多不同顺序来执行。此外,在单个操作步骤中描述的操作在实践中可以在多个不同步骤中执行。另外,可以组合在示例性方面中讨论的一个或多个操作步骤。应当理解,流程图中所示的操作步骤可以进行许多不同的修改,这对于本领域技术人员来说是显而易见的。本领域技术人员还将理解,可以使用多种不同的技术和方法中的任何种来表示信息和信号。例如,在以上全部描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或者其任意组合来表示。
如本文中所使用的,提及项目列表中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一个”旨在覆盖a、b、c、a-b、a-c、b-c和a-b-c以及与相同元素的倍数的任何组合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c和c-c-c或者a、b和c的任何其他排序)。
提供本公开内容以使得本领域的任何技术人员能够实现或使用本公开内容的方面。本领域技术人员将容易明白对本公开内容的各种修改,并且可以在不脱离本公开内容的精神或范围的情况下将本文定义的一般原理应用于其它变化。因此,本公开内容并不旨在限于本文所描述的示例和设计,而应被给予与本文公开的原理和新颖特征相一致的最大范围。
Claims (22)
1.一种用于使用深度卷积网络的计算机实现的方法,其中,所述深度卷积网络包括:第一卷积层、第二卷积层和第三层,所述方法包括:
将第一层内核与第一层输入张量的第一第一层拉伸感受野进行卷积,以生成用于第二层输入张量的第一条带的值;
随后将第二层内核与所述第二层输入张量的第一第二层拉伸感受野进行卷积,以生成用于第三层输入张量的第一条带的值;以及
随后将所述第一层内核与所述第一层输入张量的第二第一层拉伸感受野进行卷积,以生成用于所述第二层输入张量的第二条带的值,其中:
所述第一层内核具有第一层内核长度和第一层内核宽度;
所述第一层输入张量具有第一层输入长度和第一层输入宽度;
所述第二层输入张量具有第二层输入长度和第二层输入宽度;
所述第二层内核具有第二层内核长度和第二层内核宽度;
第一层感受野具有等于所述第一层内核长度的长度和大于所述第一层内核宽度的第一层拉伸感受野宽度;以及
第二层感受野具有等于所述第二层内核长度的长度和大于所述第二层内核宽度的第二层拉伸感受野宽度。
2.根据权利要求1所述的方法,还包括:
将所述第一层拉伸感受野与一个或多个附加的第一层内核进行卷积,以生成用于所述第二层输入张量的对应附加条带的值;以及
将所述第二层拉伸感受野与一个或多个附加的第二层内核进行卷积,以生成用于所述第三层输入张量的对应附加条带的值。
3.根据权利要求1所述的方法,其中:
所述第一层拉伸感受野宽度等于所述第一层输入宽度;以及
所述第二层拉伸感受野宽度等于所述第二层输入宽度。
4.根据权利要求3所述的方法,其中:
所述第二层输入张量的条带具有为一的长度和等于所述第二层输入宽度的宽度;
所述第三层输入张量具有第三层输入长度和第三层输入宽度;以及
所述第三层输入张量的条带具有为一的长度和等于所述第三层输入宽度的宽度。
5.根据权利要求1所述的方法,其中:
所述深度卷积网络还包括在所述第一卷积层与所述第二卷积层之间的至少一个非卷积层;以及
生成所述第二层输入张量包括:除了所述第一层输入张量的卷积之外还执行所述至少一个非卷积层的操作。
6.根据权利要求5所述的方法,其中,所述至少一个非卷积层包括池化层、非线性层和归一化层中的一个或多个。
7.根据权利要求1所述的方法,其中:
每个内核包括对应的权重集;
所述方法还包括:将所述第一层内核的权重、所述第二层内核的权重从保持存储器读入到操作存储器中;以及
将所述第一层内核与所述第一第一层拉伸感受野进行卷积包括:将所述第一第一层拉伸感受野的值从所述保持存储器读入到所述操作存储器中,而不将第一层输入的所有值都读入到所述操作存储器中。
8.根据权利要求7所述的方法,其中:
将所述第一层内核与所述第一第一层拉伸感受野进行卷积之后,在随后将所述第一层内核与所述第一层输入张量的第二第一层拉伸感受野进行卷积之前,在所述操作存储器中释放并重新使用用于所述第一第一层拉伸感受野的所述值中的至少一些。
9.根据权利要求1所述的方法,其中:
所述第三层为卷积层;
所述深度卷积网络包括零个或更多个附加卷积层,所述零个或更多个附加卷积层被连续地配置在所述第三层之后,以用于在层集合中与所述第一卷积层、所述第二卷积层和所述第三层同时进行处理;
所述层集合包括截止层。
10.根据权利要求9所述的方法,其中,所述截止层是使用贪婪算法动态地确定的。
11.一种用于使用深度卷积网络的计算设备,其中:
所述深度卷积网络包括:
第一卷积层,被配置为使用第一层内核来对第一层输入张量进行卷积,以生成第二层输入张量;
第二卷积层,被配置为使用第二层内核来对所述第二层输入张量进行卷积,以生成第三层输入张量;以及
第三层,被配置为接收所述第三层输入张量;
所述第一层内核具有第一层内核长度和第一层内核宽度;
所述第一层输入张量具有第一层输入长度和第一层输入宽度;
所述第二层输入张量具有第二层输入长度和第二层输入宽度;
所述第二层内核具有第二层内核长度和第二层内核宽度;
所述计算设备被配置为:
将所述第一层内核与所述第一层输入张量的第一第一层拉伸感受野进行卷积,以生成用于所述第二层输入张量的第一条带的值;
随后将所述第二层内核与所述第二层输入张量的第一第二层拉伸感受野进行卷积,以生成用于所述第三层输入张量的第一条带的值;
随后将所述第一层内核与所述第一层输入张量的第二第一层拉伸感受野进行卷积,以生成用于所述第二层输入张量的第二条带的值;
第一层感受野具有等于所述第一层内核长度的长度和大于所述第一层内核宽度的第一层拉伸感受野宽度;以及
第二层感受野具有等于所述第二层内核长度的长度和大于所述第二层内核宽度的第二层拉伸感受野宽度。
12.根据权利要求11所述的设备,其中:
所述第一卷积层被配置为以与所述第一层内核相同的方式使用一个或多个附加的第一层内核,以生成用于所述第二层输入张量的对应附加条带的值;以及
所述第二卷积层被配置为以与所述第二层内核相同的方式使用一个或多个附加的第二层内核,以生成用于所述第三层输入张量的对应附加条带的值。
13.根据权利要求11所述的设备,其中:
所述第一层拉伸感受野宽度等于所述第一层输入宽度;以及
所述第二层拉伸感受野宽度等于所述第二层输入宽度。
14.根据权利要求13所述的设备,其中:
所述第二层输入张量的条带具有为一的长度和等于所述第二层输入宽度的宽度;
所述第三层输入张量具有第三层输入长度和第三层输入宽度;以及
所述第三层输入张量的条带具有为一的长度和等于所述第三层输入宽度的宽度。
15.根据权利要求11所述的设备,其中:
所述深度卷积网络还包括在所述第一卷积层与所述第二卷积层之间的至少一个非卷积层;以及
生成所述第二层输入张量包括:除了所述第一层输入张量的所述卷积之外还执行所述至少一个非卷积层的操作。
16.根据权利要求15所述的设备,其中,所述至少一个非卷积层包括池化层、非线性层和归一化层中的一个或多个。
17.根据权利要求11所述的设备,其中:
每个内核包括对应的权重集;
所述设备还被配置为将所述第一层内核的权重、所述第二层内核的权重从保持存储器读入到操作存储器中;以及
在将所述第一层内核与所述第一第一层拉伸感受野进行卷积时,所述设备被配置为将所述第一第一层拉伸感受野的值从所述保持存储器读入到所述操作存储器中,而不将第一层输入的所有值都读入到所述操作存储器中。
18.根据权利要求17所述的设备,其中,所述设备被配置为:在所述第一层内核与所述第一第一层拉伸感受野的卷积之后,在随后将所述第一层内核与所述第一层输入张量的第二第一层拉伸感受野进行卷积之前,在所述操作存储器中释放并重新使用用于所述第一第一层拉伸感受野的值中的至少一些。
19.根据权利要求11所述的设备,其中:
所述第三层为卷积层;
所述深度卷积网络包括零个或更多个附加卷积层,所述零个或更多个附加卷积层被连续地配置在所述第三层之后,以用于在层集合中与所述第一卷积层、所述第二卷积层和所述第三层同时进行处理;
所述层集合包括截止层。
20.根据权利要求19所述的设备,其中,所述设备被配置为使用贪婪算法来动态地确定所述截止层。
21.一种用于使用深度卷积网络的计算设备,其中:
所述深度卷积网络包括:
第一卷积层,被配置为使用第一层内核来对第一层输入张量进行卷积,以生成第二层输入张量;
第二卷积层,被配置为使用第二层内核对所述第二层输入张量进行卷积以生成第三层输入张量;以及
第三层,被配置为接收所述第三层输入张量;
所述第一层内核具有第一层内核长度和第一层内核宽度;
所述第一层输入张量具有第一层输入长度和第一层输入宽度;
所述第二层输入张量具有第二层输入长度和第二层输入宽度;
所述第二层内核具有第二层内核长度和第二层内核宽度;
所述计算设备包括:
用于将所述第一层内核与所述第一层输入张量的第一第一层拉伸感受野进行卷积以生成用于所述第二层输入张量的第一条带的值的单元;
用于随后将所述第二层内核与所述第二层输入张量的第一第二层拉伸感受野进行卷积以生成用于所述第三层输入张量的第一条带的值的单元;
用于随后将所述第一层内核与所述第一层输入张量的第二第一层拉伸感受野进行卷积以生成用于所述第二层输入张量的第二条带的值的单元;
第一层感受野具有等于所述第一层内核长度的长度和大于所述第一层内核宽度的第一层拉伸感受野宽度;以及
第二层感受野具有等于所述第二层内核长度的长度和大于所述第二层内核宽度的第二层拉伸感受野宽度。
22.一种包括指令的非暂时性计算机可读介质,所述指令在由至少一个处理器执行时使所述处理器执行用于使用深度卷积网络的方法,其中,所述深度卷积网络包括第一卷积层、第二卷积层和第三层,所述方法包括:
将第一层内核与第一层输入张量的第一第一层拉伸感受野进行卷积,以生成用于第二层输入张量的第一条带的值;
随后将第二层内核与所述第二层输入张量的第一第二层拉伸感受野进行卷积,以生成用于第三层输入张量的第一条带的值;以及
随后将所述第一层内核与所述第一层输入张量的第二第一层拉伸感受野进行卷积,以生成用于所述第二层输入张量的第二条带的值,其中:
所述第一层内核具有第一层内核长度和第一层内核宽度;
所述第一层输入张量具有第一层输入长度和第一层输入宽度;
所述第二层输入张量具有第二层输入长度和第二层输入宽度;
所述第二层内核具有第二层内核长度和第二层内核宽度;
第一层感受野具有等于所述第一层内核长度的长度和大于所述第一层内核宽度的第一层拉伸感受野宽度;以及
第二层感受野具有等于所述第二层内核长度的长度和大于所述第二层内核宽度的第二层拉伸感受野宽度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/443,695 US11487998B2 (en) | 2019-06-17 | 2019-06-17 | Depth-first convolution in deep neural networks |
US16/443,695 | 2019-06-17 | ||
PCT/US2020/038081 WO2020257245A1 (en) | 2019-06-17 | 2020-06-17 | Depth-first convolution in deep neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113841162A CN113841162A (zh) | 2021-12-24 |
CN113841162B true CN113841162B (zh) | 2024-04-26 |
Family
ID=71465446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080037223.9A Active CN113841162B (zh) | 2019-06-17 | 2020-06-17 | 深度神经网络中的深度优先卷积 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11487998B2 (zh) |
EP (1) | EP3983952A1 (zh) |
KR (1) | KR20220020816A (zh) |
CN (1) | CN113841162B (zh) |
AU (1) | AU2020297435A1 (zh) |
BR (1) | BR112021024591A2 (zh) |
WO (1) | WO2020257245A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704197B (zh) * | 2019-10-17 | 2022-12-09 | 北京小米移动软件有限公司 | 处理内存访问开销的方法、装置及介质 |
KR20210079785A (ko) * | 2019-12-20 | 2021-06-30 | 삼성전자주식회사 | 뉴럴 네트워크의 컨볼루션 연산 처리 방법 및 장치 |
CN112801266B (zh) * | 2020-12-24 | 2023-10-31 | 武汉旷视金智科技有限公司 | 神经网络构建方法、装置、设备及介质 |
KR102361249B1 (ko) * | 2021-08-02 | 2022-02-14 | 오픈엣지테크놀로지 주식회사 | 브로드캐스팅 멀티플라이 최적화 방법 및 이를 이용한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622302A (zh) * | 2016-07-13 | 2018-01-23 | 谷歌有限责任公司 | 用于卷积神经网络的超像素方法 |
CN108073983A (zh) * | 2016-11-10 | 2018-05-25 | 谷歌有限责任公司 | 在硬件中执行核心跨越 |
WO2018217829A1 (en) * | 2017-05-23 | 2018-11-29 | Intel Corporation | Methods and apparatus for enhancing a neural network using binary tensor and scale factor pairs |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10706330B2 (en) * | 2015-10-01 | 2020-07-07 | Intellivision Technologies Corp | Methods and systems for accurately recognizing vehicle license plates |
US10929749B2 (en) | 2017-04-24 | 2021-02-23 | Intel Corporation | Neural network optimization mechanism |
US10268646B2 (en) * | 2017-06-06 | 2019-04-23 | Facebook, Inc. | Tensor-based deep relevance model for search on online social networks |
US20190044942A1 (en) * | 2017-08-01 | 2019-02-07 | Twosense, Inc. | Deep Learning for Behavior-Based, Invisible Multi-Factor Authentication |
RU2691214C1 (ru) * | 2017-12-13 | 2019-06-11 | Общество с ограниченной ответственностью "Аби Продакшн" | Распознавание текста с использованием искусственного интеллекта |
US11741342B2 (en) * | 2018-05-18 | 2023-08-29 | Baidu Usa Llc | Resource-efficient neural architects |
US11861484B2 (en) | 2018-09-28 | 2024-01-02 | Qualcomm Incorporated | Neural processing unit (NPU) direct memory access (NDMA) hardware pre-processing and post-processing |
CN110378468B (zh) | 2019-07-08 | 2020-11-20 | 浙江大学 | 一种基于结构化剪枝和低比特量化的神经网络加速器 |
-
2019
- 2019-06-17 US US16/443,695 patent/US11487998B2/en active Active
-
2020
- 2020-06-17 BR BR112021024591A patent/BR112021024591A2/pt unknown
- 2020-06-17 EP EP20736850.7A patent/EP3983952A1/en active Pending
- 2020-06-17 KR KR1020217040432A patent/KR20220020816A/ko unknown
- 2020-06-17 AU AU2020297435A patent/AU2020297435A1/en active Pending
- 2020-06-17 WO PCT/US2020/038081 patent/WO2020257245A1/en unknown
- 2020-06-17 CN CN202080037223.9A patent/CN113841162B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107622302A (zh) * | 2016-07-13 | 2018-01-23 | 谷歌有限责任公司 | 用于卷积神经网络的超像素方法 |
CN108073983A (zh) * | 2016-11-10 | 2018-05-25 | 谷歌有限责任公司 | 在硬件中执行核心跨越 |
WO2018217829A1 (en) * | 2017-05-23 | 2018-11-29 | Intel Corporation | Methods and apparatus for enhancing a neural network using binary tensor and scale factor pairs |
Non-Patent Citations (1)
Title |
---|
Breaking High-Resolution CNN Bandwidth Barriers With Enhanced Depth-First Execution;Koen Goetschalckx等;《IEEE Journal on Emerging and Selected Topics in Circuits and Systems》;第9卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
BR112021024591A2 (pt) | 2022-01-25 |
CN113841162A (zh) | 2021-12-24 |
KR20220020816A (ko) | 2022-02-21 |
EP3983952A1 (en) | 2022-04-20 |
US11487998B2 (en) | 2022-11-01 |
AU2020297435A1 (en) | 2021-12-16 |
WO2020257245A1 (en) | 2020-12-24 |
TW202105258A (zh) | 2021-02-01 |
US20200394500A1 (en) | 2020-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113841162B (zh) | 深度神经网络中的深度优先卷积 | |
KR102582194B1 (ko) | 선택적 역전파 | |
US20210089922A1 (en) | Joint pruning and quantization scheme for deep neural networks | |
US20190087713A1 (en) | Compression of sparse deep convolutional network weights | |
US20160328646A1 (en) | Fixed point neural network based on floating point neural network quantization | |
US20210158166A1 (en) | Semi-structured learned threshold pruning for deep neural networks | |
US11776608B2 (en) | Static random-access memory (SRAM) compute in-memory integration | |
EP3785176A1 (en) | Learning a truncation rank of singular value decomposed matrices representing weight tensors in neural networks | |
US11551076B2 (en) | Event-driven temporal convolution for asynchronous pulse-modulated sampled signals | |
US11500960B2 (en) | Memory cell for dot product operation in compute-in-memory chip | |
US10777259B1 (en) | Static random-access memory (SRAM) for in-memory computing | |
WO2021050440A1 (en) | Performing xnor equivalent operations by adjusting column thresholds of a compute-in-memory array | |
US11410040B2 (en) | Efficient dropout inference for bayesian deep learning | |
US20210279036A1 (en) | Compute-in-memory (cim) binary multiplier | |
WO2022087242A1 (en) | Personalized neural network pruning | |
US11494629B2 (en) | Charge-sharing compute-in-memory system | |
CN116863194A (zh) | 一种足溃疡图像分类方法、系统、设备及介质 | |
US20200293864A1 (en) | Data-aware layer decomposition for neural network compression | |
US20230076290A1 (en) | Rounding mechanisms for post-training quantization | |
US11704571B2 (en) | Learned threshold pruning for deep neural networks | |
US20220159278A1 (en) | Skip convolutions for efficient video processing | |
TWI837388B (zh) | 用於深度神經網路中的深度優先迴旋的方法、設備及媒體 | |
WO2022170085A1 (en) | Semi-structured learned threshold pruning for deep neural networks | |
WO2024102526A1 (en) | Realistic distraction and pseudo-labeling regularization for optical flow estimation | |
WO2023249821A1 (en) | Adapters for quantization |
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 |