CN109767000A - 基于Winograd算法的神经网络卷积方法及装置 - Google Patents

基于Winograd算法的神经网络卷积方法及装置 Download PDF

Info

Publication number
CN109767000A
CN109767000A CN201910041019.3A CN201910041019A CN109767000A CN 109767000 A CN109767000 A CN 109767000A CN 201910041019 A CN201910041019 A CN 201910041019A CN 109767000 A CN109767000 A CN 109767000A
Authority
CN
China
Prior art keywords
matrix
convolution
transformation
neural network
winograd algorithm
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
CN201910041019.3A
Other languages
English (en)
Other versions
CN109767000B (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.)
Xiamen Meitu Technology Co Ltd
Original Assignee
Xiamen Meitu 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 Xiamen Meitu Technology Co Ltd filed Critical Xiamen Meitu Technology Co Ltd
Priority to CN201910041019.3A priority Critical patent/CN109767000B/zh
Publication of CN109767000A publication Critical patent/CN109767000A/zh
Application granted granted Critical
Publication of CN109767000B publication Critical patent/CN109767000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)

Abstract

本申请提供基于Winograd算法的神经网络卷积方法及装置,所述方法包括:获取待加速神经网络卷积的卷积核及图像块;将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵;根据目标矩阵及所述卷积核,得到第一变换矩阵;根据Winograd算法中第二矩阵及所述图像块,计算得到第二变换矩阵;根据Winograd算法中第三矩阵与所述第一、第二变换矩阵,得到卷积矩阵;采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。采用本申请提供的基于Winograd算法的神经网络卷积方法进行卷积计算,能够实现算法的定点加速,提高运算速度和精准度。

Description

