CN113807489B - 用于执行反卷积操作的方法、板卡及其计算装置 - Google Patents
用于执行反卷积操作的方法、板卡及其计算装置 Download PDFInfo
- Publication number
- CN113807489B CN113807489B CN202010556340.8A CN202010556340A CN113807489B CN 113807489 B CN113807489 B CN 113807489B CN 202010556340 A CN202010556340 A CN 202010556340A CN 113807489 B CN113807489 B CN 113807489B
- Authority
- CN
- China
- Prior art keywords
- sub
- deconvolution
- convolution
- computing device
- convolution kernel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000007781 pre-processing Methods 0.000 claims description 19
- 230000002093 peripheral effect Effects 0.000 claims description 11
- 238000003708 edge detection Methods 0.000 claims description 3
- 238000003709 image segmentation Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 44
- 238000013528 artificial neural network Methods 0.000 abstract description 24
- 239000011159 matrix material Substances 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000015654 memory Effects 0.000 description 14
- 238000012549 training Methods 0.000 description 8
- 210000004027 cell Anatomy 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7803—System on board, i.e. computer system on one or more PCB, e.g. motherboards, daughterboards or blades
-
- 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
-
- 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
- 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/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
本披露公开了一种执行反卷积操作的方法、集成电路板卡及其相应的计算装置。其中该计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该处理装置和其他处理装置的数据。本披露的方案可以加快在神经网络中反卷积运算的执行速度。
Description
技术领域
本披露一般地涉及人工智能领域。更具体地,本披露涉及一种用于执行反卷积操作的方法、集成电路板卡及其相应的计算装置。
背景技术
在人工智能领域(例如卷积神经网络)中,反卷积操作通常涉及根据遍历输入数据的滑动步长(Stride)与卷积核(Kernel)的大小,对输入数据进行多次的补零操作。然而,对零值输入数据执行反卷积运算会造成在补零位置上存在着大量的冗余运算。这样的运算浪费了宝贵的硬件运算资源,造成资源的实际利用率较低。另外,在前述滑动步长较大时,多次补零操作也会导致原始输入数据规模变得极其庞大,甚至超出原始数据量若干倍,从而对存储空间提出更高的要求。显然,这样的补零操作不仅增加了运算的工作量、数据在运算资源和存取上的成本,还因此造成执行反卷积运算更加耗时,从而增加了反卷积操作的运算成本并降低其效率。
发明内容
为了至少解决在上述背景技术部分所描述的一个或多个问题,本披露提出如下的技术方案及其多个实施例。
在一个方面中,本披露公开了一种用于执行反卷积操作的计算装置,所述反卷积操作包括输入数据与卷积核之间的反卷积运算,该计算装置包括拆核单元,其配置成对所述卷积核执行拆分操作,以获得多个子卷积核;以及运算单元,其配置成利用所述多个子卷积核的每个子卷积核与所述输入数据进行所述反卷积运算,以获得反卷积结果。
在另一个方面中,本披露还公开了一种用于执行反卷积操作的方法,所述反卷积操作包括输入数据与卷积核之间的反卷积运算,该方法包括对所述卷积核执行拆分操作,以获得多个子卷积核;以及对所述多个子卷积核的每个子卷积核和所述输入数据进行所述反卷积运算,以获得反卷积结果。
在又一个方面中,本披露公开了一种集成电路板卡,该板卡包括前述的任一计算装置,即,该计算装置可配置成执行:对卷积核执行拆分操作,以获得多个子卷积核;以及对所述多个子卷积核的每个子卷积核和所述输入数据进行所述反卷积运算,以获得反卷积结果。
通过利用本披露所提出的用于执行反卷积操作的方法、集成电路板卡及其计算装置,可以降低输入数据的补零数量,减少由其造成的大量冗余运算,进而提升硬件运算资源的实际利用率;而且,降低的输入数据规模不仅可以缩减数据在运算资源上的存储成本,节约数据的存取开销,还因此缩短了反卷积运算的耗时,从而降低了反卷积操作的运算成本并提升其效率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本披露实施例的神经网络的结构示意图;
图2是示出根据本披露实施例的计算装置的示意框图;
图3是示出根据本披露实施例的计算装置的详细示意框图;
图4是示出根据本披露实施例的执行反卷积操作的方法的详细流程图;
图5是示出根据本披露实施例的卷积核拆分过程的示意图;
图6是示出根据本披露实施例的一种组合处理装置的结构框图;以及
图7是示出根据本披露实施例的一种板卡的结构框图。
具体实施方式
本披露的技术方案提供了一种用于执行反卷积操作的方法、集成电路板卡及其相应的计算装置。具体地,本披露提出利用拆分卷积核的方式,降低输入数据的补零数量,减少由其造成的大量冗余运算,不仅可以提升硬件运算资源的实际利用率,缩减数据在运算资源上的存储成本,节约数据的存取开销,还因此缩短了反卷积运算的耗时,从而降低了反卷积操作的运算成本并提升其效率。
现在将参考附图描述本发明的实施例。应当理解,本申请阐述了许多具体细节以便提供对本文所述实施例的透彻理解。然而,本领域普通技术人员在本披露的教导下,可以在没有这些具体细节的情况下实施本文所描述的多个实施例。在其他情况下,本申请公开的内容没有详细描述公知的方法、过程和组件,以避免不必要地模糊本文描述的实施例。进一步,该描述也不应被视为限制本披露多个实施例的范围。
下面将结合附图,对本披露的多个实施例中的技术方案进行清楚和完整地描述。
图1是示出根据本披露实施例的神经网络100的结构示意图。如图1中示意性示出的,神经网络100可以包括三个层,即输入层、隐藏层(包含若干个具体的层)和输出层。输入层的神经元(如图中所示出的三个垂直排列的方框中的x1、x2和x3)被称为输入神经元。作为神经网络中的第一层,输入层的神经元接受需要输入的信号并将它们传递到下一层。对于位于神经网络输入层和输出层之间的隐藏层,其根据应用场景的不同可以进一步细分为如图中所示出的卷积层、激活层、池化层和全连接层等各类线性层和非线性层。经过隐藏层中与各层关联的算子的处理后,数据处理流程到达可以位于神经网络隐藏层最后部分的全连接层和整个神经网络的输出层。
在实际应用中,初始的神经网络可能不会提供一个很好的结果,需要预先利用大量的样本数据(包含输入和输出)对初始神经网络进行训练。通过多次的训练过程,可以得到一个具有高准确率的神经网络。神经网络的训练过程可以分为两个阶段,第一阶段是信号(或者称数据)的正向处理操作(即图中示出的前向传播过程),第二阶段是反向传播梯度操作(即图中示出的反向传播过程)。在正向处理过程中,数据从输入层经过隐含层,最后到达输出层。在隐藏层中,以卷积层为例,其包含多个卷积核,在该多个卷积核经过多次卷积和激活等相应操作后,将得到的预测中间结果值传递给隐含层中的下一层。在后面的层中执行相同的操作,最后在神经网络的输出层得到输出值,该输出值被称为预测值。为了减小训练误差并提高神经网络的训练精度,此时可以引入反向传播梯度操作,即训练的反向传播过程。在该过程中,可以将预测值与实际输出值进行比较以获得对应的误差值,并且利用该误差值来计算相应的梯度,以便沿输出层、隐含层和输入层的顺序对包括权值的相关参数进行更新。具体地,在该过程中,根据梯度依次调节或者更新神经网络中每层的权值和/或偏置,以达到减少误差值的目的,进而获得精度符合预期的神经网络。如前所述,在该反向传播过程中将涉及根据本披露公开的反卷积操作。
反卷积(“Deconv”),又称转置卷积(“Transposed Conv”)是神经网络中的一种重要运算操作。在一些应用场景中,反卷积运算不仅可以应用于卷积运算的后向传播过程中,还可用于一些前向传播过程中的图片或场景的分割和检测网络。由于训练过程需要庞大的样本数据集并且其中也涉及大量的反卷积运算,本披露的方案通过对反卷积操作中的卷积核执行拆分操作,可以减少传统地补零操作,并减少由其造成的大量冗余运算,由此提升硬件运算资源的实际利用率,并且加快反卷积操作的速度。
上面结合图1简要描述了可以实施本披露技术方案的神经网络的示例结构图。可以理解的是,上文关于神经网络的介绍仅仅是示例性的而非限制性的,本领域技术人员根据需要可以对图中所示结构做出适当的修改而不影响本披露方案的实施。进一步,本披露的反卷积操作并不限于应用于神经网络的训练过程中,而是还可以应用于其他相关或类似的场景中,例如图像分类、图像分割、图像生成、边缘检测等场景中。
图2是示出根据本披露实施例的计算装置200的示意框图。如本领域技术人员将要理解的,计算装置200执行操作所涉及的神经网络可以是结合图1所描述的神经网络,因此关于图1所描述的神经网络的细节同样也适用于下文的描述。
如图2中所示,本披露的计算装置200除其他以外可以包括拆核单元201和运算单元202。根据本披露的方案,拆核单元201可以配置成对反卷积操作中的卷积核执行拆分操作,以获得多个子卷积核。在一个实施例中,卷积核可以表达为多维矩阵,例如二维矩阵。通过分别定义该二维矩阵的宽度值(即列数,表示为fw)和高度值(即行数,表示为fh),可以定义该二维卷积核的大小。为了实现将卷积核拆分(或者说转换)为多个子卷积核,本披露的方案还引入用于拆分操作的步长(简称为拆核步长)。在一些应用场景中,前述的拆核步长可以通过一个具有四个元素的一维张量来表达,例如可以表达为[1,水平滑动值,垂直滑动值,1],其第一个元素与第四个元素规定为1。例如设置拆核步长是2,即可以表示为[1,2,2,1],并且该拆核步长的第二个元素“2”和第三个元素“2”可以分别表示为拆核步长的宽度值(即水平滑动值,表示为sw)和高度值(即垂直滑动值,表示为sh)。
在一些实施例中,拆核单元可以根据预定的拆核步长和反卷积运算的运算顺序,针对于卷积核来执行拆分操作(例如图5中示出的卷积核拆分过程,稍后详细描述),以获得多个子卷积核。具体地,拆核单元首先可以利用拆核步长在卷积核中确定每个子卷积核的首元素。接着,拆核单元可以根据每个子卷积核首元素在卷积核中的位置,通过拆核步长从所述位置沿所述卷积核滑动,顺序地确定每个子卷积核的剩余元素。在一个实施例中,可以通过拆核步长的宽度值和高度值的乘积结果来确定卷积核拆分后获得的子卷积核的数目。例如,对于宽度值和高度值都为2的2*2拆核步长,利用其对卷积核执行拆分后可以获得2×2=4个子卷积核。
在拆核单元将卷积核拆分成多个子卷积核后,计算装置200中的运算单元202可以配置成利用所述多个子卷积核的每个子卷积核与所述输入数据进行所述反卷积运算,以获得反卷积结果。在一个实施例中,运算单元首先可以根据每个子卷积核在高度和宽度两个维度上的大小,确定输入数据在高度和宽度上的外围补零位置。接着,运算单元可以根据所述外围补零位置,对每个子卷积核及其输入数据进行反卷积运算,以获得关联于每个所述子卷积核的反卷积子结果。在一些应用场景中,当前述的反卷积子结果已经满足应用的需求时,该多个反卷积子结果即可以视为最终的反卷积结果。替代地,还可以通过对该反卷积子结果执行附加的操作来获得最终的反卷积结果。例如,可以根据所述每个子卷积核首元素在所述卷积核中的位置、所述拆分操作中确定所述子卷积核的顺序以及用于反卷积操作的裁剪参数,将多个所述反卷积子结果按顺序进行布置,以获得反卷积结果。
图3是示出根据本披露实施例的计算装置300的详细示意框图。如图3所示,计算装置300除其他以外可以包括拆核单元301和运算单元302。需要理解的是,图3中所示出的拆核单元和运算单元与结合图2描述的拆核单元和运算单元相同或相类似,因此关于图2中所描述的拆核单元和运算单元的细节也同样地适用于图3的情形,此处不再赘述。
在一个实施例中,计算装置300进一步可以包括核预处理单元303和输入预处理单元304。根据本披露的方案,核预处理单元303可以配置成在拆核单元301对卷积核执行拆分操作前,将所述卷积核在高度和宽度两个维度上旋转预定的角度以适于拆分。在完成对卷积核的旋转处理后,拆核单元301可以配置成对卷积核执行拆分操作,以获得多个子卷积核。进一步在计算装置300中示出的是输入预处理单元304,其可以配置成在针对每个子卷积核执行相应的反卷积运算前,对输入数据执行预处理操作,以用于反卷积运算。
关于上述的预处理操作,在一个实施例中,输入预处理单元可以根据每个子卷积核在高度和宽度两个维度上的大小,对输入数据在高度和宽度两个维度上执行沿所述输入数据外围的补零操作。例如,所述输入预处理单元可以配置成根据每个所述子卷积核的高度值和宽度值分别与1的差值,在高度和宽度两个维度上对与所述子卷积核关联的输入数据执行外围的补零操作。由于子卷积核的引入,本披露的补零操作仅在输入数据的外围进行补零而并不需要在输入数据内的元素之间进行补零操作,从而显著地减少了对输入数据的冗余操作,简化了反卷积操作并节省了计算开销。
在输入预处理单元完成输入数据的预处理操作后,运算单元302可以配置成利用每个子卷积核及其关联的输入数据进行反卷积运算,以获得多个反卷积子结果。在一些实现场景中,可以对前述的多个反卷积子结果执行进一步的处理,从而获得最终的反卷积结果。为此,计算装置300还可以附加地包括还原单元305和裁剪单元306。在一个实施例中,还原单元305可以配置成根据每个子卷积核首元素在所述卷积核中的位置和所述拆分操作中确定所述子卷积核的顺序,将多个所述反卷积子结果按顺序存储。接着,与还原单元305连接的裁剪单元306可以配置成根据用于反卷积操作的裁剪参数对按顺序存储后的多个所述反卷积子结果进行裁剪(例如在宽度和高度两个维度上进行裁剪),以获得反卷积结果。在一些实现场景中,替代于前述的还原单元305和裁剪单元306,计算装置300可以包括布置单元307,该布置单元307可以配置成根据每个子卷积核首元素在待拆分的卷积核中的位置、所述拆分操作中确定所述子卷积核的顺序以及用于反卷积操作的裁剪参数,将多个反卷积子结果按顺序进行布置,以获得反卷积结果。
上文结合图3示意性地描述了本披露的用于反卷积操作的计算装置。尽管图3以分离的方式示出了除拆核单元和运算单元以外的多个可选或附加单元,例如核预处理单元或布置单元等,但本领域技术人员根据前述结合附图的描述可以理解这些可选或附加的单元也可以集成于拆核单元或运算单元中,作为其中的一部分单元或者模块。进一步,根据上文的描述,本领域技术人员可以理解上文所示出的计算装置(即图2中的计算装置200和图3中的计算装置300)也可以实现于一种集成电路板卡中。当所述计算装置或所述集成电路板卡工作时,可以执行前述结合图2和图3所描述的反卷积操作,即对卷积核执行拆分操作,以获得多个子卷积核;以及对所述多个子卷积核的每个子卷积核和所述输入数据进行所述反卷积运算,以获得反卷积结果。
图4是示出根据本披露实施例的执行反卷积操作的方法400的详细流程图。为了便于理解,图4在其左侧部分示出方法400的流程步骤,而在右侧示出与该流程步骤相对应的具体数据处理示例。
如图4所示,在步骤401处,方法400获取参与反卷积运算的基本数据。在一个实施例中,该基本数据可以包括输入数据(例如一维或多维数据矩阵)、卷积核(例如二维、三维或四维矩阵)和拆核步长(例如2*2)。附加地,输入数据还可以包括裁剪参数(例如3*2)。在右侧的示例中,示出了作为前述输入数据的具体示例的6*6矩阵,以及作为卷积核具体示例的2*3矩阵。
在步骤402处,针对于卷积核执行拆分前,方法400可以将卷积核在高度和宽度两个维度上旋转预定的角度。该预定的角度可以根据实际应用场景确定。例如,在图4右侧的相应示例中,卷积核在高度和宽度两个维度上分别旋转180度,即每个元素的行列位置分别旋转180度,并且旋转180度后的卷积核高度值和宽度值不变。在一个应用场景中,替代地,方法400可以在步骤401处直接获取完成旋转操作后的卷积核,即在高度和宽度两个维度上,按预定的角度完成旋转操作后的卷积核。在该情形下,方法400可以省略步骤402而直接执行步骤403。需要注意的是,不同的旋转角度可以形成该卷积核的元素位置、高度值和宽度值的不同变化,即形成不同的待拆分卷积核。
接着,在步骤403处,方法400根据预定的拆核步长和反卷积运算的运算顺序,在卷积核中确定每个子卷积核的首元素。在与步骤403对应的右侧图示中,通过利用拆核步长2*2和反卷积运算的运算顺序,可以在旋转后待拆分的卷积核中确定每个子卷积核的首元素分别是“6”、“5”、“3”和“2”(以虚线框在图中圈出拆核步长所覆盖的所有首元素)。进一步,在步骤404处,方法400根据每个子卷积核的首元素位置通过拆核步长从所述位置沿卷积核滑动,顺序地确定每个子卷积核的剩余元素。
在右侧相应的示例中,根据拆分操作,可以获得的子卷积核的数目等于拆核步长的宽度值(接前例是2)和高度值(接前例是2)的乘积结果,即4个子卷积核,即子卷积核①、子卷积核②、子卷积核③和子卷积核④。具体地,根据确定的子卷积核①的首元素“6”的位置利用拆核步长2*2从所述位置沿待拆分的卷积核(前述是2*3的矩阵)滑动,按照反卷积的运算顺序确定该子卷积核①的剩余元素为“4”,即拆核步长2*2沿水平方向滑动2列后,位于拆核步长覆盖范围中的第1行第1列元素(也即首元素“6”的位置)。对于剩余的子卷积核②、③和④,也可以根据其各自的首元素“5”、“3”和“2”的位置(即在拆核步长覆盖范围中的位置),采用同样的方式获得各自的剩余元素。在获得所有子卷积核的剩余元素后,可以确定子卷积核①和③是大小为1*2的矩阵,即其高度值和宽度值分别是“1”和“2”,而子卷积核②和④是大小为1*1的矩阵,即其高度值和宽度值都是“1”。
在完成每个子卷积核的首元素和剩余元素的确定后,方法400前进至步骤405处,可以根据每个所述子卷积核的高度值和宽度值分别与1的差值,在高度和宽度两个维度上对与所述子卷积核关联的输入数据执行外围的补零操作。与步骤405相对应,在右侧图示中,可以分别计算子卷积核①、③高度值与1的差值为0,宽度值与1的差值为1,由此可以仅对子卷积核①、③关联的输入数据在宽度的维度(即列维度)上执行外围左右两端各增加一列“0”的补零操作,而高度的维度上无需补零。因此,在执行外围补零操作后,针对于与子卷积核①、③关联的输入数据,其大小变成6*8的矩阵。与之相反,由于子卷积核②、④的高度值和宽度值与1的差值都是零,因此与该两个子卷积核关联的输入数据无需执行补零操作,其输入数据保持不变。如前面所提到的,由于本披露引入的子卷积核,此处的补零操作仅仅涉及输入数据外围的补零,并不涉及输入数据内,例如输入矩阵内元素间的补零,从而可以显著减小补零的数目。
在确定了各子卷积核关联的输入数据后,在步骤406处,方法400对每个子卷积核与其关联的输入数据执行反卷积运算,以获得多个反卷积子结果。对应地,在右侧的示例中,每个子卷积核执行反卷积运算后可以获得关联的反卷积子结果,从而对于4个子卷积核①、②、③和④,执行反卷积运算后可以获得4个反卷积子结果(①)、(②)、(③)和(④)。接着,在步骤407处,方法400根据每个子卷积核首元素在卷积核中的位置和拆分操作中确定的子卷积核顺序,将多个反卷积子结果按顺序存储。在右侧的示例中,反卷积子结果(①)、(②)、(③)和(④)中的各自首元素(以“1”简化表示),按照其关联的各子卷积核首元素在所述待拆分卷积核中的位置按顺序存储,并且接着从所述位置按照拆分子卷积核的顺序,将每个反卷积子结果的剩余元素顺序地存储,以获得一个存储包含4个反卷积子结果的12*12的矩阵。
最后,在步骤408处,方法400根据用于反卷积操作的裁剪参数对按顺序存储后的多个所述反卷积子结果进行裁剪,以获得所述反卷积结果。在一个示例性的应用场景中,可以通过裁剪参数(例如大小为3*2)或者裁剪参数数组(例如[2,1,1,1])来执行前述的裁剪操作。该裁剪参数或该裁剪参数数组可以包括针对二维矩阵高度和宽度两个维度上的外围需要裁剪的行数和列数。例如,在图中右侧相应的示例中,利用最初获取的裁剪参数3*2或裁剪参数数组(2,1,1,1),对存储多个反卷积子结果的12*12的矩阵,分别裁剪该矩阵最上2行、最下1行、最左和最右各一列,以获得反卷积结果为9*10的矩阵。需要注意的是,由于不同的应用场景,裁剪后的结果会有不同。例如,在反向传播过程中执行这样的反卷积运算,其裁剪结果还与前向传播过程中卷积运算前的输入数据的大小相匹配。
可选地或替代地,方法400也可以在完成步骤404后,省略步骤405而直接执行步骤406。在完成每个子卷积核与其关联的输入数据执行反卷积运算后,替代于步骤407和408,方法400还可以根据每个子卷积核首元素在所述卷积核中的位置、所述拆分操作中确定所述子卷积核的顺序以及用于反卷积操作的裁剪参数,将多个所述反卷积子结果按顺序进行布置,以获得所述反卷积结果。
上文结合图4对本披露方案的实现流程做出了详细的描述,下文将结合图5的示例,借助于公式来具体描述对卷积核进行拆分以获得每个子卷积核的首元素和剩余元素的过程。
图5是示出根据本披露实施例的卷积核拆分过程的示意图。如图5所示,假定待拆分的卷积核501是2*3的矩阵针对于该卷积核,可以根据拆核步长2*2和反卷积运算的运算顺序来对其执行相应的拆分操作,以便顺序地拆分成多个子卷积核。如前所述,可以获得的子卷积核数目等于拆核步长的宽度值和高度值的乘积结果,即可以顺序地拆分成4个子卷积核502、503、504和505。
在一个实施例中,可以采用如下公式确定每个子卷积核首元素和剩余元素位置与待拆分的卷积核元素位置的对应关系:
Filter”i,j(n,m)=Filter'(i+n*sw,j+m*sh) (1)
(i∈[1,sw],j∈[1,sh],n∈{n∈N+|i+n*sw≤fw},m∈{m∈|j+m*sh≤fh});
其中,Filter”表示拆分后的子卷积核,sw表示拆核步长宽度,sh表示拆核步长高度;i表示子卷积核在拆核步长的宽度(sw)维度上的行序号,i∈[1,sw];j表示子卷积核在拆核步长的高度(sh)维度上的列序号,j∈[1,sh];Filter”i,j即每个子卷积核的行列坐标;n表示子卷积核Filter”i,j元素的行坐标,m表示子卷积核Filter”i,j元素的列坐标。Filter'表示待拆分的卷积核,fw表示待拆分卷积核的宽度,fh是待拆分卷积核的高度,N+表示非负整数,即可以是{0,1,2,3,…}中任一正整数。
如图5中所示,sw=2,sh=2,子卷积核502是1*2的矩阵[6 4]即Filter”0,0,其首元素Filter”0,0(0,0)可以利用前述公式(1)计算确定对应待拆分卷积核Filter'(0,0),即“6”;该子卷积核剩余元素Filter”0,0(0,1)也可以利用前述公式(1)计算确定对应待拆分卷积核Filter'(0,2),即“4”。Filter”0,0元素计算过程如下表示:
Filter”0,0(0,0)=Filter'(0+0*2,0+0*2)=Filter'(0,0)=6
Filter”0,0(0,1)=Filter'(0+0*2,0+1*2)=Filter'(0,2)=4。
子卷积核503是1*1的矩阵[5]即Filter”0,1,其首元素Filter”0,1(0,0)可以利用前述公式(1)计算确定对应待拆分卷积核Filter'(0,1),即“5”;Filter”0,1元素计算过程如下,并且该子卷积核无剩余元素:
Filter”0,1(0,0)=Filter'(0+0*2,1+0*2)=Filter'(0,1)=5。
子卷积核504是1*2的矩阵[3 1]即Filter”1,0,其首元素Filter”1,0(0,0)可以利用前述公式(1)计算确定对应待拆分卷积核Filter'(1,0),即“3”;该子卷积核剩余元素Filter”1,0(0,1)也可以利用前述公式(1)计算确定对应待拆分卷积核Filter'(1,2),即“1”。Filter”1,0元素计算过程如下:
Filter”1,0(0,0)=Filter'(1+0*2,0+0*2)=Filter'(1,0)=3
Filter”1,0(0,1)=Filter'(1+0*2,0+1*2)=Filter'(1,2)=1。
子卷积核505是1*1的矩阵[2]即Filter”1,1,其首元素Filter”1,1(0,0)可以利用前述公式(1)计算确定对应待拆分卷积核Filter'(1,1),即“2”;Filter”1,1元素计算过程如下,该子卷积核无剩余元素:
Filter”1,1(0,0)=Filter'(1+0*2,1+0*2)=Filter'(1,1)=2。
应当理解的是上文关于卷积核、拆核步长和子卷积核的描述仅仅是示例性的而非限制性的,本领域技术人员在本披露的教导下,可以对确定卷积核和拆核步长的大小,以及对卷积核拆分获得的子卷积核的个数及其大小进行改变而不脱离本披露的精神和所附权利要求书所限定的范围。
图6是示出根据本披露实施例的一种组合处理装置600的结构框图。如图6所示,该组合处理装置600包括具有前述架构的计算装置602,其可以配置用于前述结合附图所描述的执行反卷积操作的方法。另外,该组合处理装置还包括通用互联接口604和其他处理装置606。根据本披露的计算装置602可以通过通用互联接口604与其他处理装置606进行交互,共同完成用户指定的相关操作。
根据本披露的方案,该其他处理装置可以包括中央处理器(“CPU”)、图形处理器(“GPU”)、神经网络处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目可以不做限制而是根据实际需要来确定。在一个或多个实施例中,该其他处理装置可以作为本披露的计算装置与外部数据和控制的接口,执行包括但不限于数据搬运,完成对计算装置的开启、停止等的基本控制;其他处理装置也可以和计算装置协作共同完成运算任务。
根据本披露的方案,该通用互联接口可以用于在计算装置与其他处理装置间传输数据和控制指令。例如,该计算装置可以经由所述通用互联接口从其他处理装置中获取所需的输入数据,写入该计算装置片上的存储装置(或称存储器)。进一步,该计算装置可以经由所述通用互联接口从其他处理装置中获取控制指令,写入计算装置片上的控制缓存。替代地或可选地,通用互联接口也可以读取计算装置的存储模块中的数据并传输给其他处理装置。
可选的,该组合处理装置还可以包括存储装置608,其可以分别与所述计算装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算装置和所述其他处理装置的数据,尤其是那些在本计算装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
根据应用场景的不同,本披露的组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,调节芯片的频率以降低整体功耗。在此情况下,该组合处理装置的通用互联接口与设备的某些部件相连接。其中某些部件例如可以是摄像头、显示器、鼠标、键盘、网卡或Wifi接口。
在一些实施例里,本披露还公开了一种芯片,其包括了上述计算装置或组合处理装置。在另一些实施例里,本披露还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本披露还公开了板卡,其包括了上述芯片封装结构。参阅图7,其提供了前述的示例性板卡,上述板卡除了包括上述芯片702以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件704、接口装置706和控制器件708。
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元710。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDRSDRAM(“Double Data Rate SDRAM,双倍速率同步动态随机存储器”)。
上述DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储器件可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备712(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选地,当采用PCIE3.0X16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体地,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括CPU或者单片机。在一个或多个实施例中,所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,本披露还公开了一种电子设备或装置,其包括了上述板卡。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是通过电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例的方案。另外,在本披露各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(“ROM,Read-OnlyMemory”)、随机存取存储器(“RAM,Random Access Memory”)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在本披露的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1、一种用于执行反卷积操作的计算装置,所述反卷积操作包括输入数据与卷积核之间的反卷积运算,所述计算装置包括:
拆核单元,其配置成对所述卷积核执行拆分操作,以获得多个子卷积核;以及
运算单元,其配置成利用所述多个子卷积核的每个子卷积核与所述输入数据进行所述反卷积运算,以获得反卷积结果。
条款A2、根据条款A1所述的计算装置,进一步包括核预处理单元,其配置成在所述拆核单元对所述卷积核执行拆分操作前,将所述卷积核在高度和宽度两个维度上旋转预定的角度。
条款A3、根据条款A2所述的计算装置,其中所述拆核单元配置成根据预定的拆核步长和所述反卷积运算的运算顺序,执行以下的所述拆分操作:
在所述卷积核中确定每个子卷积核的首元素;以及
根据所述首元素在所述卷积核中的位置,通过所述拆核步长从所述位置沿所述卷积核滑动,顺序地确定每个子卷积核的剩余元素。
条款A4、根据条款A3所述的计算装置,其中所述子卷积核的数目等于所述拆核步长的宽度值和高度值的乘积结果。
条款A5、根据条款A4所述的计算装置,进一步包括输入预处理单元,其配置成对所述输入数据执行以下预处理,以用于所述反卷积运算:
根据每个所述子卷积核在高度和宽度两个维度上的大小,对所述输入数据在高度和宽度两个维度上执行沿所述输入数据外围的补零操作。
条款A6、根据条款A5所述的计算装置,其中所述输入预处理单元配置成根据每个所述子卷积核的高度值和宽度值分别与1的差值,在高度和宽度两个维度上对与所述子卷积核关联的输入数据执行外围的补零操作。
条款A7、根据条款A3所述的计算装置,其中在所述反卷积运算中,所述运算单元配置成:
根据每个所述子卷积核在高度和宽度两个维度上的大小,确定所述输入数据在高度和宽度上的外围补零位置;以及
根据所述外围补零位置,对所述每个所述子卷积核及其输入数据进行所述反卷积运算。
条款A8、根据条款A3-A7的任意一项所述的计算装置,其中所述反卷积结果包括关联于每个所述子卷积核的反卷积子结果,所述计算装置进一步包括还原单元,其配置成:
根据所述首元素在所述卷积核中的位置和所述拆分操作中确定所述子卷积核的顺序,将多个所述反卷积子结果按顺序存储。
条款A9、根据条款A8所述的计算装置,进一步包括裁剪单元,其配置成根据用于反卷积操作的裁剪参数对按顺序存储后的多个所述反卷积子结果进行裁剪。
条款A10、根据条款A3-A7的任意一项所述的计算装置,其中所述反卷积结果包括关联于每个所述子卷积核的反卷积子结果,所述计算装置进一步包括布置单元,其配置成:
根据所述首元素在所述卷积核中的位置、所述拆分操作中确定所述子卷积核的顺序以及用于反卷积操作的裁剪参数,将多个所述反卷积子结果按顺序进行布置,以获得所述反卷积结果。
条款A11、一种用于执行反卷积操作的方法,所述反卷积操作包括输入数据与卷积核之间的反卷积运算,所述方法包括:
对所述卷积核执行拆分操作,以获得多个子卷积核;以及
对所述多个子卷积核的每个子卷积核和所述输入数据进行所述反卷积运算,以获得反卷积结果。
条款A12、一种集成电路板卡,包括根据条款A1-A10的任意一项所述的计算装置。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果经过判断[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。
Claims (10)
1. 一种用于执行反卷积操作的计算装置,所述反卷积操作包括输入数据与卷积核之间的反卷积运算,适用于图像分类、图像分割、图像生成及边缘检测场景,所述计算装置包括:
拆核单元,其配置成对所述卷积核执行拆分操作,以获得多个子卷积核;以及
运算单元,其配置成利用所述多个子卷积核的每个子卷积核与所述输入数据进行所述反卷积运算,以获得反卷积结果;
其中所述的计算装置,进一步包括核预处理单元,其配置成在所述拆核单元对所述卷积核执行拆分操作前,将所述卷积核在高度和宽度两个维度上旋转预定的角度;
其中所述拆核单元配置成根据预定的拆核步长和所述反卷积运算的运算顺序,执行以下的所述拆分操作:
在所述卷积核中确定每个子卷积核的首元素;以及
根据所述首元素在所述卷积核中的位置,通过所述拆核步长从所述位置沿所述卷积核滑动,顺序地确定每个子卷积核的剩余元素。
2.根据权利要求1所述的计算装置,其中所述子卷积核的数目等于所述拆核步长的宽度值和高度值的乘积结果。
3.根据权利要求2所述的计算装置,进一步包括输入预处理单元,其配置成对所述输入数据执行以下预处理,以用于所述反卷积运算:
根据每个所述子卷积核在高度和宽度两个维度上的大小,对所述输入数据在高度和宽度两个维度上执行沿所述输入数据外围的补零操作。
4.根据权利要求3所述的计算装置,其中所述输入预处理单元配置成根据每个所述子卷积核的高度值和宽度值分别与1的差值,在高度和宽度两个维度上对与所述子卷积核关联的输入数据执行外围的补零操作。
5. 根据权利要求1所述的计算装置,其中在所述反卷积运算中,所述运算单元配置成:
根据每个所述子卷积核在高度和宽度两个维度上的大小,确定所述输入数据在高度和宽度上的外围补零位置;以及
根据所述外围补零位置,对所述每个所述子卷积核及其输入数据进行所述反卷积运算。
6.根据权利要求1-5的任意一项所述的计算装置,其中所述反卷积结果包括关联于每个所述子卷积核的反卷积子结果,所述计算装置进一步包括还原单元,其配置成:
根据所述首元素在所述卷积核中的位置和所述拆分操作中确定所述子卷积核的顺序,将多个所述反卷积子结果按顺序存储。
7.根据权利要求6所述的计算装置,进一步包括裁剪单元,其配置成根据用于反卷积操作的裁剪参数对按顺序存储后的多个所述反卷积子结果进行裁剪。
8.根据权利要求1-5的任意一项所述的计算装置,其中所述反卷积结果包括关联于每个所述子卷积核的反卷积子结果,所述计算装置进一步包括布置单元,其配置成:
根据所述首元素在所述卷积核中的位置、所述拆分操作中确定所述子卷积核的顺序以及用于反卷积操作的裁剪参数,将多个所述反卷积子结果按顺序进行布置,以获得所述反卷积结果。
9. 一种用于执行反卷积操作的方法,所述反卷积操作包括输入数据与卷积核之间的反卷积运算,适用于图像分类、图像分割、图像生成及边缘检测场景,所述方法包括:
对所述卷积核执行拆分操作,以获得多个子卷积核;以及
对所述多个子卷积核的每个子卷积核和所述输入数据进行所述反卷积运算,以获得反卷积结果;
其中在对所述卷积核执行拆分操作前,将所述卷积核在高度和宽度两个维度上旋转预定的角度;
其中对所述卷积核执行拆分操作是根据预定的拆核步长和所述反卷积运算的运算顺序来执行拆分操作,包括:
在所述卷积核中确定每个子卷积核的首元素;以及
根据所述首元素在所述卷积核中的位置,通过所述拆核步长从所述位置沿所述卷积核滑动,顺序地确定每个子卷积核的剩余元素。
10.一种集成电路板卡,包括根据权利要求1-8的任意一项所述的计算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010556340.8A CN113807489B (zh) | 2020-06-17 | 2020-06-17 | 用于执行反卷积操作的方法、板卡及其计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010556340.8A CN113807489B (zh) | 2020-06-17 | 2020-06-17 | 用于执行反卷积操作的方法、板卡及其计算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113807489A CN113807489A (zh) | 2021-12-17 |
CN113807489B true CN113807489B (zh) | 2024-04-02 |
Family
ID=78892769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010556340.8A Active CN113807489B (zh) | 2020-06-17 | 2020-06-17 | 用于执行反卷积操作的方法、板卡及其计算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113807489B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451654A (zh) * | 2017-07-05 | 2017-12-08 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
CN109886400A (zh) * | 2019-02-19 | 2019-06-14 | 合肥工业大学 | 基于卷积核拆分的卷积神经网络硬件加速器系统及其计算方法 |
-
2020
- 2020-06-17 CN CN202010556340.8A patent/CN113807489B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451654A (zh) * | 2017-07-05 | 2017-12-08 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
CN109886400A (zh) * | 2019-02-19 | 2019-06-14 | 合肥工业大学 | 基于卷积核拆分的卷积神经网络硬件加速器系统及其计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113807489A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096310B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112765540B (zh) | 数据处理方法、装置及相关产品 | |
US20200242468A1 (en) | Neural network computation device, neural network computation method and related products | |
WO2021082725A1 (zh) | Winograd卷积运算方法及相关产品 | |
CN111028136B (zh) | 一种人工智能处理器处理二维复数矩阵的方法和设备 | |
CN111124995A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
CN111125628A (zh) | 人工智能处理器处理二维数据矩阵的方法和设备 | |
WO2021018313A1 (zh) | 数据同步方法及装置以及相关产品 | |
CN112766473B (zh) | 运算装置及相关产品 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
CN111143766A (zh) | 人工智能处理器处理二维复数矩阵的方法和设备 | |
CN112084023A (zh) | 数据并行处理的方法、电子设备及计算机可读存储介质 | |
CN113807489B (zh) | 用于执行反卷积操作的方法、板卡及其计算装置 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
EP4053746A1 (en) | Winograd convolution operation method, apparatus, and device, and storage medium | |
US20240303295A1 (en) | Operation apparatus and related product | |
CN113112009B (zh) | 用于神经网络数据量化的方法、装置和计算机可读存储介质 | |
CN113469333A (zh) | 执行神经网络模型的人工智能处理器、方法及相关产品 | |
CN112395008A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111125627A (zh) | 用于池化多维矩阵的方法及相关产品 | |
CN112765542A (zh) | 运算装置 | |
CN112784207B (zh) | 运算方法及相关产品 | |
CN112395009A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112395002B (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 |