CN107145939A - 一种神经网络优化方法及装置 - Google Patents

一种神经网络优化方法及装置 Download PDF

Info

Publication number
CN107145939A
CN107145939A CN201710474712.0A CN201710474712A CN107145939A CN 107145939 A CN107145939 A CN 107145939A CN 201710474712 A CN201710474712 A CN 201710474712A CN 107145939 A CN107145939 A CN 107145939A
Authority
CN
China
Prior art keywords
data
weight
convolution
inner product
input data
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
CN201710474712.0A
Other languages
English (en)
Other versions
CN107145939B (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.)
Beijing Tusimple Technology Co Ltd
Original Assignee
Beijing Tusimple Future 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 Tusimple Future Technology Co Ltd filed Critical Beijing Tusimple Future Technology Co Ltd
Priority to CN201710474712.0A priority Critical patent/CN107145939B/zh
Publication of CN107145939A publication Critical patent/CN107145939A/zh
Priority to US16/014,869 priority patent/US11580377B2/en
Application granted granted Critical
Publication of CN107145939B publication Critical patent/CN107145939B/zh
Priority to US18/162,871 priority patent/US20230177336A1/en
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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Abstract

本发明公开一种神经网络优化方法及装置,以解决现有技术神经网络计算速度慢、实时性差的问题。方法包括:将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据;将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核;将所述压缩输入数据按照卷积运算顺序依次划分为与压缩卷积核大小相同的数据块,一次卷积运算包含的输入数据构成一个数据块;将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算得到卷积结果,并根据卷积结果得到所述卷积层的多个输出数据。本发明技术方案能够提高神经网络计算速度和实时性。

Description