基于Winograd算法的神经网络卷积方法及装置
技术领域
本申请涉及神经网络领域,具体而言,涉及基于Winograd算法的神经网络卷积方法及装置。
背景技术
在现代人工智能(AI)领域中,卷积神经网络(Convolution Neutral Netwo rks,简称CNN)是研究图像识别和机器视觉的最主要技术。而多数情况下CNN使用的是3x3卷积,因此3x3卷积的性能对图像识别和机器视觉极其重要。3x3卷积的计算方法有三种:(1)img2col+gemm(Image to Column+GEneral Matrix Mutiplication);(2)快速傅立叶变换(FFT);(3)Winograd算法。前两种方法需要占用过大的内存,不适合移动设备上使用。第(3)种针对3x3小卷积核和较小的内存可以得到很高的计算速度,其通常采用Winogra d(2x2,3x3)、Winograd(4x4,3x3)和Winograd(6x6,3x3)三种算法,相应的加速倍数为2.25、4和5.06倍。而现有的3x3卷积计算中普遍使用浮点Wino grad(6x6,3x3)算法进行加速。但使用速度更快的定点Winograd算法极其少,其原因是Winograd变换使得矩阵变成浮点,最终难以进行定点加速。
有鉴于此,如何实现对Winograd算法的定点加速,是目前需要解决的问题。
发明内容
本申请的目的在于提供一种基于Winograd算法的神经网络卷积方法、装置、电子设备及可读存储介质。
第一方面,本申请提供一种基于Winograd算法的神经网络卷积方法,所述方法包括:
获取待加速神经网络卷积的卷积核及图像块;
将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵;
根据目标矩阵、目标矩阵的转置矩阵及所述卷积核,得到第一变换矩阵;
根据Winograd算法中第二矩阵、第二矩阵的转置矩阵及所述图像块,计算得到第二变换矩阵;
根据Winograd算法中第三矩阵与所述第一变换矩阵和第二变换矩阵,得到卷积矩阵;
采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。
可选地,所述将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵,包括:
计算Winograd算法中矩阵元素为浮点型的第一矩阵用于整型化的对角矩阵;
根据矩阵元素为浮点型的第一矩阵及对角矩阵,得到矩阵元素为整型的目标矩阵。
可选地,所述卷积矩阵的计算公式如下:
其中,Y为卷积矩阵,D为对角矩阵,G′为目标矩阵,B为第二矩阵,k为卷积核,d为图像块,A为第三矩阵,G′kG′T为第一变换矩阵,BTdB为第二变换矩阵。
可选地,所述方法还包括:
将计算得到的所述第一变换矩阵采用短整型计算机数据类型进行存储;
将计算得到的所述第二变换矩阵采用短整型计算机数据类型进行存储;
将计算得到的所述第一变换矩阵和第二变换矩阵的计算结果累加到浮点型计算机数据类型进行存储,以防止溢出。
第二方面,本申请提供一种基于Winograd算法的神经网络卷积装置,所述装置包括:
获取模块,用于获取待加速神经网络卷积的卷积核及图像块;
转化模块,用于将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵;
计算模块,用于根据目标矩阵、目标矩阵的转置矩阵及所述卷积核,得到第一变换矩阵;根据Winograd算法中第二矩阵、第二矩阵的转置矩阵及所述图像块,计算得到第二变换矩阵;根据Winograd算法中第三矩阵与所述第一变换矩阵和第二变换矩阵,得到卷积矩阵;
处理模块,用于采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。
可选地,所述转化模块具体用于:
计算Winograd算法中矩阵元素为浮点型的第一矩阵用于整型化的对角矩阵;
根据矩阵元素为浮点型的第一矩阵及对角矩阵,得到矩阵元素为整型的目标矩阵。
可选地,所述卷积矩阵的计算公式如下:
其中,Y为卷积矩阵,D为对角矩阵,G′为目标矩阵,G′kG′T为第一变换矩阵,B为第二矩阵,k为卷积核,d为图像块,A为第三矩阵。
可选地,所述装置还包括:
存储模块,用于将计算得到的所述第一变换矩阵采用短整型计算机数据类型进行存储;将计算得到的所述第二变换矩阵采用短整型计算机数据类型进行存储;将计算得到的所述第一变换矩阵和第二变换矩阵的计算结果累加到浮点型计算机数据类型进行存储,以防止溢出。
第三方面,本申请提供一种电子设备,所述电子设备包括:
处理器及存储有若干计算机指令的非易失性存储器,所述计算机指令被所述处理器执行时,所述电子设备执行第一方面中任意一项所述的基于Winograd算法的神经网络卷积方法。
第四方面,本申请还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一方面中任意一项所述的基于Winograd算法的神经网络卷积方法。
相比现有技术,本申请提供的有益效果包括:本申请提供一种基于Winograd算法的神经网络卷积方法、装置、电子设备及可读存储介质,所述方法包括:获取待加速神经网络卷积的卷积核及图像块;将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵;根据目标矩阵、目标矩阵的转置矩阵及所述卷积核,得到第一变换矩阵;根据Winograd算法中第二矩阵、第二矩阵的转置矩阵及所述图像块,计算得到第二变换矩阵;根据Winograd算法中第三矩阵与所述第一变换矩阵和第二变换矩阵,得到卷积矩阵;采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。采用本申请提供的基于Winograd算法的神经网络卷积方法进行卷积计算,能够实现算法的定点加速,提高运算速度和精准度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为图1为本申请实施例提供的电子设备的结构示意框图;
图2为本申请实施例提供的基于Winograd算法的神经网络卷积方法的步骤流程框图;
图3为图2中步骤S202的子步骤流程示意框图;
图4为本申请实施例提供的Winograd变换示意图;
图5为本申请实施例提供的基于Winograd算法的神经网络卷积方法的其他步骤流程框图;
图6为本申请实施例提供的Winograd算法性能对比图;
图7为本申请实施例提供的基于Winograd算法的神经网络卷积装置的结构示意框图。
图标:100-电子设备;110-基于Winograd算法的神经网络卷积装置;111-存储器;112-处理器;113-通信单元;1101-获取模块;1102-转化模块;1103-计算模块;1104-处理模块;1105-存储模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要理解的是,术语“上”、“下”、“内”、“外”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,“设置”、“连接”等术语应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接连接,也可以通过中间媒介间接连接,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的具体实施方式进行详细说明。
请参照图1,图1为本申请实施例提供的电子设备100的结构示意框图。所述电子设备100包括基于Winograd算法的神经网络卷积装置110、存储器111、处理器112及通信单元113。
所述存储器111、处理器112及通信单元113的各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,所述存储器111可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器111用于存储程序,所述处理器112在接收到执行指令后,执行所述程序。所述通信单元113用于通过网络建立所述电子设备100与其它设备(比如设备终端)之间的通信连接,并用于通过网络进行数据的接收和发送。
请参照图2,图2为本申请实施例提供的基于Winograd算法的神经网络卷积方法的步骤流程框图,所述方法包括:
步骤S201,获取待加速神经网络卷积的卷积核及图像块。
步骤S202,将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵。
应当理解的是,在本实施例中,第一矩阵可以是指Winograd算法变换公式中的G矩阵。
步骤S203,根据目标矩阵、目标矩阵的转置矩阵及所述卷积核,得到第一变换矩阵。
步骤S204,根据Winograd算法中第二矩阵、第二矩阵的转置矩阵及所述图像块,计算得到第二变换矩阵。
步骤S205,根据Winograd算法中第三矩阵与所述第一变换矩阵和第二变换矩阵,得到卷积矩阵。
步骤S206,采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。
请参照图3,图3为图2中步骤S202的子步骤流程示意框图。在本实施例中,步骤S202可以包括子步骤S2021和子步骤S2022:
步骤S2021,计算Winograd算法中矩阵元素为浮点型的第一矩阵用于整型化的对角矩阵。
步骤S2022,根据矩阵元素为浮点型的第一矩阵及对角矩阵,得到矩阵元素为整型的目标矩阵。
进一步地,所述卷积矩阵的计算公式如下:
其中,Y为卷积矩阵,D为对角矩阵,G′为目标矩阵,B为第二矩阵,k为卷积核,d为图像块,A为第三矩阵,G′kG′T为第一变换矩阵,BTdB为第二变换矩阵。
在本实施例中,Winograd算法可以是,Winograd(4x4,3x3)算法。此时,k可以是3x3卷积核,d可以是6x6图像块,Y可以是4x4卷积矩阵。
此时卷积矩阵可以表达为:
第一矩阵可以是:
第二矩阵可以是:
第三矩阵可以是:
在本实施例中,可以根据Hadamard(哈达玛)乘法的性质,计算得到第一矩阵G用于整型化的对角矩阵:
在本实施例中,对第一矩阵使用对角矩阵D进行整型化后,可以得到目标矩阵。
目标矩阵可以表示为:
应当理解的是,在本实施例中,在卷积矩阵的计算过程中,第一变换矩阵和第二变换矩阵的乘法计算量最大,对第一矩阵整型化是为了第一变换矩阵整型化,可以使第一变换矩阵和第二变换矩阵的Hadamard乘法提高速度。在其他实施例中,也可以对第二矩阵进行整型化后在对卷积矩阵进行卷积计算。第三矩阵A在第一矩阵G进行整型化后,对应提取出对角矩阵D后,会从整型矩阵转化为浮点型矩阵,而第三矩阵在卷积计算的过程中计算量最小,可以认为第三矩阵的变化对于卷积矩阵的卷积计算过程的复杂程度影响不及第一变换矩阵和第二变换矩阵的Hadamard乘法。
请参照图4及图5,图4为本申请实施例提供的Winograd变换示意图,图5为本申请实施例提供的基于Winograd算法的神经网络卷积方法的其他步骤流程框图,所述方法还包括:
步骤S207,将计算得到的所述第一变换矩阵采用短整型计算机数据类型进行存储。
在本实施例中,卷积神经网络(CNN)可以给出CN个3x3卷积核k,需进行CN次第一变换矩阵的乘法计算,得到CN个第一变换矩阵的计算结果。3x3卷积核k和目标矩阵G′都可以采用无符号字符型计算机数据类型进行存储。第一变换矩阵的计算结果可以采用短整型计算机数据类型进行存储。
步骤S208,将计算得到的所述第二变换矩阵采用短整型计算机数据类型进行存储。
在本实施例中,卷积神经网络(CNN)可以有C个输入图像,高和宽可以都是H和W,可以对输入图像进行分块处理。可以按照图4所示的方式将输入图像分为T个图像块,可以每隔4行取6x6个图像块(即6x6的图像块d),比如,图4所示的图像块“1”和“2”。在输入图像中不足6x6个图像块的部分(如图4所示的图像块“3”),则可以补零后(如图4所示的“4”部分)取图像块。可以将每个输入图像中的T个图像块通过第二变换矩计算得到CT个计算结果,即C个图4中“5”所示的矩阵。可以经过量化后采用短整型计算机数据类型进行存储。其中,T的计算公式可以是:
步骤S209,将计算得到的所述第一变换矩阵和第二变换矩阵的计算结果累加到浮点型计算机数据类型进行存储,以防止溢出。
在本实施例中,对于第一变换矩阵和第二变换矩阵的计算结果,需要进行Hadamard点乘,可以将CN个第一变换矩阵和对应C位置的CT个第二变换矩阵进行Hadamard点乘,如图4中图像块“1”、“2”和“3”所示的图像块与第一变换矩阵进行Hadamard点乘,得到CNT个整型存储的计算结果,其结果形式也如图4中矩阵“5”所示。在ARM CPU(AdvancedRISC Mach ines Central Processing Unit)的汇编指令中,可以使用短整型的乘法指令取代浮点型的乘法指令,以使得计算性能提升。
应当理解的是,在本实施例中,对于第一变换矩阵和第二变换矩阵的CNT个整型存储的计算结果,可以将C个图4中所述的矩阵“5”进行矩阵加法,得到NT个整型存储的计算结果,其结果形式也如图4中矩阵“5”所示。此时整型进行存储进行矩阵加法后会溢出,可以对其进行整型转浮点型处理。
在本实施例中,卷积矩阵Y对于第一变换矩阵和第二变换矩阵的CNT个整型存储的计算结果,在于第三矩阵A和对角矩阵D进行矩阵乘法计算,得到NT个4x4卷积矩阵Y,如图4中图像块“1”通过第一变换矩阵计算得到图4中矩阵“6”,图4中图像块“2”通过第一变换矩阵计算得到图4中矩阵“7”,图4中图像块“3”通过第一变换矩阵计算得到图4中矩阵“8”。在计算完成后,可以将补零后产生的凸块删除,如图4中“9”部分所示,此时得到C NN中需要的结果,如图4中矩阵“10”所示。
请参照图6,图6为本申请实施例提供的Winograd算法性能对比图。
在本实施例中,可以对比定点Winograd(4x4,3x3)、浮点Winograd(6x6,3x3)和浮点直接卷积(direct)的性能,加速比例定义公式可以是:
在本实施例中,对VGG16的卷积层进行性能对比(Arm Snapdragon835,8core@2.45GHz)。对于Winograd(2x2,3x3)算法也采用相同的卷积计算方法进行加速,如图所示。可以看出使用本发明的Winograd(4x4,3x3)定点卷积算法比Winograd(6x6,3x3)浮点算法拥有更高的性能。应当理解的是,当在64x3x224x224时,由于通道数较小,Winograd算法不及直接卷积的性能。
除了上述的性能提升外,Winograd(4x4,3x3)比Winograd(6x6,3x3)拥有更小的舍入误差,Winograd(4x4,3x3)部分过程的卷积计算也使得计算精度优于浮点的Winograd(6x6,3x3),甚至优于浮点Winograd(4x4,3x3)。
请参照图7,图7为本申请实施例提供的基于Winograd算法的神经网络卷积装置110的结构示意框图,所述装置包括:
获取模块1101,用于获取待加速神经网络卷积的卷积核及图像块。
转化模块1102,用于将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵。
计算模块1103,用于根据目标矩阵、目标矩阵的转置矩阵及所述卷积核,得到第一变换矩阵;根据Winograd算法中第二矩阵、第二矩阵的转置矩阵及所述图像块,计算得到第二变换矩阵;根据Winograd算法中第三矩阵与所述第一变换矩阵和第二变换矩阵,得到卷积矩阵。
处理模块1104,用于采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。
进一步地,所述转化模块1102具体用于:
计算Winograd算法中矩阵元素为浮点型的第一矩阵用于整型化的对角矩阵;
根据矩阵元素为浮点型的第一矩阵及对角矩阵,得到矩阵元素为整型的目标矩阵。
进一步地,所述卷积矩阵的计算公式如下:
其中,Y为卷积矩阵,D为对角矩阵,G′为目标矩阵,G′kG′T为第一变换矩阵,B为第二矩阵,k为卷积核,d为图像块,A为第三矩阵。
请再次参照图7,所述装置还包括:
存储模块1105,用于将计算得到的所述第一变换矩阵采用短整型计算机数据类型进行存储;将计算得到的所述第二变换矩阵采用短整型计算机数据类型进行存储;将计算得到的所述第一变换矩阵和第二变换矩阵的计算结果累加到浮点型计算机数据类型进行存储,以防止溢出。
本实施例还提供一种电子设备100,所述电子设备100包括:
处理器112及存储有若干计算机指令的非易失性存储器111,所述计算机指令被所述处理器112执行时,所述电子设备100执行前述的基于Wi nograd算法的神经网络卷积方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现前述的基于Winograd算法的神经网络卷积方法。
综上所述,本申请提供一种基于Winograd算法的神经网络卷积方法、装置、电子设备及可读存储介质,所述方法包括:获取待加速神经网络卷积的卷积核及图像块;将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵;根据目标矩阵、目标矩阵的转置矩阵及所述卷积核,得到第一变换矩阵;根据Winograd算法中第二矩阵、第二矩阵的转置矩阵及所述图像块,计算得到第二变换矩阵;根据Winograd算法中第三矩阵与所述第一变换矩阵和第二变换矩阵,得到卷积矩阵;采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。采用本申请提供的基于Winograd算法的神经网络卷积方法进行卷积计算,能够实现算法的定点加速,提高运算速度和精准度。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种基于Winograd算法的神经网络卷积方法,其特征在于,所述方法包括:
获取待加速神经网络卷积的卷积核及图像块;
将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵;
根据目标矩阵、目标矩阵的转置矩阵及所述卷积核,得到第一变换矩阵;
根据Winograd算法中第二矩阵、第二矩阵的转置矩阵及所述图像块,计算得到第二变换矩阵;
根据Winograd算法中第三矩阵与所述第一变换矩阵和第二变换矩阵,得到卷积矩阵;
采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。
2.根据权利要求1所述的方法,其特征在于,所述将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵,包括:
计算Winograd算法中矩阵元素为浮点型的第一矩阵用于整型化的对角矩阵;
根据矩阵元素为浮点型的第一矩阵及对角矩阵,得到矩阵元素为整型的目标矩阵。
3.根据权利要求2所述的方法,其特征在于,所述卷积矩阵的计算公式如下:
其中,Y为卷积矩阵,D为对角矩阵,G′为目标矩阵,B为第二矩阵,k为卷积核,d为图像块,A为第三矩阵,G′kG′T为第一变换矩阵,BTdB为第二变换矩阵。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将计算得到的所述第一变换矩阵采用短整型计算机数据类型进行存储;
将计算得到的所述第二变换矩阵采用短整型计算机数据类型进行存储;
将计算得到的所述第一变换矩阵和第二变换矩阵的计算结果累加到浮点型计算机数据类型进行存储,以防止溢出。
5.一种基于Winograd算法的神经网络卷积装置,其特征在于,所述装置包括:
获取模块,用于获取待加速神经网络卷积的卷积核及图像块;
转化模块,用于将Winograd算法中矩阵元素为浮点型的第一矩阵转换为矩阵元素为整型的目标矩阵;
计算模块,用于根据目标矩阵、目标矩阵的转置矩阵及所述卷积核,得到第一变换矩阵;根据Winograd算法中第二矩阵、第二矩阵的转置矩阵及所述图像块,计算得到第二变换矩阵;根据Winograd算法中第三矩阵与所述第一变换矩阵和第二变换矩阵,得到卷积矩阵;
处理模块,用于采用所述卷积矩阵对输入该神经网络的图像进行卷积处理,得到卷积处理后图像。
6.根据权利要求5所述的装置,其特征在于,所述转化模块具体用于:
计算Winograd算法中矩阵元素为浮点型的第一矩阵用于整型化的对角矩阵;
根据矩阵元素为浮点型的第一矩阵及对角矩阵,得到矩阵元素为整型的目标矩阵。
7.根据权利要求6所述的装置,其特征在于,所述卷积矩阵的计算公式如下:
其中,Y为卷积矩阵,D为对角矩阵,G′为目标矩阵,G′kG′T为第一变换矩阵,B为第二矩阵,k为卷积核,d为图像块,A为第三矩阵。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
存储模块,用于将计算得到的所述第一变换矩阵采用短整型计算机数据类型进行存储;将计算得到的所述第二变换矩阵采用短整型计算机数据类型进行存储;将计算得到的所述第一变换矩阵和第二变换矩阵的计算结果累加到浮点型计算机数据类型进行存储,以防止溢出。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器及存储有若干计算机指令的非易失性存储器,所述计算机指令被所述处理器执行时,所述电子设备执行权利要求1-4中任意一项所述的基于Winograd算法的神经网络卷积方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-4中任意一项所述的基于Winograd算法的神经网络卷积方法。
CN201910041019.3A 2019-01-16 2019-01-16 基于Winograd算法的神经网络卷积方法及装置 Active CN109767000B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910041019.3A CN109767000B (zh) 2019-01-16 2019-01-16 基于Winograd算法的神经网络卷积方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910041019.3A CN109767000B (zh) 2019-01-16 2019-01-16 基于Winograd算法的神经网络卷积方法及装置

