CN107844827A - 执行卷积神经网络中的卷积层的运算的方法和装置 - Google Patents

执行卷积神经网络中的卷积层的运算的方法和装置 Download PDF

Info

Publication number
CN107844827A
CN107844827A CN201711212080.7A CN201711212080A CN107844827A CN 107844827 A CN107844827 A CN 107844827A CN 201711212080 A CN201711212080 A CN 201711212080A CN 107844827 A CN107844827 A CN 107844827A
Authority
CN
China
Prior art keywords
convolution
dimension
original
individual
folding
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
Application number
CN201711212080.7A
Other languages
English (en)
Other versions
CN107844827B (zh
Inventor
李德林
凌坤
陈亮
李建军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Horizon Robotics Technology Co Ltd
Original Assignee
Beijing Horizon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Horizon Information Technology Co Ltd filed Critical Beijing Horizon Information Technology Co Ltd
Priority to CN201711212080.7A priority Critical patent/CN107844827B/zh
Publication of CN107844827A publication Critical patent/CN107844827A/zh
Priority to JP2018221335A priority patent/JP6856609B2/ja
Priority to KR1020180149480A priority patent/KR20190062305A/ko
Priority to US16/203,017 priority patent/US11468301B2/en
Priority to EP18208762.7A priority patent/EP3489863A1/en
Application granted granted Critical
Publication of CN107844827B publication Critical patent/CN107844827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

公开了一种执行卷积神经网络中的卷积层的运算的方法和装置。该执行卷积神经网络中的卷积层的运算的方法包括:按照卷积层所指定的填充方式填充提供给卷积层的未折叠特征数据;在宽度和高度中的至少一个维度上折叠经填充的未折叠特征数据,以生成折叠特征数据;在至少一个维度上折叠所述卷积层的原始卷积核,以生成与原始卷积核相对应的一个或多个折叠卷积核;以及使用一个或多个折叠卷积核对折叠特征数据执行卷积运算。通过该方法,可以提高通道利用率,降低缓存占用量,并且可以提高运算效率。

Description

执行卷积神经网络中的卷积层的运算的方法和装置
技术领域
本公开总体上涉及卷积神经网络的技术领域,并且具体地涉及执行卷积神经网络中的卷积层的运算的方法和装置。
背景技术
基于卷积神经网络的深度学习技术已经被广泛地应用于图像识别、视频分析、自然语言处理、辅助驾驶等不同的领域。卷积神经网络中的运算量通常很大。期望能够使用诸如通用的中央处理器(CPU)、图形处理器(GPU)或专用加速器等硬件高效地执行卷积神经网络中的运算。
发明内容
一方面,提供一种执行卷积神经网络中的卷积层的运算的方法。该方法可以包括:按照卷积层所指定的填充方式填充提供给卷积层的未折叠特征数据;在宽度和高度中的至少一个维度上折叠经填充的未折叠特征数据,以生成折叠特征数据;在至少一个维度上折叠卷积层的原始卷积核,以生成与原始卷积核相对应的一个或多个折叠卷积核;以及使用一个或多个折叠卷积核对折叠特征数据执行卷积运算。
另一方面,还提供一种执行卷积神经网络中的卷积层的运算的装置。该装置可以包括被配置为执行上述方法的一个或多个处理器。
另一方面,还提供一种执行卷积神经网络中的卷积层的运算的装置。该装置可以包括:预处理器,被配置为按照卷积层所指定的填充方式填充提供给卷积层的未折叠特征数据;第一折叠器,被配置为在宽度和高度中的至少一个维度上折叠经填充的未折叠特征数据,以生成折叠特征数据;第二折叠器,被配置为在至少一个维度上折叠卷积层的原始卷积核,以生成与原始卷积核相对应的一个或多个折叠卷积核;以及运算器,被配置为使用一个或多个折叠卷积核对折叠特征数据执行卷积运算。
另外,还提供一种非临时性存储介质,在其上存储有在被计算装置执行时执行上述方法的程序指令。
通过根据本公开的实施例的方法和/或装置,能够提高通道利用率,降低缓存占用量,并且可以提高运算效率。
附图说明
图1示出根据本公开的实施例的执行卷积神经网络中的卷积层的运算的方法的流程图。
图2示出根据本公开的实施例的折叠未折叠特征数据的示例。
图3示出根据本公开的实施例的折叠原始卷积核的示例。
图4示出根据本公开的实施例的使用折叠卷积核对折叠特征数据执行卷积运算的示例。
图5示出根据本公开的实施例的使用折叠卷积核对折叠特征数据执行卷积运算的示例。
图6示出根据本公开的实施例的执行卷积神经网络中的卷积层的运算的装置的框图。
图7示出根据本公开的实施例的执行卷积神经网络中的卷积层的运算的装置的框图。
具体实施方式
提供给卷积神经网络的一个特征数据可以被视为一个数据立方体,并且可以具有宽度、高度和深度(即,不同的通道)等多个维度,该特征数据中的每个数据可以分别对应于数据立方体中的一个点。相应地,卷积神经网络中用于卷积运算的权重参数每个卷积核也可以被视为一个数据立方体。
通常,在描述一个数据立方体时,可以采用术语“切片”。如果将一个数据立方体的三维度视为分别对应于三维笛卡尔坐标系中的X轴、Y轴和Z轴所表示的维度,则该数据立方体在与X轴所表示的维度相对应的第一维度上的一个切片表示使用与X轴正交的一个平面对该数据立方体中的数据进行采样所获得的结果,该结果是一个在由Y轴和Z轴所表示的二维平面上的一个矩形数据。形式化地,如果将一个数据立方体视为点的集合Cube={(x,y,z)|x∈[0,W),y∈[0,H),x∈[0,D)},W、H和D均为大于0的整数,则该数据立方体的在与X轴所表示的维度相对应的第一维度上的一个切片Si={(y,z)|x=i,y∈[0,H),x∈[0,D)},i∈[0,W)。所包含的所有数据均为零(或者相当于零)的值的切片可以被称为零切片。
在本文中,为了描述上的方便,在描述特征数据或卷积核在某一维度上的数据时,也使用术语“切片”,例如在宽度的维度上的切片(在本文中简称为“宽度切片”)、在高度的维度上的切片(在本文中简称为“高度切片”)等。
在本文中,当提及在数据立方体A的第一维度上(例如宽度这样的维度)填充或附加一个或多个零切片时,可以意味着通过在A的第一维度上的某个边界处(例如,在宽度上的左侧或右侧)增加一个或多个零切片来增加A的第一维度的维度值(例如,宽度),所增加的每个零切片在另外的两个维度(例如,高度和深度这两个维度)上与原始的A具有相同的维度值(例如,高度值和深度值)。
在本文中,当提及在数据立方体A的第一维度和第二维度上(例如,宽度和高度这两个维度)填充或附加一个或多个零切片时,可以意味着通过在A的第一维度上的某个边界处(例如,在宽度上的左侧或右侧)增加一个或多个零切片来增加A的第一维度的维度值(例如,宽度),所增加的每个零切片在另外的两个维度(例如,高度和深度这两个维度)上与原始的A具有相同的维度值(例如,高度值和深度值),然后在增加宽度之后所获得的数据立方体A’的第二维度上的某个边界处(例如,在高度上的上侧或下侧)增加一个或多个零切片,以增加A’的第二维度的维度值(例如,高度),所增加的每个零切片在另外的两个维度(例如,宽度和深度这两个维度)上与A’具有相同的维度值(例如,宽度值和深度值)。
在本文中,当提及对使数据立方体A的各个切片在深度上对齐时,可以意味着针对A的不具有期望深度值的切片(可以是宽度切片,也可以是高度切片),在深度上添补零(或者相当于零的值),使得添补后的A的各个切片具有期望深度值。
在本文中,当提及在数据立方体A的第一维度和/或第二维度上进行填充时,除非特别说明,否则所填充的零切片的数量可以是零个或一个或多个。
卷积神经网络中的运算量通常很大,期望能够使用诸如通用的中央处理器、图形处理器或专用加速器等硬件高效地执行卷积神经网络中的运算。为了提高运算效率和/或简化硬件设计,例如可以设计支持多通道的存储器来对执行卷积运算的加法器和/或乘法器提供数据,或者将运算器设计为支持多个通道的运算。
通常,提供给卷积神经网络的输入层的特征数据的通道数量可能很少(通常为3个通道或1个通道),并且在卷积神经网络的前馈推理方向上的相对靠前的卷积层的输入特征数据的通道数量也可能很少。为了实现通道对齐,可能需要在深度或通道的维度上对特征数据以及相应的卷积核补充零切片,从而造成例如高速缓冲存储器和/或乘法器等硬件资源的浪费,并且可能会引用很多无效的运算。
图1示出根据本公开的实施例的执行卷积神经网络中的卷积层的运算的示例方法100,该方法可以包括:
步骤S101,按照该卷积层所指定的填充方式来填充提供给卷积层的未折叠特征数据;
步骤S105,在宽度和高度中的至少一个维度上折叠经填充的未折叠特征数据,以生成折叠特征数据;
步骤S110,在宽度和高度中的至少一个维度上折叠该卷积层的原始卷积核,以生成与该原始卷积核相对应的一个或多个折叠卷积核;以及
步骤S115,使用所生成的一个或多个折叠卷积核对折叠特征数据执行卷积运算。
通过根据本公开的实施例的方法,至少能够简化硬件设计,提高通道或硬件资源的利用率,和/或提高运算的并行度。
如图1所示,根据本公开的实施例的执行卷积神经网络中的卷积层的运算的示例方法100可以开始于步骤S101,以按照该卷积层所指定的填充方式来填充提供给卷积层的未折叠特征数据。
在卷积神经网络的一个卷积层中,针对提供给该卷积层的原始的未折叠特征数据,设计与原始的未折叠特征数据具有相同的通道数量(即,深度相同)的卷积核,并且使该卷积核在宽度上以步长Sx(大于或等于1)并且在高度上以步长Sy(大于或等于1)在原始的未折叠特征数据上滑动,并对原始的未折叠特征数据中的滑动窗口所对应的部分的数据进行卷积,从而获得通道数量为1的输出特征数据(或激活值)。针对该卷积层可能设计多个卷积核,这些卷积核形成该卷积层的权重参数,并且使用这些卷积核所获得的多个结果分别对应于该卷积层输出特征数据的不同通道上的数据。
为了能够对提供给该卷积层的原始的未折叠特征数据正确地执行卷积运算并获得具有期望宽度和高度的输出特征数据,在执行卷积之前,可以按照指定的填充方式,在原始的未折叠特征数据的在宽度和高度这两个维度上的四周(包括在宽度上的起始边界和结束边界以及在高度上的起始边界和结束边界)填充零切片,所填充的零切片的数量取决于所指定的填充方式,可以为0个、1个或多个。
对于已经设计好的卷积神经网络,每个卷积层中所使用的权重参数(包括卷积核的数量以及每个卷积核的宽度、高度、深度和所包含的值)以及针对提供给该卷积层的原始的未折叠特征数据的填充方式总是已知的。这些设置可以由该卷积神经网络的设计人员在卷积神经网络的设计时事先指定,也可以通过学习来设计或调整。
在根据本公开的实施例的示例方法100中,在一个卷积层接收到一个原始的未经折叠的输入特征数据时,首先在步骤S101中对所接收到的输入特征数据执行预处理,即,按照该卷积层所指定的填充方式对所接收到的输入特征数据进行填充,包括在宽度上的起始边界(左侧)和/或在宽度上的结束边界(右侧)和/或在高度上的起始边界(上侧)和/或在高度上的结束边界(下侧)处填充0个、1个或多个零切片。在另外的实施例中,也可以该卷积层所指定的填充方式确定在所接收到的输入特征数据的左侧和/或上侧的填充量(即,要填充的零切片的数量),然后根据期望输出的特征数据的宽度和/或高度、用于卷积运算的卷积核的宽度和/或高度以及卷积核在宽度和/或高度上的步长,来推算出在所接收到的输入特征数据的右侧和/或下侧的填充量,并进行相应的填充。
然后,方法100继续到步骤S105,以在宽度和高度中的至少一个维度上对经填充(预处理)的未折叠特征数据进行折叠。
在一个实施例中,针对来自步骤S101的经填充的未折叠特征数据FD,可以在宽度和高度中的一个维度D1上,以将FD的在D1上的每Nx个(在本文中,也被称为在D1上的拼接数量,在上下文清楚的情况下可以被简称为拼接数量)的连续的切片在深度上拼接到一起的方式,对FD进行折叠并生成FD’,使得FD中的在D1上的第ifx×Nx+jfx个切片的所有Cx个通道的数据对应于FD’的在D1上的第ifx个切片的从第jfx×Cx个通道开始的连续的Cx个通道的数据,其中,Nx为大于1的整数,ifx为大于或等于0的整数,jfx为大于或等于0且小于Nx的整数,Cx为大于0的整数。
在另一个实施例中,可以在获得FD’之后,继续在宽度和高度中的另一个维度D2上,以将FD’的在D2上的每Ny(在本文中,也被称为在D2上的拼接数量,在上下文清楚的情况下可以被简称为拼接数量)个的连续的切片在深度上拼接到一起的方式,对FD’进行折叠并生成FD”,使得FD’中的在D2上的第ify×Ny+jfy个切片的所有Cy个通道的数据对应于FD”的在D2上的第ify个切片的从第jfy×Cy个通道开始的连续的Cy个通道的数据,其中,Ny为大于1的整数,ify为大于或等于0的整数,jfy为大于或等于0且小于Ny的整数,Cy为大于0的整数。
图2的上半部示出对经填充的未折叠特征数据FD1在宽度上进行折叠的示例。在该示例中,经填充的未折叠特征数据FD1包含原始的数据切片S1至S6,并且在左侧和右侧分别包含一个填充用的零切片P。
如图2的上半部所示,可以通过将经填充的未折叠特征数据FD1在宽度上的每2个连续的切片(即,左侧的P和S1、S2和S3、S4和S5、S6和右侧的P)在深度上拼接到一起,来实现针对FD1的在宽度上的折叠,并生成折叠特征数据FD1’。
在该示例中,折叠特征数据FD1’的宽度变为经填充的未折叠特征数据FD1的宽度的一半,并且深度(通道的数量)变为经填充的未折叠特征数据FD1的深度(通道的数量)的两倍,使得通道利用率增加并且使得在宽度方向上的运算量减小。
图2的下半部示出对经填充的未折叠特征数据FD2在高度上进行折叠的示例。在该示例中,经填充的未折叠特征数据FD2包含原始的数据切片S1至S4,并且在上侧和右侧包含一个填充用的零切片P。
如图2的下半部所示,通过将经填充的未折叠特征数据FD2在高度上的每2个连续的切片(即,上侧的P和S1、S2和S3)在深度上拼接到一起,可以实现针对FD2的在高度上的折叠,并生成折叠特征数据FD2’。
在图2的示例中,FD2的高度切片的总数量为5,其不是2的整数倍,使得在FD2的高度切片中,没有可以拼接到切片S4的另外的切片,由此可能导致折叠特征数据FD2’的每个高度切片的通道数量不一致。
针对这样的情况,在一个实施例中,可以在折叠之前先检查FD2的高度切片的总数量。如果总数量不是拼接数量的整数倍,则可以先在FD2的下侧附加一个或多个零切片(图2中未示出),使得FD2的高度切片的总数量成为拼接数量的整数倍。所附加的零切片的数量可以小于拼接数量,也可以根据需要大于拼接数量,例如使得在使用将在下文描述的折叠卷积核对折叠特征数据执行卷积时,卷积的滑动窗口总是在折叠特征数据的内部。
在另外的实施例中,可以在折叠的过程中,针对经填充(预处理)的未折叠特征数据在要折叠的维度上的最后一个切片,确定是否仍需要在该切片的基础上继续在深度上拼接以使所获得的折叠特征数据的各个切片的通道数量相同。如果是,例如针对FD2中的S4这样的切片,则可以继续使用额外的一个或多个零切片(例如,图2中的FD2’中的A)与该切片在深度上进行拼接。
在另外的实施例中,可以在折叠之后,对所获得的折叠特征数据添补额外的一个或多个零切片(例如,图2中的FD2’中的A),使得添补后的折叠特征数据的各个高度切片的通道对齐。
在另外的实施例中,可以直接利用硬件的特性或处理能力。例如,在硬件可以具有通道对齐的能力的情况下,未被实际数据占据的通道可以被硬件自动地视为具有零值。在这样的情况下,折叠特征数据(例如图2中的FD2’)中的每个切片的通道将由硬件自动地对齐。
应当意识到,对于在宽度上的折叠,同样可能存在折叠特征数据中的最后的宽度切片的通道数量与其他宽度切片的通道数量不一致的情况。类似地,在宽度上,可以在折叠之前或折叠的过程中或在折叠之后对经填充的未折叠特征数据或者所获得的折叠特征数据进行处理,或者借助硬件的特性自动处理,使得最终获得的折叠特征数据中的每个宽度切片的通道对齐。
在图2的下半部的示例中,折叠特征数据FD2’的高度变为经填充的未折叠特征数据FD2的高度的一半,并且深度(通道的数量)变为经填充的未折叠特征数据FD2的深度(通道的数量)的两倍,使得通道利用率增加并且使得在高度方向上的运算量减小。
另外,如前文所述,可以针对折叠特征数据FD1’继续在高度上进行折叠,也可以针对折叠特征数据FD2’继续在宽度上进行折叠。进一步折叠与初次折叠的不同之处仅在于折叠的维度和折叠的对象不同,因此在本文中不再赘述。
另外,应当理解,根据本公开的实施例的方法不局限于针对原始的未折叠特征数据的填充方式、原始的未折叠特征数据的宽度切片或高度切片的数量以及用于宽度折叠或高度折叠的拼接数量。
例如,拼接数量Nx或Ny可以为3、4或者其他大于1的任何整数。在一个实施例中,可以根据硬件(例如支持多通道的存储器或运算器)所支持的通道的数量来设置用于宽度折叠或高度折叠的拼接数量Nx和/或Ny。例如,在硬件所支持的通道的数量为TC的情况下,可以将维度D1上的拼接数量Nx确定为小于或等于|TC/Cx|并且大于1的某个值,其中,“||”表示取整运算。如果还需要在维度D2上继续折叠,则可以选择Nx和Ny的值,使得Nx×Ny≤|TC/Cx|,并且Nx和Ny的值均大于1。
在示例方法100的步骤S110中,在宽度和高度中的至少一个维度上折叠卷积层的原始卷积核,以生成与该原始卷积核相对应的一个或多个折叠卷积核。一个卷积层的权重参数可以具有一个或多个卷积核,每个卷积核具有相同的宽度和高度,并且通常与提供给该层的特征数据具有相同的深度(即,通道的数量)。因此,应当意识到,下面的描述是针对权重参数的任意一个原始卷积核。换句话说,如果一个卷积层的权重参数具有多个卷积核,则可以针对每个卷积核执行下述的处理。
在一个实施例中,如果在步骤S105中在维度D1(宽度和高度中的一个)上对特征数据进行了折叠,则在步骤S110中,可以通过在原始卷积核K的在D1上的起始边界处分别填充kx×Sx个零切片,来生成与原始卷积核K相对应的一个或多个变换卷积核K[kx],其中,Sx为原始卷积核K在D1上的步长,kx为大于或等于0的整数。例如,可以通过分别0个零切片、Sx个零切片和2×Sx个零切片来生成与原始卷积核K的3个变换卷积核。
可以确定kx的最大值,以控制变换卷积核的数量。例如,可以使kx<Ex,其中,可以将Ex确定为Sx和Nx的最小公倍数除以Sx所得到的结果值,或者Nx除以Nx和Sx的最大公约数所得到的结果值,或者在Sx=1或者Sx与Nx互质的情况下,可以Ex确定为等于Nx。由此,可以生成与原始卷积核K相对应的Ex个变换卷积核K[kx]。
然后,在步骤S110中,可以分别针对每个变换卷积核K[kx],以将D1上的每Nx个的连续的切片在深度上拼接到一起的方式,在D1上对每个K[kx]进行折叠,以针对每个变换卷积核K[kx]生成相应的折叠卷积核K’[kx],使得每个K’[kx]中的在D1上的第ikx×Nx+jkx个切片的所有Cx个通道的数据分别对应于K[kx]的在D1上的第ikx个切片的从第jkx×Cx个通道开始的连续的Cx个通道的数据,其中,ikx为大于或等于0的整数,jkx为大于或等于0且小于Nx的整数。
所生成的变换卷积核K[kx]可能在D1上具有不同的维度值(例如,在D1为宽度的情况下的宽度值),或者可能存在一个或多个变换卷积核K[kx],其在D1上的维度值不是Nx的整数倍,使得对应的K’[kx]的切片在深度上不对齐。
在一个实施例中,可以采用与前文所描述的针对特征数据在折叠之前或折叠过程中或折叠之后进行的填充或附加或添补相类似的方式,针对变换卷积核K[kx]在折叠之前、折叠的过程中或折叠之后执行类似的处理,以使得所有的变换卷积核K[kx]在D1上具有相同的维度值并且所有的折叠卷积核K’[kx]的切片在深度上是对齐的。
在另外的实施例中,还可以根据Ex、Sx、Nx和原始卷积核K在D1上的维度值Vx来确定每个变换卷积核K[kx]在D1上的期望维度值EVx。例如,可以根据等式来确定每个变换卷积核K[kx]在D1上的期望维度值EVx,其中,表示向上取整运算。如果变换卷积核K[kx]在D1上的维度值小于EVx,则可以通过在变换卷积核K[kx]的在D1上的结束边界处附加零切片来调整的K[kx],使得调整后的变换卷积核K[kx]在D1上的维度值等于EVx,然后可以在D1上对调整后的变换卷积核K[kx]进行折叠,以生成相应的折叠卷积核K’[kx]。
在另一个实施例中,如果在步骤S105中还在维度D2(宽度和高度中的另一个)上按照Ny对已经在维度D1上按照Nx折叠的特征数据进一步折叠,则在步骤S110中,在获得例如Ex个折叠卷积核K’[kx](0≤kx<Ex)之后,以与在D1上折叠K相似的方式,在D2上折叠每个折叠卷积核K’[kx]。
例如,可以通过在K’[kx]的在D2上的起始边界处分别填充ky×Sy个零切片,来生成与K’[kx]的一个或多个变换卷积核K’[kx,ky],其中,Sy为原始卷积核K在D2上的步长,ky为大于或等于0的整数。同样,可以确定ky的最大值,以控制变换卷积核的数量。例如,可以使ky<Ey,其中,可以将Ey确定为Sy和Ny的最小公倍数除以Sy所得到的结果值,或者Ny除以Ny和Sy的最大公约数所得到的结果值,或者在Sy=1或者Sy与Ny互质的情况下,可以Ey确定为等于Ny。由此,可以生成与K’[kx]相对应的Ey个变换卷积核K’[kx,ky],或者与原始卷积核K相对应的Ex×Ey个变换卷积核K’[kx,ky]。
然后,在步骤S110中,可以分别针对每个变换卷积核K’[kx,ky],以将D2上的每Ny个的连续的切片在深度上拼接到一起的方式,在D2上对每个K’[kx,ky]进行折叠,以针对每个变换卷积核K’[kx,ky]生成相应的折叠卷积核K”[kx,ky],使得每个K”[kx,ky]中的在D2上的第iky×Ny+jky个切片的所有Cy个通道的数据分别对应于K’[kx,ky]的在D2上的第iky个切片的从第jky×Cy个通道开始的连续的Cy个通道的数据,其中,iky为大于或等于0的整数,jky为大于或等于0且小于Ny的整数。
同样,也可以根据Ey、Sy、Ny和原始卷积核K在D2上的维度值Vy来确定每个变换卷积核K’[kx,ky]在D2上的期望维度值EVy。例如,可以根据等式来确定每个变换卷积核K’[kx,ky]在D2上的期望维度值EVy。如果变换卷积核K’[kx,ky]在D2上的维度值小于EVy,则可以通过在变换卷积核K’[kx,ky]的在D2上的结束边界处附加零切片来调整的K’[kx,ky],使得调整后的变换卷积核K’[kx,ky]在D2上的维度值等于EVy,然后可以在D2上对调整后的变换卷积核K’[kx,ky]进行折叠,以生成相应的折叠卷积核K”[kx,ky]。
图3示出与图2中的折叠特征数据FD1’相对应地在宽度上折叠原始卷积核K的示例。在该示例中,假设原始卷积核K的宽度Vx为3(包含宽度切片KS1至KS3),在宽度上的步长Sx为1,则可以确定在宽度这个维度上与原始卷积核K相对应的变换卷积核的数量为2。然后,可以通过在原始卷积核K的左侧填充或附加0个零切片来生成变换卷积核Ka,并且过在原始卷积核K的左侧填充或附加1个零切片KP来生成变换卷积核Kb。然后,在宽度上折叠每个变换卷积核Ka和Kb,并生成两个折叠卷积核Ka’和Kb’。
如图3所示,变换卷积核Ka的宽度为3,导致折叠卷积核Ka’的各个宽度切片在深度上不对齐。如前文所述,可以在折叠之前、折叠的过程中或折叠之后通过补充零切片KA,使折叠卷积核Ka’的各个宽度切片在深度上对齐,或者可以借助于硬件,使折叠卷积核Ka’的各个宽度切片在深度上自动地对齐。例如,可以在折叠之前确定变换卷积核Ka和Kb的期望维度值或期望宽度为然后可以在宽度值小于4的Ka的右侧填充或附加1个零切片KA(图3中未示出)。
图3中只示出在宽度上折叠原始卷积核的示例。在高度上折叠原始卷积核、在高度上进一步折叠两个折叠卷积核Ka’和Kb’、以及在高度上折叠原始卷积核并在宽度上进一步折叠所生成的折叠卷积核与图3中的示例相似,在本文中不再赘述。
另外,虽然图1中将步骤S110示为在步骤S105之后,但是应当理解,步骤S110也可以在步骤S105之前执行,或者与步骤S110并行地执行。
如果只是在宽度和高度中的一个维度D1上按照Nx进行折叠,则可以在步骤S105中在D1上折叠经填充的未折叠特征数据FD以获得折叠特征数据FD’,并且在步骤S110中在D1上折叠原始卷积核K以获得例如Ex个折叠卷积核K’[kx](0≤kx<Ex)。然后,示例方法100继续到步骤S115,以使用所生成的Ex个折叠卷积核K’[kx]对折叠特征数据FD’执行卷积运算。
在这样的情况下,如果原始卷积核K在D1上的步长Sx的值等于Nx,则每个折叠卷积核K’[kx]在D1上的步长为1;否则,每个折叠卷积核K’[kx]在D1上的步长为Sx。另外,每个折叠卷积核K’[kx]在宽度和高度中的另一个维度D2上的步长为原始卷积核K在D2上的步长Sy
如果除了在D1上进行折叠之外,还要在D2上按照Ny进行折叠,则可以在步骤S105中继续在D2上折叠FD’以获得折叠特征数据FD”,并且在步骤S110中在D1上Ex个折叠卷积核K’[kx]以获得Ex×Ey个折叠卷积核K”[kx,ky](0≤ky<Ey)。然后,示例方法100继续到步骤S115,以使用所生成的Ex×Ey个折叠卷积核K”[kx,ky]对折叠特征数据FD”执行卷积运算。
在这样的情况下,如果原始卷积核K在D1上的步长Sx的值等于Nx,则每个折叠卷积核K”[kx,ky]在D1上的步长为1;否则,每个折叠卷积核K”[kx,ky]在D1上的步长为Sx。另外,如果原始卷积核K在D2上的步长Sy的值等于Ny,则每个折叠卷积核K”[kx,ky]在D2上的步长为1;否则,每个折叠卷积核K”[kx,ky]在D2上的步长为Sy
在一个实施例中,在步骤S115中,可以在使用所有的折叠卷积核对折叠特征数据的同一部分进行卷积之后,在D1或D2上按照折叠卷积核在D1上的步长或在D2上的步长移动所有的折叠卷积核,以对折叠特征数据的另一部分执行卷积。在对折叠特征数据的所有部分执行完卷积之后,可以获得最终的输出特征数据。
例如,如图4所示,可以使用在图3的示例中的折叠卷积核Ka’对在图2的示例中的折叠特征数据FD1’中的P+S1切片和S1+S3切片执行卷积,以获得输出特征数据FD1”中的部分值O1,并使用折叠卷积核Kb’对折叠特征数据FD1’中的P+S1切片和S1+S3切片执行卷积,以获得输出特征数据FD1”中的部分值O2。然后,在宽度上移动折叠卷积核Ka’和Kb’,以对折叠特征数据FD1’中的S2+S3切片和S4+S5切片执行卷积,以获得输出特征数据FD1”中的部分值O3和O4。以此类推,继续获得输出特征数据FD1”中的部分值O5和O6。
在另外的实施例中,也可以分别使用每个折叠卷积核对整个折叠特征数据进行卷积。在这样的情况下,可以不必修改用于硬件的卷积指令。然而,如果一个原始卷积核对应于多个折叠卷积核,则使用每个折叠卷积核所获得的部分结果将分布在不同的通道上。在将输出特征数据提供给卷积神经网络的下一层或者作为整个卷积神经网络的最终输出之前,可以重新组织或展开分布在不同的通道上的部分结果,以获得在一个通道上的完整的输出结果。
例如,如图5所示,可以使用在图3的示例中的折叠卷积核Ka’对在图2的示例中的整个折叠特征数据FD1’执行卷积,并获得输出特征数据FD1”中的部分值O1、O3和O5,然后使用折叠卷积核Kb’对整个折叠特征数据FD1’执行卷积,并获得输出特征数据FD1”中的部分值O2、O4和O6。然后,可以将所获得的各个部分值组织到一起,以获得完整的输出结果FD1”。
图4和图5仅示出使用在宽度上执行卷积的示例过程。在高度上执行卷积的过程与此类似,在本文中不再赘述。
通过对特征数据和卷积核进行折叠并使用所得到的折叠特征数据和折叠卷积核执行卷积运算,能够提高通道利用率,降低缓存占用量,并且可以提高运算效率。
例如,假设处理器(例如,用于卷积运算的乘法器阵列)能够一次性处理32个通道的数据,则在使用一个5×5的卷积核对720×1280的RGB图像(通道数为3)进行卷积(宽度和高度上的步长均为1)的情况下,使用常规卷积(即,使用原始卷积核对原始未折叠特征数据执行卷积)、宽度折叠卷积(即,在宽度上按照每2个切片折叠特征数据和原始卷积核,然后执行卷积)和宽高折叠卷积(即,在宽度和高度上分别按照每2个切片折叠特征数据和原始卷积核,然后执行卷积)的运算量的比较如下面的表格1所示:
表格1
表格1的示例数据表明,通过对特征数据和卷积核进行折叠并使用所得到的折叠特征数据和折叠卷积核执行卷积运算,能够显著地减少运算量(例如,宽高折叠卷积的运算量仅为常规卷积的运算量的36%),并显著地提高有效计算率(例如,宽高折叠卷积的有效计算率相比于常规卷积提高了大约4倍)。
图6和图7示出根据本公开的实施例的执行卷积神经网络中的卷积层的运算的装置的框图。
如图6所示,示例装置600可以包括一个或多个处理器610。处理器610可以是具有数据处理能力和/或指令执行能力的任何形式的处理单元,例如通用CPU、GPU或者专用的神经网络处理器或加速器等。例如,处理器610可以执行根据本申请的实施例的折叠特征数据和卷积核并使用折叠特征数据和折叠卷积核执行卷积运算的方法。另外,处理器610还可以控制装置600中的其他部件,以执行所期望的功能。
处理器610可以通过总线系统和/或其他形式的连接机构(未示出)与存储器620以及I/O接口630相连。
存储器620可以包括各种形式的计算机可读写存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪速存储器等。可读写存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。例如,在配合神经网络专用处理器使用的情况下,存储器620也可以是承载专用处理器的芯片上的RAM。存储器620可以包括用于指示装置600执行根据本申请的实施例的折叠特征数据和卷积核并使用折叠特征数据和折叠卷积核执行卷积运算的方法的程序指令。
I/O接口630可以用于向处理器610提供参数或数据并且输出经过处理器610处理的结果数据。
如图7所示,示例装置700可以包括预处理器710、第一折叠器720、第二折叠器730和运算器740。
预处理器710可以被配置为按照卷积层所指定的填充方式填充提供给该卷积层的未折叠特征数据。在一个实施例中,预处理器710可以被配置为执行例如图1所示的示例方法100的步骤S101。
第一折叠器720可以被配置为在宽度和高度中的至少一个维度上折叠经填充的未折叠特征数据,以生成折叠特征数据。在一个实施例中,第一折叠器720可以被配置为执行例如图1所示的示例方法100的步骤S105。
第二折叠器730可以被配置为在至少一个维度上折叠该卷积层的原始卷积核,以生成与原始卷积核相对应的一个或多个折叠卷积核。在一个实施例中,第二折叠器730可以被配置为执行例如图1所示的示例方法100的步骤S110。
运算器740可以被配置为使用所生成的一个或多个折叠卷积核对所生成的折叠特征数据执行卷积运算。在一个实施例中,运算器740可以被配置为执行例如图1所示的示例方法100的步骤S115。
应当理解,图6和图7所示的装置600和700仅是示例性的,而非限制性的。根据需要,根据本申请的实施例的装置可以具有其他部件和/或结构。
除非上下文清楚地另有要求,否则贯穿说明书和权利要求书,措词“包括”、“包含”等应当以与排他性或穷尽性的意义相反的包括性的意义来解释,也就是说,应当以“包括但不限于”的意义来解释。另外,措词“在本文中”、“上文”、“下文”以及相似含义的措词在本申请中使用时应当指作为整体的本申请,而不是本申请的任何具体部分。在上下文允许时,在使用单数或复数的以上描述中的措词也可以分别包括复数或单数。关于在提及两个或多个项目的列表时的措词“或”,该措词涵盖该措词的以下解释中的全部:列表中的任何项目,列表中的所有项目,以及列表中的项目的任何组合。
本发明实施例的以上详细描述不打算是穷尽性的或者将本发明局限于上文所公开的确切形式。尽管以上出于说明的目的而描述了本发明的具体实施例和示例,但是如本领域技术人员将认识到的那样,在本发明范围内可能有各种等效的修改。例如,尽管处理或块以给定的次序呈现,但是替代的实施例可以以不同的次序执行具有这些步骤的处理或者以不同的次序采用具有这些块的系统,并且一些处理或块可以被删除、移动、添加、细分、组合和/或修改。这些处理或块中的每个可以以各种不同的方式来实现。另外,虽然处理或块有时被示为串行执行,但是替代地,这些处理或块也可以并行执行,或者可以在不同时间执行。
可以将在本文中所提供的本发明的教导应用于其他系统,而不必是上述的系统。可以组合上述的各个实施例的元件和动作,以提供另外的实施例。
虽然已经描述了本发明的一些实施例,但是这些实施例仅作为示例而呈现,而不打算限制本申请的范围。实际上,在本文中所描述的新颖方法和系统可以以多种其他形式来实施。另外,可以在不脱离本申请的范围的情况下,在本文中所描述的方法和系统的形式上做出各种省略、替换和改变。

Claims (20)

1.一种执行卷积神经网络中的卷积层的运算的方法,包括:
按照所述卷积层所指定的填充方式填充提供给所述卷积层的未折叠特征数据;
在宽度和高度中的至少一个维度上折叠经填充的未折叠特征数据,以生成折叠特征数据;
在所述至少一个维度上折叠所述卷积层的原始卷积核,以生成与所述原始卷积核相对应的一个或多个折叠卷积核;以及
使用所述一个或多个折叠卷积核对所述折叠特征数据执行卷积运算。
2.根据权利要求1所述的方法,其中,在所述至少一个维度上折叠经填充的未折叠特征数据包括:
以将第一维度上的每Nx个的连续的切片在深度上拼接到一起的方式,在所述第一维度上对经填充的未折叠特征数据进行第一折叠,所述第一维度是宽度和高度中的一个,Nx为大于1的整数。
3.根据权利要求2所述的方法,其中,经填充的未折叠特征数据中的在所述第一维度上的第ifx×Nx+jfx个切片的所有Cx个通道的数据对应于所述第一折叠的结果的在所述第一维度上的第ifx个切片的从第jfx×Cx个通道开始的连续的Cx个通道的数据,ifx为大于或等于0的整数,jfx为大于或等于0且小于Nx的整数,Cx为大于0的整数。
4.根据权利要求2所述的方法,其中,执行所述卷积运算包括:
在所述原始卷积核的在所述第一维度上的第一步长不等于Nx的情况下,在使用与所述原始卷积核相对应的所有折叠卷积核对所述折叠特征数据的同一部分进行卷积之后,在所述第一维度上按照所述第一步长移动与所述原始卷积核相对应的所有折叠卷积核。
5.根据权利要求2所述的方法,其中,执行所述卷积运算包括:
在所述原始卷积核的在所述第一维度上的第一步长不等于Nx并且分别使用与所述原始卷积核相对应的每个折叠卷积核对整个折叠特征数据进行卷积的情况下,每个折叠卷积核的在所述第一维度上的步长等于所述第一步长。
6.根据权利要求2所述的方法,其中,执行所述卷积运算包括:
在所述原始卷积核的在所述第一维度上的第一步长等于Nx的情况下,每个折叠卷积核的在所述第一维度上的步长为1。
7.根据权利要求2至6中的任一项所述的方法,其中,在所述至少一个维度上折叠所述原始卷积核包括:
在所述原始卷积核的在所述第一维度上的起始边界处分别填充kx×Sx个零切片,以生成Ex个第一变换卷积核,Sx为所述原始卷积核的在所述第一维度上的第一步长,Ex大于或等于1并且取决于Nx和Sx的值,kx为大于或等于0且小于Ex的整数;以及
以将所述第一维度上的每Nx个的连续的切片在深度上拼接到一起的方式,在所述第一维度上对每个第一变换卷积核进行的第二折叠,以针对每个第一变换卷积核生成相应的第一折叠卷积核。
8.根据权利要求7所述的方法,其中,每个第一变换卷积核中的在所述第一维度上的第ikx×Nx+jkx个切片的所有Cx个通道的数据分别对应于相应的第一折叠卷积核的在所述第一维度上的第ikx个切片的从第jkx×Cx个通道开始的连续的Cx个通道的数据,ikx为大于或等于0的整数,jkx为大于或等于0且小于Nx的整数。
9.根据权利要求7所述的方法,其中,在所述至少一个维度上折叠所述原始卷积核还包括:
使用所生成的Ex个第一折叠卷积核作为与所述原始卷积核相对应的一个或多个折叠卷积核。
10.根据权利要求7所述的方法,其中,在所述至少一个维度上折叠经填充的未折叠特征数据还包括:
以将第二维度上的每Ny个的连续的切片在深度上拼接到一起的方式,在所述第二维度上对所述第一折叠的结果进行第三折叠,所述第二维度是宽度和高度中的另一个,Ny为大于1的整数。
11.根据权利要求10所述的方法,其中,所述第一折叠的结果中的在所述第二维度上的第ify×Ny+jfy个切片的所有Cy个通道的数据对应于所述第三折叠的结果的在所述第二维度上的第ify个切片的从第jfy×Cy个通道开始的连续的Cy个通道的数据,ify为大于或等于0的整数,jfy为大于或等于0且小于Ny的整数,Cy为大于0的整数。
12.根据权利要求10所述的方法,在所述至少一个维度上折叠所述原始卷积核还包括:
在每个第一折叠卷积核的在所述第二维度上的起始边界处分别填充ky×Sy个零切片,以分别针对每个第一折叠卷积核生成Ey个第二变换卷积核,Sy为所述原始卷积核的在所述第二维度上的第二步长,Ey大于或等于1并且取决于Ny和Sy的值,ky为大于或等于0且小于Ey的整数;以及
以将所述第二维度上的每Ny个的连续的切片在深度上拼接到一起的方式,在所述第二维度上对每个第二变换卷积核进行的第四折叠,以针对每个第二变换卷积核生成相应的第二折叠卷积核。
13.根据权利要求12所述的方法,其中,每个第二变换卷积核中的在所述第二维度上的第iky×Ny+jky个切片的所有Cy个通道的数据分别对应于相应的第二折叠卷积核的在所述第二维度上的第iky个切片的从第jky×Cy个通道开始的连续的Cy个通道的数据,iky为大于或等于0的整数,jky为大于或等于0且小于Ny的整数。
14.根据权利要求12所述的方法,其中,在所述至少一个维度上折叠所述原始卷积核还包括:
使用所生成的Ex×Ey个第二折叠卷积核作为与所述原始卷积核相对应的一个或多个折叠卷积核。
15.根据权利要求10所述的方法,其中,执行所述卷积运算还包括:
在所述原始卷积核的在所述第二维度上的第二步长不等于Ny的情况下,在使用与所述原始卷积核相对应的所有折叠卷积核对所述折叠特征数据的同一部分进行卷积之后,在所述第二维度上按照所述第二步长移动与所述原始卷积核相对应的所有折叠卷积核。
16.根据权利要求10所述的方法,其中,执行所述卷积运算还包括:
在所述原始卷积核的在所述第二维度上的第二步长不等于Ny并且分别使用与所述原始卷积核相对应的每个折叠卷积核对整个折叠特征数据进行卷积的情况下,每个折叠卷积核的在所述第二维度上的步长等于所述第二步长。
17.根据权利要求10所述的方法,其中,执行所述卷积运算包括:
在所述原始卷积核的在所述第二维度上的第二步长等于Ny的情况下,每个折叠卷积核的在所述第二维度上的步长为1。
18.一种执行卷积神经网络中的卷积层的运算的装置,包括:
一个或多个处理器,被配置为执行根据权利要求1至17中的任一项所述的方法。
19.一种执行卷积神经网络中的卷积层的运算的装置,包括:
预处理器,被配置为按照所述卷积层所指定的填充方式填充提供给所述卷积层的未折叠特征数据;
第一折叠器,被配置为在宽度和高度中的至少一个维度上折叠经填充的未折叠特征数据,以生成折叠特征数据;
第二折叠器,被配置为在所述至少一个维度上折叠所述卷积层的原始卷积核,以生成与所述原始卷积核相对应的一个或多个折叠卷积核;以及
运算器,被配置为使用所述一个或多个折叠卷积核对所述折叠特征数据执行卷积运算。
20.一种非临时性存储介质,在其上存储有程序指令,所述程序指令在被计算装置执行时执行根据权利要求1至17中的任一项所述的方法。
CN201711212080.7A 2017-11-28 2017-11-28 执行卷积神经网络中的卷积层的运算的方法和装置 Active CN107844827B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201711212080.7A CN107844827B (zh) 2017-11-28 2017-11-28 执行卷积神经网络中的卷积层的运算的方法和装置
JP2018221335A JP6856609B2 (ja) 2017-11-28 2018-11-27 畳み込みニューラルネットワークの畳み込み層における演算を実行する方法及び装置
KR1020180149480A KR20190062305A (ko) 2017-11-28 2018-11-28 컨볼루션 신경망에서 컨볼루션 층의 연산을 수행하기 위한 방법 및 장치
US16/203,017 US11468301B2 (en) 2017-11-28 2018-11-28 Method and apparatus for performing operation of convolutional layer in convolutional neural network
EP18208762.7A EP3489863A1 (en) 2017-11-28 2018-11-28 Method and apparatus for performing operation of convolutional layer in convolutional neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711212080.7A CN107844827B (zh) 2017-11-28 2017-11-28 执行卷积神经网络中的卷积层的运算的方法和装置

Publications (2)

Publication Number Publication Date
CN107844827A true CN107844827A (zh) 2018-03-27
CN107844827B CN107844827B (zh) 2020-05-26

Family

ID=61680547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711212080.7A Active CN107844827B (zh) 2017-11-28 2017-11-28 执行卷积神经网络中的卷积层的运算的方法和装置

Country Status (5)

Country Link
US (1) US11468301B2 (zh)
EP (1) EP3489863A1 (zh)
JP (1) JP6856609B2 (zh)
KR (1) KR20190062305A (zh)
CN (1) CN107844827B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109190758A (zh) * 2018-09-04 2019-01-11 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN110288090A (zh) * 2019-06-28 2019-09-27 广东中星微电子有限公司 训练卷积神经网络的方法及装置、计算机设备和存储介质
CN110334798A (zh) * 2019-03-13 2019-10-15 北京地平线机器人技术研发有限公司 特征数据提取方法及装置、指令生成方法及装置
WO2020063225A1 (zh) * 2018-09-29 2020-04-02 华为技术有限公司 一种数据处理方法和装置
CN111832585A (zh) * 2019-04-16 2020-10-27 杭州海康威视数字技术股份有限公司 图像处理的方法和装置
CN111914985A (zh) * 2019-05-10 2020-11-10 杭州海康威视数字技术股份有限公司 深度学习网络模型的配置方法、装置及存储介质
CN112215329A (zh) * 2019-07-09 2021-01-12 杭州海康威视数字技术股份有限公司 基于神经网络的卷积计算方法及装置
CN113191377A (zh) * 2020-01-14 2021-07-30 北京京东乾石科技有限公司 用于处理图像的方法和装置
TWI761860B (zh) * 2019-06-26 2022-04-21 美商美光科技公司 記憶體設備及使用記憶體之方法
WO2022143916A1 (zh) * 2020-12-31 2022-07-07 中科寒武纪科技股份有限公司 执行神经网络模型的数据处理装置、方法及相关产品
CN116629320A (zh) * 2023-07-21 2023-08-22 美智纵横科技有限责任公司 神经网络的优化方法、装置、存储介质及芯片

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366328B2 (en) * 2017-09-19 2019-07-30 Gyrfalcon Technology Inc. Approximating fully-connected layers with multiple arrays of 3x3 convolutional filter kernels in a CNN based integrated circuit
US10402628B2 (en) * 2016-10-10 2019-09-03 Gyrfalcon Technology Inc. Image classification systems based on CNN based IC and light-weight classifier
US11037030B1 (en) * 2018-10-29 2021-06-15 Hrl Laboratories, Llc System and method for direct learning from raw tomographic data
CN112133342B (zh) * 2019-06-25 2022-05-06 中电海康集团有限公司 存储器
US11699081B2 (en) * 2019-12-20 2023-07-11 Meta Platforms, Inc. Systems and methods for reducing data movement during convolution operations in artificial neural networks
DE102020201182A1 (de) * 2020-01-31 2021-08-05 Robert Bosch Gesellschaft mit beschränkter Haftung Hardwarebeschleunigte Berechnung von Faltungen
CN113807506B (zh) * 2020-06-11 2023-03-24 杭州知存智能科技有限公司 数据加载电路和方法
US11977969B2 (en) 2020-06-11 2024-05-07 Hangzhou Zhicun Intelligent Technology Co., Ltd. Data loading
CN111860809B (zh) * 2020-06-18 2024-03-15 清华大学 采用填充后图像传感芯片进行首层卷积层处理的方法
KR102423047B1 (ko) 2020-11-17 2022-07-19 연세대학교 산학협력단 하드웨어로 구현되는 초해상도 장치를 위한 전처리 장치 및 방법
CN112633490B (zh) * 2020-12-31 2023-09-26 上海寒武纪信息科技有限公司 执行神经网络模型的数据处理装置、方法及相关产品
CN112836803A (zh) * 2021-02-04 2021-05-25 珠海亿智电子科技有限公司 一种提高卷积运算效率的数据摆放方法
CN112799598B (zh) * 2021-02-08 2022-07-15 清华大学 一种数据处理方法、处理器及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003060748A2 (en) * 2002-01-10 2003-07-24 Massively Parallel Technologies, Inc. Parallel processing systems and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10497089B2 (en) * 2016-01-29 2019-12-03 Fotonation Limited Convolutional neural network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003060748A2 (en) * 2002-01-10 2003-07-24 Massively Parallel Technologies, Inc. Parallel processing systems and method

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ARAVIND VASUDEVAN 等: "Parallel Multi Channel Convolution using General Matrix Multiplication", 《2017 IEEE 28TH INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS,ARCHITECTURES AND PROCESSORS (ASAP)》 *
QIANG LAN 等: "High Performance Implementation of 3D Convolutional Neural Networks on a GPU", 《COMPUTATIONAL INTELLIGENCE AND NEUROSCIENCE》 *
XIAOMING CHEN 等: "Optimizing Memory Efficiency for Convolution Kernels on Kepler GPUs", 《2017 54TH ACM/EDAC/IEEE DESIGN AUTOMATION CONFERENCE(DAC)》 *
YUAN DU 等: "A Streaming Accelerator for Deep Convolutional Neural Networks with Image and Feature Decomposition for Resource-limited System Applications", 《ARXIV:1709.05116》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109190758A (zh) * 2018-09-04 2019-01-11 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN109190758B (zh) * 2018-09-04 2021-06-15 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN110968832B (zh) * 2018-09-29 2023-10-20 华为技术有限公司 一种数据处理方法和装置
WO2020063225A1 (zh) * 2018-09-29 2020-04-02 华为技术有限公司 一种数据处理方法和装置
CN110968832A (zh) * 2018-09-29 2020-04-07 华为技术有限公司 一种数据处理方法和装置
CN110334798B (zh) * 2019-03-13 2021-06-08 北京地平线机器人技术研发有限公司 特征数据提取方法及装置、指令生成方法及装置
CN110334798A (zh) * 2019-03-13 2019-10-15 北京地平线机器人技术研发有限公司 特征数据提取方法及装置、指令生成方法及装置
CN111832585A (zh) * 2019-04-16 2020-10-27 杭州海康威视数字技术股份有限公司 图像处理的方法和装置
CN111914985B (zh) * 2019-05-10 2023-07-04 杭州海康威视数字技术股份有限公司 深度学习网络模型的配置方法、装置及存储介质
CN111914985A (zh) * 2019-05-10 2020-11-10 杭州海康威视数字技术股份有限公司 深度学习网络模型的配置方法、装置及存储介质
TWI761860B (zh) * 2019-06-26 2022-04-21 美商美光科技公司 記憶體設備及使用記憶體之方法
CN110288090B (zh) * 2019-06-28 2023-11-07 广东中星微电子有限公司 训练卷积神经网络的方法及装置、计算机设备和存储介质
CN110288090A (zh) * 2019-06-28 2019-09-27 广东中星微电子有限公司 训练卷积神经网络的方法及装置、计算机设备和存储介质
CN112215329B (zh) * 2019-07-09 2023-09-29 杭州海康威视数字技术股份有限公司 基于神经网络的卷积计算方法及装置
CN112215329A (zh) * 2019-07-09 2021-01-12 杭州海康威视数字技术股份有限公司 基于神经网络的卷积计算方法及装置
CN113191377A (zh) * 2020-01-14 2021-07-30 北京京东乾石科技有限公司 用于处理图像的方法和装置
WO2022143916A1 (zh) * 2020-12-31 2022-07-07 中科寒武纪科技股份有限公司 执行神经网络模型的数据处理装置、方法及相关产品
CN116629320A (zh) * 2023-07-21 2023-08-22 美智纵横科技有限责任公司 神经网络的优化方法、装置、存储介质及芯片
CN116629320B (zh) * 2023-07-21 2023-11-28 美智纵横科技有限责任公司 神经网络的优化方法、装置、存储介质及芯片

Also Published As

Publication number Publication date
US11468301B2 (en) 2022-10-11
JP2019125352A (ja) 2019-07-25
JP6856609B2 (ja) 2021-04-07
EP3489863A1 (en) 2019-05-29
KR20190062305A (ko) 2019-06-05
CN107844827B (zh) 2020-05-26
US20190164045A1 (en) 2019-05-30

Similar Documents

Publication Publication Date Title
CN107844827A (zh) 执行卷积神经网络中的卷积层的运算的方法和装置
CN107729994A (zh) 执行卷积神经网络中的卷积层的运算的方法和装置
CN107832842A (zh) 针对折叠特征数据执行卷积运算的方法和装置
EP3477556A1 (en) Method and apparatus for performing operations in convolutional neural network
US11176457B2 (en) Method and apparatus for reconstructing 3D microstructure using neural network
CN112633490B (zh) 执行神经网络模型的数据处理装置、方法及相关产品
WO2020003434A1 (ja) 機械学習方法、機械学習装置、及び機械学習プログラム
EP4235506A1 (en) Neural network model training method, image processing method, and apparatus
KR102164190B1 (ko) 고효율 연산 처리를 위한 인공 신경망 모듈 및 이의 스케쥴링 방법
CN110119805A (zh) 基于回声状态网络分类的卷积神经网络算法
US11900577B2 (en) Processing apparatus for performing processing using a convolutional neural network
CN111667052B (zh) 专用神经网络加速器的标准与非标准卷积一致性变换方法
CN116468902A (zh) 图像的处理方法、装置和非易失性计算机可读存储介质
EP4113389A1 (en) Neural network comprising matrix multiplication
US11842273B2 (en) Neural network processing
EP4300369A1 (en) Methods and systems for executing a neural network on a neural network accelerator
Shiri et al. DeepCaps+: A Light Variant of DeepCaps.
DE102023115200A1 (de) Faltungshardwarebeschleuniger
CN114764608A (zh) 执行神经网络模型的数据处理装置、方法及相关产品
CN116957018A (zh) 一种逐通道卷积的实现方法
KR20230160588A (ko) 합성 곱 신경망의 연산 가속화 방법 및 합성 곱 신경망의 연산 가속화 장치
CN114692820A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180402

Address after: 210046 Jiangsu city of Nanjing Province Economic and Technological Development Zone Xing Chi road Xingzhi Science Park building 20 layer A

Applicant after: Nanjing horizon Robot Technology Co., Ltd.

Address before: 100080 Zhongguancun Avenue, Haidian District, Beijing, No. 1, 3 layer 317

Applicant before: Beijing horizon information technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant