CN109102070A - 卷积神经网络数据的预处理方法和装置 - Google Patents

卷积神经网络数据的预处理方法和装置 Download PDF

Info

Publication number
CN109102070A
CN109102070A CN201810962564.1A CN201810962564A CN109102070A CN 109102070 A CN109102070 A CN 109102070A CN 201810962564 A CN201810962564 A CN 201810962564A CN 109102070 A CN109102070 A CN 109102070A
Authority
CN
China
Prior art keywords
convolutional layer
tensor
pond
layer
convolution kernel
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
CN201810962564.1A
Other languages
English (en)
Other versions
CN109102070B (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.)
Horizon Shanghai Artificial Intelligence Technology Co Ltd
Original Assignee
Horizon Shanghai Artificial Intelligence 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 Horizon Shanghai Artificial Intelligence Technology Co Ltd filed Critical Horizon Shanghai Artificial Intelligence Technology Co Ltd
Priority to CN201810962564.1A priority Critical patent/CN109102070B/zh
Publication of CN109102070A publication Critical patent/CN109102070A/zh
Application granted granted Critical
Publication of CN109102070B publication Critical patent/CN109102070B/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/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

Abstract

公开了一种卷积神经网络数据的预处理方法和装置,其中,预处理方法包括:确定卷积神经网络的平均池化层;确定平均池化层的运算数据;根据运算数据确定至少一个卷积核;以及将平均池化层转换为至少一个卷积层。通过该预处理方法和装置,能够将卷积神经网络中的平均池化层转换为至少一个卷积层,从而省去平均池化运算,进而能够在卷积神经网络加速器或处理芯片中省略用于平均池化操作的池化电路以及相关控制逻辑的设计和设置,并借助于卷积神经网络加速器或处理芯片中的卷积引擎高效率地实现平均池化运算。

Description