Publications (2)

Publication Number Publication Date
CN109767000A true CN109767000A (zh) 2019-05-17
CN109767000B CN109767000B (zh) 2022-01-25

Family

ID=66452368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910041019.3A Active CN109767000B (zh) 2019-01-16 2019-01-16 基于Winograd算法的神经网络卷积方法及装置

Country Status (1)

Country Link
CN (1) CN109767000B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110211593A (zh) * 2019-06-03 2019-09-06 北京达佳互联信息技术有限公司 语音识别方法、装置、电子设备及存储介质
CN110245326A (zh) * 2019-06-13 2019-09-17 武汉轻工大学 基于神经网络的数据估算方法、设备、存储介质及装置
CN111178258A (zh) * 2019-12-29 2020-05-19 浪潮(北京)电子信息产业有限公司 一种图像识别的方法、系统、设备及可读存储介质
CN111639701A (zh) * 2020-05-28 2020-09-08 山东云海国创云计算装备产业创新中心有限公司 一种图像特征提取的方法、系统、设备及可读存储介质
CN112199636A (zh) * 2020-10-15 2021-01-08 清华大学 适用于微处理器的快速卷积方法及装置
CN112686365A (zh) * 2019-10-18 2021-04-20 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备
WO2021082653A1 (zh) * 2019-11-01 2021-05-06 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
WO2021119907A1 (en) * 2019-12-16 2021-06-24 Intel Corporation Technology to mininimize negative impact of cache conflicts caused by incompatible leading dimensions in matrix multiplication and convolution kernels without dimension padding
CN113407904A (zh) * 2021-06-09 2021-09-17 中山大学 兼容多维度卷积神经网络的Winograd处理方法、系统及介质
WO2022067508A1 (zh) * 2020-09-29 2022-04-07 华为技术有限公司 一种神经网络加速器、加速方法以及装置
CN115878957A (zh) * 2022-12-29 2023-03-31 珠海市欧冶半导体有限公司 一种矩阵乘法加速装置及方法
CN116629321A (zh) * 2023-07-24 2023-08-22 美智纵横科技有限责任公司 数据处理方法、语音处理方法、装置、介质及芯片
US11899741B2 (en) 2019-09-19 2024-02-13 Samsung Electronics Co., Ltd. Memory device and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105842721A (zh) * 2016-03-23 2016-08-10 中国电子科技集团公司第十研究所 提高中长基线gps整周模糊度解算成功率的方法
CN106680854A (zh) * 2017-01-17 2017-05-17 桂林电子科技大学 一种低成本高精度定位系统及方法
CN108802783A (zh) * 2018-09-04 2018-11-13 东华理工大学 一种基于精度增益函数的部分模糊度解算方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105842721A (zh) * 2016-03-23 2016-08-10 中国电子科技集团公司第十研究所 提高中长基线gps整周模糊度解算成功率的方法
CN106680854A (zh) * 2017-01-17 2017-05-17 桂林电子科技大学 一种低成本高精度定位系统及方法
CN108802783A (zh) * 2018-09-04 2018-11-13 东华理工大学 一种基于精度增益函数的部分模糊度解算方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
LIQIANG LU ET AL.: ""Evaluating Fast Algorithms for Convolutional Neural Networks on FPGAs"", 《2017 IEEE 25TH ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES》 *
曾泳泓等: "《第四届全国信号处理学术会议论文集》", 31 December 1992 *
王益群: ""OFDM系统中基于FPGA平台的FFT实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
高源骏: ""GPS测姿算法与天线布局研究"", 《中国优秀硕士学位论文全文数据库 基础科学辑》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110211593A (zh) * 2019-06-03 2019-09-06 北京达佳互联信息技术有限公司 语音识别方法、装置、电子设备及存储介质
CN110211593B (zh) * 2019-06-03 2021-10-22 北京达佳互联信息技术有限公司 语音识别方法、装置、电子设备及存储介质
CN110245326A (zh) * 2019-06-13 2019-09-17 武汉轻工大学 基于神经网络的数据估算方法、设备、存储介质及装置
CN110245326B (zh) * 2019-06-13 2023-10-24 武汉轻工大学 基于神经网络的数据估算方法、设备、存储介质及装置
US11899741B2 (en) 2019-09-19 2024-02-13 Samsung Electronics Co., Ltd. Memory device and method
CN112686365B (zh) * 2019-10-18 2024-03-29 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备
CN112686365A (zh) * 2019-10-18 2021-04-20 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备
WO2021082653A1 (zh) * 2019-11-01 2021-05-06 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
WO2021119907A1 (en) * 2019-12-16 2021-06-24 Intel Corporation Technology to mininimize negative impact of cache conflicts caused by incompatible leading dimensions in matrix multiplication and convolution kernels without dimension padding
CN111178258A (zh) * 2019-12-29 2020-05-19 浪潮(北京)电子信息产业有限公司 一种图像识别的方法、系统、设备及可读存储介质
CN111178258B (zh) * 2019-12-29 2022-04-22 浪潮(北京)电子信息产业有限公司 一种图像识别的方法、系统、设备及可读存储介质
CN111639701A (zh) * 2020-05-28 2020-09-08 山东云海国创云计算装备产业创新中心有限公司 一种图像特征提取的方法、系统、设备及可读存储介质
CN111639701B (zh) * 2020-05-28 2022-06-17 山东云海国创云计算装备产业创新中心有限公司 一种图像特征提取的方法、系统、设备及可读存储介质
WO2022067508A1 (zh) * 2020-09-29 2022-04-07 华为技术有限公司 一种神经网络加速器、加速方法以及装置
CN112199636A (zh) * 2020-10-15 2021-01-08 清华大学 适用于微处理器的快速卷积方法及装置
CN113407904B (zh) * 2021-06-09 2023-04-07 中山大学 兼容多维度卷积神经网络的Winograd处理方法、系统及介质
CN113407904A (zh) * 2021-06-09 2021-09-17 中山大学 兼容多维度卷积神经网络的Winograd处理方法、系统及介质
CN115878957B (zh) * 2022-12-29 2023-08-29 珠海市欧冶半导体有限公司 一种矩阵乘法加速装置及方法
CN115878957A (zh) * 2022-12-29 2023-03-31 珠海市欧冶半导体有限公司 一种矩阵乘法加速装置及方法
CN116629321A (zh) * 2023-07-24 2023-08-22 美智纵横科技有限责任公司 数据处理方法、语音处理方法、装置、介质及芯片
CN116629321B (zh) * 2023-07-24 2023-10-03 美智纵横科技有限责任公司 数据处理方法、语音处理方法、装置、介质及芯片

