CN108765247B - 图像处理方法、装置、存储介质及设备 - Google Patents
图像处理方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN108765247B CN108765247B CN201810464173.7A CN201810464173A CN108765247B CN 108765247 B CN108765247 B CN 108765247B CN 201810464173 A CN201810464173 A CN 201810464173A CN 108765247 B CN108765247 B CN 108765247B
- Authority
- CN
- China
- Prior art keywords
- matrix
- channel
- convolution
- elements
- outer product
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种图像处理方法、装置、存储介质及设备,属于深度学习领域。方法包括:对于预设卷积神经网络的每一个卷积层,获取输入卷积层的特征图;对特征图进行第一预处理,根据预处理后的特征图生成第一矩阵,预处理后的特征图中连续使用的特征数据被排布第一矩阵中的相邻位置;对卷积层的至少一个卷积核的权重进行第二预处理,根据预处理后的权重生成第二矩阵,预处理后的权重中连续使用到的权重被排布于第二矩阵的相邻位置;对第一矩阵和第二矩阵中的每行元素执行外积操作,在对得到的外积运算结果进行第三预处理后,得到卷积层输出的卷积运算结果。在实现winograd卷积加速运算时,有效提升了计算密度以及内存访问效率,降低了硬件实现的复杂度。
Description
技术领域
本发明涉及深度学习技术领域,特别涉及一种图像处理方法、装置、存储介质及设备。
背景技术
卷积神经网络作为一项深度学习技术目前已被广泛应用在图像处理领域。在图像处理时,将待处理图像输入到训练好的卷积神经网络后,卷积神经网络通过多个卷积层的卷积运算对待处理图像进行特征提取,并基于提取到的特征对待处理图像进行分类或识别等处理。
众所周知,卷积运算的复杂度较高,因此相关技术通常采取加速方案来完成卷积运算,比如,鉴于winograd卷积方式能够大大降低卷积运算的复杂度,目前常采取winograd卷积方式来完成卷积运算加速。
以上虽然实现了卷积运算加速,但是随之会带来另一个问题:winograd卷积方式对硬件资源的要求较高,比如需要较高的内存带宽,这大幅地增加了硬件复杂度和功耗,进而严重地限制了图像处理的应用场景,为此,在硬件资源有限的设备上,如何以winograd加速卷积方式完成图像处理,成为了本领域技术人员亟待解决的一个问题。其中,硬件资源有限的设备包括但不限于:移动终端、低端的FPGA(Field-Programmable Gate Array,现场可编程门阵列)设备、ASIC(Application Specific Integrated Circuit特定用途集成电路)设备等。
发明内容
本发明实施例提供了一种图像处理方法、装置、存储介质及设备,解决了相关技术存在的对硬件设备要求过高的问题。所述技术方案如下:
一方面,提供了一种图像处理方法,所述方法包括:
对于预设卷积神经网络的每一个卷积层,获取输入所述卷积层的特征图,所述预设卷积神经网络用于根据待处理图像的特征图进行图像处理,所述特征图中携带了所述待处理图像的特征信息;
对所述特征图进行第一预处理,并根据预处理后的特征图生成第一矩阵,所述预处理后的特征图中连续使用的特征数据被排布于所述第一矩阵中的相邻位置;
对所述卷积层的至少一个卷积核的权重进行第二预处理,并根据预处理后的权重生成第二矩阵,所述预处理后的权重中连续使用到的权重被排布于所述第二矩阵的相邻位置;
对所述第一矩阵和所述第二矩阵中的每行元素执行外积操作,在对得到的外积运算结果进行第三预处理后,得到所述卷积层输出的卷积运算结果。
另一方面,提供了一种图像处理装置,所述装置包括:
获取模块,用于对于预设卷积神经网络的每一个卷积层,获取输入所述卷积层的特征图,所述预设卷积神经网络用于根据待处理图像的特征图进行图像处理,所述特征图中携带了所述待处理图像的特征信息;
第一生成模块,用于对所述特征图进行第一预处理,并根据预处理后的特征图生成第一矩阵,所述预处理后的特征图中连续使用的特征数据被排布所述第一矩阵中的相邻位置;
第二生成模块,用于对所述卷积层的至少一个卷积核的权重进行第二预处理,并根据预处理后的权重生成第二矩阵,所述预处理后的权重中连续使用到的权重被排布于所述第二矩阵的相邻位置;
处理模块,用于对所述第一矩阵和所述第二矩阵中的每行元素执行外积操作,在对得到的外积运算结果进行第三预处理后,得到所述卷积层输出的卷积运算结果。
另一方面,提供了一种用于图像处理的设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上述的图像处理方法。
另一方面,提供了一种存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述的图像处理方法。
本发明实施例提供的技术方案带来的有益效果是:
在图像处理过程中实现winograd卷积加速运算时,由于本发明实施例对预处理后的权重数据以及预处理后的特征数据进行了位置重排,使得在生成的矩阵中连续使用到的数据被排布于相邻位置上,所以基于这种高效的数据格式来执行外积运算能够有效提升数据的空间局域性,从而能够有效提升计算密度并提高内存访问效率,节约了内存带宽,降低了硬件复杂度和功耗,降低了硬件实现的复杂度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种图像处理方法所涉及的实施环境的示意图;
图2是本发明实施例提供的一种图像处理方法的流程图;
图3是本发明实施例提供的一种对权重数据进行预处理以及位置重新排布的示意图;
图4是本发明实施例提供的一种特征图的示意图;
图5是本发明实施例提供的一种对特征数据进行预处理以及位置重新排布的示意图;
图6是本发明实施例提供的一种对特征数据进行预处理以及位置重新排布的示意图;
图7是本发明实施例提供的一种执行外积运算的示意图;
图8是本发明实施例提供的一种数据存取的示意图;
图9是本发明实施例提供的一种图像处理装置结构示意图;
图10是本发明实施例提供的一种用于图像处理的设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细地解释说明之前,先对本发明实施例涉及的一些名词进行解释说明。
卷积神经网络:在机器学习中,卷积神经网络是一种深度前馈人工神经网络,目前已经被广泛应用在图像处理领域。换一种表达方式,卷积神经网络是深度学习算法在图像处理领域的一个应用。
卷积神经网络的基本结构包括卷积层和池化层,在将待处理图像输入卷积神经网络后,通过卷积层与池化层的配合,即可完成对待处理图像的逐层特征提取。其中,卷积层具体是通过卷积核来执行卷积运算,进而实现对待处理图像的特征提取。需要说明的是,上一个卷积层的输出又可作为下一个卷积层的输入,提取到的特征信息一般以特征图(feature map)进行表征。
此外,由于一层卷积学习到的特征往往是局部的,卷积层的层数越高,学习到的特征越全局化,因此为了提取待处理图像的全局特征,卷积神经网络中通常包括多个卷积层,且每一个卷积层中通常包括多个卷积核。
其中,关于至少一个卷积核的权重,其作为卷积神经网络的参数,具体是利用训练样本进行网络训练而学习得到的。
而池化层具体用来降维,以减少计算量和避免过拟合,比如利用池化层可以将一幅大的图像缩小,同时又保留该图像中的重要信息。
winograd卷积方式:基于快速卷积(Fast Convolution)思想。其中,快速卷积思想即为:针对乘法和加法来说,二者在硬件实现上的时间复杂度通常是不一样的,其中,乘法运算所需的时间一般远大于加法,因此用廉价运算(比如加法)来代替昂贵运算(比如乘法)便成了进行加速运算的一种方式。
以二维的卷积运算为例,假设卷积核的大小为3*3,且标记为符号g,需要进行卷积运算的数据标记为符号d,那么使用winograd卷积方式,卷积输出Y可以利用下述公式进行计算:
Y=AT[(GgGT)⊙(BTdB)]A
其中,⊙表示对应元素乘(element-wise multiplication),矩阵A、AT、G、B、BT根据输出大小和卷积核大小不同有着不同的定义,并且是提前确定好的。假设将数据d分为大小为4*4大小的分块,则BT、G以及AT的取值可如下所示:
其中,矩阵A和矩阵B的具体数值可由矩阵BT以及矩阵AT得到。
针对上述情况,winograd卷积方式相比于直接卷积方式,理论加速比为2.25倍。当将数据d分为尺寸更大的分块时,比如6*6大小,则可获得更高的理论加速比。
在另一个实施例中,在卷积神经网络中采取winograd卷积方式时,上述有关于卷积输入Y的公式还需稍作修改。由于卷积神经网络的每一个卷积层有多个输入通道(inputchannel)和多个输出通道(output channel),因此,计算第i个输出通道的卷积输出Y可以表示为如下的形式。其中,i指标指代第i个输出通道,j指标指代第j个输入通道。
在上述公式中,当输入通道数是channel_in,输出通道数是channel_out时,实际上对于每一个输出通道,均需要有channel_in个卷积核,用来分别对应每一个输入通道进行卷积,这即是卷积核gij的含义所在;而dj指代第j个输入通道输入的数据。
另外,在卷积神经网络中使用winograd卷积方式时,原始的对应元素乘运算即变更为点乘(dot)运算。其中,点乘运算可以使用乘加器(FMA)来实现,本发明实施例对此不进行具体限定。
片上内存(on-chip memory):指代集成在处理器所在芯片上的片上存储器。其中,片上内存的存储空间通常较小,但是数据存取速度通常较快,其类型可为SRAM(StaticRandom Access Memory,静态随机存储器),本发明实施例对此不进行具体限定。
片外内存(off-chip memory):与片上内存对应,其为在片上内存的基础上扩充的内存。其中,片外内存的存储空间通常较大,一般远远大于片上内存,但是数据存取速度相对于片上内存较慢,其类型可为DRAM(Dynamic Random Access Memory,动态随机访问内存),本发明实施例对此不进行具体限定。
预取(prefetch):指代通过软件或硬件方法,将数据从较高的内存层级读取到较低的内存层级的机制。例如,从内存到预取到L1Cache(缓存),或者从Last Level Cache预取到L2Cache。
分块(Tile):指代从整幅图像或者从该图像的特征图中取出一块数据的方法。利用分块方式可有效提高数据的空间局域性(spatial locality)。
空间局域性(spatial locality):在最近的将来会用到的数据很可能与现在正在使用的数据在空间地址上是相邻的。换一种表达方式,空间局域性原则保证了被连续使用到的数据能够存储在相邻的位置上,从而方便从存储器上进行数据读取,提高内存访问效率,降低内存带宽。比如,基于空间局部性原则,可以选择在读取内存块的时候,将该内存块相邻的内存块也读进缓存中,以提高内存访问效率,这个过程也称为prefetch。
下面对本发明实施例提供的图像处理方法所涉及的实施环境进行介绍。
参见图1,本发明实施例提供的图像处理方法既可用于云端的服务器101,也可用于移动设备102,其中,移动设备102的类型包括但不限于手机、平板电脑、笔记本电脑、台式电脑、FPGA设备、ASIC设备等,本发明实施例对此不进行具体限定。服务器101和移动设备102上配置有AI芯片来实现上述图像处理方法。需要说明的是,本发明实施例提供的图像处理方法的应用场景为图像处理领域,包括但不限于图像语义分割、图像识别、图像分类、视频分析等。
具体地,由于时下winograd卷积方式被广泛应用于卷积神经网络的卷积运算加速方案之中,所以本发明实施例提出了一种在硬件资源受限场景下,如何在图像处理过程中实现winograd卷积运算的方案。即,针对在AI芯片中广泛使用的winograd卷积方式,本发明实施例提出了一种在硬件资源受限场景下有效实现winograd卷积运算的方案。此外,该方案不仅可用于云端加速,也可用于设备端加速。总结来说,本发明实施例提出的方案可应用在AI专用硬件(ASIC)设计、AI芯片加速的FPGA方案设计、winograd卷积软件实现等领域。
在另一个实施例中,由于winograd卷积方式的实现需要较高的内存带宽和较多的片上内存,所以相关技术中具备winograd卷积能力的平台主要基于强大的GPGPU(GeneralPurpose GPU,通用计算图形处理器)、CPU、ASIC和FPGA,这些强大的硬件方能够有效地实现winograd卷积方式,以此来实现卷积运算加速,达到提高AI芯片的计算效率的目的。
然而,由于当前的AI芯片需要大量的硬件资源,配备较高的内存带宽和较大的片上内存,会大幅增加硬件复杂度和功耗,进而限制AI芯片的部署范围和应用场景,为此,本发明实施例通过有效地并行计算、数据复用、缓存设计、算法改进和新指令设计,来降低winograd卷积方式所需的内存带宽和内存消耗,并提高计算密度,以实现在硬件资源有限的场景下完成winograd卷积运算,进而提高卷积神经网络的推理(inference)能力,使得卷积神经网络能够更好地进行图像处理。简单来讲,本发明实施例的方案和有益效果可总结为下述几点:
(1)、提出了有效的分块方式,采用输入多个分块并行处理的方法来提高计算的并行度,进而提高计算效率。
(2)、采用多个卷积输出通道并行处理的方式来提高计算并行度,进而提高计算效率。
(3)、提出了高效的数据格式(data layout)来提升数据的空间局域性,以此提高内存访问效率,节约内存带宽。
(4)、基于高效的数据格式,原始的点乘操作被转换为外积(outer product)操作。相比于原始的点乘操作,外积操作极大地提升了数据的利用率,提高了计算密度。且外积操作相比于点乘操作也能极大地提升计算密度。
(5)、针对通用计算设备,如CPU和GPGPU,本发明实施例还提出了外积指令。
(6)、提出了高效的缓存方案来降低所需的片上内存的大小,降低了硬件设计的成本。
下面通过具体的实施方式来对以上几点进行详细地解释说明。
图2是本发明实施例提供的一种图像处理方法的流程图,该方法既可用于云端也可用于设备端。参见图2,本发明实施例提供的方法流程包括:
201、对于预设卷积神经网络的每一个卷积层,获取输入该卷积层的特征图,该预设卷积神经网络用于根据输入的待处理图像的特征图进行图像处理,该特征图中携带了待处理图像的特征信息。
对于输入至预设卷积神经网络的待处理图像来说,其经过不同卷积层包含的至少一个卷积核的卷积操作,可形成一系列的特征图(feature map)。每通过一个卷积核的卷积操作,便会得到一个特征图,上述过程也可理解为对待处理图像进行滤波,其中,预设卷积神经网络通过一个个卷积核来从待处理图像中进行特征提取。对于上一个卷积层输出的特征图,其在经过池化层等其他层的处理后可输入下一个卷积层。
202、获取该卷积层中至少一个卷积核的权重。
其中,关于至少一个卷积核的权重,其作为卷积神经网络的参数,具体是利用训练样本进行网络训练而学习得到的。
需要说明的是,在获取到卷积核的权重以及待处理图像的特征图后,本发明实施例首先对权重数据进行预处理和位置重排,详见下述步骤203,以及对特征数据进行预处理以及位置重排,详见下述步骤204。
权重预处理以及位置重排
203、对该卷积层的至少一个卷积核的权重进行第二预处理,并根据预处理后的权重生成第二矩阵,且预处理后的权重中连续使用到的权重被排布于第二矩阵的相邻位置。
本步骤将卷积核的权重进行第二预处理并且重排数据格式。具体地,将卷积核的权重以N个输出通道(output channel)为单位进行预处理,且基于预处理后的权重进行数据重排。为了便于说明,本发明实施例以第二矩阵指代进行预处理以及数据重排后的权重数据。
在将至少一个卷积核的权重转换为第二矩阵时,可采取下述方式实现:
a、按照i遍历1至N和j遍历1至channel_in,基于目标矩阵和目标矩阵的转置矩阵,对卷积核gij的权重进行第二预处理,得到N*channel_in个矩阵。
其中,i指代第i个输出通道,j指代第j个输入通道,即,i的取值为1~N,j的取值为1~channel_in,N<channel_out,channel_in和channel_out分别为卷积核gij对应的输入通道总数和输出通道总数。而目标矩阵指代前文中提及的矩阵B,目标矩阵的转置矩阵指代前文中提及的矩阵BT。
参见图3,假设N的取值为4,那么g1j对应卷积核的第一个输出通道,g2j对应卷积核的第二个输出通道,g3j对应卷积核的第三个输出通道,g4j对应卷积核的第四个输出通道。在本发明实施例中,使用winograd卷积方式将g1j、g2j、g3j和g4j转换为K1j、K2j、K3j和K4j。
具体地,K1j=BTg1jB,由于j的取值为1~channel_in,因此会得到channel_in个矩阵;同理,K2j=BTg2j B,K3j=BTg3jB,K4j=BTg4j B,由于N=4,所以至此得到4*channel_in个矩阵。
b、按照空间局域性原则,将N*channel_in个矩阵中的元素重新进行位置排布,得到第二矩阵。
针对该步骤,为了提升数据的空间局域性,提高内存的访问效率,节约内存带宽,本发明实施例按照空间局域性原则进行数据重排,具体方式可总结如下:
将N*channel_in个矩阵中位于同一输入通道且同一位置上的N个元素排布在相邻位置;对于得到的排布结果,将位于相邻两个输入通道的N个元素排布在相邻位置,使得位于相同位置上的N*channel_in个元素排布在第二矩阵的同一行。
下面结合图3,以一个具体的例子对上述数据重排方式进行详细说明。
以将3*3大小的卷积核转换为4*4大小的分块,N=4,矩阵K1j、K2j、K3j和K4j中左上角位置为位置00、右下角位置为位置33为例,则在对矩阵K1j、K2j、K3j和K4j中的元素进行重新位置排布时,如图3所示,可采取以下方式:
将矩阵K1j、K2j、K3j和K4j中位于位置00的4*channel_in个元素排在第一行,位于位置01的4*channel_in个元素排在第二行,位于位置02的4*channel_in个元素排在第三行,位于位置03的4*channel_in个元素排在第四行,以此类推,将位于位置33的4*channel_in个元素排在最后一行。
而对于一行来说,N个元素为一组,比如第一行的第一至四个位置排布K11至K41的00元素,第一行的第五至八个位置排布K12至K42的00元素,第一行的第九至十二个位置排布K13至K43的00元素,第一行的第十三至十六个位置排布K14至K44的00元素,以此类推。
重复执行上述数据重排步骤,最终得到的数据格式如图3中右侧矩阵所示。其中,第二矩阵中每一行的长度为N*channel_in,且行数为tile_h*tile_w,tile_h指代分块的高度,tile_w指代分块的宽度。
在图3中,由于N的取值为4,tile_h和tile_w的取值也为4,所以第二矩阵的大小为[4*channel_in,16]。而若channel_in的取值也为4,则第二矩阵的大小即为16*16。
需要说明的第一点是,channel_in、N、tile_h和tile_w的取值还可为其他,本发明实施例对此不进行具体限定。
需要说明的第二点是,在对权重数据进行上述预处理以及位置重排后,得到的第二矩阵可以直接放置到AI芯片的片上内存,以方便被反复使用。
feature map预处理以及位置重排
204、对特征图进行第一预处理,并根据预处理后的特征图生成第一矩阵,预处理后的特征图中连续使用的特征数据被排布第一矩阵中的相邻位置。
在本发明实施例中,在预处理feature map的时候,采取同时处理多个Tile的方式来增加并行度,进而提升计算效率。此外,为了便于说明,本发明实施例以第一矩阵指代进行预处理以及位置重排后的特征数据。其中,在将特征图转换为第一矩阵时,可采取下述方式实现:
如图4所示,在具体实施时,对于一个输入通道来说,可在特征图中顺序选取M个特征块进行并行处理;扩展到channel_in个输入通道,便会得到M*channel_in个特征块。之后,按照i遍历1至M和j遍历1至channel_in,基于目标矩阵和目标矩阵的转置矩阵,对特征块dij进行预处理,进而得到M*channel_in个矩阵。
以M的取值为4为例,则特征块可分为d1j、d2j、d3j以及d4j。
之后,如图5所示,按照空间局域性原则,将M*channel_in个矩阵中的元素重新进行位置排布,便得到第一矩阵。与步骤203类似,i指代第i个输出通道,j指代第j个输入通道,i的取值为1~M,j的取值为1~channel_in,channel_in为特征块dij对应的输入通道总数。
在另一个实施例中,参见图5,按照空间局域性原则,将M*channel_in个矩阵中的元素重新进行位置排布,包括但不限于:将M*channel_in个矩阵中位于同一输入通道且同一位置上的M个元素排布在相邻位置;将相邻的两个输入通道各自对应的M个元素排布在相邻位置。
需要说明的第一点是,在对于M*channel_in个矩阵中的元素重新进行位置排布时,与上述步骤203中对权重数据的排布方式类似,此处不再赘述。
需要说明的第二点是,为了降低算法复杂度和实现开销,可选择将图5中所示的多个处理步骤合并为图6所示的一个处理步骤,本发明实施例对此不进行具体限定。
需要说明的第三点是,得到的第一矩阵可以存储在片上内存。
205、对第一矩阵和第二矩阵中的每行元素执行外积操作,在对得到的外积运算结果进行第三预处理后,得到该卷积层输出的卷积运算结果。
在本发明实施例中,基于步骤203和步骤204的高效数据格式,采取以外积操作替换点乘操作的方式来实现卷积运算。相比于点乘操作,外积操作能够非常有效地复用数据、大大降低所需要的内存带宽、且还可提高计算密度。比如,点积操作需要在两个矢量上分别读取n个数据,然后进行2n-1次运算。但是外积操作在两个矢量上分别读取n个数据,然后进行n*n次运算。
下面对外积运算进行一下解释说明。如果矩阵a=(a0,a1,a2,a3),矩阵b=(b0,b1,b2,b3),则矩阵a和矩阵b的外积运算结果如下:
其中,在对第一矩阵和第二矩阵中的每行元素执行外积操作时,若第一矩阵以及第二矩阵位于片上内存,则直接从片上内存进行数据读取;需要说明的是,因为分块的大小一致,所以第一矩阵和第二矩阵的行数相同。
参见图7,在执行外积运算时,具体是从第一矩阵和第二矩阵的同一行读取数据,然后,基于读取到的数据进行外积操作,之后,再将当前得到的运算结果累加到累加器。换一种表达方式,对于第一矩阵和第二矩阵中行数相同的任意两行元素,在第一矩阵的行中选取N个元素组成第一矢量,在第二矩阵的行中选取M个元素组成第二矢量,对第一矢量和第二矢量执行外积操作,并将当前得到的运算结果累加到累加器,重复执行上述外积以及累加操作直至行末,并写回累加结果;在对第一矩阵和第二矩阵的最后一行元素执行完毕外积及累加操作后,将之前写回的累加结果作为外积运算结果。
需要说明的第一点是,上述提及到的第一预处理和第二预处理可称之为前处理,而上述提及的第三预处理可称之为后处理。其中,后处理的具体实现方式包括但不限于下述两种:
(1)、在得到外积运算结果后,基于前文提到的矩阵A和矩阵AT对外积运算结果进行后处理,进而得到卷积运算结果。即,卷积运算结果为[AT(外积运算结果)A]。
(2)、后处理不仅包括了使用AT和A对外积运算结果进行变换,还可包括pooling层(optionnal)和activation层(optional)的处理。
其中,pooling层和activation层是可选的,且本发明实施例对两者的出现顺序不进行具体限定,既可以是conv层+pooling层+activation层,也可以是conv层+activation层+pooling层。可扩展的是,还可以将pooling操作和activation操作归纳为“能够和卷积融合的所有操作”,而不特指pooling操作或者activation操作,本发明实施例对此不进行具体限定。
需要说明的第二点是,在经过后处理得到卷积运算结果后,可选择将卷积运算结果写回到片外内存。
在另一个实施例中,由于卷积运算结果中携带了待处理图像的特征信息,所以基于得到的卷积运算结果,便可完成对待处理图像的图像处理。其中,图像处理的方式包括但不限于图像语义分割、图像识别、图像分类等。
比如,可基于最后一个卷积层的卷积运算结果完成对待处理图像的分类,得到待处理图像归属于各个类别的概率;或,还可基于最后一个卷积层的卷积运算结果完成对待处理图像的识别,比如识别图像出现的物体、进行文本识别等;或,基于最后一个卷积层的卷积运算结果完成对待处理图像的语义分割;其中,图像语义分割的含义是机器自动分割并识别出图像中包含的内容,比如给出一幅人骑摩托车的图像,机器判断后能够自动分割出人、摩托车和背景,例如红色标注为人,绿色标注为车,黑色标注为背景。或,还可基于最后一个卷积层的卷积运算结果完成对待处理图像的内容分析,比如通过将图像中背景和目标分离进而分析并追踪在图像中出现的目标。
需要说明的是,为使卷积神经网络实现不同类型的图像处理功能,仅需采取不同的训练样本进行网络即可。
在另一个实施例中,本发明实施例还提出了一种高效的缓存方案来降低所需的片上内存大小。具体地,为了降低所需的片上内存大小,可选择将数据存储在片外内存,当需要使用数据时,采用prefetch机制将存储在片外内存上的数据拷贝到片上内存。换一种表达方式,本发明实施例将片上内存作为工作缓存(workspace buffer)。通过这样的方式来减少对片上内存的依赖。
另外,如图8所示,在从片外内存拷贝数据到片上内存时,仅需要拷贝所需的分块即可,这样可以进一步地减少对片上内存的使用,进而减少硬件设计所需的资源。以图8为例,片外内存上存储有图像的特征图,当使用数据时,可采取prefetch机制将所需的分块(即特征图的一部分),由片外内存拷贝到片上内存;之后,如前文所述,在对分块进行预处理以及位置重排后,将预处理后的特征数据与预处理后的权重数据进行外积运算,并将结果累加到累加器;可选地,在基于矩阵A和矩阵AT对外积运算结果进行预处理得到卷积运算结果后,也可选择将卷积运算结果写回到片外内存,本发明实施例对此不进行具体限定。
在另一个实施例中,针对通用计算设备,比如CPU和GPGPU,本发明实施例还提出了两条外积指令。在执行前文所述的第一矩阵和第二矩阵的外积操作时,便可基于外积指令实现。其中,指令1和指令2如下:
指令1:outerproduct SIMD16,SIMD4,SIMD4
该指令用于计算两项输入数据的外积。其中,两个SIMD(Single InstructionMultiple Data,单指令多数据流)4表示输入,SIMD16表示输出,若接收到两个SIMD4寄存器的数据输入,则输出数据需要一个SIMD16寄存器来存储。
假设两个SIMD4的输入数据为(a0,a1,a2,a3)以及(b0,b1,b2,b3),则SIMD16的输出数据为:
指令2:Outerproduct_acc SIMD16,SIMD4,SIMD4
该指令用于计算两项输入数据的外积并将得到的运算结果累加到SIMD16。其中,SIMD16同时作为输入和输出。假设两个SIMD4的输入数据为(a0,a1,a2,a3)以及(b0,b1,b2,b3),SIMD16的输入数据为
那么,SIMD16的输出数据为
此外,由于接收到两个SIMD4寄存器的数据输入,则输出数据需要一个SIMD16寄存器来存储。
综上所述,在硬件资源有限的设备上,如手机、资源有限的低端FPGA设备和ASIC设备等,本发明实施例通过以上方案降低了winograd卷积方式所需的开销,实现了可行的卷积运算加速。此外,以上描述的方案可用于提高AI硬件和AI软件中winograd卷积方式的执行效率,可降低AI硬件和AI软件执行AI算法时的延时(latency),且可提高吞吐率(throughput)。
总结来讲,本发明实施例提供图像处理方法至少具有以下有益效果:
本发明实施例采用输入多个分块并行处理的方式,以及采用多个卷积输出通道并行处理的方式,提高了计算的并行度,进而提升了计算效率。
本发明实施例对预处理后的权重数据以及特征数据进行了位置重排,这种高效的数据格式能够有效提升数据的空间局域性,从而提高了内存访问效率,节约了内存带宽。
另外,基于上述高效的数据格式,原始的点乘操作可被转换为外积操作,相比于点乘操作,外积操作极大地提升了数据的利用率,大大提高了内存访问效率。且,外积操作相比于点乘操作也能极大地提升计算密度。
另外,本发明实施例还提出了高效的缓存方案来降低所需的片上内存大小,降低了硬件设计的成本。
图9是一种图像处理装置的结构示意图。参见图9,该装置包括:
获取模块901,用于对于预设卷积神经网络的每一个卷积层,获取输入所述卷积层的特征图,所述预设卷积神经网络用于根据待处理图像的特征图进行图像处理,所述特征图中携带了所述待处理图像的特征信息;
第一生成模块902,用于对所述特征图进行第一预处理,并根据预处理后的特征图生成第一矩阵,所述预处理后的特征图中连续使用的特征数据被排布所述第一矩阵中的相邻位置;
第二生成模块903,用于对所述卷积层的至少一个卷积核的权重进行第二预处理,并根据预处理后的权重生成第二矩阵,所述预处理后的权重中连续使用到的权重被排布于所述第二矩阵的相邻位置;
处理模块904,用于对所述第一矩阵和所述第二矩阵中的每行元素执行外积操作,在对得到的外积运算结果进行第三预处理后,得到所述卷积层输出的卷积运算结果。
本发明实施例提供的装置,在winograd卷积加速运算方式下,由于本发明实施例对预处理后的权重数据以及预处理后的特征数据进行了位置重排,使得在生成的矩阵中连续使用到的数据被排布于相邻位置上,所以基于这种高效的数据格式来执行外积运算能够有效提升数据的空间局域性,从而能够有效提升计算密度并提高内存访问效率,节约了内存带宽,降低了硬件复杂度和功耗,降低了硬件实现的复杂度。
在另一个实施例中,第二生成模块,还用于按照i遍历1至N和j遍历1至channel_in,对卷积核gij的权重进行第二预处理,得到N*channel_in个矩阵;将N*channel_in个矩阵中的元素重新进行位置排布,得到所述第二矩阵;
其中,i指代第i个输出通道,j指代第j个输入通道,N为选定的输出通道数,N<channel_out,channel_in和channel_out分别为所述卷积核gij对应的输入通道总数和输出通道总数。
在另一个实施例中,第二生成模块,还用于将N*channel_in个矩阵中位于相同输入通道且相同位置上的N个元素排布在相邻位置;对于得到的排布结果,将位于相邻两个输入通道的N个元素排布在相邻位置,使得位于相同位置上的N*channel_in个元素排布在所述第二矩阵的同一行。
在另一个实施例中,第一生成模块,还用于对于channel_in个输入通道,在每一个输入通道对应的特征图中顺序选取M个特征块,得到M*channel_in个特征块;按照i遍历1至M和j遍历1至channel_in,对所述特征块dij进行预处理,得到M*channel_in个矩阵;将M*channel_in个矩阵中的元素重新进行位置排布,得到所述第一矩阵;
其中,i指代第i个输出通道,j指代第j个输入通道,channel_in为所述特征块dij对应的输入通道总数。
在另一个实施例中,第一生成模块,还用于将M*channel_in个矩阵中位于同一输入通道且同一位置上的M个元素排布在相邻位置;对于得到的排布结果,将位于相邻两个输入通道的M个元素排布在相邻位置,使得位于相同位置上的M*channel_in个元素排布在所述第一矩阵的同一行。
在另一个实施例中,该装置还包括:
存储模块,用于将所述第一矩阵以及所述第二矩阵存储至片上内存;将所述卷积层输出的卷积运算结果传输至片外内存。
在另一个实施例中,所述第一矩阵和所述第二矩阵的行数相同,所述处理模块,还用于从所述片上内存读取所述第一矩阵和所述第二矩阵;对于所述第一矩阵和所述第二矩阵中行数相同的任意两行元素,在所述第一矩阵的行中选取N个元素组成第一矢量,在所述第二矩阵的行中选取M个元素组成第二矢量,对所述第一矢量和所述第二矢量执行外积操作,并将当前得到的运算结果累加到累加器,重复执行上述外积以及累加操作直至行末,并写回累加结果;在对所述第一矩阵和所述第二矩阵的最后一行元素执行完毕外积及累加操作后,将之前写回的累加结果作为所述外积运算结果。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的图像处理装置在进行图像处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像处理装置与图像处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10是本发明实施例提供的一种用于图像处理的设备的结构示意图,该设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)1001和一个或一个以上的存储器1002,其中,所述存储器1002中存储有至少一条指令,所述至少一条指令由所述处理器1001加载并执行以实现上述各个方法实施例提供的图像处理方法。当然,该设备还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该设备还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中的图像处理方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种图像处理方法,其特征在于,所述方法包括:
对于预设卷积神经网络的每一个卷积层,获取输入所述卷积层的特征图,所述预设卷积神经网络用于根据待处理图像的特征图进行图像处理,所述特征图中携带了所述待处理图像的特征信息;
对于channel_in个输入通道,在每一个输入通道对应的特征图中顺序选取M个特征块,得到M*channel_in个特征块;
按照i遍历1至M和j遍历1至channel_in,基于目标矩阵和所述目标矩阵的转置矩阵,通过以下方式对特征块dij进行第一预处理,将dij转换为Fij,并得到M*channel_in个矩阵:
Fij=BTdijB;
其中,i指代第i个输出通道,j指代第j个输入通道,channel_in为所述特征块dij对应的输入通道总数,B为所述目标矩阵,所述目标矩阵为预设的转换矩阵;
将M*channel_in个矩阵中位于同一输入通道且同一位置上的M个元素排布在相邻位置;
对于得到的排布结果,将位于相邻两个输入通道的M个元素排布在相邻位置,使得位于相同位置上的M*channel_in个元素排布在第一矩阵的同一行,得到所述第一矩阵,所述第一预处理后的特征图中连续使用的特征数据被排布于所述第一矩阵中的相邻位置;
获取所述卷积层中至少一个卷积核的权重;
按照i遍历1至N和j遍历1至channel_in,基于所述目标矩阵和所述目标矩阵的转置矩阵,通过以下方式对所述至少一个卷积核gij的权重进行第二预处理,将gij转换为Kij,并得到N*channel_in个矩阵:
Kij=BTgijB;
其中,i指代第i个输出通道,j指代第j个输入通道,N为选定的输出通道数,N<channel_out,channel_in和channel_out分别为所述卷积核gij对应的输入通道总数和输出通道总数;
将N*channel_in个矩阵中位于相同输入通道且相同位置上的N个元素排布在相邻位置;
对于得到的排布结果,将位于相邻两个输入通道的N个元素排布在相邻位置,使得位于相同位置上的N*channel_in个元素排布在第二矩阵的同一行,得到所述第二矩阵,所述第二预处理后的权重中连续使用到的权重被排布于所述第二矩阵的相邻位置;
对所述第一矩阵和所述第二矩阵中的每行元素执行外积操作,在对得到的外积运算结果进行第三预处理后,得到所述卷积层输出的卷积运算结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一矩阵以及所述第二矩阵存储至片上内存;
将所述卷积层输出的卷积运算结果传输至片外内存。
3.根据权利要求2所述的方法,其特征在于,所述第一矩阵和所述第二矩阵的行数相同,所述对所述第一矩阵和所述第二矩阵中的每行元素执行外积操作,包括:
从所述片上内存读取所述第一矩阵和所述第二矩阵;
对于所述第一矩阵和所述第二矩阵中行数相同的任意两行元素,在所述第一矩阵的行中选取N个元素组成第一矢量,在所述第二矩阵的行中选取M个元素组成第二矢量,对所述第一矢量和所述第二矢量执行外积操作,并将当前得到的运算结果累加到累加器,重复执行上述外积以及累加操作直至行末,并写回累加结果;
在对所述第一矩阵和所述第二矩阵的最后一行元素执行完毕外积及累加操作后,将之前写回的累加结果作为所述外积运算结果。
4.一种图像处理装置,其特征在于,所述装置包括:
获取模块,用于对于预设卷积神经网络的每一个卷积层,获取输入所述卷积层的特征图,所述预设卷积神经网络用于根据待处理图像的特征图进行图像处理,所述特征图中携带了所述待处理图像的特征信息;
第一生成模块,用于对于channel_in个输入通道,在每一个输入通道对应的特征图中顺序选取M个特征块,得到M*channel_in个特征块;按照i遍历1至M和j遍历1至channel_in,基于目标矩阵和所述目标矩阵的转置矩阵,通过以下方式对特征块dij进行第一预处理,将dij转换为Fij,并得到M*channel_in个矩阵:Fij=BTdijB;其中,i指代第i个输出通道,j指代第j个输入通道,channel_in为所述特征块dij对应的输入通道总数,B为所述目标矩阵,所述目标矩阵为预设的转换矩阵;将M*channel_in个矩阵中位于同一输入通道且同一位置上的M个元素排布在相邻位置;对于得到的排布结果,将位于相邻两个输入通道的M个元素排布在相邻位置,使得位于相同位置上的M*channel_in个元素排布在第一矩阵的同一行,得到所述第一矩阵,所述第一预处理后的特征图中连续使用的特征数据被排布于所述第一矩阵中的相邻位置;
用于执行以下步骤的模块:获取所述卷积层中至少一个卷积核的权重;
第二生成模块,用于按照i遍历1至N和j遍历1至channel_in,基于所述目标矩阵和所述目标矩阵的转置矩阵,通过以下方式对所述至少一个卷积核的权重进行第二预处理,将gij转换为Kij,并得到N*channel_in个矩阵:
Kij=BTgijB;
其中,i指代第i个输出通道,j指代第j个输入通道,N为选定的输出通道数,N<channel_out,channel_in和channel_out分别为所述卷积核gij对应的输入通道总数和输出通道总数;将N*channel_in个矩阵中位于相同输入通道且相同位置上的N个元素排布在相邻位置;对于得到的排布结果,将位于相邻两个输入通道的N个元素排布在相邻位置,使得位于相同位置上的N*channel_in个元素排布在第二矩阵的同一行,得到所述第二矩阵,所述第二预处理后的权重中连续使用到的权重被排布于所述第二矩阵的相邻位置;
处理模块,用于对所述第一矩阵和所述第二矩阵中的每行元素执行外积操作,在对得到的外积运算结果进行第三预处理后,得到所述卷积层输出的卷积运算结果。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
存储模块,用于将所述第一矩阵以及所述第二矩阵存储至片上内存;将所述卷积层输出的卷积运算结果传输至片外内存。
6.根据权利要求5所述的装置,其特征在于,所述第一矩阵和所述第二矩阵的行数相同,所述处理模块,还用于从所述片上内存读取所述第一矩阵和所述第二矩阵;对于所述第一矩阵和所述第二矩阵中行数相同的任意两行元素,在所述第一矩阵的行中选取N个元素组成第一矢量,在所述第二矩阵的行中选取M个元素组成第二矢量,对所述第一矢量和所述第二矢量执行外积操作,并将当前得到的运算结果累加到累加器,重复执行上述外积以及累加操作直至行末,并写回累加结果;在对所述第一矩阵和所述第二矩阵的最后一行元素执行完毕外积及累加操作后,将之前写回的累加结果作为所述外积运算结果。
7.一种用于图像处理的设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求3任一项所述的图像处理方法。
8.一种存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求3任一项所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810464173.7A CN108765247B (zh) | 2018-05-15 | 2018-05-15 | 图像处理方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810464173.7A CN108765247B (zh) | 2018-05-15 | 2018-05-15 | 图像处理方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108765247A CN108765247A (zh) | 2018-11-06 |
CN108765247B true CN108765247B (zh) | 2023-01-10 |
Family
ID=64007924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810464173.7A Active CN108765247B (zh) | 2018-05-15 | 2018-05-15 | 图像处理方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108765247B (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340201A (zh) * | 2018-12-19 | 2020-06-26 | 北京地平线机器人技术研发有限公司 | 卷积神经网络加速器及其执行卷积运算操作的方法 |
CN111382854B (zh) * | 2018-12-28 | 2021-03-23 | 广州市百果园信息技术有限公司 | 一种卷积神经网络处理方法、装置、设备及存储介质 |
CN109740740A (zh) * | 2019-01-03 | 2019-05-10 | 厦门美图之家科技有限公司 | 卷积计算的定点加速方法及装置 |
DE102020100209A1 (de) * | 2019-01-21 | 2020-07-23 | Samsung Electronics Co., Ltd. | Neuronale Netzwerkvorrichtung, neuronales Netzwerksystem und Verfahren zur Verarbeitung eines neuronalen Netzwerkmodells durch Verwenden eines neuronalen Netzwerksystems |
CN109635940B (zh) * | 2019-01-28 | 2021-04-06 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种基于卷积神经网络的图像处理方法及图像处理装置 |
CN109919307B (zh) * | 2019-01-28 | 2023-04-07 | 广东浪潮大数据研究有限公司 | Fpga及深度残差网络实现方法、***、计算机介质 |
US10891537B2 (en) * | 2019-03-20 | 2021-01-12 | Huawei Technologies Co., Ltd. | Convolutional neural network-based image processing method and image processing apparatus |
CN110473137B (zh) * | 2019-04-24 | 2021-09-14 | 华为技术有限公司 | 图像处理方法和装置 |
JP7251354B2 (ja) * | 2019-06-26 | 2023-04-04 | 富士通株式会社 | 情報処理装置、情報処理プログラム、及び情報処理方法 |
US20210011732A1 (en) * | 2019-07-09 | 2021-01-14 | MemryX Inc. | Matrix Data Reuse Techniques in Processing Systems |
CN110443852B (zh) * | 2019-08-07 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种图像定位的方法及相关装置 |
CN110619310B (zh) * | 2019-09-19 | 2023-01-20 | 北京达佳互联信息技术有限公司 | 一种人体骨骼关键点检测方法、装置、设备及介质 |
CN112686365B (zh) * | 2019-10-18 | 2024-03-29 | 华为技术有限公司 | 运行神经网络模型的方法、装置和计算机设备 |
CN112765541B (zh) * | 2019-11-01 | 2024-02-23 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112784206A (zh) * | 2019-11-01 | 2021-05-11 | 中科寒武纪科技股份有限公司 | winograd卷积运算方法、装置、设备及存储介质 |
CN112766472B (zh) * | 2019-11-01 | 2024-04-12 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110930290B (zh) * | 2019-11-13 | 2023-07-07 | 东软睿驰汽车技术(沈阳)有限公司 | 一种数据处理方法及装置 |
CN111176582A (zh) | 2019-12-31 | 2020-05-19 | 北京百度网讯科技有限公司 | 矩阵存储方法、矩阵访问方法、装置和电子设备 |
CN111210004B (zh) * | 2019-12-31 | 2022-03-25 | 深圳云天励飞技术股份有限公司 | 卷积计算方法、卷积计算装置及终端设备 |
CN111325816B (zh) * | 2020-02-11 | 2022-11-04 | 重庆特斯联智慧科技股份有限公司 | 一种特征图处理方法、装置、存储介质及终端 |
CN113379046B (zh) * | 2020-03-09 | 2023-07-11 | 中国科学院深圳先进技术研究院 | 卷积神经网络的加速计算方法、存储介质和计算机设备 |
CN111797972A (zh) * | 2020-05-27 | 2020-10-20 | 北京迈格威科技有限公司 | 应用卷积神经网络处理数据的方法、装置和电子*** |
CN111897579B (zh) * | 2020-08-18 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、计算机设备和存储介质 |
CN112099737B (zh) * | 2020-09-29 | 2023-09-01 | 北京百度网讯科技有限公司 | 存储数据的方法、装置、设备和存储介质 |
WO2022067508A1 (zh) * | 2020-09-29 | 2022-04-07 | 华为技术有限公司 | 一种神经网络加速器、加速方法以及装置 |
CN114581281A (zh) * | 2020-11-30 | 2022-06-03 | 北京君正集成电路股份有限公司 | 一种基于第一层4bit卷积计算的优化方法 |
CN113570031B (zh) * | 2021-06-08 | 2024-02-02 | 中国科学院深圳先进技术研究院 | 卷积运算的处理方法、电子设备及计算机可读存储介质 |
CN114781650B (zh) * | 2022-04-28 | 2024-02-27 | 北京百度网讯科技有限公司 | 一种数据处理方法、装置、设备以及存储介质 |
CN116629321B (zh) * | 2023-07-24 | 2023-10-03 | 美智纵横科技有限责任公司 | 数据处理方法、语音处理方法、装置、介质及芯片 |
CN117094879B (zh) * | 2023-10-18 | 2024-03-26 | 南京砺算科技有限公司 | 数据拷贝方法及装置、计算机可读存储介质、电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1381693A4 (en) * | 2001-03-21 | 2005-12-21 | Curagen Corp | DEVICE AND METHOD FOR SEQUENCING A NUCLEIC ACID |
CN101253493A (zh) * | 2005-08-31 | 2008-08-27 | 微软公司 | 在图形处理单元上训练卷积神经网络 |
US7640537B2 (en) * | 2003-03-14 | 2009-12-29 | Lockheed Martin Corporation | System and method of determining software maturity using Bayesian design of experiments |
CN103673739A (zh) * | 2013-06-09 | 2014-03-26 | 北京化工大学 | 一种金属与导热塑料复合微换热器结构 |
WO2018052852A1 (en) * | 2016-09-15 | 2018-03-22 | Altera Corporation | Fast filtering |
CN107862650A (zh) * | 2017-11-29 | 2018-03-30 | 中科亿海微电子科技(苏州)有限公司 | 加速计算二维图像cnn卷积的方法 |
CN107993186A (zh) * | 2017-12-14 | 2018-05-04 | 中国人民解放军国防科技大学 | 一种基于Winograd算法的3D CNN加速方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10044612B2 (en) * | 2013-11-06 | 2018-08-07 | Citrix Systems, Inc. | Systems and methods for port allocation |
-
2018
- 2018-05-15 CN CN201810464173.7A patent/CN108765247B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1381693A4 (en) * | 2001-03-21 | 2005-12-21 | Curagen Corp | DEVICE AND METHOD FOR SEQUENCING A NUCLEIC ACID |
US7640537B2 (en) * | 2003-03-14 | 2009-12-29 | Lockheed Martin Corporation | System and method of determining software maturity using Bayesian design of experiments |
CN101253493A (zh) * | 2005-08-31 | 2008-08-27 | 微软公司 | 在图形处理单元上训练卷积神经网络 |
CN103673739A (zh) * | 2013-06-09 | 2014-03-26 | 北京化工大学 | 一种金属与导热塑料复合微换热器结构 |
WO2018052852A1 (en) * | 2016-09-15 | 2018-03-22 | Altera Corporation | Fast filtering |
CN107862650A (zh) * | 2017-11-29 | 2018-03-30 | 中科亿海微电子科技(苏州)有限公司 | 加速计算二维图像cnn卷积的方法 |
CN107993186A (zh) * | 2017-12-14 | 2018-05-04 | 中国人民解放军国防科技大学 | 一种基于Winograd算法的3D CNN加速方法及*** |
Non-Patent Citations (2)
Title |
---|
Fast Algorithms for Convolutional Neural Networks;Andrew Lavin 等;《arXiv:1509.09308 [cs.NE]》;20151010;第1-9页 * |
基于OpenMP的Winograd并行矩阵乘算法应用研究;阳光亮 等;《计算机应用研究》;20120731;第2426-2438页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108765247A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108765247B (zh) | 图像处理方法、装置、存储介质及设备 | |
US10394929B2 (en) | Adaptive execution engine for convolution computing systems | |
CN111967468B (zh) | 一种基于fpga的轻量级目标检测神经网络的实现方法 | |
Cho et al. | MEC: Memory-efficient convolution for deep neural network | |
US20210224125A1 (en) | Operation Accelerator, Processing Method, and Related Device | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
KR102523263B1 (ko) | 하드웨어 기반 풀링을 위한 시스템 및 방법 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及*** | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
CN110796236B (zh) | 多样本多通道卷积神经网络池化的向量化实现方法 | |
KR102164190B1 (ko) | 고효율 연산 처리를 위한 인공 신경망 모듈 및 이의 스케쥴링 방법 | |
CN110738317A (zh) | 基于fpga的可变形卷积网络运算方法、装置和*** | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN109447239B (zh) | 一种基于arm的嵌入式卷积神经网络加速方法 | |
CN114003201A (zh) | 矩阵变换方法、装置及卷积神经网络加速器 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN116630709B (zh) | 可配置混合卷积神经网络的高光谱图像分类装置及方法 | |
CN113205137A (zh) | 一种基于胶囊参数优化的图像识别方法及*** | |
CN113158132A (zh) | 一种基于非结构化稀疏的卷积神经网络加速*** | |
WO2023115814A1 (zh) | Fpga硬件架构及其数据处理方法、存储介质 | |
CN116524180A (zh) | 基于轻量级主干结构的戏曲舞台场景分割方法 | |
CN114118415B (zh) | 一种轻量级瓶颈注意力机制的深度学习方法 | |
CN116090518A (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 |