卷积神经网络数据的预处理方法和装置
技术领域
本公开总体上涉及卷积神经网络的技术领域,并且具体地涉及卷积神经网络数据的预处理方法和装置。
背景技术
平均池化或均值池化是卷积神经网络中的一种常见操作,即对局部接受域中的所有的值求均值。
通常,在卷积神经网络加速器或处理芯片中,可以设置专用的池化电路(也称为池化模块或池化单元)来处理诸如平均池化等池化操作。
由于芯片空间、硬件成本、设计复杂度等诸多方面的考虑和限制,用于执行平均池化操作的池化电路往往被设计为要求局部接受域或池化核具有规定大小(而非任意大小),例如7×7、5×5、3×3等。如果局部接受域或池化核的大小不满足要求,则需要进行额外的填充处理,甚至根本无法处理。
另外,池化电路也可以便借助卷积引擎来实现例如平均池化操作过程中的步进控制等。然而,这样的方式增加了布线成本和时序控制的复杂度。
期望能够有利于通过硬件高效率且低成本地实现平均池化操作。
发明内容
一方面,本公开提供了一种卷积神经网络数据的预处理方法,该方法可以包括:确定卷积神经网络的平均池化层;确定平均池化层的运算数据,包括平均池化层的输入张量的通道数量、平均池化层的池化核的形状、池化核单次可覆盖的体素的数量以及池化核的步长等;根据运算数据确定至少一个卷积核;以及将平均池化层转换为使用所确定的至少一个卷积核的至少一个卷积层。
另一方面,本公开还提供了一种卷积神经网络数据的预处理装置,该装置可以包括存储器和处理器。处理器可以被配置为在启动时执行至少用于执行上述方法的程序指令。
另一方面,本公开还提供了一种计算机可读的非临时性存储介质,在其上存储有程序指令,该程序指令在被执行时可以执行上述方法。
通过根据本公开的实施例的卷积神经网络数据的预处理方法和装置,能够将卷积神经网络中的平均池化层转换为至少一个卷积层,从而省去平均池化运算,进而能够在卷积神经网络加速器或处理芯片中省略用于平均池化操作的池化电路和/或相关控制逻辑的设计和/或设置,并借助于卷积神经网络加速器或处理芯片中的卷积引擎高效率地实现平均池化运算。
附图说明
图1示出根据本公开的实施例的卷积加速器的示例。
图2示出根据本公开的实施例的预处理方法的流程图。
图3示出根据本公开的实施例的预处理结果及后续处理的示例。
图4示出根据本公开的实施例的预处理结果及后续处理的示例。
图5示出根据本公开的实施例的预处理结果及后续处理的示例。
图6示出根据本公开的实施例的预处理结果及后续处理的示例。
图7示出根据本公开的实施例的预处理结果及后续处理的示例。
图8示出根据本公开的实施例的预处理器的示例。
具体实施方式
如图1所示,卷积神经网络加速器CA可以包括输入缓冲器IB、权重缓冲器WB、控制器CTL、计算核心电路CC和输出缓冲器OB等部件,并且可以与主处理器HPU和片外动态随机存取存储器OCR交互。计算核心电路CC可以包括输入寄存器IR、一个或多个卷积引擎CE以及一个或多个输出寄存器OR等部件,其中,每个卷积引擎CE可以包括处理单元PE阵列(例如,乘加器阵列)。
在通常的实现方式中,卷积神经网络加速器CA还包括专用于处理池化操作的一个或多个池化电路。例如,在图1的示例中,卷积神经网络加速器CA的计算核心电路CC还包括专用于平均池化操作的一个或多个平均池化电路APL。
由于芯片空间、硬件成本、设计复杂度等诸多方面的考虑和限制,平均池化电路APL往往被设计为要求局部接受域,或者要求池化核具有规定的大小(而非任意大小)和形状,例如大小为7×7、5×5、3×3的矩形等。如果局部接受域或池化核的大小或形状不满足要求,则预先设置的平均池化电路APL需要自身或者借助于其他电路元件处理额外的数据填充,甚至根本无法处理一般情况下的平均池化操作。
另外,在一些实现方式中,平均池化电路APL可以被设计为能够借助卷积引擎CE来实现平均池化操作过程中的步进控制等,即,将平均池化电路APL设计成与卷积引擎CE交互。然而,这样的实现方式增加了布线成本和时序控制的复杂度。
另外,应用需求所设计出来的卷积神经网络可以不包括平均池化层。在这样的情况下,卷积神经网络加速器CA中的平均池化电路APL及相关的控制逻辑将处于闲置状态,从而对原本有限的处理资源造成不必要的浪费。
在一个实施例中,在将卷积神经网络数据提供给卷积神经网络加速器CA之前,可以利用根据本公开的实施例的预处理方法和/或装置,对卷积神经网络数据执行预处理,以将平均池化层转换为至少一个卷积层,从而省去平均池化运算,进而在卷积神经网络加速器CA中至少省去平均池化电路APL以及相关控制逻辑的设计和/或设置,并通过例如在卷积神经网络加速器CA中必须设置的卷积引擎CE高效率地实现平均池化运算。
如图2所示,根据本公开的实施例的卷积神经网络数据的预处理方法可以开始于步骤S110,并确定卷积神经网络的平均池化层。
本公开不局限于卷积神经网络中的平均池化层的数量。在卷积神经网络包括多个(例如,2个以上)平均池化层的情况下,可以针对每个平均池化层执行根据本公开的实施例的预处理方法。
然后,根据本公开的实施例的预处理方法可以继续到步骤S120,并确定平均池化层的运算数据。平均池化层的运算数据可以包括该平均池化层的输入张量的通道数量、该平均池化层的池化核的形状(可以是常规的矩形或其他任何非常规形状)、池化核单次可覆盖的体素的数量以及池化核的步长。
然后,根据本公开的实施例的预处理方法可以继续到步骤S130,并根据所确定的平均池化层的运算数据确定至少一个卷积核,使得使用所确定至少一个卷积核对该平均池化层的输入张量执行卷积运算的结果等同于该平均池化层的原本的期望结果。
然后,根据本公开的实施例的预处理方法可以继续到步骤S140,并将该平均池化层转换为至少一个卷积层,其中,至少一个卷积层使用在步骤S130中确定的至少一个卷积核。
在一个实施例中,可以在步骤S140中将平均池化层转换成一个深度可分离卷积(Depthwise Separable Convolution)层。
为此,在步骤S130中确定的至少一个卷积核可以包括与该深度可分离卷积层相对应的一个卷积核,其中,该卷积核的通道数量、在单个通道上的形状、步长、每个体素的值可以分别对应于该平均池化层的输入张量的通道数量、该平均池化层的池化核的形状、该平均池化层的池化核的步长、该平均池化层的池化核单次可覆盖的体素的数量的倒数。
例如,在图3的示例中,在步骤S120中,可以确定该平均池化层的输入张量F可以包括三个通道C1、C2和C3,该平均池化层的池化核为2×2(单次可覆盖的体素的数量为4)的正方形,并且在宽度方向和高度方向上的步长均为2。
然后,如图3所示,可以在步骤S130中确定一个2×2×3(即,高度、宽度和通道数量分别为2、2和3)的卷积核K,并且可以将该卷积核K的每个体素的值确定为0.25(该平均池化层的池化核单次可覆盖的体素的数量4的倒数),并且将该卷积核在宽度方向上的步长和高度方向上的步长分别确定为2和2。
然后,如图3所示,可以在步骤S140中将该平均池化层转换为一个深度可分离卷积层,其中,在该深度可分离卷积层中,将使用卷积核K对输入张量F执行深度可分离卷积运算。
在经过上述预处理之后,如果将卷积神经网络数据传递给例如图1所示的卷积神经网络加速器CA,则卷积神经网络将不再包括平均池化层,原来的平均池化层的操作将转换为深度可分离卷积操作。
如图3所示,该深度可分离卷积操作的输出结果OF将等同于原来的平均池化层的操作结果。如图3中的箭头A1、A2和A3所示,通过卷积核K和深度可分离卷积操作,输入张量F中分别在通道C1、C2和C3上的局部接受域(图3中的输入张量F中的粗实线方框的部分)中的平均池化结果将分别对应于输出张量OF中分别在通道C1、C2和C3上的体素(图3中的输出张量OF中的粗实线方框的部分)。
在另外的实施例中,可以在步骤S140中将平均池化层转换成一个普通卷积层。
为此,在步骤S130中确定的至少一个卷积核可以包括与该普通卷积层相对应的一个或多个卷积核,其中,卷积核的数量可以与输入张量的通道数量相同,每个卷积核的通道数量、在单个通道上的形状、步长可以分别对应于该平均池化层的输入张量的通道数量、该平均池化层的池化核的形状、该平均池化层的池化核的步长,并且每个卷积核可以具有互不相同的唯一非零通道,每个唯一非零通道上的每个体素的值可以对应于池化核单次可覆盖的体素的数量的倒数。
例如,对于图3的示例中的平均池化层,如图4所示,可以在步骤S130中确定三个2×2×3的卷积核K1、K2和K3。
卷积核K1、K2和K3中的每一个具有互不相同的唯一非零通道。例如,卷积核K1的通道C1为非零通道,其上的每个体素的值均为0.25(4的倒数),其他两个通道C2和C3上的每个体素的值均为0;卷积核K2的通道C2为非零通道,其上的每个体素的值均为0.25(该平均池化层的池化核单次可覆盖的体素的数量4的倒数),其他两个通道C1和C3上的每个体素的值均为0;卷积核K3的通道C3为非零通道,其上的每个体素的值均为0.25,其他两个通道C1和C2上的每个体素的值均为0。
卷积核K1、K2和K3中的每一个在宽度方向上的步长和高度方向上的步长可以分别为2和2。
然后,如图4所示,可以在步骤S140中将该平均池化层转换为一个普通卷积层,其中,在该普通卷积层中,将使用卷积核K1、K2和K3对输入张量F执行普通卷积运算。
在经过上述预处理之后,如果将卷积神经网络数据传递给例如图1所示的卷积神经网络加速器CA,则卷积神经网络将不再包括平均池化层,原来的平均池化层的操作将转换为普通卷积操作。
如图4所示,通过使用卷积核K1对输入张量F执行普通卷积运算,能够获得输出张量OF的通道C1上的数据;通过使用卷积核K2对输入张量F执行普通卷积运算,能够获得输出张量OF的通道C2上的数据;通过使用卷积核K3对输入张量F执行普通卷积运算,能够获得输出张量OF的通道C3上的数据。
通过该普通卷积操作所获得的输出张量OF等同于原来的平均池化层的操作结果。如图4中的箭头A1所示,通过卷积核K1和普通卷积操作,输入张量F的通道C1上的局部接受域(图4中的输入张量F中的粗实线方框的部分)中的平均池化结果对应于输出张量OF的通道C1上的体素(图4中的输出张量OF中的粗实线方框的部分)。类似地,分别如图4中的箭头A2和A3所示,通过卷积核K1和普通卷积操作,输入张量F的通道C2和C3上的局部接受域中的平均池化结果分别对应于输出张量OF的通道C2和C3上的体素。
另外,根据本公开的实施例的预处理方法还可以包括确定平均池化层的输入张量的至少一个子张量,使得每个子张量具有至少一个通道并且对应于输入张量在前述至少一个通道上的数据,其中,不同的子张量可以不具有相同的通道,并且所有子张量的所有通道可以包括输入张量的所有通道。也就是说,在通道方向上,可以将平均池化层的输入张量按通道拆分成至少一个子张量,使得每个子张量可以对应于输入张量的一个通道分组上的数据。
在将平均池化层的输入张量按通道拆分成至少一个子张量的情况下,在一个实施例中,前述至少一个卷积层可以包括至少一个普通卷积层,其中,每个普通卷积层的输入张量可以分别对应于前述至少一个子张量中的不同子张量。
相应地,在步骤S130中确定的至少一个卷积核可以包括分别与前述每个普通卷积层相对应的一个或多个卷积核,其中,每个普通卷积层的一个或多个卷积核的数量与对应的子张量的通道数量相同,每个普通卷积层的每个卷积核的通道数量、在单个通道上的形状、步长分别对应于对应的子张量的通道数量、该平均池化层的池化核的形状、该平均池化层的池化核的步长,并且每个普通卷积层的每个卷积核可以具有互不相同的唯一非零通道,每个唯一非零通道上的每个体素的值可以是池化核单次可覆盖的体素的数量的倒数。
在另一个实施例中,前述至少一个卷积层可以包括至少一个深度可分离卷积层,其中,每个深度可分离卷积层的输入张量可以分别对应于前述至少一个子张量中的不同子张量。
相应地,在步骤S130中确定的至少一个卷积核可以包括分别与每个深度可分离卷积层的相应的卷积核,其中,每个普通卷积层的一个或多个卷积核的数量与对应的子张量的通道数量相同,并且每个深度可分离卷积层的相应的卷积核的通道数量、在单个通道上的形状、步长、每个体素的值分别对应于对应的子张量的通道数量、池化核的形状、池化核的步长、池化核单次可覆盖的体素的数量的倒数。
例如,对于图3的示例中的平均池化层,如图5所示,可以将平均池化层的输入张量F按照通道拆分成三个子张量SF1、SF2和SF3,其中,子张量SF1对应于输入张量F在通道C1上的数据,子张量SF2对应于输入张量F在通道C2上的数据,并且子张量SF3对应于输入张量F在通道C3上的数据。
然后,在步骤S130中,可以针对三个子张量SF1、SF2和SF3中的每个子张量分别设置一个2×2×1的卷积核KF1、KF2和KF3,其中,卷积核KF1、KF2和KF3中的每一个的每个体素的值可以均为0.25(该平均池化层的池化核单次可覆盖的体素的数量4的倒数),并且卷积核KF1、KF2和KF3中的每一个在宽度方向上的步长和高度方向上的步长可以分别为2和2。
然后,如图5所示,可以在步骤S140中将该平均池化层转换为三个普通卷积层(由于每个卷积层的输入张量SF1、SF2或SF3分别具有一个通道,因此也可以视为三个深度可分离卷积层),其中,在每个卷积层中,将分别使用卷积核KF1、KF2和KF3对子张量SF1、SF2和SF3执行普通卷积运算。
在经过上述预处理之后,如果将卷积神经网络数据传递给例如图1所示的卷积神经网络加速器CA,则卷积神经网络将不再包括平均池化层,原来的平均池化层的操作将转换为深度可分离卷积操作。
如图5所示,每个普通卷积层将分别输出张量O1、O2和O3,其中,子张量SF1上的局部接受域(图5中的子张量SF1中的粗实线方框的部分)中的平均池化结果将对应于输出张量O1的通道上的体素(图5中的输出张量O1中的粗实线方框的部分),子张量SF2上的局部接受域(图5中的子张量SF2中的粗实线方框的部分)中的平均池化结果将对应于输出张量O2的通道上的体素(图5中的输出张量O2中的粗实线方框的部分),子张量SF3上的局部接受域(图5中的子张量SF3中的粗实线方框的部分)中的平均池化结果将对应于输出张量O3的通道上的体素(图5中的输出张量O3中的粗实线方框的部分)。
然后,如图5中的箭头M1、M2和M3所示,可以将所获得的张量O1、O2和O3在通道方向上拼接在一起,从而获得最终的输出张量OF。
在另外的示例中,如图6所示,可以将平均池化层的输入张量F按照通道拆分成两个子张量SF1和SF2,其中,子张量SF1对应于输入张量F在通道C1上的数据,并且子张量SF2对应于输入张量F在C2和C3两个通道上的数据。
然后,在步骤S130中,可以针对子张量SF1设置一个2×2×1的卷积核KF1,并且可以针对子张量SF2设置一个2×2×2的卷积核KF2和KF3,其中,卷积核KF1和KF2中的每一个的每个体素的值可以均为0.25(该平均池化层的池化核单次可覆盖的体素的数量4的倒数),并且卷积核KF1和KF2中的每一个在宽度方向上的步长和高度方向上的步长可以分别为2和2。
然后,如图6所示,可以在步骤S140中将该平均池化层转换为一个普通卷积层(子张量SF1和卷积核KF1)和一个深度可分离卷积层(子张量SF2和卷积核KF2、KF3)。
然后,如图6中的箭头M1和M2所示,可以将所获得的张量O1和O2在通道方向上拼接在一起,从而获得最终的输出张量OF。
在另外的示例中,与图6中的示例相似,如图7所示,可以将平均池化层的输入张量F按照通道拆分成两个子张量SF1和SF2,其中,子张量SF1对应于输入张量F在通道C1上的数据,并且子张量SF2对应于输入张量F在C2和C3两个通道上的数据。
然后,在步骤S130中,可以针对子张量SF1设置一个2×2×1的卷积核KF1,并且可以针对子张量SF2设置两个2×2×2的卷积核KF21和KF22,其中,卷积核KF1的每个体素的值可以均为0.25;在卷积核KF21中,与通道C2相对应的通道上的每个体素的值可以均为0.25,与通道C3相对应的通道上的每个体素的值可以均为0;在卷积核KF22中,与通道C3相对应的通道上的每个体素的值可以均为0.25,与通道C2相对应的通道上的每个体素的值可以均为0。卷积核KF1、KF21和KF22中的每一个在宽度方向上的步长和高度方向上的步长可以分别为2和2。
然后,如图7所示,可以在步骤S140中将该平均池化层转换为两个普通卷积层(子张量SF1和卷积核KF1)和一个深度可分离卷积层(子张量SF2、卷积核KF21和KF22)。
然后,如图7中的箭头M1和M2所示,可以将所获得的张量O1和O2在通道方向上拼接在一起,从而获得最终的输出张量OF。
经过上述预处理,能够将卷积神经网络中的平均池化层转换为至少一个卷积层,从而省去平均池化运算。如图8所示,能够在卷积神经网络加速器CA中至少省略用于平均池化操作的池化电路APL和/或相关控制逻辑的设计和/或设置,并借助于卷积神经网络加速器CA中的卷积引擎CE高效率地实现平均池化运算。
另外,如图8所示,根据本公开的实施例的预处理装置PRE-PU可以包括处理器PU。
根据不同的实施例,上述处理器PU可以是CPU和FPGA等通用的处理器或处理装置和/或专用的处理器或处理装置,并且可以被配置为在启动时至少执行根据本公开的实施例的预处理方法。
另外,如图8所示,根据本公开的实施例的预处理装置PRE-PU还可以包括存储器MEM。根据不同的实施例,存储器MEM可以包括各种形式的计算机可读写存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)、高速缓冲存储器(cache)、片上存储器等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪速存储器等。可读写存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件、或者任意以上的组合。在一个实施例中,存储器可以存储用于指示处理器PU执行根据本公开的实施例的预处理方法的步骤的程序指令。
应当理解,图8所示的预处理装置PRE-PU仅是示例性的,而非限制性的。根据本公开的实施例的装置还可以具有其他部件和/或结构。例如,预处理装置PRE-PU还可以包括I/O接口、网络接口和/或存储器,从而通过有线或无线地方式与其他部件或装置(例如,图8的示例中的卷积神经网络加速器CA)进行信息/数据交互。
另外,在一个实施例中,可以在一个或多个计算机可读取的非临时性存储介质上存储或实施能够执行上述预处理方法的各个步骤的程序指令,使得这样的非临时性存储介质能够在被计算机或其他计算装置(例如处理器)读取时提供相应的程序指令,并使得计算机或其他计算装置能够根据所读取的程序指令执行相应的操作。根据不同的实施例,程序指令能够以诸如源代码、二进制代码、中间代码等各种形式或各种形式的不同组合而实施或存储在非临时性存储介质上。
贯穿说明书和权利要求书,除非上下文清楚地另有要求,否则措词“包括”、“包含”等应当以与排他性或穷尽性的意义相反的包括性的意义来解释,也就是说,应当以“包括但不限于”的意义来解释。另外,措词“在本文中”、“上文”、“下文”以及相似含义的措词在本申请中使用时应当指作为整体的本申请,而不是本申请的任何具体部分。在上下文允许时,在使用单数或复数的以上描述中的措词也可以分别包括复数或单数。关于在提及两个或多个项目的列表时的措词“或”,该措词涵盖该措词的以下解释中的全部:列表中的任何项目,列表中的所有项目,以及列表中的项目的任何组合。另外,措词“第一”、“第二”等旨在用于区分,而不是用于强调次序或重要程度。
虽然已经描述了本公开的一些实施例,但是这些实施例仅作为示例而呈现,而不打算限制本公开的范围。实际上,在本文中所描述的方法和系统可以采用多种其他形式来实施。另外,可以在不脱离本公开的范围的情况下,在本文中所描述的方法和装置的形式上做出各种省略、替换和改变。

Claims (8)

1.一种卷积神经网络数据的预处理方法,包括:
确定卷积神经网络的平均池化层;
确定所述平均池化层的运算数据,所述运算数据包括所述平均池化层的输入张量的通道数量、所述平均池化层的池化核的形状、所述池化核单次可覆盖的体素的数量以及所述池化核的步长;
根据所述运算数据确定至少一个卷积核;以及
将所述平均池化层转换为至少一个卷积层,所述至少一个卷积层使用所述至少一个卷积核。
2.根据权利要求1所述的预处理方法,其中,
所述至少一个卷积层包括一个深度可分离卷积层,
所述至少一个卷积核包括所述深度可分离卷积层的一个卷积核,并且
所述深度可分离卷积层的卷积核的通道数量、在单个通道上的形状、步长、每个体素的值分别对应于所述输入张量的通道数量、所述池化核的形状、所述池化核的步长、所述池化核单次可覆盖的体素的数量的倒数。
3.根据权利要求1所述的预处理方法,其中,
所述至少一个卷积层包括一个普通卷积层,
所述至少一个卷积核包括所述普通卷积层的一个或多个卷积核,所述普通卷积层的一个或多个卷积核的数量与所述输入张量的通道数量相同,
所述普通卷积层的每个卷积核的通道数量、在单个通道上的形状、步长分别对应于所述输入张量的通道数量、所述池化核的形状、所述池化核的步长,并且
所述普通卷积层的每个卷积核具有互不相同的唯一非零通道,每个唯一非零通道上的每个体素的值对应于所述池化核单次可覆盖的体素的数量的倒数。
4.根据权利要求1所述的预处理方法,还包括:
确定所述平均池化层的输入张量的至少一个子张量,每个子张量具有至少一个通道并且对应于所述输入张量在所述至少一个通道上的数据,不同的子张量不具有相同的通道,所有子张量的所有通道包括所述输入张量的所有通道。
5.根据权利要求4所述的预处理方法,其中,
所述至少一个卷积层包括至少一个深度可分离卷积层,所述至少一个深度可分离卷积层中的每个深度可分离卷积层的输入张量分别对应于所述至少一个子张量中的不同子张量,
所述至少一个卷积核包括所述至少一个深度可分离卷积层中的每个深度可分离卷积层的相应的卷积核,并且
所述至少一个深度可分离卷积层中的每个深度可分离卷积层的相应的卷积核的通道数量、在单个通道上的形状、步长、每个体素的值分别对应于对应的子张量的通道数量、所述池化核的形状、所述池化核的步长、所述池化核单次可覆盖的体素的数量的倒数。
6.根据权利要求4所述的预处理方法,其中,
所述至少一个卷积层包括至少一个普通卷积层,所述至少一个普通卷积层中的每个普通卷积层的输入张量分别对应于所述至少一个子张量中的不同子张量,
所述至少一个卷积核包括所述至少一个普通卷积层中的每个普通卷积层的一个或多个卷积核,所述至少一个普通卷积层中的每个普通卷积层的一个或多个卷积核的数量与对应的子张量的通道数量相同,
所述至少一个普通卷积层中的每个普通卷积层的每个卷积核的通道数量、在单个通道上的形状、步长分别对应于对应的子张量的通道数量、所述池化核的形状、所述池化核的步长,并且
所述至少一个普通卷积层中的每个普通卷积层的每个卷积核具有互不相同的唯一非零通道,每个唯一非零通道上的每个体素的值是所述池化核单次可覆盖的体素的数量的倒数。
7.一种卷积神经网络数据的预处理装置,包括:
处理器,被配置为在启动时执行程序指令,所述程序指令至少执行根据权利要求1至6中的任一项所述的预处理方法。
8.一种计算机可读的非临时性存储介质,在其上存储有程序指令,所述程序指令在被执行时执行根据权利要求1至6中的任一项所述的预处理方法。
CN201810962564.1A 2018-08-22 2018-08-22 卷积神经网络数据的预处理方法和装置 Active CN109102070B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810962564.1A CN109102070B (zh) 2018-08-22 2018-08-22 卷积神经网络数据的预处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810962564.1A CN109102070B (zh) 2018-08-22 2018-08-22 卷积神经网络数据的预处理方法和装置

Publications (2)

Publication Number Publication Date
CN109102070A true CN109102070A (zh) 2018-12-28
CN109102070B CN109102070B (zh) 2020-11-24

Family

ID=64850760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810962564.1A Active CN109102070B (zh) 2018-08-22 2018-08-22 卷积神经网络数据的预处理方法和装置

Country Status (1)

Country Link
CN (1) CN109102070B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563585A (zh) * 2019-02-14 2020-08-21 上海寒武纪信息科技有限公司 一种神经网络模型的拆分方法及相关产品
CN111985617A (zh) * 2020-08-14 2020-11-24 杭州海康威视数字技术股份有限公司 3d卷积神经网络在神经网络处理器上的处理方法和装置
CN113762472A (zh) * 2021-08-24 2021-12-07 北京地平线机器人技术研发有限公司 一种神经网络的指令序列生成方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170021A1 (en) * 2013-12-18 2015-06-18 Marc Lupon Reconfigurable processing unit
CN106228240A (zh) * 2016-07-30 2016-12-14 复旦大学 基于fpga的深度卷积神经网络实现方法
CN107004142A (zh) * 2014-12-10 2017-08-01 北京市商汤科技开发有限公司 用于图像分类的方法和系统
CN107153871A (zh) * 2017-05-09 2017-09-12 浙江农林大学 基于卷积神经网络和手机传感器数据的跌倒检测方法
CN108108811A (zh) * 2017-12-18 2018-06-01 北京地平线信息技术有限公司 神经网络中的卷积计算方法和电子设备
CN108140141A (zh) * 2015-08-15 2018-06-08 易享信息技术有限公司 采用3d批归一化的三维(3d)卷积
CN108268936A (zh) * 2018-01-17 2018-07-10 百度在线网络技术(北京)有限公司 用于存储卷积神经网络的方法和装置
CN108319988A (zh) * 2017-01-18 2018-07-24 华南理工大学 一种用于手写汉字识别的深度神经网络的加速方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170021A1 (en) * 2013-12-18 2015-06-18 Marc Lupon Reconfigurable processing unit
CN107004142A (zh) * 2014-12-10 2017-08-01 北京市商汤科技开发有限公司 用于图像分类的方法和系统
CN108140141A (zh) * 2015-08-15 2018-06-08 易享信息技术有限公司 采用3d批归一化的三维(3d)卷积
CN106228240A (zh) * 2016-07-30 2016-12-14 复旦大学 基于fpga的深度卷积神经网络实现方法
CN108319988A (zh) * 2017-01-18 2018-07-24 华南理工大学 一种用于手写汉字识别的深度神经网络的加速方法
CN107153871A (zh) * 2017-05-09 2017-09-12 浙江农林大学 基于卷积神经网络和手机传感器数据的跌倒检测方法
CN108108811A (zh) * 2017-12-18 2018-06-01 北京地平线信息技术有限公司 神经网络中的卷积计算方法和电子设备
CN108268936A (zh) * 2018-01-17 2018-07-10 百度在线网络技术(北京)有限公司 用于存储卷积神经网络的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NAVEEN SUDA等: "Throughput-Optimized OpenCL-based FPGA Accelerator for Large-Scale Convolutional Neural Networks", 《PROCEEDINGS OF THE 2016 ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE GATE ARRAYS》 *
肖皓等: "面向卷积神经网络的FPGA硬件加速器设计", 《工业控制计算机》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563585A (zh) * 2019-02-14 2020-08-21 上海寒武纪信息科技有限公司 一种神经网络模型的拆分方法及相关产品
CN111563585B (zh) * 2019-02-14 2023-03-17 上海寒武纪信息科技有限公司 一种神经网络模型的拆分方法及相关产品
CN111985617A (zh) * 2020-08-14 2020-11-24 杭州海康威视数字技术股份有限公司 3d卷积神经网络在神经网络处理器上的处理方法和装置
CN111985617B (zh) * 2020-08-14 2023-09-26 杭州海康威视数字技术股份有限公司 3d卷积神经网络在神经网络处理器上的处理方法和装置
CN113762472A (zh) * 2021-08-24 2021-12-07 北京地平线机器人技术研发有限公司 一种神经网络的指令序列生成方法及装置