Also Published As

Publication number Publication date
CN109767000B (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
CN109767000A (zh) 基于Winograd算法的神经网络卷积方法及装置
US11710041B2 (en) Feature map and weight selection method and accelerating device
CN109523020A (zh) 一种运算装置和方法
CN108229654B (zh) 神经网络卷积运算装置及方法
CN107704267A (zh) 一种卷积神经网络运算指令及其方法
CN107341547A (zh) 一种用于执行卷积神经网络训练的装置和方法
CN105512723A (zh) 一种用于稀疏连接的人工神经网络计算装置和方法
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN108897716A (zh) 通过存储器读写操作来缩减计算量的数据处理装置及方法
CN110276096A (zh) 提高深度学习模型预测能力的方法、电子设备和存储介质
Hu et al. Design of recurrent neural networks for solving constrained least absolute deviation problems
CN109117940A (zh) 一种卷积神经网络前向加速方法、装置及系统
CN107957977A (zh) 一种计算方法及相关产品
CN109740740A (zh) 卷积计算的定点加速方法及装置
CN110210279A (zh) 目标检测方法、装置及计算机可读存储介质
CN109359542A (zh) 基于神经网络的车辆损伤级别的确定方法及终端设备
CN115994561B (zh) 卷积神经网络加速方法、系统、存储介质、装置及设备
CN107977980A (zh) 一种目标跟踪方法、设备以及可读介质
CN112765540A (zh) 数据处理方法、装置及相关产品
CN109146069B (zh) 运算装置、运算方法和芯片
CN112801276B (zh) 数据处理方法、处理器及电子设备
CN112712461B (zh) 一种图像反卷积处理方法、装置及终端设备
CN114782336A (zh) 基于图卷积神经网络的纤维束取向分布的预测方法和装置
CN114022366A (zh) 基于数据流架构的图像尺寸调整结构、调整方法及设备
CN114237548A (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