一种神经网络优化方法及装置
技术领域
本发明涉及计算机视觉领域,特别涉及一种神经网络优化方法及装置。
背景技术
近几年来,深度神经网络在计算机视觉领域的各类应用中取得了巨大的成功,如图像分类、目标检测、图像分割等。
但深度神经网络的模型往往包含大量的模型参数,计算量大、处理速度慢,无法在一些低功耗、低计算能力的设备(如嵌入式设备、集成设备等)上进行实时计算。
发明内容
鉴于上述问题,本发明提供一种神经网络优化方法及装置,以解决现有技术神经网络计算速度慢、实时性差的问题。
本发明实施例,一方面提供一种神经网络优化方法,该方法包括:
将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据;
将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核;
将所述压缩输入数据按照卷积运算顺序依次划分为与压缩卷积核大小相同的数据块,一次卷积运算包含的输入数据构成一个数据块;
将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算得到卷积结果,并根据卷积结果得到所述卷积层的多个输出数据。
本发明实施例,另一方面提供一种神经网络优化装置,该装置包括:
第一数据处理单元,用于将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据;
第二数据处理单元,用于将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核;
卷积单元,用于将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算,得到卷积结果;
输出单元,用于根据所述卷积结果得到所述卷积层的多个输出数据。
本发明技术方案带来以下技术效果:
1、在实际应用中,卷积层的输入数据一般为三维数据、卷积核为四维数据,其通道数非常大,若直接采用卷积核对输入数据进行卷积运算其运算量非常大,速度较低。而本发明提供的方案,将卷积层的输入数据和各卷积核分别沿着通道方向进行二值化和位打包操作得到压缩输入数据和压缩卷积核,不仅在通道方向对输入数据和各卷积核进行数据压缩使得参与卷积运算的数据量大大减少,而且输入数据与卷积核的卷积运算由现有技术的浮点数与浮点数相乘变成了无符号整数与无符号整数之间的按位操作,提高了卷积运算速度;且CPU擅长按位操作,因此本发明技术方案优化后的神经网络更加适用于在CPU上实现实时计算;
2、在现有技术中,对输入数据与卷积核进行卷积运算的实现方式一般为,将输入数据和卷积核这两个张量展开为二维矩阵,进行矩阵乘法运算,再将矩阵乘法运算结果重新排布成张量,该现有技术,一方面需要额外分配内存来存储展开的矩阵,增加内存开销,另一方面需要将矩阵乘法运算得到的运算结果重新排布成张量,耗时较长、速度慢。而本发明技术方案,直接将压缩输入数据划分成数据块,将每个数据块与各压缩卷积核进行卷积运算的结果直接按顺序存储到输出张量上,以形成输出数据,无需像现有技术需要增加内存开销存储矩阵和消耗时长对运算结果进行重新排布,因此,采用本发明技术方案既节省内存开销而且还进一步提高运算速度。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明实施例提供的神经网络优化方法的流程图之一;
图2为本发明实施例为输入数据和其对应的压缩输入数据的示意图;
图3为本发明实施例中卷积核和其对应的压缩卷积核的示意图;
图4A为本发明实施例中压缩输入数据的数据块的示意图;
图4B为本发明实施例中通道数据与通道卷积的示意图;
图5为本发明实施例提供的神经网络优化方法的流程图之二;
图6A为本发明实施例为卷积层的输出数据分配存储空间的示意图;
图6B为本发明实施例得到卷积层的输出数据的示意图;
图7为本发明实施例提供的神经网络优化方法的流程图之三;
图8为本发明实施例中全连接层的输入数据和其对应的输入数据序列的示意图;
图9A为本发明实施例中全连接层的网络权重的示意图;
图9B为本发明实施例中转置后的网络权重的示意图;
图9C为本发明实施例中经过二值化处理和位打包操作之后的网络权重;
图10为本发明实施例中神经网络优化装置的结构示意图之一;
图11为本发明实施例中神经网络优化装置的结构示意图之二;
图12为本发明实施例中神经网络优化装置的结构示意图之三。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例一
参见图1,为本发明实施例提供的神经网络优化方法的流程图,本实施例一对神经网络的卷积层进行处理,该方法包括:
步骤101、将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据。
卷积层的输入数据一般为三维数据,其包括输入数据的高、宽和通道数,其中输入数据的通道数较多,一般为32的倍数。如图2所示为输入数据和该输入数据对应的压缩输入数据的示意图,用H表示输入数据的高,用W表示输入数据的宽,用C表示输入数据的通道数;压缩输入数据的高、宽不变,但压缩输入数据的通道数变为C/M,其中M为32的整数倍,例如M取值为32、64、128、256等等,本申请不做严格限定。
步骤102、将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核。
卷积层的卷积核一般为四维数据,其包括卷积核的高、宽、通道数和卷积核个数,多个卷积核的高、宽、通道数相同,且各卷积核的通道数与输入数据的通道数相同,一般为32的倍数。如图3为卷积核和该卷积核对应的压缩卷积核的示意图,用h表示卷积核的高,用w表示卷积核的宽,用C表示卷积核的通道数,压缩卷积核的高、宽不变,但压缩卷积核的通道数变为C/M。
步骤103、将所述压缩输入数据按照卷积运算顺序依次划分为与压缩卷积核大小相同的数据块,一次卷积运算包含的输入数据构成一个数据块。
将压缩输入数据分成如图4A所示的数据块。该数据块为三维数据,该数据块的高为h,宽为w,通道数为C/M。
假设压缩输入数据为5*5*6,压缩卷积核为3*3*6,则一个数据块为3*3*6,若卷积步长为1则将该压缩输入数据划分成9个数据块。
步骤104、将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算得到卷积结果。
步骤105、根据卷积结果得到所述卷积层的多个输出数据。
本发明实施例中,步骤105得到的每个输出数据为一张二维张量。上一层卷积层的卷积核的数量为下一层网络的输入数据的通道数,上一层卷积层的每一个输出数据为下一层网络的一个通道输入数据。
优选地,前述步骤101,具体实现可通过以下步骤A1~步骤A2实现:
步骤A1、将所述卷积层的输入数据沿着通道方向进行二值化处理得到二值化输入数据;
本发明实施例中,可以通过以下公式(1)所示的二值化方法进行二值化处理:
当然,本发明并仅限于前述公式(1)所示的二值化方法进行二值化处理,还可以采用其他二值化方法进行二值化处理,例如,将取值大于等于0的数据二值化为+1,将取值小于0的数据二值化为0。
步骤A2、从二值化输入数据的第一个数据开始,将每M个连续数据打包成一个数据,所述M为32的整数倍。
假设二值化输入数据包含256个数据,M为32,则可将该二值化输入数据打包成8个长度为32位的整型数据。
优选地,前述步骤102,针对所述卷积层的每一个卷积核,通过以下步骤B1~步骤B2实现:
步骤B1、将卷积核沿着通道方向进行二值化得到二值化卷积核;
步骤B2、从二值化卷积核的第一个数据开始,将每M个连续数据打包成一个数据。
优选地,所述步骤104具体实现如下:
对所述压缩输入数据的每个数据块与每个压缩卷积核进行以下卷积运算,该卷积运算包括以下步骤C1~步骤C2:
步骤C1、将所述数据块在每个通道上的通道数据与所述压缩卷积核中相应通道上的通道卷积核进行内积运算,以得到每个通道数据与相应通道卷积核的内积结果;
步骤C2、将所述数据块的各个通道数据与相应通道卷积核的内积结果的和值,确定为所述数据块与所述压缩卷积核的卷积结果。
本发明实施例中,前述通道数据包含多个数据元素,所述卷积核包含多个卷积元素,前述步骤C1中将所述数据块在每个通道上的通道数据与所述压缩卷积核中相应通道上的通道卷积核进行内积运算,具体实现可如下:
针对每个通道数据执行以下步骤D1~步骤D2:
步骤D1、将通道数据中的每个数据元素与相应通道卷积核中的相应卷积元素进行包含一次异或操作和bit-count操作的内积运算,得到各数据元素与相应卷积元素的内积结果;
其中bit-count操作是指统计1的个数。
步骤D2、根据所述通道数据中各数据元素与相应卷积元素的内积结果,得到所述通道数据与相应通道卷积核的内积结果。
根据以下公式(2)计算得到通道数据与相应卷积核的内积结果:
式(2)中,Xi·Wi为Xi与Wi的内积结果,Xi为为数据块在第i个通道的通道数据,Wi为压缩卷积核在第i个通道的通道卷积核,xij为通道数据中的第j个数据元素,wij为Wi中的第j个卷积元素,K为通道数据包含的数据元素个数,N为K×M。
如图4B所示为数据块的第i个通道的通道数据以及压缩卷积核中第i个通道的通道卷积核,通道数据和通道卷积核的大小相同,该通道数据与通道卷积核的宽为w,高为h,均包含K(K=w*h)个元素。
在深度神经网络中为防止卷积带来的图像缩减问题,现有技术在将输入数据与卷积核进行卷积时,将输入数据和卷积核这两个张量展开成二维矩阵,并将输入数据展开的二维矩阵中进行边缘补零,由于输入数据展开的二维矩阵比较大,因此内存开销较大,且边缘补零操作需要一定的时延。
优选地,为解决现有技术边缘补零的技术问题,本发明实施例,在前述图1所示的方法流程中,还包括以下步骤100,如图5所示:
步骤100、为所述卷积层的多个输出数据分别分配一个大小为(H’+2n)*(W’+2n)的存储空间,其中H’为输出数据的高,W’为输出数据的宽,n为需要在输出数据周围补零的圈数。
此时,前述步骤105具体实现可如下:将所述压缩输入数据的各数据块与同一个压缩卷积核进行卷积运算得到的卷积结果作为同一个输出数据的元素,分别存储在该输出数据对应的存储空间的中间位置。
如图6A所示,假设卷积层的输出数据为3个,用第一输出数据、第二输出数据和第三输出数据表示,则为该3个输出数据分别分配1个大小为(H’+2n)*(W’+2n)的存储空间,分别用存储空间A、存储空间B和存储空间C表示,且存储空间A、存储空间B和存储空间C中的数据的初始值为0。卷积层包含压缩卷积核A、压缩卷积核B和压缩卷积核C。如图6B所示,压缩输入数据的各数据块与压缩卷积核A进行卷积运算所得到的卷积结果构成第一输出数据,该第一输出数据存储在对应的存储空间A中的中间位置(用X表示的区域);压缩输入数据的各数据块与压缩卷积核B进行卷积运算所得到的卷积结果构成第二输出数据,该第二输出数据存储在对应的存储空间B中的中间位置(用X表示的区域);压缩输入数据的各数据块与压缩卷积核C进行卷积运算所得到的卷积结果构成第三输出数据,该第三输出数据存储在对应的存储空间C的中间位置(用X表示的区域)。由于第一输出数据、第二输出数据和第三输出数据的大小为H*W,则存储空间A、存储空间B和存储空间C的边缘为0,达到了输出数据边缘补零的效果,不需要额外开销内存也不需要进行补零操作,解决了现有技术边缘补零所存在的技术问题。
本发明技术方案带来以下技术效果:
1、在实际应用中,卷积层的输入数据一般为三维数据、卷积核为四维数据,其通道数非常大,若直接采用卷积核对输入数据进行卷积运算其运算量非常大,速度较低。而本发明提供的方案,将卷积层的输入数据和各卷积核分别沿着通道方向进行二值化和位打包操作得到压缩输入数据和压缩卷积核,不仅在通道方向对输入数据和各卷积核进行数据压缩使得参与卷积运算的数据量大大减少,而且输入数据与卷积核的卷积运算由现有技术的浮点数与浮点数相乘变成了无符号整数与无符号整数之间的按位操作,提高了卷积运算速度;且CPU擅长按位操作,因此本发明技术方案优化后的神经网络更加适用于在CPU上实现实时计算;
2、在现有技术中,对输入数据与卷积核进行卷积运算的实现方式一般为,将输入数据和卷积核这两个张量展开为二维矩阵,进行矩阵乘法运算,再将矩阵乘法运算结果重新排布成张量,该现有技术,一方面需要额外分配内存来存储展开的矩阵,增加内存开销,另一方面需要将矩阵乘法运算得到的运算结果重新排布成张量,耗时较长、速度慢。而本发明技术方案,直接将压缩输入数据划分成数据块,将每个数据块与各压缩卷积核进行卷积运算的结果直接按顺序存储到输出张量上,以形成输出数据,无需像现有技术需要增加内存开销存储矩阵和消耗时长对运算结果进行重新排布,因此,采用本发明技术方案既节省内存开销而且还进一步提高运算速度。
优选地,为进一步提高对神经网络的优化效果,以提高神经网络处理效果,在前述实施例一的基础上,还进一步对神经网络中的全连接层进行处理,对全连接层的处理具体可详见实施例二部分的内容。
当神经网络包含卷积层不包含全连接层时,采用实施例一的方式对神经网络中的卷积层进行处理;当神经网络包含全连接层不包含卷积层时,采用实施例二的方式对神经网络中的全连接层进行处理;当神经网络既包含全连接层也包含卷积层时,采用实施例一的方式对神经网络的卷积层进行处理,采用实施例二的方式对神经网络的全连接层进行处理。
实施例二
参见图7,为本发明实施例提供的神经网络优化方法的流程示意图,该方法包括步骤701~步骤709,其中步骤701~步骤705对神经网络中的卷积层进行处理,与图1所示的步骤101~步骤105一一对应,相应的具体实现方式参见实施例一,在此不再赘述。步骤706~步骤709对神经网络中的全连接层进行处理,该步骤706~步骤709与步骤701~步骤705之间的先后顺序没有严格的限定,根据神经网络的结构确定,例如神经网络包含的网络层依次为卷积层A、卷积层B、全连接层C、卷积层D和全连接层E,则按照该神经网络包含的网络层顺序依次对各卷积层采用步骤701~步骤705处理、对各全连接层采用步骤706~步骤708处理。
步骤701、将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据。
步骤702、将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核。
步骤703、将所述压缩输入数据按照卷积运算顺序依次划分为与压缩卷积核大小相同的数据块,一次卷积运算包含的输入数据构成一个数据块。
步骤704、将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算得到卷积结果;
步骤705、根据卷积结果得到所述卷积层的多个输出数据。
步骤706、对全连接层的输入数据进行二值化和位打包操作得到包含多个数据元素的输入数据序列。
步骤707、将所述全连接层的网络权重进行转置,对转置后的每一行权重进行二值化和位打包操作得到包含多个权重元素的权重序列。
步骤708、将输入数据序列中的数据元素分别与各行权重序列的权重元素进行内积运算,得到输入数据序列与各行权重序列的内积结果。
步骤709、根据输入数据序列与各行权重序列的内积结果得到所述全连接层的输出结果。
优选地,本发明实施例中,前述步骤706,具体可通过以下步骤E1~步骤E2实现:
步骤E1、对输入数据进行二值化处理得到二值化输入数据;
步骤E2、从二值化输入数据的第一个数据开始,将每M个连续数据打包成一个数据元素得到包含多个数据元素的输入数据序列,M为32的整数倍。
M的取值可以为32、64、128、256等等,本申请不作严格限定。
如图8所示为全连接层的输入数据、以及该输入数据对应的输入数据序列的示意图,输入数据的长度为N,输入数据序列的长度为N/M。
优选地,前述步骤707中,对转置后的每一行权重进行二值化和位打包操作得到包含多个权重元素的权重序列,具体可通过以下步骤F1~步骤F2实现:
步骤F1、对一行权重进行二值化处理得到一行二值化权重;
步骤F2、从该行二值化权重的第一个权重开始,将每M个连续权重打包成一个权重元素得到包含多个权重元素的权重序列。
如图9A所示为全连接层的网络权重示意图,网络权重包含N行和H列,图9B为转置后的网络权重示意图,图9C为经过二值化处理和位打包操作之后的网络权重。
优选地,前述步骤708具体可通过以下步骤G1~步骤G2实现:
步骤G1、将每一行权重序列的每个权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算,以得到每个权重元素与相应数据元素的内积结果。
步骤G2、根据一行权重序列的各权重元素与相应元素的内积结果,得到输入数据序列与该行权重序列的内积结果。
根据以下公式(3)计算得到输入数据序列与一行权重序列的内积结果:
式(3)中,X·Wi为输入数据序列与第i行权重序列的内积结果,X为输入数据序列,Wi为第i行权重序列,N为输入数据的数量,xj为输入数据序列中第j个数据元素,wij为第i行权重序列中第j个权重元素。
在计算机程序代码中,针对输入数据序列与一行权重序列,需要进行N/M次乘法和累加运算,若采用循环语句则需要判断N/M次,循环开销较大。
优选地,为节省循环开销,本发明实施例中,针对输入数据序列与一行权重序列,为每一对需要进行卷积运算的数据元素和权重元素配置一个内积运算执行指令,即设置N/M个内积运算执行指令,直接根据该N/M个内积运算执行指令分别对N/M对数据元素和权重元素进行内积运算,无需进行循环判断,节省循环开销。因此,在前述步骤708中还包括以下步骤:
步骤G0、为每行权重序列的每个权重元素配置相应的一个内积运算执行指令;
此时,前述步骤G1具体实现如下:按照权重元素在一行权重序列中的先后顺序,根据权重元素对应的内积运算执行指令对该权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算。
神经网络的全连接层的W维一般是256的整数倍(例如AlexNet第一个全连接层中W=4096,VGGNet第一个全连接层中W=25088),AVX提供的256位长度指令集可进一步加速二值化向量与矩阵的乘法,因此,本发明实施例,可将输入数据和一行权重进行256位打包操作,即每256个连续的数据打包成一个AVX支持的256位长度整型数据,用_mm256_xor_si256指令对两个256位长度整型数据进行按位异或操作,再通过4次_mm_popcnt_u64指令累加得到上一步运算结果中1的总个数。
优选地,为进一步提高输入数据序列与各行权重序列的内积运算速度,本发明实施例,将各行权重序列与输入数据序列的内积运算分布到CPU(Central Processing Unit,中央处理器)的多个核上进行并行处理,由CPU的各个核对分配到该核上的输入数据序列和行权重序列进行前述内积运算,并输出内积运算的内积结果。例如,假设行权重序列总共为H个,CPU包含k个核,可以是直接将该H个行权重序列平均分配到k个核上,由该k个核分别依次对其分配得到的H/k个行权重序列与输入数据序列进行内积运算;还可以是根据该k个核的负载量分配相应比例数量的行权重序列。本申请不做严格限定。
本发明实施例二中,在对卷积层进行处理得到的相应技术效果的基础上,还带来以下两个技术效果:一方面,将神经网络的全连接层的输入数据和网络权重进行二值化和位打包操作得到输入数据序列和权重序列,不仅对输入数据和网络权重进行数据压缩使得参与运算的数据量大大减少,而且输入数据与网络权重的运算由现有技术的浮点数与浮点数相乘变成了无符号整数与无符号整数之间的按位操作,提高了运算速度;另一方面,对网络权重进行转置之后的每一行权重处理成一行权重序列,从而使得输入数据序列可以直接按行与网络权重的每一行权重序列依次进行内积运算,从而加快矩阵乘法的数据读取速度,从而进一步提高内积运算速度;再一方面,在将输入数据序列与一行权重序列进行卷积运算时,直接根据各个数据元素的内积运算执行指令进行数据元素与相应权重元素的内积运算,无需循环判断,节省循环开销;最后一方面,通过CPU的多个核并行处理输入数据序列与各行权重序列的内积运算,进一步提高输入数据序列与各行权重序列的内积运算速度和效率。
实施例三
基于前述实施例一、实施例二提供的神经网络优化方法的相同思想,本发明实施例三提供一种神经网络优化装置,该装置的结构示意图如图10所示。
第一数据处理单元11,用于将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据;
第二数据处理单元12,用于将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核;
划分单元13,用于将所述压缩输入数据按照卷积运算顺序依次划分为与压缩卷积核大小相同的数据块,一次卷积运算包含的输入数据构成一个数据块;
卷积单元14,用于将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算,得到卷积结果;
输出单元15,用于根据所述卷积结果得到所述卷积层的多个输出数据。
前述第一数据处理单元11和第二数据处理单元12可通过但不仅限于前述公式(1)所示的二值化方法进行二值化处理,在此不再赘述。
优选地,所述卷积单元14具体用于:对所述压缩输入数据的每个数据块与每个压缩卷积核进行以下卷积运算:
将所述数据块在每个通道上的通道数据与所述压缩卷积核中相应通道上的通道卷积核进行内积运算,以得到每个通道数据与相应通道卷积核的内积结果;
将所述数据块的各个通道数据与相应通道卷积核的内积结果的和值,确定为所述数据块与所述压缩卷积核的卷积结果。
优选地,所述通道数据包含多个数据元素,所述通道卷积核包含多个卷积元素;
所述卷积单元14将所述数据块在每个通道上的通道数据与所述压缩卷积核中相应通道上的通道卷积核进行内积运算,具体包括:
针对每个通道数据执行以下步骤:
将通道数据中的每个数据元素与相应通道卷积核中的相应卷积元素进行包含一次异或操作和bit-count操作的内积运算,得到各数据元素与相应卷积元素的内积结果;
根据所述通道数据中各数据元素与相应卷积元素的内积结果,得到所述通道数据与相应通道卷积核的内积结果。
具体可根据前述公式(2)计算得到通道数据与相应卷积核的内积结果,在此不再赘述。
优选地,所述装置还可进一步包括分配单元16,如图11所示:
分配单元16,用于为所述卷积层的多个输出数据分别分配一个大小为(H’+2n)*(W’+2n)的存储空间,其中H’为输出数据的高,W’为输出数据的宽,n为需要在输出数据周围补零的圈数;
输出单元15具体用于:将所述压缩输入数据的各数据块与同一个压缩卷积核进行卷积运算得到的卷积结果作为同一个输出数据的元素,分别存储在该输出数据对应的存储空间的中间位置。
优选地,所述第一数据处理单元11,具体用于:将所述卷积层的输入数据沿着通道方向进行二值化处理得到二值化输入数据;从二值化输入数据的第一个数据开始,将每M个连续数据打包成一个数据,所述M为32的整数倍;
优选地,所述第二数据处理单元12,具体用于:针对每个卷积核,将所述卷积核沿着通道方向进行二值化得到二值化卷积核;从二值化卷积核的第一个数据开始,将每M个连续数据打包成一个数据。
优选地,如图10、图11所示的装置,还可进一步包括第三数据处理单元17、权重处理单元18、内积运算单元19、结果输出单元20,如图12所示在图10所示的装置中包含前述单元,其中:
第三数据处理单元17,用于对全连接层的输入数据进行二值化和位打包操作得到包含多个数据元素的输入数据序列;
权重处理单元18,用于将所述全连接层的网络权重进行转置,对转置后的每一行权重进行二值化和位打包操作得到包含多个权重元素的权重序列;
内积运算单元19,用于将输入数据序列中的数据元素分别与各行权重序列的权重元素进行内积运算,得到输入数据序列与各行权重序列的内积结果;
结果输出单元20,用于根据输入数据序列与各行权重序列的内积结果得到所述全连接层的输出结果。
优选地,所述内积运算单元19包括:
内积运算模块,用于将每一行权重序列的每个权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算,以得到每个权重元素与相应数据元素的内积结果;
确定模块,用于根据一行权重序列的各权重元素与相应元素的内积结果,得到输入数据序列与该行权重序列的内积结果。
具体可根据前述公式(3)计算得到输入数据序列与一行权重序列的内积结果,在此不再赘述。
优选地,为进一步节省循环开销,所述内积运算单元19还进一步包括:
指令生成模块,用于为每行权重序列的每个权重元素配置相应的一个内积运算执行指令;
内积运算模块具体用于:按照权重元素在一行权重序列中的先后顺序,根据权重元素对应的内积运算执行指令对该权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算。
优选地,所述内积运算单元19,具体用于:将各行权重序列与输入数据序列的内积运算,分布到CPU的多个核上进行并行处理,从所述多个核中得到输入数据序列与各行权重序列的内积结果。
优选地,所述第三数据处理单元17具体用于:对输入数据进行二值化处理得到二值化输入数据;从二值化输入数据的第一个数据开始,将每M个连续数据打包成一个数据元素得到包含多个数据元素的输入数据序列,所述M为32的整数倍。
优选地,所述权重处理单元18对转置后的每一行权重进行二值化和位打包操作得到包含多个权重元素的权重序列,具体包括:对一行权重进行二值化处理得到一行二值化权重;从该行二值化权重的第一个权重开始,将每M个连续权重打包成一个权重元素得到包含多个权重元素的权重序列。
以上是本发明的核心思想,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (20)

1.一种神经网络优化方法,其特征在于,包括:
将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据;
将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核;
将所述压缩输入数据按照卷积运算顺序依次划分为与压缩卷积核大小相同的数据块,一次卷积运算包含的输入数据构成一个数据块;
将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算得到卷积结果,并根据卷积结果得到所述卷积层的多个输出数据。
2.根据权利要求1所述的方法,其特征在于,将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算得到卷积结果,具体包括:
对所述压缩输入数据的每个数据块与每个压缩卷积核进行以下卷积运算:
将所述数据块在每个通道上的通道数据与所述压缩卷积核中相应通道上的通道卷积核进行内积运算,以得到每个通道数据与相应通道卷积核的内积结果;
将所述数据块的各个通道数据与相应通道卷积核的内积结果的和值,确定为所述数据块与所述压缩卷积核的卷积结果。
3.根据权利要求2所述的方法,其特征在于,所述通道数据包含多个数据元素,所述通道卷积核包含多个卷积元素;
将所述数据块在每个通道上的通道数据与所述压缩卷积核中相应通道上的通道卷积核进行内积运算,具体包括:
针对每个通道数据执行以下步骤:
将通道数据中的每个数据元素与相应通道卷积核中的相应卷积元素进行包含一次异或操作和bit-count操作的内积运算,得到各数据元素与相应卷积元素的内积结果;
根据所述通道数据中各数据元素与相应卷积元素的内积结果,得到所述通道数据与相应通道卷积核的内积结果。
4.根据权利要求1所述的方法,其特征在于,还包括:
为所述卷积层的多个输出数据分别分配一个大小为(H’+2n)*(W’+2n)的存储空间,其中H’为输出数据的高,W’为输出数据的宽,n为需要在输出数据周围补零的圈数;
根据卷积结果得到所述卷积层的多个输出数据,具体包括:将所述压缩输入数据的各数据块与同一个压缩卷积核进行卷积运算得到的卷积结果作为同一个输出数据的元素,分别存储在该输出数据对应的存储空间的中间位置。
5.根据权利要求1所述的方法,其特征在于,将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据,具体包括:将所述卷积层的输入数据沿着通道方向进行二值化处理得到二值化输入数据;从二值化输入数据的第一个数据开始,将每M个连续数据打包成一个数据,所述M为32的整数倍;
将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核,具体包括:针对每个卷积核,将所述卷积核沿着通道方向进行二值化得到二值化卷积核;从二值化卷积核的第一个数据开始,将每M个连续数据打包成一个数据。
6.根据权利要求1~5任一项所述的方法,其特征在于,还包括:
对全连接层的输入数据进行二值化和位打包操作得到包含多个数据元素的输入数据序列;
将所述全连接层的网络权重进行转置,对转置后的每一行权重进行二值化和位打包操作得到包含多个权重元素的权重序列;
将输入数据序列中的数据元素分别与各行权重序列的权重元素进行内积运算,得到输入数据序列与各行权重序列的内积结果;
根据输入数据序列与各行权重序列的内积结果得到所述全连接层的输出结果。
7.根据权利要求6所述的方法,其特征在于,将输入数据序列中的数据元素分别与各行权重序列的权重元素进行内积运算,得到输入数据序列与各行权重序列的内积结果,具体包括:
将每一行权重序列的每个权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算,以得到每个权重元素与相应数据元素的内积结果;
根据一行权重序列的各权重元素与相应元素的内积结果,得到输入数据序列与该行权重序列的内积结果。
8.根据权利要求7所述的方法,其特征在于,将每一行权重序列的每个权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算之前还包括:为每行权重序列的每个权重元素配置相应的一个内积运算执行指令;
将每一行权重序列的每个权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算,具体包括:按照权重元素在一行权重序列中的先后顺序,根据权重元素对应的内积运算执行指令对该权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算。
9.根据权利要求7所述的方法,其特征在于,将输入数据序列中的数据元素分别与各行权重序列的权重元素进行内积运算,得到输入数据序列与各行权重序列的内积结果,具体包括:
将各行权重序列与输入数据序列的内积运算,分布到中央处理器CPU的多个核上进行并行处理,从所述多个核中得到输入数据序列与各行权重序列的内积结果。
10.根据权利要求6所述的方法,其特征在于,对所述全连接层的输入数据进行二值化和位打包操作得到包含多个数据元素的输入数据序列,具体包括:对输入数据进行二值化处理得到二值化输入数据;从二值化输入数据的第一个数据开始,将每M个连续数据打包成一个数据元素得到包含多个数据元素的输入数据序列,M为32的整数倍;
对转置后的每一行权重进行二值化和位打包操作得到包含多个权重元素的权重序列,具体包括:对一行权重进行二值化处理得到一行二值化权重;从该行二值化权重的第一个权重开始,将每M个连续权重打包成一个权重元素得到包含多个权重元素的权重序列。
11.一种神经网络优化装置,其特征在于,包括:
第一数据处理单元,用于将卷积层的输入数据沿着通道方向进行二值化和位打包操作,得到压缩输入数据;
第二数据处理单元,用于将所述卷积层的各卷积核分别沿着通道方向进行二值化和位打包操作得到相应的压缩卷积核;
划分单元,用于将所述压缩输入数据按照卷积运算顺序依次划分为与压缩卷积核大小相同的数据块,一次卷积运算包含的输入数据构成一个数据块;
卷积单元,用于将所述压缩输入数据的每个数据块依次与各压缩卷积核进行卷积运算,得到卷积结果;
输出单元,用于根据所述卷积结果得到所述卷积层的多个输出数据。
12.根据权利要求11所述的装置,其特征在于,所述卷积单元具体用于:对所述压缩输入数据的每个数据块与每个压缩卷积核进行以下卷积运算:
将所述数据块在每个通道上的通道数据与所述压缩卷积核中相应通道上的通道卷积核进行内积运算,以得到每个通道数据与相应通道卷积核的内积结果;
将所述数据块的各个通道数据与相应通道卷积核的内积结果的和值,确定为所述数据块与所述压缩卷积核的卷积结果。
13.根据权利要求12所述的装置,其特征在于,所述通道数据包含多个数据元素,所述通道卷积核包含多个卷积元素;
所述卷积单元将所述数据块在每个通道上的通道数据与所述压缩卷积核中相应通道上的通道卷积核进行内积运算,具体包括:
针对每个通道数据执行以下步骤:
将通道数据中的每个数据元素与相应通道卷积核中的相应卷积元素进行包含一次异或操作和bit-count操作的内积运算,得到各数据元素与相应卷积元素的内积结果;
根据所述通道数据中各数据元素与相应卷积元素的内积结果,得到所述通道数据与相应通道卷积核的内积结果。
14.根据权利要求11所述的装置,其特征在于,还包括:
分配单元,用于为所述卷积层的多个输出数据分别分配一个大小为(H’+2n)*(W’+2n)的存储空间,其中H’为输出数据的高,W’为输出数据的宽,n为需要在输出数据周围补零的圈数;
输出单元具体用于:将所述压缩输入数据的各数据块与同一个压缩卷积核进行卷积运算得到的卷积结果作为同一个输出数据的元素,分别存储在该输出数据对应的存储空间的中间位置。
15.根据权利要求11所述的装置,其特征在于,所述第一数据处理单元,具体用于:将所述卷积层的输入数据沿着通道方向进行二值化处理得到二值化输入数据;从二值化输入数据的第一个数据开始,将每M个连续数据打包成一个数据,所述M为32的整数倍;
所述第二数据处理单元,具体用于:针对每个卷积核,将所述卷积核沿着通道方向进行二值化得到二值化卷积核;从二值化卷积核的第一个数据开始,将每M个连续数据打包成一个数据。
16.根据权利要求11~15任一项所述的装置,其特征在于,还包括:
第三数据处理单元,用于对全连接层的输入数据进行二值化和位打包操作得到包含多个数据元素的输入数据序列;
权重处理单元,用于将所述全连接层的网络权重进行转置,对转置后的每一行权重进行二值化和位打包操作得到包含多个权重元素的权重序列;
内积运算单元,用于将输入数据序列中的数据元素分别与各行权重序列的权重元素进行内积运算,得到输入数据序列与各行权重序列的内积结果;
结果输出单元,用于根据输入数据序列与各行权重序列的内积结果得到所述全连接层的输出结果。
17.根据权利要求16所述的装置,其特征在于,所述内积运算单元包括:
内积运算模块,用于将每一行权重序列的每个权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算,以得到每个权重元素与相应数据元素的内积结果;
确定模块,用于根据一行权重序列的各权重元素与相应元素的内积结果,得到输入数据序列与该行权重序列的内积结果。
18.根据权利要求17所述的装置,其特征在于,内积运算单元还包括:
指令生成模块,用于为每行权重序列的每个权重元素配置相应的一个内积运算执行指令;
内积运算模块具体用于:按照权重元素在一行权重序列中的先后顺序,根据权重元素对应的内积运算执行指令对该权重元素与相应数据元素进行包含一次异或操作和bit-count操作的内积运算。
19.根据权利要求16所述的装置,其特征在于,所述内积运算单元,具体用于:
将各行权重序列与输入数据序列的内积运算,分布到中央处理器CPU的多个核上进行并行处理,从所述多个核中得到输入数据序列与各行权重序列的内积结果。
20.根据权利要求16所述的装置,其特征在于,所述第三数据处理单元具体用于:对输入数据进行二值化处理得到二值化输入数据;从二值化输入数据的第一个数据开始,将每M个连续数据打包成一个数据元素得到包含多个数据元素的输入数据序列,所述M为32的整数倍;
所述权重处理单元对转置后的每一行权重进行二值化和位打包操作得到包含多个权重元素的权重序列,具体包括:对一行权重进行二值化处理得到一行二值化权重;从该行二值化权重的第一个权重开始,将每M个连续权重打包成一个权重元素得到包含多个权重元素的权重序列。
CN201710474712.0A 2017-06-21 2017-06-21 一种低计算能力处理设备的计算机视觉处理方法及装置 Active CN107145939B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710474712.0A CN107145939B (zh) 2017-06-21 2017-06-21 一种低计算能力处理设备的计算机视觉处理方法及装置
US16/014,869 US11580377B2 (en) 2017-06-21 2018-06-21 Method and device for optimizing neural network
US18/162,871 US20230177336A1 (en) 2017-06-21 2023-02-01 Method and device for optimizing neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710474712.0A CN107145939B (zh) 2017-06-21 2017-06-21 一种低计算能力处理设备的计算机视觉处理方法及装置

Publications (2)

Publication Number Publication Date
CN107145939A true CN107145939A (zh) 2017-09-08
CN107145939B CN107145939B (zh) 2020-11-24

Family

ID=59782691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710474712.0A Active CN107145939B (zh) 2017-06-21 2017-06-21 一种低计算能力处理设备的计算机视觉处理方法及装置

Country Status (2)

Country Link
US (2) US11580377B2 (zh)
CN (1) CN107145939B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304923A (zh) * 2017-12-06 2018-07-20 腾讯科技(深圳)有限公司 卷积运算处理方法及相关产品
CN108416427A (zh) * 2018-02-22 2018-08-17 重庆信络威科技有限公司 卷积核堆积数据流、压缩编码以及深度学习算法
CN108876790A (zh) * 2017-09-14 2018-11-23 北京旷视科技有限公司 图像语义分割方法和装置、神经网络训练方法和装置
CN109117950A (zh) * 2018-08-01 2019-01-01 南京天数智芯科技有限公司 基于人工智能设备的分层稀疏张量压缩方法
CN109190758A (zh) * 2018-09-04 2019-01-11 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN109543139A (zh) * 2017-09-22 2019-03-29 杭州海康威视数字技术股份有限公司 卷积运算方法、装置、计算机设备及计算机可读存储介质
CN109800869A (zh) * 2018-12-29 2019-05-24 深圳云天励飞技术有限公司 数据压缩方法及相关装置
CN109886395A (zh) * 2019-03-06 2019-06-14 上海熠知电子科技有限公司 一种面向多核图像处理卷积神经网络的数据读取方法
CN109978137A (zh) * 2019-03-20 2019-07-05 厦门美图之家科技有限公司 一种卷积神经网络的处理方法
CN109993273A (zh) * 2017-12-29 2019-07-09 深圳云天励飞技术有限公司 卷积神经网络的卷积实现方法及相关产品
WO2019165679A1 (zh) * 2018-03-01 2019-09-06 中国科学院计算技术研究所 一种包括比特转换装置的神经网络处理器及其方法
CN110399591A (zh) * 2019-06-28 2019-11-01 苏州浪潮智能科技有限公司 基于卷积神经网络的数据处理方法和装置
WO2019227447A1 (zh) * 2018-05-31 2019-12-05 深圳市大疆创新科技有限公司 数据处理方法和处理电路
WO2020029181A1 (zh) * 2018-08-09 2020-02-13 深圳鲲云信息科技有限公司 三维卷积神经网络计算装置及相关产品
CN111079917A (zh) * 2018-10-22 2020-04-28 北京地平线机器人技术研发有限公司 张量数据分块存取的方法及装置
CN111562977A (zh) * 2019-02-14 2020-08-21 上海寒武纪信息科技有限公司 神经网络模型拆分方法、装置、存储介质和计算机系统
CN112825151A (zh) * 2019-11-20 2021-05-21 上海商汤智能科技有限公司 数据处理方法、装置及设备

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018163790A1 (ja) * 2017-03-06 2018-09-13 ソニー株式会社 情報処理装置
US11521046B2 (en) * 2017-11-08 2022-12-06 Samsung Electronics Co., Ltd. Time-delayed convolutions for neural network device and method
KR102578826B1 (ko) * 2017-11-08 2023-09-15 삼성전자주식회사 뉴럴 네트워크 장치 및 그 동작 방법
CN109858495B (zh) * 2019-01-16 2023-09-22 五邑大学 一种基于改进卷积块的特征提取方法、装置及其存储介质
US10839543B2 (en) * 2019-02-26 2020-11-17 Baidu Usa Llc Systems and methods for depth estimation using convolutional spatial propagation networks
US10771088B1 (en) * 2019-02-28 2020-09-08 International Business Machines Corporation Optimal multi-dimensional data compression by tensor-tensor decompositions tensor
CN109858618B (zh) * 2019-03-07 2020-04-14 电子科技大学 一种卷积神经单元块、构成的神经网络及图像分类方法
CN110020616B (zh) * 2019-03-26 2021-05-11 深兰科技(上海)有限公司 一种目标识别方法及设备
CN110796250A (zh) * 2019-10-11 2020-02-14 浪潮电子信息产业股份有限公司 应用于卷积神经网络的卷积处理方法、系统及相关组件
CN112686080A (zh) * 2019-10-17 2021-04-20 北京京东乾石科技有限公司 进行车道线检测的方法和装置
US11475283B2 (en) * 2019-10-24 2022-10-18 Apple Inc. Multi dimensional convolution in neural network processor
CN113052291B (zh) * 2019-12-27 2024-04-16 上海商汤智能科技有限公司 数据处理方法和装置
CN111767246B (zh) * 2020-06-09 2024-03-05 上海寒武纪信息科技有限公司 数据处理方法、相关设备及计算机可读介质
CN111898081B (zh) * 2020-07-09 2024-02-27 上海兆芯集成电路股份有限公司 卷积运算方法及卷积运算装置
US11568217B2 (en) 2020-07-15 2023-01-31 International Business Machines Corporation Sparse modifiable bit length deterministic pulse generation for updating analog crossbar arrays
US11443171B2 (en) 2020-07-15 2022-09-13 International Business Machines Corporation Pulse generation for updating crossbar arrays
US20220100601A1 (en) * 2020-09-29 2022-03-31 Hailo Technologies Ltd. Software Defined Redundant Allocation Safety Mechanism In An Artificial Neural Network Processor
CN113128688B (zh) * 2021-04-14 2022-10-21 北京航空航天大学 通用型ai并行推理加速结构以及推理设备
WO2023220867A1 (en) * 2022-05-16 2023-11-23 Intel Corporation Neural network with point grid convolutional layer
CN115758054B (zh) * 2023-02-10 2023-04-14 上海登临科技有限公司 一种卷积计算方法、数据处理方法、芯片及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160142791A (ko) * 2015-06-03 2016-12-13 삼성전자주식회사 뉴럴 네트워크 실시 방법 및 장치
CN106326985A (zh) * 2016-08-18 2017-01-11 北京旷视科技有限公司 神经网络训练方法和装置及数据处理方法和装置
CN106779057A (zh) * 2016-11-11 2017-05-31 北京旷视科技有限公司 基于gpu的计算二值神经网络卷积的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392117B2 (en) 2009-05-22 2013-03-05 Toyota Motor Engineering & Manufacturing North America, Inc. Using topological structure for path planning in semi-structured environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160142791A (ko) * 2015-06-03 2016-12-13 삼성전자주식회사 뉴럴 네트워크 실시 방법 및 장치
CN106326985A (zh) * 2016-08-18 2017-01-11 北京旷视科技有限公司 神经网络训练方法和装置及数据处理方法和装置
CN106779057A (zh) * 2016-11-11 2017-05-31 北京旷视科技有限公司 基于gpu的计算二值神经网络卷积的方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FABRIZIO PEDERSOLI ET AL.: "Espresso: Efficient Forward Propagation for BCNN", 《ARXIV》 *
MOHAMMAD RASTEGARI ET AL.: "EXNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks", 《ARXIV》 *
SONG HAN ET AL.: "Deep Compression:Compressing Deep Neural Networks with Pruning,Trained Quantization and Huffman Coding", 《RESEARCHGATE》 *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108876790A (zh) * 2017-09-14 2018-11-23 北京旷视科技有限公司 图像语义分割方法和装置、神经网络训练方法和装置
CN109543139A (zh) * 2017-09-22 2019-03-29 杭州海康威视数字技术股份有限公司 卷积运算方法、装置、计算机设备及计算机可读存储介质
EP3686760A4 (en) * 2017-09-22 2020-11-18 Hangzhou Hikvision Digital Technology Co., Ltd. CONVOLUTIONAL OPERATIONAL METHOD AND DEVICE, COMPUTER DEVICE, AND COMPUTER READABLE STORAGE MEDIUM
US11645357B2 (en) 2017-09-22 2023-05-09 Hangzhou Hikvision Digital Technology Co., Ltd. Convolution operation method and apparatus, computer device, and computer-readable storage medium
CN108304923B (zh) * 2017-12-06 2022-01-18 腾讯科技(深圳)有限公司 卷积运算处理方法及相关产品
US11449576B2 (en) 2017-12-06 2022-09-20 Tencent Technology (Shenzhen) Company Limited Convolution operation processing method and related product
CN108304923A (zh) * 2017-12-06 2018-07-20 腾讯科技(深圳)有限公司 卷积运算处理方法及相关产品
CN109993273B (zh) * 2017-12-29 2021-05-11 深圳云天励飞技术有限公司 卷积神经网络的卷积实现方法及相关产品
CN109993273A (zh) * 2017-12-29 2019-07-09 深圳云天励飞技术有限公司 卷积神经网络的卷积实现方法及相关产品
CN108416427A (zh) * 2018-02-22 2018-08-17 重庆信络威科技有限公司 卷积核堆积数据流、压缩编码以及深度学习算法
WO2019165679A1 (zh) * 2018-03-01 2019-09-06 中国科学院计算技术研究所 一种包括比特转换装置的神经网络处理器及其方法
WO2019227447A1 (zh) * 2018-05-31 2019-12-05 深圳市大疆创新科技有限公司 数据处理方法和处理电路
CN109117950B (zh) * 2018-08-01 2021-03-09 上海天数智芯半导体有限公司 基于人工智能设备的分层稀疏张量压缩方法
CN109117950A (zh) * 2018-08-01 2019-01-01 南京天数智芯科技有限公司 基于人工智能设备的分层稀疏张量压缩方法
WO2020029181A1 (zh) * 2018-08-09 2020-02-13 深圳鲲云信息科技有限公司 三维卷积神经网络计算装置及相关产品
CN109190758A (zh) * 2018-09-04 2019-01-11 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN111079917B (zh) * 2018-10-22 2023-08-11 北京地平线机器人技术研发有限公司 张量数据分块存取的方法及装置
CN111079917A (zh) * 2018-10-22 2020-04-28 北京地平线机器人技术研发有限公司 张量数据分块存取的方法及装置
CN109800869A (zh) * 2018-12-29 2019-05-24 深圳云天励飞技术有限公司 数据压缩方法及相关装置
CN111562977A (zh) * 2019-02-14 2020-08-21 上海寒武纪信息科技有限公司 神经网络模型拆分方法、装置、存储介质和计算机系统
CN111562977B (zh) * 2019-02-14 2022-12-09 上海寒武纪信息科技有限公司 神经网络模型拆分方法、装置、存储介质和计算机系统
CN109886395A (zh) * 2019-03-06 2019-06-14 上海熠知电子科技有限公司 一种面向多核图像处理卷积神经网络的数据读取方法
CN109886395B (zh) * 2019-03-06 2020-11-24 上海熠知电子科技有限公司 一种面向多核图像处理卷积神经网络的数据读取方法
CN109978137B (zh) * 2019-03-20 2021-03-16 厦门美图之家科技有限公司 一种卷积神经网络的处理方法
CN109978137A (zh) * 2019-03-20 2019-07-05 厦门美图之家科技有限公司 一种卷积神经网络的处理方法
CN110399591B (zh) * 2019-06-28 2021-08-31 苏州浪潮智能科技有限公司 基于卷积神经网络的数据处理方法和装置
CN110399591A (zh) * 2019-06-28 2019-11-01 苏州浪潮智能科技有限公司 基于卷积神经网络的数据处理方法和装置
CN112825151A (zh) * 2019-11-20 2021-05-21 上海商汤智能科技有限公司 数据处理方法、装置及设备