Also Published As

Publication number Publication date
CN109102070B (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
US11816045B2 (en) Exploiting input data sparsity in neural network compute units
KR102631381B1 (ko) 컨볼루션 신경망 처리 방법 및 장치
US10691464B1 (en) Systems and methods for virtually partitioning a machine perception and dense algorithm integrated circuit
CN108229655B (zh) 卷积神经网络(cnn)处理方法和设备
US20180173676A1 (en) Adaptive execution engine for convolution computing systems
US20190138567A1 (en) Hardware Implementation of Convolutional Layer of Deep Neural Network
TWI502502B (zh) 用於處理狀態機引擎所接收之資料之方法及系統
CN109190758B (zh) 用于展开卷积神经网络的张量数据的方法和装置
CN109102070A (zh) 卷积神经网络数据的预处理方法和装置
KR20200002027A (ko) 최적화된 딥 네트워크 처리를 위한 그래프 매칭
US20220253683A1 (en) Implementing Fully-Connected Neural-Network Layers in Hardware
KR20200081044A (ko) 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치
US20210158131A1 (en) Hierarchical partitioning of operators
US10755169B2 (en) Hybrid non-uniform convolution transform engine for deep learning applications
CN112766397B (zh) 一种分类网络及其实现方法和装置
US11435941B1 (en) Matrix transpose hardware acceleration
US9013490B2 (en) Hilbert-huang transform data processing real-time system with 2-D capabilities
CN114118348A (zh) 加速器、操作加速器的方法以及包括加速器的电子装置
CN113868187A (zh) 处理神经网络的方法和电子装置
US11636569B1 (en) Matrix transpose hardware acceleration
CN112183725B (zh) 提供神经网络的方法、计算装置和计算机可读存储介质
CN111723917B (zh) 运算方法、装置及相关产品
CN113821471A (zh) 神经网络的处理方法和电子装置
CN112116083B (zh) 神经网络加速器及其检测方法和装置
US20230129845A1 (en) Method and electronic device for performing deep neural network operation

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