CN108073981A - 处理卷积神经网络的方法和设备 - Google Patents
处理卷积神经网络的方法和设备 Download PDFInfo
- Publication number
- CN108073981A CN108073981A CN201710970971.2A CN201710970971A CN108073981A CN 108073981 A CN108073981 A CN 108073981A CN 201710970971 A CN201710970971 A CN 201710970971A CN 108073981 A CN108073981 A CN 108073981A
- Authority
- CN
- China
- Prior art keywords
- input
- kernel
- interior nuclear
- loaded
- loading
- 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
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/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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
Abstract
公开处理卷积神经网络(CNN)的方法和设备。所述设备可基于卷积层的内核的特性和卷积层的输入的特性中的至少一个,从重复使用内核的第一操作模式和重复使用输入的第二操作模式选择一个操作模式,并且基于所选择的操作模式执行卷积操作。
Description
本申请要求于2016年11月7日提交到韩国知识产权局的第10-2016-0147562号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面描述涉及卷积神经网络(CNN)处理技术。
背景技术
基于神经网络的深度学习技术广泛用于各种领域。例如,用于识别例如脸部、虹膜和语音的基于深度学习的生物识别和验证应用可用于终端(例如,智能电话)。卷积神经网络(CNN)指的是卷积操作被应用到的多层神经网络,并且在基于深度学习的图像识别和语音识别的领域中有效地执行。
发明内容
提供本发明内容来以简化的形式介绍以下在具体实施方式中进一步描述的构思的选择。本发明内容既不意在识别所要求保护的主题的关键特征或必要特征,也不意在用于帮助确定所要求保护的主题的范围。
一方面提供一种基于卷积神经网络(CNN)的识别技术,基于CNN的识别技术可在有限资源的终端环境下实现,并且在各种环境中表现出鲁棒性能。例如,这里描述的一种处理CNN的方法可被实现为允许面部识别器在智能电话的信任区域中在有限的时间段内做出响应。处理CNN的方法可仅使用作为单核操作的有限的计算资源来实现。在矩阵乘法运算被应用于给定数据的CNN中,处理CNN的方法可用于减少数据加载数量和操作执行数量以减少存储器的使用,并且还可以以高速度处理CNN。
在一个整体方面,一种处理CNN的方法包括:基于卷积层的内核的特性和卷积层的输入的特性中的至少一个,从重复使用内核的第一操作模式和重复使用输入的第二操作模式选择一个操作模式;基于所选择的操作模式执行卷积操作。
所述CNN可包括多个卷积层,并且所述方法还可包括:基于所述多个卷积层的内核的特性和所述多个卷积层的输入的特性,自适应地从第一操作模式和第二操作模式选择每个卷积层的操作模式。
内核的特性可包括在内核中包括的内核元素中的0的比率以及内核的大小中的至少一个,输入的特性可包括在输入中包括的输入元素中的0的比率以及输入的大小中的至少一个。
选择操作模式的步骤可包括:获得包括在输入中的输入元素中的0的比率;选择对应于所获得的比率以及包括在内核中的内核元素中的0的比率之间的较大的值的操作模式。
选择操作模式的步骤可包括:基于输入的大小和内核的大小之间的比率选择操作模式。
内核的特性和输入的特性可基于所述CNN中的卷积层的深度来确定,选择操作模式的步骤可包括:基于内核的特性和输入的特性中的至少一个,选择满足与数据加载数量和操作存储器的容量中的至少一个相关联的约束的操作模式。
选择操作模式的步骤可包括:选择对应于第一操作模式中的第一数据加载数量以及第二操作模式中的第二数据加载数量之间的较小的值的操作模式。
选择操作模式的步骤可包括获得第一数据加载数量,第一数据加载数量可基于内核加载数量与输入加载数量之和来计算,其中,内核加载数量基于内核的大小来计算,输入加载数量基于包括在内核中的内核元素之中的0的数量以及输入的大小来计算。
选择操作模式的步骤可包括获得包括在输入中的输入元素之中的0的数量;基于输入加载数量与内核加载数量之和来计算第二数据加载数量,其中,输入加载数量基于输入的大小来计算,内核加载数量基于输入元素之中的0的数量以及内核的大小来计算。
执行卷积操作的步骤可包括:响应于第一操作模式被选择,基于第一信息和第二信息执行卷积操作,其中,第一信息指定包括在输入中的输入元素之中的与包括在内核中的内核元素相对应的输入元素,第二信息指定包括在卷积操作的输出中的输出元素之中的内核元素和指定的输入元素之间的操作的结果映射到的输出元素。
执行卷积操作的步骤可包括:加载包括在内核中的内核元素之中的一个内核元素;基于第一信息加载对应于所加载的内核元素的输入元素;基于第二信息更新所加载的内核元素和所加载的输入元素之间的操作的结果映射到的输出元素。
可基于内核元素的位置、内核的大小和步长、以及输入的大小和填充来确定第一信息。可基于内核元素的位置以及指定的输入元素的位置来确定第二信息。
执行卷积操作的步骤可包括:响应于第一操作模式被选择,加载包括在内核中的内核元素中的一个内核元素;响应于所加载的内核元素为0,跳过对应于所加载的内核元素的输入元素的加载或者跳过与所加载的内核元素相关联的操作。
执行卷积操作的步骤可包括:响应于第一操作模式被选择,分配对应于包括在内核中的内核元素的至少一个临时缓冲器;加载内核元素中的一个内核元素;基于所加载的内核元素以及对应于所加载的内核元素的临时缓冲器来执行卷积操作。
执行卷积操作的步骤还可包括:加载内核元素中的与所加载的内核元素不同的另一内核元素;响应于所述另一内核元素不为0,基于所述另一内核元素和存储在对应于所述另一内核元素的临时缓冲器中的输入元素之间的操作的结果来执行卷积操作。
执行卷积操作的步骤可包括:响应于第一操作模式被选择,加载包括在内核中的内核元素之中的一个内核元素;响应于所加载的内核元素为0,跳过临时缓冲器的分配;响应于所加载的内核元素不为0,基于所加载的内核元素的位置、内核的大小和步长、以及输入的大小和填充来分配临时缓冲器;加载对应于所加载的内核元素的输入元素,并且将所加载的输入元素存储在所分配的临时缓冲器中;基于所加载的内核元素和存储在临时缓冲器中的输入元素之间的操作的结果来执行卷积操作。
执行卷积操作的步骤可包括:响应于第二操作模式被选择,基于第一信息和第二信息执行卷积操作,其中,第一信息指定包括在内核中的内核元素之中的与包括在输入中的输入元素相对应的内核元素,第二信息指定包括在卷积操作的输出中的输出元素之中的输入元素和指定的内核元素之间的操作的结果映射到的输出元素。
执行卷积操作的步骤可包括:加载输入元素中的一个输入元素;基于第一信息加载对应于所加载的输入元素的内核元素;基于第二信息更新所加载的输入元素和所加载的内核元素之间的操作的结果映射到的输出元素。
可基于输入元素的位置、内核的大小和步长、以及输入的大小和填充来确定第一信息。可基于输入元素的位置和指定的内核元素的位置来确定第二信息。
执行卷积操作的步骤可包括:响应于第二操作模式被选择,加载包括在输入中的输入元素之中的一个输入元素;响应于所加载的输入元素为0,跳过对应于所加载的输入元素的内核元素的加载或者跳过与所加载的输入元素相关联的操作。
在另一个总体方面,一种处理CNN的设备包括:处理器,被配置为基于卷积层的内核的特性和卷积层的输入的特性中的至少一个,从重复使用内核的第一操作模式和重复使用输入的第二操作模式选择一个操作模式,并且基于所选择的操作模式执行卷积操作。
所述设备还可包括:存储器,被配置为记录第一操作模式中的第一数据加载数量。
从下面的具体实施方式、附图和权利要求,其他特征和方面将是明显的。
附图说明
图1是示出处理卷积神经网络(CNN)的方法的示例的流程图。
图2是示出CNN的示例的示图。
图3是示出卷积操作的示例的示图。
图4是示出第一操作模式的示例的示图。
图5是示出第二操作模式的示例的示图。
图6是示出选择操作模式的处理的示例的示图。
图7A至图7C是示出第一操作模式的示例的示图。
图8A至图8B是示出第二操作模式的示例的示图。
图9是示出用于处理CNN的设备的示例的示图。
贯穿附图和具体实施方式,除非另有描述或提供,否则相同的附图参考标号将被理解为指代相同的元件、特征和结构。附图可能不是按比例绘制,并且为了清楚、说明和方便,附图中元件的相对尺寸、比例和描述可能被夸大。
具体实施方式
提供下面详细的描述,以帮助读者获得对这里描述的方法、设备和/或系统的全面理解。然而,这里描述的方法、设备和/或系统的各种改变、修改和等同物对本领域的普通技术人员将是清楚的。这里描述的操作的顺序仅仅是示例,并不限于这里阐述的顺序,而是除了必须以特定的顺序发生的操作之外,可以如本领域普通技术人员清楚地那样改变。此外,为了更加清楚和简明,可省略对本领域的普通技术人员而言公知的功能和结构的描述。
这里描述的特征可以以不同形式实现,并且不应被解释为限于这里描述的示例。相反,已提供这里描述的示例,使得本公开将是彻底和完整的,并且将向本领域普通技术人员传达本公开的全部范围。
这里使用的术语仅用于描述特定示例的目的,并不用于限制本公开。如这里所使用的,除非上下文另有明确指出,否则单数术语也意在包括复数形式。如这里所使用的,术语“包括”、“包含”、“具有”指定存在叙述的特征、数量、操作、元件、部件或它们的组合,但并不排除存在或添加一个或多个其他特征、数量、操作、元件、部件和/或它们的组合。
这里可使用诸如“第一”、“第二”、“A”、“B”、“(a)”、“(b)”等的术语来描述部件。这些术语中的每一个不用于定义对应的部件的本质、顺序或序列,而是仅用于将对应的部件和其他部件区分开来。例如,第一部件可称为第二部件,并且类似地,第二部件也可称为第一部件。
应注意,如果说明书中描述一个部件“连接”、“耦合”或“结合”到另一个部件,则虽然第一部件可直接连接、耦合、结合到第二部件,但是第三部件“连接”、“耦合”和“结合”在第一部件和第二部件之间。此外,应注意,如果说明书中描述一个部件“直接连接”或“直接结合”到另一个部件,则第三部件不会出现在它们之间。类似地,例如“在…之间”和“紧密地在…之间”以及“与…相邻”和“与…紧密相邻”的表达也可如上所述来解释。
除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在此明确定义,否则术语(诸如在常用字典中定义的术语)将被解释为具有与它们在相关领域的背景下的含义一致的含义,而不被解释为理想化或过于正式的意义。
图1是示出处理卷积神经网络(CNN)的方法的示例的流程图。以下,处理CNN的方法简称为CNN处理方法。
参考图1,在操作101中,用于处理CNN的设备(以下简称为CNN处理设备)基于卷积层的内核的特性和卷积层的输入的特性中的至少一个,从重复使用内核的第一操作模式和重复使用输入的第二操作模式选择一个操作模式。在机器学习中,作为一种神经网络的CNN包括多个被设计为执行卷积操作的卷积层。CNN中的卷积层可使用内核执行与输入相关联的卷积操作。
CNN处理设备指的是被配置为处理CNN的设备,并且可作为软件模块、硬件模块或它们的组合实现。例如,CNN处理设备可产生或处理例如与CNN相关联的操作、计算和指令。
CNN处理设备可从第一操作模式和第二操作模式自适应地选择每个卷积层的操作模式。第一操作模式可重复使用卷积层的内核以执行操作,所述操作在这里还被解释为计算。第二操作模式可重复使用卷积层的输入以执行操作。将参考图3、图4、图7A、图7B、图7C描述第一操作模式的示例,并且将参考图3、图5、图8A、图8B描述第二操作模式的示例。
内核或输入的重复使用指示重复地使用所加载的内核或输入在卷积层执行卷积操作。CNN处理设备可从提供的数据库加载内核或输入。数据库可被实现为包括在CNN处理设备中的存储器,或者被实现为可通过线缆或网络或无线连接到CNN处理设备的外部装置(例如,服务器)。
图2是示出CNN的示例的示图。参考图2,CNN 200包括多个卷积层,例如,卷积层1201、卷积层2 202和卷积层203。基于卷积层201、卷积层202和卷积层203的内核的特性以及卷积层201、卷积层202和卷积层203的输入的特性,CNN处理设备可选择卷积层201、卷积层202和卷积层203中的每一个的操作模式,因此将被应用到卷积层201、卷积层202和卷积层203中的每一个的操作模式可根据对应的卷积层的输入和内核而变化。
卷积层的输入是将被用作到卷积层的输入的数据,并且包括作为由初始输入数据或先前的层产生的输出的特征图。例如,如图2所示,卷积层1 201的输入是CNN 200的初始输入204,并且卷积层2 202的输入206是子采样层的输出。卷积层2 202的输入206由子采样层基于卷积层1 201的输出205产生。卷积层203的输入是大小为W×H×C的特征图208。CNN处理设备使用卷积层203的内核对特征图208执行卷积操作。作为卷积层203的卷积操作的结果,产生大小为W×H×D的特征图209。
卷积层的内核用于在卷积层中执行卷积操作,并且可包括多个三维(3D)滤波器。例如,卷积层203可使用包括D个滤波器的内核作为用于将卷积操作应用到大小为W×H×C的特征图208的内核。
CNN 200包括卷积层201、卷积层202和卷积层203,输入204、输入206和输入208的特性以及内核的特性(例如,卷积层201、卷积层202和卷积层203的滤波器的数量和大小以及特征图的大小)可能不同。例如,卷积层201、卷积层202和卷积层203中的卷积层1 201可具有最小的深度,并且卷积层201、卷积层202和卷积层203中的卷积层203可具有最大的深度。在这个示例中,可基于CNN 200中的卷积层的深度确定卷积层的内核的特性以及卷积层的输入的特性。
CNN处理设备基于卷积层201、卷积层202和卷积层203的内核和输入204、输入206、输入208,自适应地选择卷积层201、卷积层202和卷积层203中的每一个的操作模式。因此,CNN处理设备可减少卷积操作所需的加载数据的次数(这里被称为数据加载数量)以及执行操作(例如,乘法累加(MAC)操作)的次数(这里被称为操作执行数量),从而减少存储器的使用并且实现高速度CNN处理。
返回参考图1,在操作102中,CNN处理设备基于所选择的操作模式执行卷积操作。CNN处理设备可基于从第一操作模式和第二操作模式选择的操作模式,执行卷积层的卷积操作。
以下,将参考图3至图5使用图2所示的卷积层203的输入208和输出209的示例描述卷积操作的示例。
图3是示出卷积操作的示例的示图。
参考图3,CNN处理设备基于内核301的特性和输入208的特性,选择对应于卷积层203的操作模式。内核301用于在卷积层203中执行卷积操作,并且包括D个滤波器。每个滤波器的大小为K×K×C,并且内核301的大小为K×K×C×D。
输入208的大小为W×H×C,并且输入208包括C条数据,每条数据的大小为W×H。输入208可以是应用了填充的特征图。填充指的是使用特定的值填充输入的部分的方法。该部分通常可以是边界,但是该部分的示例不限于此。使用大小为1的填充将填充应用到输入指的是在特征图的每一帧的边界填充特定的值(例如,0),并且零填充指的是通过将值设定为0来应用填充。例如,当使用大小为1的填充的零填充应用到大小为X×Y×Z的输入时,应用填充的输入的边界可以是边界为0并且大小是(X+1)×(Y+1)×Z的数据。
当操作模式被选择时,CNN处理设备使用D个滤波器对输入208执行滤波,并且从对应于D个滤波器中的每一个的滤波结果产生输出209。参考图3,通过每个大小为K×K×C的滤波器对输入208执行滤波,因此每个滤波结果的大小为W×H的滤波结果的数量可以是D,并且可从D个滤波结果产生大小为W×H×D的输出209。
输出209可包括由D个通道产生的D个滤波结果。例如,可通过大小为K×K×C的第D滤波器302对大小为W×H×C的输入208执行滤波,并且可产生大小为W×H的滤波结果303。第D滤波器302可包括C个权重图,并且每个权重图的大小可以是K×K。CNN处理设备可在包括在输入208中的大小为W×H的每帧中按步长滑动大小为K×K的每个权重图,并产生从第D滤波器302和输入208获得的滤波结果303。步长指的是在卷积操作中滑动权重图的间隔。
通常,在使用大小为K×K×C×D的内核301和大小为W×H×C的输入208按照步长1执行卷积操作的情况下,内核301的每个滤波器可滑动W×H次,因此内核301可能需要被重复加载W×H次。因此,因为大小为K×K×C×D的内核301的数据可被重复加载W×H次,所以内核301的数据可被加载总共K×K×C×D×W×H次。此外,输入208的数据可能需要被重复加载K×K次(K×K是权重图的大小)并且被重复加载D次(D是滤波器的数量,例如,输出209的通道的数量)。因此,因为大小为W×H×C的输入208的数据被重复加载K×K×D次,所以输入208的数据可被加载总共K×K×C×D×W×H次。这里,用于执行卷积操作的数据加载数量可能是2×K×K×C×D×W×H次,这是内核301的加载数量和输入208的加载数量的总和。
在一个示例中,当基于第一操作模式执行卷积操作时,CNN处理设备可通过重复使用内核301来减少数据加载数量以及操作执行数量。将参考图4描述第一操作模式的示例。在另一个示例中,当基于第二操作模式执行卷积操作时,CNN处理设备可通过重复使用输入208来减少数据加载数量以及操作执行数量。将参考图5描述第二操作模式的示例。
图4是示出第一操作模式的示例的示图。第一操作模式也可称为内核重复使用模式。
在一个示例中,CNN处理设备可通过加载包括在内核301中的内核元素以及重复使用所加载的内核元素来执行卷积操作。参考图4,CNN处理设备加载包括在内核301中的内核元素401。CNN处理设备基于指定对应于所加载的内核元素401的输入元素402的第一信息,加载在包括在输入208中的多个输入元素之中的与所加载的内核元素401相对应的输入元素402。CNN处理设备在所加载的内核元素401和所加载的输入元素402之间执行操作。
基于指定输出元素403的第二信息,CNN处理设备更新在包括在输出209中的多个输出元素之中的所加载的内核元素401和输入元素402之间的操作的结果映射到的输出元素403。CNN处理设备使用所加载的内核元素401和所加载的输入元素402之间的操作的结果更新输出元素403。
在第一操作模式中,第一信息可指定在包括在输入208中的输入元素之中的与包括在内核301中的内核元素相对应的输入元素。可基于包括在内核301中的内核元素的位置、内核301的大小K×K×C×D和步长、以及输入208的大小W×H×C和填充来确定第一信息。例如,在应用填充的输入208的大小为W×H×C并且步长为1的情况下,第一信息可基于内核元素401的位置,指定在输入208中的输入元素之中的与内核元素401相对应的输入元素402。
在第一操作模式中,第二信息可指定在包括在输出209中的输出元素之中的内核元素和指定的输入元素之间的操作的结果映射到的输出元素。可基于包括在内核301中的内核元素的位置和由第一信息指定的输入元素的位置来确定第二信息。例如,第二信息可指定内核元素401的位置以及内核元素401和输入元素402之间的操作的结果映射到的输出元素403。由与内核元素401相关联的操作的结果更新的输出元素403可由与所述内核元素不同的另一内核元素更新,并且因为输出元素403可能不是最终输出,所以输出元素403在图4中由虚线描绘。
CNN处理设备执行与所加载的内核元素401相关联的操作,然后加载随后的内核元素。CNN处理设备基于第一信息加载对应于所加载的随后的内核元素的输入元素。CNN处理设备基于第二信息更新所加载的随后的内核元素和所加载的输入元素之间的操作的结果映射到的输出元素。在第一操作模式中,CNN处理设备一次加载包括在内核301中的每个内核元素。当执行卷积操作时,CNN处理设备将所加载的内核元素重复使用与对应于所加载的内核元素的输入元素的数量相对应的次数。例如,在第一操作模式中,CNN处理设备仅需加载一次内核301中的内核元素,因此内核301的加载数量为K×K×C×D(例如,内核302的大小)。在第一操作模式中,CNN处理设备加载输入208中的输入元素K×K×D次,并且在步长为1的情况下,输入208的加载数量为K×K×C×D×W×H。在这种情况下,第一操作模式中的数据加载数量(以下,简称为第一数据加载数量)是K×K×C×D(1+W×H),因此CNN处理设备可通过使用第一操作模式减少数据加载数量。
在第一操作模式中,CNN处理设备确定所加载的内核元素401是否为0。响应于所加载的内核元素401为0,CNN处理设备跳过对应于内核元素401的输入元素402的加载或者跳过与内核元素401相关联的操作。在所加载的数据为0的情况下,跳过另外加载或者与数据相关联的操作的方法被称为“零跳过”。CNN处理设备可使用“零跳过”减少第一数据加载数量。例如,在包括在内核中的内核元素之中的内核元素为0的数量是Zk的情况下,CNN处理设备跳过对应于内核元素为0的输入元素的加载,因此在步长为1的情况下,输入208的加载数量为W×H×(K×K×C×D-Zk)。在这种情况下,第一数据加载数量为K×K×C×D+W×H×(K×K×C×D-Zk),并且CNN处理设备通过零跳过来跳过与Zk个内核元素相关联的操作。
图5是示出第二操作模式的示例的示图。第二操作模式也可简称为输入重复使用模式。
在一个示例中,CNN处理设备可通过加载包括在输入208中的输入元素以及重复使用所加载的输入元素来执行卷积操作。参考图5,CNN处理设备加载包括在输入208中的输入元素501。CNN处理设备基于指定内核元素502的第一信息,加载在包括在内核301中的多个内核元素之中的与所加载的输入元素501相对应的内核元素502。CNN处理设备在所加载的输入元素501和所加载的内核元素502之间执行操作。
CNN处理设备基于指定输出元素503的第二信息,更新在包括在输出209中的多个输出元素之中的所加载的输入元素501和内核元素502之间的操作的结果映射到的输出元素503。CNN处理设备使用所加载的输入元素501和所加载的内核元素502之间的操作的结果更新输出元素503。
在第二操作模式中,第一信息可指定在包括在内核301中的内核元素之中的与包括在输入208中的输入元素相对应的内核元素。可基于包括在输入208中的输入元素的位置、内核301的大小K×K×C×D和步长、以及输入208的大小W×H×C和填充来确定第一信息。例如,在应用填充的输入208的大小为W×H×C并且步长为1的情况下,第一信息可基于输入元素501的位置,指定在内核301中的内核元素之中的与输入元素501相对应的内核元素502。
在第二操作模式中,第二信息可指定包括在输出209中的输出元素之中的输入元素和指定的内核元素之间的操作的结果映射到的输出元素。可基于包括在输入208中的输入元素的位置以及由第一信息指定的内核元素的位置确定第二信息。例如,如图5所示,第二信息指定输入元素501的位置以及输入元素501和内核元素502之间的操作的结果映射到的输出元素503。由与输入元素501相关联的操作的结果更新的输出元素503可由不同于输入元素501的其他输入元素更新,并且因为输出元素503可能不是最终输出,所以输出元素503由虚线描绘。
CNN处理设备执行与所加载的输入元素501相关联的操作,并且加载随后的输入元素。CNN处理设备基于第一信息加载对应于所加载的随后的输入元素的内核元素。CNN处理设备基于第二信息更新所加载的随后的输入元素和所加载的内核元素之间的操作的结果映射到的输出元素。在第二操作模式中,CNN处理设备一次加载包括在输入208中的每个输入元素。当执行卷积操作时,CNN处理设备将所加载的输入元素重复使用与对应于所加载的输入元素的内核元素的数量相对应的次数。例如,在第二操作模式中,CNN处理设备仅加载一次输入208中的输入元素,因此输入208的加载数量为W×H×C(例如,输入208的大小)。在第二操作模式中,CNN处理设备重复加载内核301中的内核元素W×H次,因此在步长为1的情况下,内核301的加载数量为K×K×C×D×W×H。在这种情况下,第二操作模式中的数据加载数量(以下简称为第二数据加载数量)为W×H×C(1+K×K×D),因此CNN处理设备可通过使用第二操作模式减少数据加载数量。
在第二操作模式中,CNN处理设备确定所加载的输入元素501是否为0。响应于所加载的输入元素501为0,CNN处理设备跳过对应于输入元素501的内核元素502的加载或者跳过与输入元素501相关联的操作。CNN处理设备可使用零跳过减少第二数据加载数量。例如,当包括在输入中的输入元素为0的数量为Zi时,CNN处理设备跳过加载对应于输入元素为0的内核元素,因此在步长为1的情况下,内核301的加载数量为K×K×D×(W×H×C-Zi)。在这个示例中,第二数据加载数量为W×H×C+K×K×D×(W×H×C-Zi),并且CNN处理设备可通过零跳过来跳过与Zi个输入元素相关联的操作。
在输入中的多个输入元素之中为0的输入元素可由被用作CNN的激活函数的修正线性单元(ReLU)函数产生。在CNN的中间卷积层使用ReLU的情况下,随后的卷积层的输入可包括为0的输入元素。ReLU函数可由F(x)=max(0,x)表示,其中,x表示卷积结果,并且F(x)表示ReLU函数的输出值。负值的卷积结果可由ReLU函数输出为0。训练的卷积内核可遵循正态分布,并且针对输入图像的卷积结果可能有概率地50%为负值以及50%为正值。
在一个示例中,在输入中的多个输入元素之中的为0的输入元素可通过用于CNN的处理的向上扩展产生。向上扩展可用于增加输入的分辨率。例如,通过向上扩展,新的像素可在包括在输入中的每个像素周围产生。在这个示例中,所产生的新的像素可被设置为0。例如,在图像分割中,可通过池化或采样降低分辨率,并且可通过反池化(unpooling)或反采样(unsampling)恢复原始分辨率。这里,在恢复分辨率的处理中新产生的像素可被设置为0。作为反池化或反采样的结果,75%或更多的像素值可能为0。
图6是示出选择操作模式的方法的示例的示图。
参考图6,CNN处理设备可包括卷积操作模式选择模块,并且卷积操作模式选择模块指的是被配置为选择CNN的每个卷积层的操作模式的模块。CNN处理设备可考虑卷积层的内核的特性以及输入的特性以选择卷积层的操作模式。内核的特性可包括以下两项中的至少一项:包括在内核中的内核元素中的0的比率或者内核的大小。输入的特性可包括以下两项中的至少一项:包括在输入中的输入元素中的0的比率或者输入的大小。CNN处理设备可基于内核的特性或者输入的特性中的至少一个,选择满足与数据加载数量或者操作存储器的容量中的至少一个相关联的约束的操作模式。
如图6所示,CNN处理设备从卷积层的输入获得包括在输入中的输入元素中的0的比率Iz。CNN处理设备获得包括在卷积层中的内核中的内核元素中的0的比率Kz。例如,比率Iz可根据对应的卷积层的输入而变化,因此CNN处理设备可从输入动态地提取比率Iz。比率Kz可以是由预先设计的CNN确定的值,因此从数据库获得。CNN处理设备选择对应于所获得的比率Iz和所获得的比率Kz之间的较大的值的操作模式。如图6所示,CNN处理设备可基于比率Iz和比率Kz中哪一个更大,选择卷积层的操作模式。
在一个示例中,CNN处理设备可基于输入的大小和内核的大小之间的比率选择操作模式。例如,CNN处理设备可获得包括在输入中的帧的大小和包括在内核中的权重图的大小之间的比率,并且通过比较所获得的比率与预定的比率来选择操作模式。当设计CCN时,可确定帧的大小和权重图的大小,因此CNN处理设备可从数据库获得比率、比率与预定的比率的比较结果或者所选择的操作模式中的至少一个。
CNN处理设备可选择对应于第一数据加载数量和第二数据加载数量之间的较小的值的操作模式。这将使用具有相对较小的数据加载数量的操作模式。例如,可通过内核加载数量与输入加载数量之和来计算第一数据加载数量,其中,基于内核的大小计算内核加载数量,基于内核中的内核元素中的0的数量和输入的大小计算输入加载数量。可以在不考虑输入中的输入元素中的0的数量的情况下计算第一数据加载数量,因此当设计CNN时可确定第一数据加载数量,并且CNN处理设备可从数据库获得第一数据加载数量。CNN处理设备可从输入动态地获得包括在输入中的输入元素中的0的数量。CNN处理设备可基于输入加载数量与内核加载数量之和来计算第二数据加载数量,其中,基于输入的大小计算输入加载数量,基于输入中的输入元素中的0的数量和内核的大小计算内核加载数量。输入中的0的数量可以不是预存储的值,因此CNN处理设备可计算每个卷积层的第二数据加载数量。CNN处理设备可通过比较从数据库获得的第一数据加载数量和动态地计算的第二数据加载数量来选择适合于卷积层的操作模式。
图7A至图7C是示出第一操作模式的示例的示图。
在一个示例中,CNN处理设备可基于第一操作模式分配至少一个临时缓冲器以执行卷积操作,并且将输入元素存储在所分配的临时缓冲器中。CNN处理设备可使用存储在临时缓冲器中的输入元素执行每个内核元素的卷积操作。以下将参考图7A至图7C描述基于临时缓冲器的这种分配的第一操作模式的示例。
参考图7A,在第一操作模式下,CNN处理设备在大小为2×2×C的滤波器701和大小为3×3×C的输入702之间执行卷积操作。滤波器701包括每个权重图的大小为2×2的权重图,并且权重图的数量为C。输入702包括每帧的大小为3×3的帧,并且帧的数量为C。填充的输入703指的是通过将使用1的填充的填充应用到输入702获得的输入,并且所填充的输入703的大小为5×5×C。这里,在步长为1的假设下描述本示例。
CNN处理设备分配对应于包括在滤波器701中的内核元素的临时缓冲器704。滤波器701的权重图的大小为2×2并且步长为1,因此对应于滤波器701的每个内核元素(例如,权重)的所填充的输入703的输入元素被限制为大小为4×4。CNN处理设备分配临时缓冲器704以存储对应于滤波器701中的每个内核元素的输入元素。例如,如图7A所示,CNN处理设备为对应于内核元素w11的输入元素705分配临时缓冲器T1的部分(例如,最先的部分),为对应于内核元素w2c的输入元素706分配临时缓冲器T2的部分(例如,最后的部分),加载输入元素705和输入元素706,并且存储所加载的输入元素705和输入元素706。滤波器701的权重图的大小为2×2,因此CNN处理设备如图所示分配临时缓冲器T1、T2、T3和T4。临时缓冲器T1对应于内核w11,w12…w1c,临时缓冲器T2对应于内核w21,w22…w2c,临时缓冲器T3对应于内核w31,w32…w3c,并且临时缓冲器T4对应于内核w41,w42…w4c。
权重图的大小为2×2,所填充的输入703的每帧的大小为5×5,并且步长为1,因此CNN处理设备确定关于每个内核元素的操作涉及的输入元素的大小为4×4,并且分配大小为4×4×C的临时缓冲器T1、T2、T3和T4。因此,CNN处理设备分配大小为4×4×C×4的临时缓冲器704。
参考图7B,CNN处理设备加载内核元素,并且基于所加载的内核元素和临时缓冲器执行卷积操作。CNN处理设备基于所加载的内核元素和存储在临时缓冲器中的输入元素之间的操作结果产生输出。如图7B所示,CNN处理设备在内核元素w11,w12…w1c和存储在临时缓冲器T1中的输入元素之间执行二维(2D)矩阵标量乘法在内核元素w21,w22…w2c和存储在临时缓冲器T2中的输入元素之间执行2D矩阵标量乘法在内核元素w31,w32…w3c和存储在临时缓冲器T3中的输入元素之间执行2D矩阵标量乘法在内核元素w41,w42…w4c和存储在临时缓冲器T4中的输入元素之间执行2D矩阵标量乘法并且通过运算的结果的2D矩阵方式加法(2D matrix wise addition)来产生输出。例如,CNN处理设备加载包括在滤波器701中的内核元素中的内核元素w11,加载对应于内核元素w11的输入元素712,将加载的输入元素712存储在临时缓冲器T1中,并且在存储在临时缓冲器T1中的输入元素713和内核w11之间执行操作。在这个示例中,CNN处理设备可仅加载一次内核元素,并且临时缓冲器被分类为临时缓冲器T1至临时缓冲器T4,因此CNN处理设备可重复加载输入元素四次。
参考图7C,CNN处理设备基于通过将填充应用到大小为W×H×C的输入772获得的所填充的输入723和大小为K×K×C×D的内核712来分配临时缓冲器724。CNN处理设备基于所填充的输入723和临时缓冲器724来产生输出725。这里,参考图7B描述的操作可应用到D个滤波器中的每一个。
当关于所加载的内核元素的操作终止时,CNN处理设备加载另一个内核元素。响应于另一个内核元素不为0,CNN处理设备执行卷积操作。这里,在对应于先前的内核元素的输入元素以及对应于另一个内核元素的输入元素相同的情况下,CNN处理设备使用先前存储在临时缓冲器中的输入元素执行卷积操作。
CNN处理设备确定所加载的内核元素是否为0。响应于所加载的内核元素为0,CNN处理设备跳过与为0的内核元素相关联的临时缓冲器的分配,或者跳过与为0的内核元素相关联的操作。响应于所加载的内核元素不为0,CNN处理设备如上所述来分配临时缓冲器。尽管与临时缓冲器的分配相关联地描述了第一操作模式,但是上面描述的示例可应用到第二操作模式。在第二操作模式中分配临时缓冲器的情况下,CNN处理设备将内核元素存储在所分配的临时缓冲器中。此外,第一操作模式和第二操作模式可在不分配临时缓冲器的情况下执行。
图8A和图8B是示出第二操作模式的示例的示图。
参考图8A,在内核801的大小为3×3,步长为1,并且输入802的填充为1的情况下,第一信息803指定多个内核元素(例如,w1,…,w9)中的与输入元素相对应的内核元素。例如,如图8A中所示,第一信息803指定对应于位于左上角的输入元素的内核元素w1、w2、w4和w5,以及对应于每个输入元素的内核元素。第一信息803基于内核801的大小3×3、为1的步长、输入802的大小以及为1的填充,指定对应于输入元素的位置(例如,左上角、第一行、右上角、…右下角)的内核元素。CNN处理设备加载包括在输入802中的一个输入元素,并且基于第一信息803加载对应于所加载的输入元素的内核元素。
参考图8B,第二信息804指定在包括在输出805中的多个输出元素之中的所加载的输入元素和内核元素之间的操作的结果映射到的输出元素。在输入802的大小为W×H并且内核801在应用填充为1的填充的所填充的输入812中滑动(例如,步长为1)的情况下,CNN处理设备基于第一信息803加载输入元素A806并加载内核元素807。CNN处理设备基于指定所加载的输入元素A806和所加载的内核元素807之间的操作的结果映射到的输出元素(HA,WA),(HA,WA+1),(HA+1,WA)以及(HA+1,WA+1)的信息808来更新输出元素。在图8B中所示的输出元素的索引中,HA和WA分别是指示输入元素A806的行和列的索引。类似地,CNN处理设备加载输入元素B 809和内核元素810,并基于指定所加载的输入元素B 809和所加载的内核元素810之间的操作的结果映射到的输出元素的信息811来更新输出元素。在第二操作模式中,CNN处理设备可通过加载和重复使用输入元素的方法来减少数据加载数量和操作执行数量。例如,在所加载的输入元素为0的情况下,CNN处理设备可跳过基于第一信息的数据的加载并且跳过基于第二信息的操作。基于第一信息和第二信息的第二操作模式的示例也可应用于第一操作模式。
图9是示出CNN处理设备的示例的示图。
参考图9,CNN处理设备901包括处理器902和存储器903。处理器902可包括参考图1至图8B描述的至少一个单元或者装置,或者执行参考图1至图8B描述的至少一个处理或者方法。存储器903可存储卷积层的输入的特性以及卷积层的内核的特性中的至少一个,或者存储数据加载数量,或者存储实现CNN处理方法的程序。存储器903可以是易失性存储器或非易失性存储器。
处理器902可执行程序,并且控制CNN处理设备901。由处理器902执行的程序代码可存储在存储器903中。CNN处理设备901可通过输入和输出装置(未示出)连接到外部装置(例如,个人电脑(PC)或网络),并与外部装置交换数据。
CNN处理设备901可用于被配置为以高速度处理与CNN相关联的操作的CNN加速器以及用于控制相应的专用处理器的神经处理单元(NPU)或视觉处理单元(VPU)。基于设计CNN处理设备901的意图,CNN处理设备901可使用各种类型的硬件或者被各种类型的硬件使用。CNN处理设备901可不限于示出的部件或单元的示例。当将上述示例应用于处理CNN时,CNN处理设备901可减少处理CNN所需要的数据加载数量以及操作执行数量(例如,MAC操作执行数量),从而减少存储器的使用并且提高处理速度。因此,上述的示例可适用于使用有限资源或嵌入式终端的环境。
执行这里针对图1、图2、图3、图4、图5、图6、图7A至图7C以及图8A和图8B描述的操作的图9中示出的设备、单元、模块、装置或者其他部件由硬件部件实现。硬件部件的示例包括控制器、传感器、发生器、驱动器以及本领域普通技术人员所知的任何其他电子部件。在一个示例中,硬件部件由一个或多个处理器或计算机实现。处理器或者计算机由一个或多个处理元件(诸如逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或者本领域普通技术人员所知的能够以定义的方式响应并且执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或者连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件部件执行指令或软件(诸如操作系统(OS)以及在OS上运行的一个或多个软件应用),以执行这里针对图1、图2、图3、图4、图5、图6、图7A至图7C以及图8A和图8B描述的操作。响应于指令或软件的执行,硬件部件还访问、操作、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于这里描述的示例的描述,但是在其他示例中,多个存储器或计算机被使用,或者处理器或计算机包括多个处理元件或者多种类型的处理元件,或者包括这两者。在一个示例中,硬件部件包括多个处理器,并且在另一个示例中,硬件部件包括一个处理器和一个控制器。硬件部件具有不同的处理配置中的任何一个或多个,所述不同的处理配置的示例包括单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。
控制处理器或计算机以实现硬件部件并且执行如上所述的方法的指令或软件被编写为计算机程序、代码段、指令或者它们的任何组合,用于单独地或共同地指示或者配置处理器或计算机作为机器或专用计算机操作,以执行由如上所述的硬件部件和方法执行的操作。在一个示例中,指令或软件包括由处理器或计算机直接执行的机器代码,诸如由编译器产生的机器代码。在另一个示例中,指令或软件包括由处理器或计算机使用解释器执行的高级代码。本领域普通技术编程人员能够基于附图中所示的框图和流程图以及说明书中的相对应的描述容易地编写指令或软件,其中,说明书公开了用于执行由如上所述的硬件部件和方法执行的操作的算法。
用于控制处理器或计算机以实现硬件部件并且执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及本领域普通技术人员所知的任何装置,所述装置能够以非暂时性方式存储指令或软件以及任何相关的数据、数据文件和数据结构,并且将指令或软件以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机,使得处理器或计算机能够执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件以及数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件以及数据结构通过处理器或计算机以分布式的方式存储、访问以及执行。
尽管本公开包括具体示例,但是本领域普通技术人员将会清楚,在不脱离权利要求及其等同物的精神和范围的情况下,可对这些示例进行各种形式和细节上的改变。这里描述的示例仅在描述性意义上被考虑,而不是为了限制的目的。每个示例中的特征或方面的描述被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序执行,和/或如果描述的系统、架构、装置或电路中的部件以不同的方式结合和/或由其他部件或它们的等同物替代或补充,则可获得适当的结果。因此,本公开的范围不是由具体实施方式限定,而是由权利要求及其等同物限定,并且权利要求及其等同物的范围内的所有变化将被解释为包括在本公开中。
Claims (29)
1.一种处理卷积神经网络CNN的方法,所述方法包括:
基于卷积层的内核的特性和卷积层的输入的特性中的至少一个,从重复使用内核的第一操作模式和重复使用输入的第二操作模式选择一个操作模式;
基于所选择的操作模式执行卷积操作。
2.根据权利要求1所述的方法,其中,所述CNN包括多个卷积层,
所述方法还包括:
基于所述多个卷积层的内核的特性和所述多个卷积层的输入的特性,自适应地从第一操作模式和第二操作模式选择每个卷积层的操作模式。
3.根据权利要求1所述的方法,其中,内核的特性包括在内核中包括的内核元素中的0的比率以及内核的大小中的至少一个;
输入的特性包括在输入中包括的输入元素中的0的比率以及输入的大小中的至少一个。
4.根据权利要求1所述的方法,其中,选择操作模式的步骤包括:
获得包括在输入中的输入元素中的0的比率;
选择对应于所获得的比率以及包括在内核中的内核元素中的0的比率之间的较大的值的操作模式。
5.根据权利要求1所述的方法,其中,选择操作模式的步骤包括:
基于输入的大小和内核的大小之间的比率选择操作模式。
6.根据权利要求1所述的方法,其中,基于所述CNN中的卷积层的深度来确定内核的特性以及输入的特性,
选择操作模式的步骤包括:
基于内核的特性和输入的特性中的至少一个,选择满足与数据加载数量和操作存储器的容量中的至少一个相关联的约束的操作模式。
7.根据权利要求1所述的方法,其中,选择操作模式的步骤包括:
选择对应于第一操作模式中的第一数据加载数量以及第二操作模式中的第二数据加载数量之间的较小的值的操作模式。
8.根据权利要求7所述的方法,其中,选择操作模式的步骤包括:
获得第一数据加载数量;
其中,第一数据加载数量基于内核加载数量与输入加载数量之和来计算,其中,内核加载数量基于内核的大小来计算,输入加载数量基于包括在内核中的内核元素之中的0的数量以及输入的大小来计算。
9.根据权利要求7所述的方法,其中,选择操作模式的步骤包括:
获得包括在输入中的输入元素之中的0的数量;
基于输入加载数量与内核加载数量之和来计算第二数据加载数量,其中,输入加载数量基于输入的大小来计算,内核加载数量基于输入元素之中的0的数量以及内核的大小来计算。
10.根据权利要求1所述的方法,其中,执行卷积操作的步骤包括:
响应于第一操作模式被选择,基于第一信息和第二信息执行卷积操作,其中,第一信息指定包括在输入中的输入元素之中的与包括在内核中的内核元素相对应的输入元素,第二信息指定包括在卷积操作的输出中的输出元素之中的内核元素和指定的输入元素之间的操作的结果映射到的输出元素。
11.根据权利要求10所述的方法,其中,执行卷积操作的步骤包括:
加载内核元素中的一个内核元素;
基于第一信息加载对应于所加载的内核元素的输入元素;
基于第二信息更新所加载的内核元素和所加载的输入元素之间的操作的结果映射到的输出元素。
12.根据权利要求10所述的方法,其中,基于内核元素的位置、内核的大小和步长、以及输入的大小和填充来确定第一信息,
基于内核元素的位置以及指定的输入元素的位置来确定第二信息。
13.根据权利要求1所述的方法,其中,执行卷积操作的步骤包括:
响应于第一操作模式被选择,加载包括在内核中的内核元素之中的一个内核元素;
响应于所加载的内核元素为0,跳过对应于所加载的内核元素的输入元素的加载或者跳过与所加载的内核元素相关联的操作。
14.根据权利要求1所述的方法,其中,执行卷积操作的步骤包括:
响应于第一操作模式被选择,分配对应于包括在内核中的内核元素的至少一个临时缓冲器;
加载内核中的内核元素之中的一个内核元素;
基于所加载的内核元素以及对应于所加载的内核元素的临时缓冲器执行卷积操作。
15.根据权利要求14所述的方法,其中,执行卷积操作的步骤还包括:
加载内核元素中的与所加载的内核元素不同的另一内核元素;
响应于所述另一内核元素不为0,基于所述另一内核元素和存储在对应于所述另一内核元素的临时缓冲器中的输入元素之间的操作的结果来执行卷积操作。
16.根据权利要求1所述的方法,其中,执行卷积操作的步骤包括:
响应于第一操作模式被选择,加载包括在内核中的内核元素之中的一个内核元素;
响应于所加载的内核元素为0,跳过临时缓冲器的分配;
响应于所加载的内核元素不为0,基于所加载的内核元素的位置、内核的大小和步长、以及输入的大小和填充来分配临时缓冲器;
加载对应于所加载的内核元素的输入元素,并且将所加载的输入元素存储在分配的临时缓冲器中;
基于所加载的内核元素和存储在临时缓冲器中的输入元素之间的操作的结果来执行卷积操作。
17.根据权利要求1所述的方法,其中,执行卷积操作的步骤包括:
响应于第二操作模式被选择,基于第一信息和第二信息执行卷积操作,其中,第一信息指定包括在内核中的内核元素之中的与包括在输入中的输入元素相对应的内核元素,第二信息指定包括在卷积操作的输出中的输出元素之中的输入元素和指定的内核元素之间的操作的结果映射到的输出元素。
18.根据权利要求17所述的方法,其中,执行卷积操作的步骤包括:
加载输入元素中的一个输入元素;
基于第一信息,加载对应于所加载的输入元素的内核元素;
基于第二信息,更新所加载的输入元素和所加载的内核元素之间的操作的结果映射到的输出元素。
19.根据权利要求17所述的方法,其中,基于输入元素的位置、内核的大小和步长、以及输入的大小和填充来确定第一信息,
基于输入元素的位置和指定的内核元素的位置来确定第二信息。
20.根据权利要求1所述的方法,其中,执行卷积操作的步骤包括:
响应于第二操作模式被选择,加载包括在输入中的输入元素之中的一个输入元素;
响应于所加载的输入元素为0,跳过对应于所加载的输入元素的内核元素的加载,或者跳过与所加载的输入元素相关联的操作。
21.一种存储有使计算硬件执行如权利要求1所述的方法的指令的非暂时性计算机可读存储介质。
22.一种用于处理卷积神经网络CNN的设备,所述设备包括:
处理器,被配置为基于卷积层的内核的特性和卷积层的输入的特性中的至少一个,从重复使用内核的第一操作模式以及重复使用输入的第二操作模式选择一个操作模式,并且基于所选择的操作模式执行卷积操作。
23.根据权利要求22所述的设备,其中,所述CNN包括多个卷积层,
所述处理器被配置为基于所述多个卷积层的内核的特性以及所述多个卷积层的输入的特性,自适应地从第一操作模式和第二操作模式选择每个卷积层的操作模式。
24.根据权利要求22所述的设备,其中,内核的特性包括在内核中包括的内核元素中的0的比率和内核的大小中的至少一个,
输入的特性包括在输入中包括的输入元素中的0的比率和输入的大小中的至少一个,
基于所述CNN中的卷积层的深度来确定内核的特性和输入的特性,
所述处理器被配置为基于内核的特性和输入的特性中的至少一个,选择满足与数据加载数量和操作存储器的容量中的至少一个相关联的约束的操作模式。
25.根据权利要求24所述的设备,还包括:
存储器,被配置为记录第一操作模式中的第一数据加载数量;
其中,第一数据加载数量基于内核加载数量与输入加载数量之和来计算,其中,内核加载数量基于内核的大小来计算,输入加载数量基于包括在内核中的内核元素之中的0的数量以及输入的大小来计算;
所述处理器被配置为:
获得第一数据加载数量;
获得在包括在输入中的输入元素之中的0的数量;
基于输入加载数量与内核加载数量之和来计算第二数据加载数量,其中,输入加载数量基于输入的大小来计算,内核加载数量基于输入元素之中的0的数量以及内核的大小来计算;
选择对应于第一操作模式中的第一数据加载数量和第二操作模式中的第二数据加载数量之间的较小的值的操作模式。
26.根据权利要求22所述的设备,其中,响应于第一操作模式被选择,所述处理器被配置为基于第一信息和第二信息来执行卷积操作,其中,第一信息指定包括在输入中的输入元素之中的与包括在内核中的内核元素相对应的输入元素,第二信息指定包括在卷积操作的输出中的输出元素之中的内核元素和指定的输入元素之间的操作的结果映射到的输出元素。
27.根据权利要求22所述的设备,其中,响应于第一操作模式被选择,所述处理器被配置为:加载包括在内核中的内核元素之中的一个内核元素,并且响应于所加载的内核元素为0,跳过对应于所加载的内核元素的输入元素的加载或者跳过与所加载的内核元素相关联的操作。
28.根据权利要求22所述的设备,其中,响应于第二操作模式被选择,所述处理器被配置为基于第一信息和第二信息来执行卷积操作,其中,第一信息指定包括在内核中的内核元素之中的与包括在输入中的输入元素相对应的内核元素,第二信息指定包括在卷积操作的输出中的输出元素之中的输入元素和指定的内核元素之间的操作的结果映射到的输出元素。
29.根据权利要求22所述的设备,其中,响应于第二操作模式被选择,所述处理器被配置为:加载包括在输入中的输入元素之中的一个输入元素,并且响应于所加载的输入元素为0,跳过对应于所加载的输入元素的内核元素的加载或者跳过与所加载的输入元素相关联的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2016-0147562 | 2016-11-07 | ||
KR1020160147562A KR102631381B1 (ko) | 2016-11-07 | 2016-11-07 | 컨볼루션 신경망 처리 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108073981A true CN108073981A (zh) | 2018-05-25 |
CN108073981B CN108073981B (zh) | 2023-09-05 |
Family
ID=60182358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710970971.2A Active CN108073981B (zh) | 2016-11-07 | 2017-10-18 | 处理卷积神经网络的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10755126B2 (zh) |
EP (1) | EP3319015B1 (zh) |
JP (1) | JP7021904B2 (zh) |
KR (1) | KR102631381B1 (zh) |
CN (1) | CN108073981B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880034A (zh) * | 2018-09-06 | 2020-03-13 | 三星电子株式会社 | 使用卷积神经网络的计算装置及其操作方法 |
CN112396085A (zh) * | 2019-08-13 | 2021-02-23 | 三星电子株式会社 | 识别图像的方法和设备 |
CN114090470A (zh) * | 2020-07-29 | 2022-02-25 | 中国科学院深圳先进技术研究院 | 数据预加载装置及其预加载方法、存储介质和计算机设备 |
TWI762055B (zh) * | 2020-11-30 | 2022-04-21 | 鴻海精密工業股份有限公司 | 卷積神經網路、運算優化方法、裝置、電子設備及介質 |
Families Citing this family (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10433751B2 (en) | 2013-09-25 | 2019-10-08 | Bardy Diagnostics, Inc. | System and method for facilitating a cardiac rhythm disorder diagnosis based on subcutaneous cardiac monitoring data |
US10736531B2 (en) | 2013-09-25 | 2020-08-11 | Bardy Diagnostics, Inc. | Subcutaneous insertable cardiac monitor optimized for long term, low amplitude electrocardiographic data collection |
US10624551B2 (en) | 2013-09-25 | 2020-04-21 | Bardy Diagnostics, Inc. | Insertable cardiac monitor for use in performing long term electrocardiographic monitoring |
US10433748B2 (en) | 2013-09-25 | 2019-10-08 | Bardy Diagnostics, Inc. | Extended wear electrocardiography and physiological sensor monitor |
US20190167139A1 (en) | 2017-12-05 | 2019-06-06 | Gust H. Bardy | Subcutaneous P-Wave Centric Insertable Cardiac Monitor For Long Term Electrocardiographic Monitoring |
US10820801B2 (en) | 2013-09-25 | 2020-11-03 | Bardy Diagnostics, Inc. | Electrocardiography monitor configured for self-optimizing ECG data compression |
US10463269B2 (en) | 2013-09-25 | 2019-11-05 | Bardy Diagnostics, Inc. | System and method for machine-learning-based atrial fibrillation detection |
US10799137B2 (en) | 2013-09-25 | 2020-10-13 | Bardy Diagnostics, Inc. | System and method for facilitating a cardiac rhythm disorder diagnosis with the aid of a digital computer |
US10806360B2 (en) | 2013-09-25 | 2020-10-20 | Bardy Diagnostics, Inc. | Extended wear ambulatory electrocardiography and physiological sensor monitor |
EP3259914A1 (en) * | 2015-02-19 | 2017-12-27 | Magic Pony Technology Limited | Interpolating visual data |
GB201604672D0 (en) | 2016-03-18 | 2016-05-04 | Magic Pony Technology Ltd | Generative methods of super resolution |
GB201603144D0 (en) | 2016-02-23 | 2016-04-06 | Magic Pony Technology Ltd | Training end-to-end video processes |
WO2017178808A1 (en) | 2016-04-12 | 2017-10-19 | Magic Pony Technology Limited | Visual data processing using energy networks |
US10366302B2 (en) * | 2016-10-10 | 2019-07-30 | Gyrfalcon Technology Inc. | Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor |
US10387740B2 (en) * | 2016-10-10 | 2019-08-20 | Gyrfalcon Technology Inc. | Object detection and recognition apparatus based on CNN based integrated circuits |
JP2018093325A (ja) * | 2016-12-01 | 2018-06-14 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US10261903B2 (en) * | 2017-04-17 | 2019-04-16 | Intel Corporation | Extend GPU/CPU coherency to multi-GPU cores |
US11290617B2 (en) * | 2017-04-20 | 2022-03-29 | Hewlett-Packard Development Company, L.P. | Document security |
CN107124609A (zh) * | 2017-04-27 | 2017-09-01 | 京东方科技集团股份有限公司 | 一种视频图像的处理系统、其处理方法及显示装置 |
EP3596655B1 (en) * | 2017-06-05 | 2023-08-09 | Siemens Aktiengesellschaft | Method and apparatus for analysing an image |
US11308361B1 (en) | 2017-07-07 | 2022-04-19 | Twitter, Inc. | Checkerboard artifact free sub-pixel convolution |
JP7144413B2 (ja) * | 2017-07-14 | 2022-09-29 | 株式会社半導体エネルギー研究所 | 撮像装置 |
US10691975B2 (en) * | 2017-07-19 | 2020-06-23 | XNOR.ai, Inc. | Lookup-based convolutional neural network |
US10083375B1 (en) * | 2017-10-13 | 2018-09-25 | StradVision, Inc. | Method and device for performing activation and convolution operation at the same time and learning method and learning device for the same |
US10049323B1 (en) * | 2017-10-13 | 2018-08-14 | StradVision, Inc. | Method and device for performing activation and convolution operation at the same time and learning method and learning device for the same |
CN107895174B (zh) * | 2017-11-09 | 2020-01-07 | 京东方科技集团股份有限公司 | 图像分类和转换方法、装置以及图像处理系统 |
US11637331B2 (en) * | 2017-11-20 | 2023-04-25 | The Trustees Of Columbia University In The City Of New York | Neural-network state-of-charge and state of health estimation |
US10552664B2 (en) * | 2017-11-24 | 2020-02-04 | International Business Machines Corporation | Image feature classification and localization using discriminative representations for robotic surgical control |
EP3499415A1 (en) * | 2017-12-14 | 2019-06-19 | Axis AB | Method and image processing entity for applying a convolutional neural network to an image |
DE102018200534A1 (de) * | 2018-01-15 | 2019-07-18 | Robert Bosch Gmbh | Verfahren zum Betreiben eines künstlichen neuronalen Netzes |
US10140553B1 (en) * | 2018-03-08 | 2018-11-27 | Capital One Services, Llc | Machine learning artificial intelligence system for identifying vehicles |
WO2019190449A1 (en) * | 2018-03-26 | 2019-10-03 | Hewlett-Packard Development Company, L.P. | Generation of kernels based on physical states |
CN108875904A (zh) * | 2018-04-04 | 2018-11-23 | 北京迈格威科技有限公司 | 图像处理方法、图像处理装置和计算机可读存储介质 |
US20210042559A1 (en) * | 2018-04-27 | 2021-02-11 | Carnegie Mellon University | Polynomial convolutional neural network with late fan-out |
US11340936B2 (en) | 2018-05-04 | 2022-05-24 | Apple Inc. | Compiling and scheduling transactions in neural network processor |
JP2019207458A (ja) * | 2018-05-28 | 2019-12-05 | ルネサスエレクトロニクス株式会社 | 半導体装置及びメモリアクセス設定方法 |
WO2020014893A1 (zh) * | 2018-07-18 | 2020-01-23 | 深圳鲲云信息科技有限公司 | 反卷积实现方法及相关产品 |
CN109325918B (zh) * | 2018-07-26 | 2022-05-13 | 京东方科技集团股份有限公司 | 一种图像处理的方法、装置及计算机存储介质 |
US11010308B2 (en) | 2018-08-10 | 2021-05-18 | Lg Electronics Inc. | Optimizing data partitioning and replacement strategy for convolutional neural networks |
KR102043376B1 (ko) * | 2018-08-16 | 2019-11-11 | 한국과학기술연구원 | 심층 신경망 알고리즘을 이용하는 실시간 스트레스 분석 방법 |
US10931853B2 (en) * | 2018-10-18 | 2021-02-23 | Sony Corporation | Enhanced color reproduction for upscaling |
US11037030B1 (en) * | 2018-10-29 | 2021-06-15 | Hrl Laboratories, Llc | System and method for direct learning from raw tomographic data |
KR20200053886A (ko) * | 2018-11-09 | 2020-05-19 | 삼성전자주식회사 | 뉴럴 프로세싱 유닛, 뉴럴 프로세싱 시스템, 및 어플리케이션 시스템 |
KR20200057814A (ko) * | 2018-11-13 | 2020-05-27 | 삼성전자주식회사 | 뉴럴 네트워크를 이용한 데이터 처리 방법 및 이를 지원하는 전자 장치 |
KR102451519B1 (ko) * | 2018-11-20 | 2022-10-07 | 삼성전자주식회사 | 룩업 테이블 기반의 비트-시리얼 처리 요소를 포함하는 심층 신경망 가속기 |
US20200184319A1 (en) * | 2018-12-05 | 2020-06-11 | Apical Limited | Systems and devices for configuring neural network circuitry |
US11544522B2 (en) * | 2018-12-06 | 2023-01-03 | University Of Tennessee Research Foundation | Methods, systems, and computer readable mediums for determining a system state of a power system using a convolutional neural network |
US10810725B1 (en) * | 2018-12-07 | 2020-10-20 | Facebook, Inc. | Automated detection of tampered images |
KR20200072308A (ko) | 2018-12-12 | 2020-06-22 | 삼성전자주식회사 | 뉴럴 네트워크에서 컨볼루션 연산을 수행하는 방법 및 장치 |
US20200202622A1 (en) * | 2018-12-19 | 2020-06-25 | Nvidia Corporation | Mesh reconstruction using data-driven priors |
KR102562320B1 (ko) | 2018-12-24 | 2023-08-01 | 삼성전자주식회사 | 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치 |
KR20200081044A (ko) | 2018-12-27 | 2020-07-07 | 삼성전자주식회사 | 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치 |
KR20200082613A (ko) | 2018-12-31 | 2020-07-08 | 에스케이하이닉스 주식회사 | 프로세싱 시스템 |
US11048935B2 (en) | 2019-01-28 | 2021-06-29 | Adobe Inc. | Generating shift-invariant neural network outputs |
CN109993825B (zh) * | 2019-03-11 | 2023-06-20 | 北京工业大学 | 一种基于深度学习的三维重建方法 |
US11003909B2 (en) * | 2019-03-20 | 2021-05-11 | Raytheon Company | Neural network trained by homographic augmentation |
WO2020194032A1 (en) * | 2019-03-26 | 2020-10-01 | Mipsology SAS | Accelerating neuron computations in artificial neural networks by skipping bits |
CN117234356A (zh) * | 2019-05-08 | 2023-12-15 | 义隆电子股份有限公司 | 用于触控装置的控制系统及方法 |
EP3970141B1 (en) * | 2019-05-14 | 2024-02-28 | Dolby Laboratories Licensing Corporation | Method and apparatus for speech source separation based on a convolutional neural network |
KR102266903B1 (ko) * | 2019-05-16 | 2021-06-18 | 삼성전자주식회사 | 영상 처리 장치 및 그 동작방법 |
CN111988609A (zh) * | 2019-05-22 | 2020-11-24 | 富士通株式会社 | 图像编码装置、概率模型生成装置和图像解码装置 |
US20190392296A1 (en) * | 2019-06-28 | 2019-12-26 | John Brady | Hardware agnostic deep neural network compiler |
US11116451B2 (en) | 2019-07-03 | 2021-09-14 | Bardy Diagnostics, Inc. | Subcutaneous P-wave centric insertable cardiac monitor with energy harvesting capabilities |
US11096579B2 (en) | 2019-07-03 | 2021-08-24 | Bardy Diagnostics, Inc. | System and method for remote ECG data streaming in real-time |
US11696681B2 (en) | 2019-07-03 | 2023-07-11 | Bardy Diagnostics Inc. | Configurable hardware platform for physiological monitoring of a living body |
US20210011732A1 (en) * | 2019-07-09 | 2021-01-14 | MemryX Inc. | Matrix Data Reuse Techniques in Processing Systems |
US11222092B2 (en) * | 2019-07-16 | 2022-01-11 | Facebook Technologies, Llc | Optimization for deconvolution |
WO2021022543A1 (en) * | 2019-08-08 | 2021-02-11 | Boe Technology Group Co., Ltd. | Computer-implemented method, computer-implemented diagnosis method, apparatus for classifying image, and computer-program product |
KR102147912B1 (ko) * | 2019-08-13 | 2020-08-25 | 삼성전자주식회사 | 프로세서 칩 및 그 제어 방법들 |
CN110490154B (zh) * | 2019-08-23 | 2020-09-15 | 集美大学 | 一种多维泄漏信息检测方法、终端设备及存储介质 |
US11151416B2 (en) * | 2019-09-11 | 2021-10-19 | Expedera, Inc. | Method and apparatus for efficiently processing convolution neural network operations |
KR20210039197A (ko) | 2019-10-01 | 2021-04-09 | 삼성전자주식회사 | 데이터를 처리하는 방법 및 장치 |
CN110704197B (zh) * | 2019-10-17 | 2022-12-09 | 北京小米移动软件有限公司 | 处理内存访问开销的方法、装置及介质 |
KR102624027B1 (ko) * | 2019-10-17 | 2024-01-11 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
US11507702B2 (en) * | 2019-11-05 | 2022-11-22 | Apple Inc. | Secure mode switching in neural processor circuit |
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 |
KR102559036B1 (ko) * | 2019-12-24 | 2023-07-25 | 서울대학교산학협력단 | 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치 |
KR20210083624A (ko) | 2019-12-27 | 2021-07-07 | 삼성전자주식회사 | 신경망의 데이터 입력 및 출력을 제어하는 제어 방법 및 장치 |
TWI733334B (zh) * | 2020-02-15 | 2021-07-11 | 財團法人工業技術研究院 | 卷積神經網路運算裝置及其運算的方法 |
US11301705B2 (en) * | 2020-02-27 | 2022-04-12 | Western Digital Technologies, Inc. | Object detection using multiple neural network configurations |
WO2021191719A1 (ja) * | 2020-03-27 | 2021-09-30 | 株式会社半導体エネルギー研究所 | 撮像装置および電子機器 |
KR20220007326A (ko) * | 2020-07-10 | 2022-01-18 | 삼성전자주식회사 | 전자 장치 및 그의 제어 방법 |
US11586442B2 (en) * | 2020-08-06 | 2023-02-21 | Nxp Usa, Inc. | System and method for convolving image with sparse kernels |
CN112200300B (zh) * | 2020-09-15 | 2024-03-01 | 星宸科技股份有限公司 | 卷积神经网络运算方法及装置 |
KR20220071618A (ko) | 2020-11-24 | 2022-05-31 | 삼성전자주식회사 | 컨벌루션 연산을 위한 데이터 공유 방법, 페처 및 컨벌루션 연산 장치 |
KR20220090104A (ko) * | 2020-12-22 | 2022-06-29 | 삼성전자주식회사 | 컨벌루션 연산을 위한 데이터 전송 방법, 페처 및 컨벌루션 연산 장치 |
US20220253692A1 (en) | 2021-02-05 | 2022-08-11 | Samsung Electronics Co., Ltd. | Method and apparatus of operating a neural network |
TWI797985B (zh) * | 2021-02-10 | 2023-04-01 | 國立成功大學 | 卷積運算的執行方法 |
KR20230001877A (ko) * | 2021-06-29 | 2023-01-05 | 삼성전자주식회사 | 신경망을 통해 이미지를 처리하는 방법 및 그 전자 장치 |
US11789646B2 (en) | 2021-09-24 | 2023-10-17 | Intel Corporation | Methods, apparatus, and articles of manufacture to increase data reuse for multiply and accumulate (MAC) operations |
US20230148225A1 (en) * | 2021-11-05 | 2023-05-11 | Intel Corporation | Joint denoising and supersampling of graphics data |
CN114611685A (zh) * | 2022-03-08 | 2022-06-10 | 安谋科技(中国)有限公司 | 神经网络模型中的特征处理方法、介质、设备和程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862524A (zh) * | 2005-06-06 | 2006-11-15 | 威盛电子股份有限公司 | 数字信号处理器中执行多个向量稀疏卷积方法与系统 |
CN102592258A (zh) * | 2012-01-04 | 2012-07-18 | 复旦大学 | 一种适用于指纹图像增强的可配置Gabor滤波硬件加速单元 |
US20160358069A1 (en) * | 2015-06-03 | 2016-12-08 | Samsung Electronics Co., Ltd. | Neural network suppression |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5048100A (en) * | 1988-12-15 | 1991-09-10 | Michael Kuperstein | Self organizing neural network method and system for general classification of patterns |
US5647027A (en) * | 1994-10-28 | 1997-07-08 | Lucent Technologies Inc. | Method of image enhancement using convolution kernels |
US6760486B1 (en) * | 2000-03-28 | 2004-07-06 | General Electric Company | Flash artifact suppression in two-dimensional ultrasound imaging |
US6901422B1 (en) | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
US7016529B2 (en) | 2002-03-15 | 2006-03-21 | Microsoft Corporation | System and method facilitating pattern recognition |
FI118612B (fi) * | 2002-11-06 | 2008-01-15 | Nokia Corp | Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite |
US7634137B2 (en) | 2005-10-14 | 2009-12-15 | Microsoft Corporation | Unfolded convolution for fast feature extraction |
US8156036B1 (en) * | 2006-04-28 | 2012-04-10 | Pipeline Financial Group, Inc. | Methods and systems related to trading engines |
JP5121506B2 (ja) * | 2008-02-29 | 2013-01-16 | キヤノン株式会社 | 画像処理装置、画像処理方法、プログラム及び記憶媒体 |
JP5376920B2 (ja) | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
JP5777367B2 (ja) | 2011-03-29 | 2015-09-09 | キヤノン株式会社 | パターン識別装置、パターン識別方法及びプログラム |
CA2883091C (en) * | 2011-08-25 | 2020-02-25 | Cornell University | Retinal encoder for machine vision |
US9190053B2 (en) * | 2013-03-25 | 2015-11-17 | The Governing Council Of The Univeristy Of Toronto | System and method for applying a convolutional neural network to speech recognition |
CN104077233B (zh) * | 2014-06-18 | 2017-04-05 | 百度在线网络技术(北京)有限公司 | 多通道卷积层处理方法和装置 |
US9411726B2 (en) | 2014-09-30 | 2016-08-09 | Samsung Electronics Co., Ltd. | Low power computation architecture |
KR102276339B1 (ko) | 2014-12-09 | 2021-07-12 | 삼성전자주식회사 | Cnn의 근사화를 위한 학습 장치 및 방법 |
US10223635B2 (en) * | 2015-01-22 | 2019-03-05 | Qualcomm Incorporated | Model compression and fine-tuning |
US9786036B2 (en) * | 2015-04-28 | 2017-10-10 | Qualcomm Incorporated | Reducing image resolution in deep convolutional networks |
US11099918B2 (en) * | 2015-05-11 | 2021-08-24 | Xilinx, Inc. | Accelerating algorithms and applications on FPGAs |
US10489703B2 (en) * | 2015-05-20 | 2019-11-26 | Nec Corporation | Memory efficiency for convolutional neural networks operating on graphics processing units |
US11423311B2 (en) * | 2015-06-04 | 2022-08-23 | Samsung Electronics Co., Ltd. | Automatic tuning of artificial neural networks |
US10460230B2 (en) * | 2015-06-04 | 2019-10-29 | Samsung Electronics Co., Ltd. | Reducing computations in a neural network |
JP6993334B2 (ja) * | 2015-11-29 | 2022-01-13 | アーテリーズ インコーポレイテッド | 自動化された心臓ボリュームセグメンテーション |
RU2694021C1 (ru) * | 2015-12-14 | 2019-07-08 | Моушен Метрикс Интернешэнл Корп. | Способ и устройство идентификации частей фрагментированного материала в пределах изображения |
US10089717B2 (en) * | 2016-04-05 | 2018-10-02 | Flipboard, Inc. | Image scaling using a convolutional neural network |
IL293688B2 (en) * | 2016-10-04 | 2024-02-01 | Magic Leap Inc | Efficient data layouts for convolutional neural networks |
US10902318B2 (en) * | 2017-11-06 | 2021-01-26 | Neuralmagic Inc. | Methods and systems for improved transforms in convolutional neural networks |
US11534136B2 (en) * | 2018-02-26 | 2022-12-27 | Siemens Medical Solutions Usa, Inc. | Three-dimensional segmentation from two-dimensional intracardiac echocardiography imaging |
-
2016
- 2016-11-07 KR KR1020160147562A patent/KR102631381B1/ko active IP Right Grant
-
2017
- 2017-10-18 CN CN201710970971.2A patent/CN108073981B/zh active Active
- 2017-10-20 EP EP17197450.4A patent/EP3319015B1/en active Active
- 2017-10-31 JP JP2017210622A patent/JP7021904B2/ja active Active
- 2017-10-31 US US15/798,461 patent/US10755126B2/en active Active
-
2020
- 2020-08-12 US US16/991,454 patent/US11508146B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862524A (zh) * | 2005-06-06 | 2006-11-15 | 威盛电子股份有限公司 | 数字信号处理器中执行多个向量稀疏卷积方法与系统 |
CN102592258A (zh) * | 2012-01-04 | 2012-07-18 | 复旦大学 | 一种适用于指纹图像增强的可配置Gabor滤波硬件加速单元 |
US20160358069A1 (en) * | 2015-06-03 | 2016-12-08 | Samsung Electronics Co., Ltd. | Neural network suppression |
Non-Patent Citations (3)
Title |
---|
HYUNSUN PARK 等: "Zero and Data Reuse-aware Fast Convolution for Deep Neural Networks on GPU", 《2016 INTERNATIONAL CONFERENCE ON HARDWARE/SOFTWARE CODESIGN AND SYSTEM SYNTHESIS (CODES+ISSS)》 * |
YU-HSIN CHEN 等: "14.5 Eyeriss: An energy-efficient reconfigurable accelerator for deep convolutional neural networks", 《2016 IEEE INTERNATIONAL SOLID-STATE CIRCUITS CONFERENCE (ISSCC)》 * |
YU-HSIN CHEN 等: "Eyeriss: A Spatial Architecture for Energy-Efficient Dataflow for Convolutional Neural Networks", 《2016 ACM/IEEE 43RD ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880034A (zh) * | 2018-09-06 | 2020-03-13 | 三星电子株式会社 | 使用卷积神经网络的计算装置及其操作方法 |
CN112396085A (zh) * | 2019-08-13 | 2021-02-23 | 三星电子株式会社 | 识别图像的方法和设备 |
CN114090470A (zh) * | 2020-07-29 | 2022-02-25 | 中国科学院深圳先进技术研究院 | 数据预加载装置及其预加载方法、存储介质和计算机设备 |
CN114090470B (zh) * | 2020-07-29 | 2023-02-17 | 深圳市中科元物芯科技有限公司 | 数据预加载装置及其预加载方法、存储介质和计算机设备 |
TWI762055B (zh) * | 2020-11-30 | 2022-04-21 | 鴻海精密工業股份有限公司 | 卷積神經網路、運算優化方法、裝置、電子設備及介質 |
Also Published As
Publication number | Publication date |
---|---|
US20200372276A1 (en) | 2020-11-26 |
US20180129893A1 (en) | 2018-05-10 |
US10755126B2 (en) | 2020-08-25 |
KR20180050928A (ko) | 2018-05-16 |
US11508146B2 (en) | 2022-11-22 |
KR102631381B1 (ko) | 2024-01-31 |
EP3319015B1 (en) | 2022-03-23 |
CN108073981B (zh) | 2023-09-05 |
JP7021904B2 (ja) | 2022-02-17 |
EP3319015A1 (en) | 2018-05-09 |
JP2018077842A (ja) | 2018-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073981A (zh) | 处理卷积神经网络的方法和设备 | |
CN108229655B (zh) | 卷积神经网络(cnn)处理方法和设备 | |
US10452979B2 (en) | Convolution neural network training apparatus and method thereof | |
DE102020131050A1 (de) | Konfigurierbare prozessorelementarrays zum implementieren von konvolutionellen neuronalen netzwerken | |
CN115456160A (zh) | 一种数据处理方法和数据处理设备 | |
CN107209871A (zh) | 具有回调的卷积矩阵相乘以用于深度卷积神经网络的深度瓦片化 | |
CN109871936A (zh) | 用于处理神经网络中的卷积运算的方法和装置 | |
CN117217273A (zh) | 实现卷积神经网络的硬件和非瞬态计算机可读存储介质 | |
CN109844738A (zh) | 运算处理电路和识别系统 | |
CN107533750A (zh) | 虚拟图像处理器指令集架构(isa)和存储器模型与具有二维移位阵列结构的示例性目标硬件 | |
CN108268931A (zh) | 数据处理的方法、装置和系统 | |
US11763142B2 (en) | General padding support for convolution on systolic arrays | |
CN107516290A (zh) | 图像转换网络获取方法、装置、计算设备及存储介质 | |
Wong et al. | SegNAS3D: Network architecture search with derivative-free global optimization for 3D image segmentation | |
JPWO2019082859A1 (ja) | 推論装置、畳み込み演算実行方法及びプログラム | |
US11429867B2 (en) | Down-sampling for convolutional neural networks | |
CN112689849A (zh) | 图像处理装置及其操作方法 | |
CN114026571A (zh) | 用于并行执行的神经网络操作重新排序 | |
KR20210116640A (ko) | 피라미드 계층의 아키텍처를 생성하기 위한 시스템 및 방법 | |
CN115812206A (zh) | 用于高质量图像处理的机器学习 | |
US20200250842A1 (en) | Method and apparatus with convolution neural network processing | |
Masters | Deep Belief Nets in C++ and CUDA C: Volume 3: Convolutional Nets | |
CN114626284A (zh) | 一种模型处理方法及相关装置 | |
El-Amir et al. | Convolutional neural network | |
CN109697502A (zh) | 信息处理方法和设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |