CN111133457A - 电子设备及其控制方法 - Google Patents
电子设备及其控制方法 Download PDFInfo
- Publication number
- CN111133457A CN111133457A CN201880062220.3A CN201880062220A CN111133457A CN 111133457 A CN111133457 A CN 111133457A CN 201880062220 A CN201880062220 A CN 201880062220A CN 111133457 A CN111133457 A CN 111133457A
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- pieces
- kernel
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 49
- 238000012545 processing Methods 0.000 claims abstract description 205
- 239000011159 matrix material Substances 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 11
- 238000000638 solvent extraction Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 17
- 238000003672 processing method Methods 0.000 description 10
- 238000009825 accumulation Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Control Of Electric Motors In General (AREA)
- Image Processing (AREA)
Abstract
公开了一种电子设备。电子设备包括存储装置和处理器,该处理器基于步幅信息对目标数据和内核数据执行卷积处理,该步幅信息指示内核数据被应用于存储在存储装置中的目标数据的间隔,其中,该处理器基于第一步幅信息将目标数据划分为多条子数据,基于不同于第一步幅信息的第二步幅信息对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理,并且组合多个处理结果。通过基于第一步幅信息划分内核数据来获得多条子内核数据,并且,第二步幅信息可以指示内核数据被应用于目标数据的间隔是1。
Description
技术领域
本公开涉及电子设备及其控制方法,并且更具体地,涉及执行卷积处理的电子设备及其控制方法。
背景技术
机器学习是人工智能的一个领域,并且是指通过向计算机输入数据来训练计算机以生成新知识的技术。具体地,机器学习在作为机器学习技术之一的人工神经网络领域已经得到了显著的发展,并且这引入了深度学习。
深度学习是基于人工神经网络的一种机器学习技术类型,并且可以通过使用无监督学习对用于学习的数据进行预处理或在多个层上共同地传输数据来提高学习效率,尽管人工神经网络被设计成多层结构。具体地,通过互联网的发展和用于处理它的计算性能的提高,深度学习最近随着大数据得到了迅速发展。
在该技术中,卷积神经网络(convolutional neural network,CNN)具有适合于学习二维数据的结构,并且能够通过反向传播算法进行训练。CNN已广泛用于各种应用,诸如图像中的对象分类或对象检测。
在CNN中执行的大多数处理是卷积处理,这使得必须有效地执行卷积处理,但是在特定情况下效率可能会恶化。
图1A和图1B是用于描述根据传统技术的卷积处理的问题的图。首先,图1A示出步幅为1,并且图1B示出步幅为2。步幅是指内核数据被应用于目标数据(例如,图像)的间隔。
如图1A所示,在第一循环(cycle)中将内核数据与第一区域101的目标数据一起处理,并且可以计算具有以下值的像素数据的累加(Accumulation)。
a1+b2+c3+d4+e5+f6+g7+h8+i9
通过相同的方法,在第二循环中将内核数据与第二区域102的目标数据一起处理,并且通过对整个目标数据执行这种处理而获得的结果是在图右侧的累加。
通过在目标数据上将内核数据移动一个像素来执行卷积处理。同时,如图1B所示,当步幅为2时,通过在目标数据上将内核数据移动两个像素来执行卷积处理。
也就是说,如图1B所示,在第一循环中将内核数据与第三区域103的目标数据一起处理,并且可以计算像素数据的累加。
通过相同的方法,在第二循环中将内核数据与第四区域104的目标数据一起处理,并且这里的第四区域可以是与第三区域间隔两个像素的区域。通过对整个目标数据执行这样的处理获得的结果是在图右侧的累加中的阴影部分。也就是说,步幅为2的累加数据尺寸仅仅是步幅为1的累加数据尺寸的1/4。
然而,在图1A和图1B的两种情况下,在硬件方面操作没有显著不同。具体地,即使在图1B的情况下,卷积处理也是通过以与图1A中的方式相同的方式在目标数据上将内核数据移动一个像素来执行的,并且计算与图1A中的累加相同的累加。之后,从计算的累加中仅获得图1B的阴影部分,并获得步幅为2时的结果。
也就是说,在硬件方面,当步幅为2时,针对图1B的非阴影部分执行处理,并且这是卷积处理中不必要的结果值。当步幅大于2时,硬件的利用进一步降低。
因此,需要开发一种卷积处理方法,即使步幅为2或更大,也不会降低硬件的利用。
发明内容
技术问题
本公开是根据上述需求做出的,并且本公开的目的是提供一种用于提高卷积处理过程中的硬件利用的电子设备及其控制方法。
技术方案
根据本公开的用于实现前述目标的实施例,一种电子设备包括存储装置和处理器,处理器被配置为基于步幅信息对目标数据和内核数据执行卷积处理,步幅信息指示内核数据被应用于存储在存储装置中的目标数据的间隔,其中,处理器基于第一步幅信息将目标数据划分为多条子数据,基于不同于第一步幅信息的第二步幅信息,对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理,以及组合多个处理结果,通过基于第一步幅信息划分内核数据来获得多条子内核数据,并且,第二步幅信息指示内核数据被应用于目标数据的间隔是1。
处理器可以基于第一步幅信息为n(n是大于1的整数),将目标数据划分为n×n条子数据,并且可以通过将内核数据划分为n×n条来获得多条子内核数据。
处理器可以将n×n条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并且获得位于目标数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子数据的值,并且a和b中的每一个可以是0或更大的自然数。
多个处理结果可以是具有不同尺寸的矩阵形式,处理器可以基于多个处理结果当中具有最大尺寸的第一矩阵来扩展其他矩阵的尺寸,并且组合包括在第一矩阵中的值和包括在扩展的其他矩阵中的值之间在相同位置处的值,并且其他矩阵的扩展区域的值可以是0。
该处理器可以包括:多个处理元件单元,该处理元件单元包括多个处理元件,每个处理元件以矩阵形式排列;数据分散器,其一侧连接到存储装置,并且另一侧连接到多个处理元件单元中的每一个;以及累加器,其一侧连接到多个处理元件单元中的每一个,并且另一侧连接到存储装置。
数据分散器可以从存储装置接收目标数据,将目标数据划分成多条子数据,并将多条子数据分别传输到多个处理元件单元,多个处理元件单元中的每一个可以基于与从数据分散器接收的子数据相对应的子内核数据执行卷积处理并将处理结果传输到累加器,并且累加器可以组合分别从多个处理元件单元接收的多个处理结果。
处理器可以基于行是m(m是大于1的整数)且列是n(n是大于1的整数)的第一步幅信息,将目标数据划分为m×n条子数据,并且可以通过将内核数据划分为m×n条来获得多条子内核数据。
处理器可以基于第一步幅信息为n(n是大于1的整数),将内核数据划分为n×n条子内核数据,并且基于第二步幅信息对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理。
处理器可以将n×n条子内核数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并且获得位于内核数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子内核数据的值,并且a和b中的每一个可以是0或更大的自然数。
处理器可以使用预先存储在存储装置中的多个子内核数据集当中与第一步幅信息相对应的子内核数据集中包括的多条子内核数据来执行卷积处理,并且多个子内核数据集可以通过基于彼此不同的多条步幅信息划分内核数据来获得。
根据本公开的另一实施例,一种电子设备的控制方法包括:基于指示内核数据被应用于目标数据的间隔的第一步幅信息,将目标数据划分为多条子数据,基于不同于第一步幅信息的第二步幅信息,对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理,以及组合多个处理结果,通过基于第一步幅信息划分内核数据来获得多条子内核数据,并且,第二步幅信息指示内核数据被应用于目标数据的间隔是1。
划分可以包括基于第一步幅信息为n(n是大于1的整数),将目标数据划分为n×n条子数据,并且可以通过将内核数据划分为n×n条来获得多条子内核数据。
划分可以包括将n×n条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并且获得位于目标数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子数据的值,并且a和b中的每一个可以是0或更大的自然数。
多个处理结果可以是具有不同尺寸的矩阵形式,并且组合可以包括:基于多个处理结果当中具有最大尺寸的第一矩阵来扩展其他矩阵的尺寸;以及组合包括在第一矩阵中的值和包括在扩展的其他矩阵中的值之间在相同位置处的值,并且其他矩阵的扩展区域的值可以为0。
划分可以包括:基于行是m(m是大于1的整数)且列是n(n是大于1的整数)的第一步幅信息,将目标数据划分为m×n条子数据,并且可以通过将内核数据划分为m×n条来获得多条子内核数据。
该方法还可以包括:基于第一步幅信息为n(n是大于1的整数),将内核数据划分为n×n条数据,并且基于第二步幅信息对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理。
划分可以包括将n×n条数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并且获得位于内核数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子内核数据的值,并且a和b中的每一个可以是0或更大的自然数。
执行卷积处理可以包括使用预先存储的多个子内核数据集当中与第一步幅信息相对应的子内核数据集中包括的多条子内核数据来执行卷积处理,并且多个子内核数据集可以通过基于彼此不同的多条步幅信息划分内核数据来获得。
根据本公开的又一实施例,一种存储用于执行电子设备的操作方法的计算机指令的非暂时性计算机可读介质,其中操作包括,基于指示内核数据被应用于目标数据的间隔的第一步幅信息,将目标数据划分为多条子数据,基于不同于第一步幅信息的第二步幅信息,对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理,以及组合多个处理结果,通过基于第一步幅信息划分内核数据来获得多条子内核数据,并且,第二步幅信息指示内核数据被应用于目标数据的间隔是1。
发明效果
根据上述本公开的各种实施例,即使当内核数据被应用于目标数据的间隔是2或更大时,电子设备也可以通过以1的间隔执行卷积处理来提高硬件利用。
附图说明
图1A和图1B是用于描述根据传统技术的卷积处理的问题的图。
图2是示出根据实施例的电子设备的配置的框图。
图3A至图3C是用于描述根据实施例的用于划分目标数据和内核数据的方法的图。
图4A和图4B是用于描述根据实施例的处理方法的图。
图5A和图5B是用于描述根据另一实施例的处理方法的图。
图6是用于描述根据实施例的对三维数据的处理方法的图。
图7是用于描述根据实施例的处理器的特定配置的图。
图8是用于描述根据实施例的电子设备的控制方法的流程图。
具体实施方式
在下文中,将参考附图详细描述本公开的各种实施例。
图2是示出根据本公开实施例的电子设备100的配置的框图。
如图2所示,电子设备100包括存储装置110和处理器120。
电子设备100可以执行卷积处理。例如,电子设备100可以是桌面PC、笔记本、智能电话、平板PC、服务器等。此外,电子设备100可以是具有构建的云计算环境的系统。然而,实施例不限于此,并且电子设备100可以是任何设备,只要它可以执行卷积处理。
这里的卷积处理是在深度学习领域中非常重要的地执行的处理,并且可以是通过对目标数据和内核数据的处理来强调目标数据和内核数据彼此对应的特征的处理。
例如,目标数据可以是分辨率为1920×1080的图像数据,并且内核数据可以是3×3的锐化滤波器。可以针对每个元素将内核数据与位于目标数据的一侧的3×3的区域相乘,并且相乘的结果可以相加以生成一条数据。可以通过在目标数据上移动内核数据来重复执行这种处理,来执行卷积处理。当应用零填充时,可以以与目标数据的尺寸相同的尺寸来形成卷积处理结果,并且当不应用零填充时,可以以稍微小于目标数据的尺寸的尺寸形成卷积处理结果。通过上述对图像数据和锐化滤波器的卷积处理,可以生成比初始图像数据更锐化的图像数据。然而,这仅仅是实施例,并且可以对任何其他类型的各条数据执行卷积处理,并且卷积处理可以是在深度学习领域中可用的任何卷积处理。
存储装置110可以存储目标数据、内核数据、处理指令等。当处理指令是卷积处理指令时,处理指令可以包括步幅信息。步幅信息指示内核数据被应用于目标数据的间隔。
存储装置110可以存储至少一条内核数据。
存储装置110可以存储多个子内核数据集。这里,多个子内核数据集中的每一个都可以包括基于彼此不同的步幅信息从一条内核数据划分的多条子内核数据。
例如,多个子内核数据集当中的第一子内核数据集可以包括基于第一步幅信息从内核数据划分的多条第一子内核数据,并且多个子内核数据集之中的第二子内核数据集可以包括基于第二步幅信息从内核数据划分的多条第二子内核数据。
或者,存储装置110可以存储多条内核数据中的每一内核数据的多个子内核数据集。例如,存储装置110可以存储第一内核数据的多个第一子内核数据集和第二内核数据的多个第二子内核数据集。
同时,多条子内核数据可以由电子设备100生成,或者可以是由除了电子设备100之外的外部电子设备生成并从外部电子设备接收的信息。
稍后将详细描述基于步幅信息和上述多条子内核数据的卷积处理。
存储装置110可以被实施为硬盘、非易失性存储器、或易失性存储器。
处理器120通常控制电子设备100的操作。
在实施例中,处理器120可以被实施为数字信号处理器(digital signalprocessor,DSP)、微处理器、或时间控制器(time controller,TCON)。然而,处理器不限于此,并且可以包括或定义为中央处理单元(central processing unit,CPU)、微控制器单元(microcontroller unit,MCU)、微处理单元(microprocessing unit,MPU)、控制器、应用处理器(application processor,(AP)、通信处理器(communication processor,CP)、和ARM处理器中的一个或多个。此外,处理器140可以实施为具有嵌入式处理算法的片上系统(system on chip,SoC)或大规模集成电路(large scale integration,LSI),或者可以以现场可编程门阵列(field programmable gate array,FPGA)的形式实施。
处理器120可以基于步幅信息对目标数据和内核数据执行卷积处理,其中步幅信息指示内核数据被应用于存储在存储装置110中的目标数据的间隔。
处理器120可以基于第一步幅信息将目标数据划分为多条子数据,基于不同于第一步幅信息的第二步幅信息对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理,并且组合多个处理结果。
这里的多条子内核数据可以通过基于第一步幅信息划分内核数据来获得。第二步幅信息可以指示内核数据被应用于目标数据的间隔是1。也就是说,第一步幅信息可以指示内核数据被应用于目标数据的间隔是2或更大。
处理器120可以基于第一步幅信息为n(n是大于1的整数),将目标数据划分为n×n条子数据,并且可以通过将内核数据划分为n×n条来获得多条子内核数据。
例如,基于第一步幅信息是2,处理器120可以将目标数据划分为2×2=4条子数据。此外,可以通过将内核数据划分为2×2=4条来获得多条子内核数据。
然而,不限于此,并且对于目标数据的行和列,第一步幅信息可以不同。也就是说,处理器120可以基于行是m(m是大于1的整数)且列是n(n是大于1的整数)的第一步幅信息,将目标数据划分为m×n条子数据。处理器120可以使用通过将内核数据划分为m×n条而获得的多条子内核数据用于卷积处理。
例如,处理器120可以基于行是3且列是2的第一步幅信息,将目标数据划分为3×2条子数据。处理器120可以使用通过将内核数据划分为3×2条而获得的多条子内核数据用于卷积处理。
处理器120可以将n×n条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并且获得位于目标数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子数据的值。a和b中的每一个可以是0或更大的自然数。稍后将参考附图描述用于划分目标数据的特定方法。
同时,多个处理结果可以是具有不同尺寸的矩阵形式,并且处理器120可以基于多个处理结果当中具有最大尺寸的第一矩阵来扩展其他矩阵的尺寸,并且组合包括在第一矩阵中的值和包括在扩展的其他矩阵中的值之间在相同位置处的值。其他矩阵的扩展区域的值可以是0。
例如,当通过卷积处理生成四个处理结果时,第一处理结果可以是2×2的矩阵形式,第二处理结果可以是2×3的矩阵形式,第三处理结果可以是3×2的矩阵形式,并且第四处理结果可以是4×4的矩阵形式。处理器120可以以4×4的矩阵形式扩展第一至第三处理结果,并且在扩展时添加的行或列的值可以是0。
在处理结果的扩展中,处理器120可以扩展矩阵的右侧或下侧。在上述示例中,处理器120可以通过向第一处理结果的右侧和下侧添加0,将2×2的矩阵形式扩展为4×4的矩阵形式。
处理器120可以组合包括在第一矩阵中的值和包括在扩展的其他矩阵中的值之间在相同位置处的值。也就是说,处理器120可以为每个元素添加每个值。根据上述示例,添加的结果可以是4×4的矩阵形式。
然而,不限于此,并且处理器120可以估计多个处理结果当中具有最小尺寸的第二矩阵的尺寸,并且执行与估计的尺寸相对应的处理。稍后将参考附图描述关于此的具体描述。
同时,处理器120可以包括:多个处理元件单元,处理元件单元包括多个处理元件,每个处理元件以矩阵形式排列;数据分散器,其一侧连接到存储装置110,并且另一侧连接到多个处理元件单元中的每一个;以及累加器,其一侧连接到多个处理元件单元中的每一个,并且另一侧连接到存储装置110。
数据分散器可以从存储装置110接收目标数据,将目标数据划分为多条子数据,并将多条子数据分别传输到多个处理元件单元。在这种情况下,数据分散器可以包括用于存储多条子数据的存储元件。
或者,数据分散器可以将接收到的目标数据实时分发给多个处理元件单元。例如,当顺序输入目标数据时,数据分散器可以被形成为至少一个多路复用器,并且可以顺序地将目标数据分发给多个处理元件单元。也就是说,数据分散器可以仅实时改变输入的数据的路径,并且在分发完成之后,多条子数据可以被存储在多个处理元件单元中的每一个中。
多个处理元件单元中的每一个可以基于与从数据分散器接收的子数据相对应的子内核数据来执行卷积处理,并将处理结果传输到累加器。
累加器可以组合分别从多个处理元件单元接收的多个处理结果。
处理器120可以将内核数据划分为多条子内核数据。具体地,处理器120可以基于第一步幅信息为n(n是大于1的整数),将内核数据划分为n×n条子内核数据,并且基于第二步幅信息,对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理。
然而,不限于此,并且对于内核数据的行和列,第一步幅信息可以是不同的。也就是说,处理器120可以基于行是m(m是大于1的整数)且列是n(n是大于1的整数)的第一步幅信息,将内核数据划分为m×n条数据。
处理器120可以将n×n条子内核数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并且获得位于内核数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子内核数据的值。a和b中的每一个都可以是0或更大的自然数。也就是说,用于形成多条子内核数据的方法可以与用于形成多条子数据的方法相同。
处理器120可以使用预先存储在存储装置110中的多个子内核数据集当中与第一步幅信息相对应的子内核数据集中包括的多条子内核数据来执行卷积处理。多个子内核数据集可以通过基于彼此不同的步幅信息划分内核数据来获得。
也就是说,存储装置110可以存储通过基于彼此不同的步幅信息预先划分内核数据而获得的多个子内核数据集,并且处理器120可以基于存储在存储装置110中的信息执行卷积处理。在这种情况下,处理器120不执行划分内核数据的操作。用于生成多个子内核数据集的方法可以与用于由处理器120直接划分内核数据的方法相同,除了划分操作由除电子设备100之外的外部电子设备执行并且电子设备100仅从外部电子设备接收这些子内核数据集并存储这些子内核数据集。
上文已经简要描述了电子设备100的卷积处理方法。在下文中,将参考特定附图描述电子设备100的卷积处理方法,并且将描述对硬件利用的改进。
图3A至3B是用于描述根据本公开的实施例的用于划分目标数据和内核数据的方法的图。
首先,图3A是用于描述当步幅信息为2时用于划分目标数据的方法的图。
当步幅信息是2时,处理器120可以将目标数据划分为2×2=4条子数据。
具体地,处理器120可以将2×2=4条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数)。这里,i和j中的每一个是n或更小的自然数,并且因此i和j可以分别是1和2。
例如,处理器120可以将四条子数据中的每一个识别为(1,1)、(1,2)、(2,1)、和(2,2)。
处理器120可以获得位于目标数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子数据的值。a和b中的每一个可以是0或更大的自然数。
例如,假设形成被识别为(1,1)的子数据的情况,处理器120可以获得位于目标数据的(2×a+1)行和(2×b+1)列中的值。这里a和b中的每一个都是大于0的自然数,并且因此,当a和b中的每一个从0开始被顺序地放入(2×a+1)行和(2×b+1)列中时,可以获得位于(1)行和(1)列中、(1)行和(3)列中、(1)行和(5)列中、(1)行和(7)列中、(1)行和(9)列中、(3)行和(1)列中、(3)行和(3)列中、(3)行和(5)列中、(3)行和(7)列中、(3)行和(9)列中、……、以及(9)行和(9)列中的值。图3A的右侧示出了四条子数据,并且这些条子数据当中左上侧的子数据指示被识别为(1,1)的子数据。
在以上示例中,已经描述了a和b中的每一个等于或小于4的情况。当a或b等于或大于5时,没有必要考虑,因为没有与目标数据相对应的值。也就是说,当a或b等于或大于5时,处理器120可以识别没有可从目标数据获得的值,并且可以改变a和b中的至少一个值或者完成子数据的生成。
例如,a被设置为1且b从1开始被顺序地增大,并且当a被设置为1且b被设置为5时,没有与目标数据相对应的值,并且因此,处理器120可以将a改变为2且将b改变为1,以获得与目标数据相对应的值。
在另一示例中,假设形成被识别为(1,2)的子数据的情况,处理器120可以获得位于目标数据的(2×a+1)行和(2×b+2)列中的值。这里a和b中的每一个都是0或更大的自然数,并且因此,当a和b中的每一个从0开始被顺序地放入(2×a+1)行和(2×b+2)列中时,可以获得位于(1)行和(2)列中、(1)行和(4)列中、(1)行和(6)列中、(1)行和(8)列中、(1)行和(10)列中、(3)行和(2)列中、(3)行和(4)列中、(3)行和(6)列中、(3)行和(8)列中、(3)行和(10)列中、……、以及(9)行和(10)列中的值。图3A右上侧的子数据表示被识别为(1,2)的子数据。
通过上述方法,处理器120可以形成其他两条子数据。
图3B是用于描述当步幅信息为2时用于划分内核数据的方法的图。用于划分内核的方法与图3A的用于划分目标数据的方法相同,因此将省略重叠的描述。
图3C是用于描述当步幅信息为3时用于划分内核数据的方法的图。
当步幅信息为3时,处理器120可以将内核数据划分为3×3=9条子内核数据。
具体地,处理器120可以将3×3=9条子内核数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数)。这里,i和j中的每一个是n或更小的自然数,并且因此i和j可以分别是1、2和3。
例如,处理器120可以将九条子内核数据中的每一个识别为(1,1)、(1,2)、(1,3)、(2,1)、(2,2)、(2,3)、(3,1)、(3,2)、和(3,3)。
处理器120可以获得位于内核数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子内核数据的值。a和b中的每一个可以是0或更大的自然数。
例如,假设形成被识别为(2,3)的子数据的情况,处理器120可以获得位于内核数据的(3×a+2)行和(3×b+3)列中的值。这里a和b中的每一个是0或更大的自然数,并且因此,当a和b中的每一个从0开始被顺序地放入(3×a+2)行和(3×b+3)列中时,可以获得位于(2)行和(3)列中、(2)行和(6)列中、(5)行和(3)列中、以及(5)行和(6)列中的值。图3C的下侧示出了9条子内核数据,并且这些条子内核数据当中右侧中心的子内核数据指示被识别为(2,3)的子内核数据。
也就是说,当步幅信息为3时,与步幅信息为2的情况相比,要生成的多条子内核数据的数量可以不同。然而,生成方法没有显著的不同,并且同样应用于目标数据。也就是说,当在卷积处理中步幅信息等于或大于2时,处理器120可以通过与上述相同的方法分别将目标数据和内核数据划分为多条子数据和多条子内核数据。这里,处理器120可以基于相同的步幅信息来划分目标数据和内核数据。也就是说,分别与多条子数据相对应的子内核数据的尺寸可以彼此不同,但是多条子数据的数量和多条子内核数据的数量可以相同。
针对行和列中的每一个,步幅信息可以不同。然而,即使在这种情况下,当步幅信息中行是3且列是2时,处理器120可以将目标数据划分为3×2条子数据。
处理器120可以将3×2=6条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数)。这里,i和j中的每一个是n或更小的自然数,并且因此i和j可以是1、2和3,且j可以是1和2。
处理器120可以获得位于目标数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子数据的值。a和b中的每一个可以是0或更大的自然数。
也就是说,尽管针对行和列中的每一个步幅信息是不同的,但是可以通过与上述相同的方法来划分目标数据和内核数据。
图4A和图4B是用于描述根据本公开的实施例的处理方法的图。在图4A和图4B中,假设处理了图3A的多条子数据和图3B的多条子内核数据。
处理器120可以将n×n条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并将n×n条子内核数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数)。
也就是说,处理器120可以将四条子数据分别识别为二维信息(1,1)、(1,2)、(2,1)、和(2,2),并将四条子内核数据分别识别为二维信息(1,1)、(1,2)、(2,1)、和(2,2)。
处理器120可以对多条子数据和与多条子数据中的每一个相对应的子内核数据执行卷积处理。也就是说,如图4A所示,处理器120可以对(1,1)的子数据和(1,1)的子内核数据一起执行卷积处理,对(1,2)的子数据和(1,2)的子内核数据一起执行卷积处理,对(2,1)的子数据和(2,1)的子内核数据一起执行卷积处理,并且对(2,2)的子数据和(2,2)的子内核数据一起执行卷积处理。处理器120可以并行执行步幅为1的卷积处理。
具体地,处理器120可以基于对多条子内核数据当中具有最大尺寸的子内核数据的卷积处理来同步对其他子内核数据的卷积处理。例如,在图4A中的多条子内核数据当中(1,1)的子内核数据具有最大尺寸的情况下,可以通过将子内核数据向右侧移动一次、改变行、以及将子内核数据再向右侧移动一次来执行卷积处理。
处理器120可以使(1,2)、(2,1)、和(2,2)的子内核数据的移动与(1,1)的子内核数据的移动同步。使用(2,2)的子内核数据作为示例,处理器120可以通过首先将(2,2)的子内核数据向右侧移动,并且省略向右侧的进一步移动,以与(1,1)的子内核数据的情况中的方式相同的方式改变行,并且再向右侧移动一次来执行卷积处理。此外,处理器120还可以在第二行中将(2,2)的子内核数据再向右侧移动一次,并移动到第三行,但是这也可以被省略。
图4B示出了(1,1)、(1,2)、(2,1)、和(2,2)各自的处理结果。处理器120可以基于对多条子内核数据当中具有最大尺寸的子内核数据的卷积处理来同步对其他子内核数据的卷积处理,并且因此,所有处理结果的尺寸可以彼此相同。
处理器120可以针对每个元素组合多个处理结果。通过组合获得的最终卷积处理结果可以与通过基于2的步幅对目标数据和内核数据执行卷积处理获得的结果相同。
图5A和图5B是用于描述根据本公开的另一实施例的处理方法的图。在图5A和图5B中,假设以与图4A和4B中的方式相同的方式处理图3A的多条子数据和图3B的多条子内核数据。然而,在图5A中,省略了多条子内核数据。
以与上述相同的方式,处理器120可以将多条子数据和多条子内核数据识别为二维信息,并且对多条子数据和分别与多条子数据相对应的子内核数据执行卷积处理。处理器120可以并行执行步幅为1的卷积处理。
同时,处理器120可以执行除了图4A和图4B的同步卷积处理之外的非同步卷积处理。在这种情况下,处理器120可以对多条子数据和分别与多条子数据相对应的子内核数据单独执行卷积处理,而不需要检测多条子内核数据当中具有最大尺寸的子内核数据。
因此,具有相对较小尺寸的子内核数据的(1,2)、(2,1)、和(2,2)的子内核数据在对应子数据上的移动次数可以大于图4A和图4B的情况。
例如,对(1,2)的子内核数据的卷积处理可以通过在每行中将它向右移动一次,并且然后再向右移动一次来执行。也就是说,与图4A的情况相比,可以对图5A的(1,2)的子内核数据附加地执行两次处理。以类似的方式,与图4A的情况相比,可以对图5A的(2,1)的子内核数据附加地执行两次处理,并且可以对(2,2)的子内核数据附加地执行五次处理。
图5B示出了(1,1)、(1,2)、(2,1)、和(2,2)各自的处理结果。所有处理结果的尺寸可能彼此不同,因为处理器120执行非同步卷积处理。
如图5C所示,处理器120可以基于多个处理结果当中具有最大尺寸的矩阵来扩展其他矩阵的尺寸。处理器120可以扩展其他矩阵的尺寸,使得扩展区域的值为0。
处理器120可以针对每个元素组合多个处理结果。在扩展之后,所有矩阵的尺寸彼此相同,并且因此,组合方法与图4B中描述的相同。
在下文中,处理器120可以基于多个处理结果当中具有最小尺寸的矩阵,来从组合的结果获得最终卷积处理结果。例如,如图5C所示,处理器120可以基于作为在多个处理结果当中具有最小尺寸的(1,1)的处理结果的2×2的矩阵,来从3×3的组合的结果中仅获得左上侧的2×2的值作为最终卷积处理结果。
通过组合获得的最终卷积处理结果可以与通过基于2的步幅对目标数据和内核数据执行卷积处理获得的结果相同。
图6是用于描述根据本公开的实施例的三维数据的处理方法的图。
如图6所示,目标数据(特征映射)和内核数据中的每一个可以是除了行和列之外还具有深度的三维数据。
处理器120可以基于步幅信息划分目标数据和内核数据中的每一个。处理器120可以通过仅考虑行和列来划分目标数据和内核数据中的每一个,而不管深度如何。
因此,如图6所示,处理器120可以生成4条子数据和4条子内核数据,并且每条数据可以是除了行和列之外还具有深度的三维数据。
处理器120可以并行执行步幅为1的卷积处理,并针对每个元素组合多个处理结果。这里,在针对每个元素进行组合时,处理器120除了行和列之外还可以考虑深度。
图7是用于描述根据本公开实施例的处理器120的特定配置的图。
如图7所示,处理器120可以包括数据分散器121、多个处理元件单元122、和累加器123。
数据分散器121的一侧连接到存储装置110,并且可以从存储装置110接收目标数据,并且将目标数据划分为多条子数据。
数据分散器121的另一侧连接到多个处理元件单元122中的每一个,并且可以将多条子数据分别传输到多个处理元件单元122。
多个处理元件单元122可以包括多个处理元件,每个处理元件以矩阵形式排列。即,第一处理元件单元122-1、第二处理元件单元122-2、第三处理元件单元122-3、和第四处理元件单元122-4可以包括多个处理元件,每个处理元件以矩阵形式排列。
图7仅示出了第一处理元件单元122-1、第二处理元件单元122-2、第三处理元件单元122-3、和第四处理元件单元122-4的四个处理元件单元,但是不限于此,并且可以形成任何其他数量的处理元件单元。此外,第一处理元件单元122-1、第二处理元件单元122-2、第三处理元件单元122-3、和第四处理元件单元122-4可以彼此相同或彼此不同。
在每个处理元件单元中的相邻处理元件之间,可以执行一个方向上的数据移位或两个方向上的数据移位。图7示出了彼此相邻的一些处理元件仅在向下的方向上执行数据移位,但是这仅仅是实施例,并且也可以在两个方向上执行移位。
每个处理元件可以基本上包括乘法器和算术逻辑单元(arithmetic logicunit,ALU),并且该ALU可以包括至少一个或多个加法器。处理元件可以使用乘法器和ALU执行基本算术运算。然而,不限于此,并且处理元件可以由任何其他结构形成,只要它可以执行诸如基本算术运算、移位等的功能。
每个处理元件可以包括用于存储数据的寄存器。例如,每个处理元件可以存储用于存储特定循环中的处理结果的寄存器。或者,每个处理元件可以包括用于存储在将特定循环中的处理结果移位到相邻处理元件之后从相邻处理元件移位的处理结果的寄存器。
多个处理元件单元122中的每一个可以基于对应的子内核数据对从数据分散器121接收的子数据执行卷积处理,并且将处理结果传输到累加器123。
当对应的子内核数据预先存储在存储装置110中时,多个处理元件单元122中的每一个可以从存储装置110接收对应的子内核数据。
或者,存储装置110可以仅存储除对应的子内核数据之外的内核数据。在这种情况下,处理器120还可以包括用于划分内核数据的内核数据分散器(未示出)。
内核数据分散器(未示出)可以从存储装置110接收内核数据,划分内核数据,并将它传输到对应的处理元件单元。
可选地,数据分散器121和内核数据分散器(未示出)可以被集成。在这种情况下,集成的分散器可以顺序地接收目标数据和内核数据,以合适的循环划分每个数据,并将每个数据传输到对应的处理元件单元。
通过处理元件的卷积处理方法是众所周知的方法,并且因此,将省略关于此的详细描述。
累加器123的一侧连接到多个处理元件单元122中的每一个,并且另一侧连接到存储装置110,并且可以分别从多个处理元件单元122接收多个处理结果,并且组合多个接收的处理结果。
图8是用于描述根据本公开实施例的电子设备的控制方法的流程图。
首先,基于指示内核数据被应用于目标数据的间隔的第一步幅信息,将目标数据划分为多条子数据(S810)。基于不同于第一步幅信息的第二步幅信息,对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理(S820)。然后,组合多个处理结果(S830)。通过基于第一步幅信息划分内核数据来获得多条子内核数据,并且第二步幅信息指示内核数据被应用于目标数据的间隔是1。
在划分步骤S810中,可以基于第一步幅信息为n(n是大于1的整数),将目标数据划分为n×n条子数据。可以通过将内核数据划分为n×n条来获得多条子内核数据。
划分步骤S810可以包括将n×n条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数)的步骤,以及获得位于目标数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子数据的值的步骤。a和b中的每一个可以是0或更大的自然数。
多个处理结果可以是具有不同尺寸的矩阵形式,并且组合的步骤S830可以包括:基于多个处理结果当中具有最大尺寸的第一矩阵来扩展其他矩阵的尺寸的步骤,以及组合包括在第一矩阵中的值和包括在扩展的其他矩阵中的值之间在相同位置处的值的步骤。其他矩阵的扩展区域的值可以是0。
在划分的步骤S810中,可以基于行是m(m是大于1的整数)且列是n(n是大于1的整数)的第一步幅信息,将目标数据划分为m×n条子数据。可以通过将子内核数据划分为m×n条来获得多条子内核数据。
该方法还可以包括基于第一步幅信息为n(n是大于1的整数)将内核数据划分为n×n条子内核数据的步骤,以及基于第二步幅信息对多条子数据和分别与多条子数据相对应的多条子内核数据执行卷积处理的步骤。
划分步骤S810可以包括将n×n条子内核数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数)的步骤,以及获得位于内核数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子内核数据的值的步骤。a和b中的每一个可以是0或更大的自然数。
在执行卷积处理的步骤S820中,可以使用预先存储的多个子内核数据集当中与第一步幅信息相对应的子内核数据集中包括的多条子内核数据来执行卷积处理。多个子内核数据集可以通过基于彼此不同的步幅信息划分内核数据来获得。
根据上述本公开的各种实施例,即使当内核数据被应用于目标数据的间隔是2或更大时,电子设备也可以通过以1的间隔执行卷积处理来提高硬件利用率。
根据本公开的实施例,上述各种实施例可以被实施为包括存储在机器可读存储介质(例如,计算机可读存储介质)中的指令的软件。这里的机器是调用存储在存储介质中的指令并根据所调用的指令进行操作的装置,并且可以包括根据所公开的实施例的电子设备(例如,电子设备(A))。在指令由处理器执行的情况下,处理器可以在处理器的控制下直接或使用其他元件执行对应于指令的功能。指令可以包括由编译器生成或由解释器执行的代码。机器可读存储介质可以以非暂时性存储介质的形式提供。这里,术语“非暂时性”仅意味着存储介质是有形的,而不包括信号,并且它不区分数据是半永久地还是临时地存储在存储介质中。
此外,根据本公开的实施例,根据上述公开的各种实施例的方法可以被提供为包括在计算机程序产品中。计算机程序产品可以作为商业可用产品在卖方和买方之间交换。计算机程序产品可以以机器可读存储介质(例如,光盘只读存储器(compact disc readonly memory,CD-ROM))的形式分发,或者通过应用商店(例如,PlayStoreTM)在线分发。在在线分发的情况下,计算机程序产品的至少一部分可以至少在存储介质(诸如制造商的服务器的存储器、应用商店的服务器、或中继服务器)中临时地存储或临时地生成。
此外,根据本公开的实施例,可以使用软件、硬件、或其组合在计算机(或类似设备)可读存储介质中实施上述各种实施例。在一些情况下,本说明书中描述的实施例可以被实施为处理器本身。根据在软件方面的实施,本说明书中描述的诸如过程和功能的实施例可以被实施为单独的软件模块。每个软件模块可以执行本说明书中描述的一个或多个功能和操作。
根据上述各种实施例的用于执行机器的处理操作的计算机指令可以存储在非暂时性计算机可读介质中。当存储在非暂时性计算机可读介质中的计算机指令由特定机器的处理器执行时,根据上述各种实施例的机器的处理操作可以由特定机器执行。非暂时性计算机可读介质不是短时段存储数据的介质,诸如寄存器、高速缓存、或存储器,而是指半永久地存储数据并可由机器读取的介质。非暂时性计算机可读介质的特定示例可以包括CD、DVD、硬盘、蓝光光盘、USB、存储卡、和ROM。
此外,根据上述各种实施例的每个元素(例如,模块或程序)可以由单个实体或多个实体组成,并且上述子元素中的一些子元素可以省略,或者其他子元素可以进一步包括在各种实施例中。替代地或附加地,一些元素(例如,模块或程序)可以被集成到一个实体中,以执行在集成之前由每个相应元件执行的相同或相似的功能。根据各种实施例,由模块、程序、或其他元素执行的操作可以顺序地、并行地、重复地、或启发式地执行,或者至少一些操作可以以不同的顺序执行、省略、或者可以添加不同的操作。
在上文中,已经示出并描述了本公开的优选实施例,但是本公开不限于上述特定实施例,本领域技术人员可以进行各种修改,而不脱离权利要求中要求保护的本公开的主旨,并且不能从本公开的技术精神或前景中单独理解这些修改。
Claims (15)
1.一种电子设备,包括:
存储装置;以及
处理器,被配置为基于步幅信息对目标数据和内核数据执行卷积处理,所述步幅信息指示所述内核数据被应用于存储在所述存储装置中的所述目标数据的间隔,
其中,所述处理器还被配置为:
基于第一步幅信息将所述目标数据划分为多条子数据,
基于不同于所述第一步幅信息的第二步幅信息,对所述多条子数据和分别与所述多条子数据相对应的多条子内核数据执行卷积处理,以及
组合多个处理结果,
其中,通过基于所述第一步幅信息划分所述内核数据来获得所述多条子内核数据,并且
其中,所述第二步幅信息指示所述内核数据被应用于所述目标数据的间隔是1。
2.根据权利要求1所述的设备,其中,所述处理器还被配置为基于所述第一步幅信息为n(n是大于1的整数),将所述目标数据划分为n×n条子数据,并且
其中,通过将所述内核数据划分为n×n条来获得所述多条子内核数据。
3.根据权利要求2所述的设备,其中,所述处理器还被配置为将所述n×n条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并且获得位于所述目标数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子数据的值,并且
其中,a和b中的每一个是0或更大的自然数。
4.根据权利要求1所述的设备,其中,所述多个处理结果是具有不同尺寸的矩阵形式,
其中,所述处理器还被配置为基于在所述多个处理结果当中具有最大尺寸的第一矩阵来扩展其他矩阵的尺寸,并且组合包括在所述第一矩阵中的值和包括在扩展的其他矩阵中的值之间在相同位置处的值,并且
其中,所述其他矩阵的扩展区域的值为0。
5.根据权利要求1所述的设备,其中,所述处理器包括:
多个处理元件单元,所述处理元件单元包括多个处理元件,每个处理元件以矩阵形式排列;
数据分散器,其一侧连接到所述存储装置,并且另一侧连接到所述多个处理元件单元中的每一个;以及
累加器,其一侧连接到所述多个处理元件单元中的每一个,并且另一侧连接到所述存储装置。
6.根据权利要求5所述的设备,其中,所述数据分散器从所述存储装置接收所述目标数据,将所述目标数据划分为所述多条子数据,并将所述多条子数据分别传输到所述多个处理元件单元,
其中,所述多个处理元件单元中的每一个基于与从所述数据分散器接收的子数据相对应的子内核数据来执行卷积处理,并且将处理结果传输到所述累加器,并且
其中,所述累加器组合分别从所述多个处理元件单元接收的所述多个处理结果。
7.根据权利要求1所述的设备,其中,所述处理器还被配置为基于行是m(m是大于1的整数)且列是n(n是大于1的整数)的第一步幅信息,将所述目标数据划分为m×n条子数据,并且
其中,通过将所述内核数据划分为m×n条来获得所述多条子内核数据。
8.根据权利要求1所述的设备,其中,所述处理器还被配置为基于所述第一步幅信息为n(n是大于1的整数),将所述内核数据划分为n×n条子内核数据,并且基于所述第二步幅信息,对所述多条子数据和分别与所述多条子数据相对应的多条子内核数据执行所述卷积处理。
9.根据权利要求8所述的设备,其中,所述处理器还被配置为将所述n×n条子内核数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数),并且获得位于所述内核数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子内核数据的值,并且
其中,a和b中的每一个是0或更大的自然数。
10.根据权利要求1所述的设备,其中,所述处理器还被配置为使用预先存储在所述存储装置中的多个子内核数据集当中与所述第一步幅信息相对应的子内核数据集中包括的多条子内核数据来执行所述卷积处理,并且
其中,通过基于彼此不同的多条步幅信息划分所述内核数据来获得所述多个子内核数据集。
11.一种电子设备的控制方法,包括:
基于指示内核数据被应用于目标数据的间隔的第一步幅信息,将所述目标数据划分为多条子数据;
基于不同于所述第一步幅信息的第二步幅信息,对所述多条子数据和分别与所述多条子数据相对应的多条子内核数据执行卷积处理,以及
组合多个处理结果,
其中,通过基于所述第一步幅信息划分所述内核数据来获得所述多条子内核数据,并且
其中,所述第二步幅信息指示所述内核数据被应用于所述目标数据的间隔是1。
12.根据权利要求11所述的方法,其中,所述划分包括基于所述第一步幅信息为n(n是大于1的整数),将所述目标数据划分为n×n条子数据,并且
其中,通过将所述内核数据划分为n×n条来获得所述多条子内核数据。
13.根据权利要求12所述的方法,其中,所述划分包括:
将所述n×n条子数据中的每一个识别为二维信息(i,j)(i和j中的每一个是n或更小的自然数);以及
获得位于所述目标数据的(n×a+i)行和(n×b+j)列中的值作为与(i,j)相对应的子数据的值,并且
其中,a和b中的每一个是0或更大的自然数。
14.根据权利要求11所述的方法,其中,所述多个处理结果是具有不同尺寸的矩阵形式,并且
其中,所述组合包括:
基于所述多个处理结果当中具有最大尺寸的第一矩阵,扩展其他矩阵的尺寸;以及
组合包括在第一矩阵中的值和包括在扩展的其他矩阵中的值之间在相同位置处的值,并且
其中,所述其他矩阵的扩展区域的值为0。
15.根据权利要求11所述的方法,其中,所述划分包括:基于行是m(m是大于1的整数)且列是n(n是大于1的整数)的第一步幅信息,将所述目标数据划分为m×n条子数据,并且
其中,通过将所述内核数据划分为m×n条来获得所述多条子内核数据。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762563369P | 2017-09-26 | 2017-09-26 | |
US62/563,369 | 2017-09-26 | ||
KR1020170169668A KR102442055B1 (ko) | 2017-09-26 | 2017-12-11 | 전자 장치 및 그 제어 방법 |
KR10-2017-0169668 | 2017-12-11 | ||
PCT/KR2018/005635 WO2019066183A1 (ko) | 2017-09-26 | 2018-05-16 | 전자 장치 및 그 제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111133457A true CN111133457A (zh) | 2020-05-08 |
CN111133457B CN111133457B (zh) | 2023-10-24 |
Family
ID=66165738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880062220.3A Active CN111133457B (zh) | 2017-09-26 | 2018-05-16 | 电子设备及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11568323B2 (zh) |
EP (1) | EP3651080A4 (zh) |
KR (1) | KR102442055B1 (zh) |
CN (1) | CN111133457B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110135556B (zh) * | 2019-04-04 | 2024-08-23 | 平安科技(深圳)有限公司 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
US11593637B2 (en) | 2019-04-30 | 2023-02-28 | Samsung Electronics Co., Ltd. | Convolution streaming engine for deep neural networks |
US11354123B2 (en) * | 2019-10-18 | 2022-06-07 | Macronix International Co., Ltd. | Memory device and computing in memory method thereof |
KR20230060289A (ko) | 2021-10-27 | 2023-05-04 | 재단법인대구경북과학기술원 | 이미지 처리 장치 및 방법 |
KR102707241B1 (ko) * | 2022-12-27 | 2024-09-19 | (주)비트리 | 신경망 알고리즘이 적용된 이미지 프로세서에서의 영상데이터 처리 방법 및 장치 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156846A (zh) * | 2015-03-30 | 2016-11-23 | 日本电气株式会社 | 卷积神经网络特征的处理方法和装置 |
KR20170005562A (ko) * | 2015-07-06 | 2017-01-16 | 삼성전자주식회사 | 데이터를 병렬적으로 처리하는 장치 및 방법 |
KR20170023708A (ko) * | 2015-08-24 | 2017-03-06 | (주)뉴로컴즈 | 콘볼루션 신경망 컴퓨팅 장치 |
US9600763B1 (en) * | 2015-10-20 | 2017-03-21 | Fujitsu Limited | Information processing method, information processing device, and non-transitory recording medium for storing program |
US20170103316A1 (en) * | 2015-05-21 | 2017-04-13 | Google Inc. | Computing convolutions using a neural network processor |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN106970896A (zh) * | 2017-03-30 | 2017-07-21 | 中国人民解放军国防科学技术大学 | 面向向量处理器的二维矩阵卷积的向量化实现方法 |
US9721203B1 (en) * | 2016-11-10 | 2017-08-01 | Google Inc. | Performing kernel striding in hardware |
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
CN107025317A (zh) * | 2015-10-07 | 2017-08-08 | 阿尔特拉公司 | 用于实施卷积神经网络加速器上的层的方法和装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8458635B2 (en) | 2009-12-04 | 2013-06-04 | Synopsys, Inc. | Convolution computation for many-core processor architectures |
US9190053B2 (en) | 2013-03-25 | 2015-11-17 | The Governing Council Of The Univeristy Of Toronto | System and method for applying a convolutional neural network to speech recognition |
CN104346622A (zh) | 2013-07-31 | 2015-02-11 | 富士通株式会社 | 卷积神经网络分类器及其分类方法和训练方法 |
US9978014B2 (en) | 2013-12-18 | 2018-05-22 | Intel Corporation | Reconfigurable processing unit |
US9373059B1 (en) | 2014-05-05 | 2016-06-21 | Atomwise Inc. | Systems and methods for applying a convolutional network to spatial data |
US9996350B2 (en) | 2014-12-27 | 2018-06-12 | Intel Corporation | Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array |
US10489703B2 (en) | 2015-05-20 | 2019-11-26 | Nec Corporation | Memory efficiency for convolutional neural networks operating on graphics processing units |
US20160358069A1 (en) | 2015-06-03 | 2016-12-08 | Samsung Electronics Co., Ltd. | Neural network suppression |
US9886377B2 (en) | 2015-10-05 | 2018-02-06 | Intel Corporation | Pipelined convolutional operations for processing clusters |
US10726328B2 (en) | 2015-10-09 | 2020-07-28 | Altera Corporation | Method and apparatus for designing and implementing a convolution neural net accelerator |
KR102313028B1 (ko) | 2015-10-29 | 2021-10-13 | 삼성에스디에스 주식회사 | 음성 인식 시스템 및 방법 |
US10192129B2 (en) | 2015-11-18 | 2019-01-29 | Adobe Systems Incorporated | Utilizing interactive deep learning to select objects in digital visual media |
US20170193361A1 (en) | 2015-12-31 | 2017-07-06 | Microsoft Technology Licensing, Llc | Neural network training performance optimization framework |
WO2017171771A1 (en) * | 2016-03-31 | 2017-10-05 | Hewlett Packard Enterprise Development Lp | Data processing using resistive memory arrays |
US11055063B2 (en) * | 2016-05-02 | 2021-07-06 | Marvell Asia Pte, Ltd. | Systems and methods for deep learning processor |
-
2017
- 2017-12-11 KR KR1020170169668A patent/KR102442055B1/ko active IP Right Grant
-
2018
- 2018-05-16 US US16/650,083 patent/US11568323B2/en active Active
- 2018-05-16 CN CN201880062220.3A patent/CN111133457B/zh active Active
- 2018-05-16 EP EP18860756.8A patent/EP3651080A4/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
CN106156846A (zh) * | 2015-03-30 | 2016-11-23 | 日本电气株式会社 | 卷积神经网络特征的处理方法和装置 |
US20170103316A1 (en) * | 2015-05-21 | 2017-04-13 | Google Inc. | Computing convolutions using a neural network processor |
KR20170005562A (ko) * | 2015-07-06 | 2017-01-16 | 삼성전자주식회사 | 데이터를 병렬적으로 처리하는 장치 및 방법 |
KR20170023708A (ko) * | 2015-08-24 | 2017-03-06 | (주)뉴로컴즈 | 콘볼루션 신경망 컴퓨팅 장치 |
CN107025317A (zh) * | 2015-10-07 | 2017-08-08 | 阿尔特拉公司 | 用于实施卷积神经网络加速器上的层的方法和装置 |
US9600763B1 (en) * | 2015-10-20 | 2017-03-21 | Fujitsu Limited | Information processing method, information processing device, and non-transitory recording medium for storing program |
US9721203B1 (en) * | 2016-11-10 | 2017-08-01 | Google Inc. | Performing kernel striding in hardware |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN106970896A (zh) * | 2017-03-30 | 2017-07-21 | 中国人民解放军国防科学技术大学 | 面向向量处理器的二维矩阵卷积的向量化实现方法 |
Non-Patent Citations (6)
Title |
---|
GUOHAO DAI ET AL.: "ForeGraph:Exploring Large-scale Graph Processing on Multi-FPGA Architecture", 《2017 ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE GATE ARRAY》, pages 217 - 226 * |
LILI SONG ET AL.: "C-Brain:A Deep Learning Accelerator that Tames the Diversity of CNNs through Adaptive Data-level Parallelization", pages 1 - 6 * |
TAHMID ABTAHI ETAL.: "Accelerating Convolutional Neural Network with FFT on Tiny Cores", pages 1 - 4 * |
YUAN DU ETAL.: "A Streaming Accelerator for Deep Convolutional Neural Networks with Image and Feature Decomposition for Resource-limited System Application", pages 1 - 5 * |
刘仲;田希;: "面向多核向量处理器的矩阵乘法向量化方法", 计算机学报, no. 10, pages 79 - 92 * |
-柚子皮-: "深度学习:卷积神经网络CNN变体", pages 1 - 9, Retrieved from the Internet <URL:https://blog.csdn.net/pipisorry/article/details/76573696> * |
Also Published As
Publication number | Publication date |
---|---|
KR20190035445A (ko) | 2019-04-03 |
EP3651080A1 (en) | 2020-05-13 |
EP3651080A4 (en) | 2020-08-19 |
US20200272946A1 (en) | 2020-08-27 |
US11568323B2 (en) | 2023-01-31 |
CN111133457B (zh) | 2023-10-24 |
KR102442055B1 (ko) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111133457B (zh) | 电子设备及其控制方法 | |
CN109754064B (zh) | 执行解卷积的神经网络的方法和装置 | |
US11816559B2 (en) | Dilated convolution using systolic array | |
US11907826B2 (en) | Electronic apparatus for operating machine learning and method for operating machine learning | |
CN109871936B (zh) | 用于处理神经网络中的卷积运算的方法和装置 | |
WO2018180263A1 (ja) | 情報処理装置、情報処理方法、及びコンピュータ可読記憶媒体 | |
CN116343319A (zh) | 用于卷积神经网络的有效数据布局 | |
TW201830297A (zh) | 用於類神經網路計算的旋轉資料 | |
EP3674987A1 (en) | Method and apparatus for processing convolution operation in neural network | |
CN113673701B (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
CN114065926A (zh) | 用于深度学习的方法和设备 | |
US20240303837A1 (en) | Method and apparatus with convolution neural network processing | |
JP2019102082A (ja) | 折り畳まれた特徴データに対して畳み込み演算を実行するための方法および装置 | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
JP6955598B2 (ja) | 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体 | |
CN115803754A (zh) | 用于在神经网络中处理数据的硬件架构 | |
EP3324367B1 (en) | Identifying primitives in input index stream | |
CN114118348A (zh) | 加速器、操作加速器的方法以及包括加速器的电子装置 | |
US12014505B2 (en) | Method and apparatus with convolution neural network processing using shared operand | |
CN111831207B (zh) | 一种数据处理方法、装置及其设备 | |
Dobai | Evolutionary on-line synthesis of hardware accelerators for software modules in reconfigurable embedded systems | |
TWI853745B (zh) | 用於執行類神經網路層之計算的方法、系統及非暫時性電腦可讀儲存媒體 | |
CN118247415A (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 |