Also Published As

Publication number Publication date
US20230177336A1 (en) 2023-06-08
US11580377B2 (en) 2023-02-14
CN107145939B (zh) 2020-11-24
US20180373981A1 (en) 2018-12-27

Similar Documents

Publication Publication Date Title
CN107145939A (zh) 一种神经网络优化方法及装置
CN106844294B (zh) 卷积运算芯片和通信设备
CN108205701B (zh) 一种执行卷积计算的系统及方法
CN109543830B (zh) 一种用于卷积神经网络加速器的拆分累加器
EP3179415B1 (en) Systems and methods for a multi-core optimized recurrent neural network
CN108241890B (zh) 一种可重构神经网络加速方法及架构
CN105892989B (zh) 一种神经网络加速器及其运算方法
CN111062472B (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
CN106951395A (zh) 面向压缩卷积神经网络的并行卷积运算方法及装置
CN108229645A (zh) 卷积加速和计算处理方法、装置、电子设备及存储介质
CN108280514A (zh) 基于fpga的稀疏神经网络加速系统和设计方法
US20220058486A1 (en) System and method of accelerating execution of a neural network
CN107301456A (zh) 基于向量处理器的深度神经网络多核加速实现方法
CN106447030A (zh) 卷积神经网络的计算资源优化方法及系统
Kala et al. UniWiG: Unified winograd-GEMM architecture for accelerating CNN on FPGAs
CN110147252A (zh) 一种卷积神经网络的并行计算方法及装置
CN103049241A (zh) 一种提高cpu+gpu异构装置计算性能的方法
CN109791628A (zh) 神经网络模型分块压缩方法、训练方法、计算装置及系统
CN113033794B (zh) 基于深度可分离卷积的轻量级神经网络硬件加速器
CN107632965A (zh) 可重构的s型运算装置及运算方法
CN109597647A (zh) 数据处理方法及设备
Sommer et al. Efficient hardware acceleration of sparsely active convolutional spiking neural networks
CN104572588B (zh) 矩阵求逆处理方法和装置
CN106503386A (zh) 评估光功率预测算法性能优劣的方法及装置
Guo et al. Bit-width adaptive accelerator design for convolution neural network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200326

Address after: 101300, No. two, 1 road, Shunyi Park, Zhongguancun science and Technology Park, Beijing, Shunyi District

Applicant after: BEIJING TUSENZHITU TECHNOLOGY Co.,Ltd.

Address before: 101300, No. two, 1 road, Shunyi Park, Zhongguancun science and Technology Park, Beijing, Shunyi District

Applicant before: TuSimple

GR01 Patent grant
GR01 Patent grant