CN111428189B - 一种用于反卷积运算的数据预处理方法及装置 - Google Patents

一种用于反卷积运算的数据预处理方法及装置 Download PDF

Info

Publication number
CN111428189B
CN111428189B CN202010249282.4A CN202010249282A CN111428189B CN 111428189 B CN111428189 B CN 111428189B CN 202010249282 A CN202010249282 A CN 202010249282A CN 111428189 B CN111428189 B CN 111428189B
Authority
CN
China
Prior art keywords
deconvolution
kernel
extraction
elements
sub
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
Application number
CN202010249282.4A
Other languages
English (en)
Other versions
CN111428189A (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN202010249282.4A priority Critical patent/CN111428189B/zh
Publication of CN111428189A publication Critical patent/CN111428189A/zh
Application granted granted Critical
Publication of CN111428189B publication Critical patent/CN111428189B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本申请实施例公开了一种用于反卷积运算的数据预处理方法及装置,通过根据反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点,并根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素。上述方法中,硬件加速器在针对子卷积核与输入矩阵执行相乘累加操作时,不会存在大量的无效操作,提高了硬件加速器的计算效率,也无需额外的寄存器存储无效操作得到的中间结果,节省了硬件加速器的存储资源。

Description

一种用于反卷积运算的数据预处理方法及装置
技术领域
本申请涉及集成电路及通信技术领域,尤其涉及一种用于反卷积运算的数据预处理方法及装置。
背景技术
反卷积运算是用于获取输入矩阵与反卷积核之间元素乘积之和的运算方法。目前,在使用硬件加速器执行反卷积运算之前,通常要对反卷积核进行数据预处理,通过补零操作,将反卷积核重新排布成卷积核矩阵,然后将卷积核矩阵以及输入矩阵分别输入至硬件加速器中进行运算。
运算过程中,硬件加速器通过多个基本运算单元对接收到卷积核矩阵数据及输入矩阵数据执行相乘累加操作,并使用多个寄存器存储相乘累加所得的多个中间结果,然后通过累加器对所有中间结果进行累加,获得最终的反卷积运算结果。
在执行反卷积运算之前,由于使用补零操作对反卷积核进行数据预处理,导致卷积核矩阵中存在大量的零,这些零将导致许多基本运算单元所执行的相乘操作为无效操作,这些无效操作不仅降低硬件加速器的计算效率,而且由于需要寄存器来存储这些无效操作所得到的中间结果,将浪费硬件加速器的存储资源。
发明内容
为了解决在执行反卷积运算之前,由于使用补零操作对反卷积核进行数据预处理,导致卷积核矩阵中存在大量的零,这些零将导致许多基本运算单元所执行的相乘操作为无效操作,这些无效操作不仅降低硬件加速器的计算效率,而且由于需要寄存器来存储这些无效操作所得到的中间结果,将浪费硬件加速器的存储资源的问题,本申请通过以下实施例公开了一种用于反卷积运算的数据预处理方法及装置。
本申请第一方面公开了一种用于反卷积运算的数据预处理方法,包括:
获取反卷积核的尺寸以及所述反卷积核的步长;
根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点;
根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素,所述子卷积核用于与输入矩阵共同输入至硬件加速器中进行反卷积运算。
可选的,在根据所述反卷积核的尺寸及所述反卷积核的步长,设定多个抽取起始点之前,所述数据预处理方法还包括:
以所述反卷积核的左上角为原点,水平方向为横轴,垂直方向为纵轴,建立反卷积核坐标系。
可选的,在根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核之前,所述数据预处理方法还包括:
根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内定位重复元素,所述重复元素为在对所述反卷积核进行元素抽取过程中将会被重复抽取到的元素;
将所述重复元素的数值缩小为原来的一半。
可选的,在所述根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核之后,所述数据预处理方法还包括:
将所述输入矩阵与任意一个所述子卷积核共同输入至一个基本运算单元中进行相乘累加操作,获取中间结果,其中,若所述子卷积核为目标重复元素所在的两个子卷积核中的前一个子卷积核,则在将输入矩阵与该子卷积核共同输入至一个基本运算单元中之前,将所述输入矩阵中的所有数据后移一位,所述目标重复元素为任意一个所述重复元素;
将得到的多个中间结果进行累加,获取反卷积运算结果。
可选的,所述根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内定位重复元素,包括:
通过以下公式,定位所述重复元素:
其中,xd表示所述重复元素的横坐标,yd表示所述重复元素的纵坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长。
可选的,所述根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点,包括:
根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内获取所述多个抽取起始点的坐标取值区域,所述坐标取值区域包括横坐标取值区域以及纵坐标取值区域;
将所述坐标取值区域内的所有坐标点设定为所述多个抽取起始点。
可选的,所述根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内获取所述多个抽取起始点的坐标取值区域,包括:
通过以下公式,获取所述横坐标取值区域:
i∈(0,pl-1),pl=Kd mod Sd+Sd
其中,i表示任意一个所述抽取起始点的横坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长;
通过以下公式,获取所述纵坐标取值区域:
j∈(0,pw-1),pw=Sd
其中,j表示任意一个所述抽取起始点的纵坐标。
可选的,所述根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,包括:
从目标抽取起始点开始,以所述反卷积核的步长为所述抽取间隔,按行对所述反卷积核进行抽取,获取多个行元素,其中,所有行元素与所述目标抽取起始点位于所述反卷积核中的同一列,任意两个相邻所述行元素之间的距离为所述反卷积核的步长,所述目标抽取起始点为任意一个所述抽取起始点;
从所述目标抽取起始点以及每一个所述行元素开始,以所述反卷积核的步长为所述抽取间隔,按列对所述反卷积核进行抽取,获取多个列元素;
将所述目标抽取起始点、所述多个行元素与所述多个列元素进行组合,获取目标子卷积核,所述目标子卷积核为与所述目标抽取起始点相对应的子卷积核。
本申请第二方面公开了一种用于反卷积运算的数据预处理装置,所述数据预处理装置应用于本申请第一方面所述的用于反卷积运算的数据预处理方法,所述数据预处理装置包括:
参数获取模块,用于获取反卷积核的尺寸以及所述反卷积核的步长;
抽取起始点设定模块,用于根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点;
抽取模块,用于根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素,所述子卷积核用于与输入矩阵共同输入至硬件加速器中进行反卷积运算。
可选的,所述数据预处理装置还包括:
坐标系建立模块,用于在根据所述反卷积核的尺寸及所述反卷积核的步长,设定多个抽取起始点之前,以所述反卷积核的左上角为原点,水平方向为横轴,垂直方向为纵轴,建立反卷积核坐标系。
可选的,所述数据预处理装置还包括:
重复元素定位模块,用于在根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核之前,根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内定位重复元素,所述重复元素为在对所述反卷积核进行元素抽取过程中将会被重复抽取到的元素;
元素去重模块,用于将所述重复元素的数值缩小为原来的一半。
可选的,所述数据预处理装置还包括:
数据输入模块,用于将所述输入矩阵与任意一个所述子卷积核共同输入至一个基本运算单元中进行相乘累加操作,获取中间结果,其中,若所述子卷积核为目标重复元素所在的两个子卷积核中的前一个子卷积核,则在将输入矩阵与该子卷积核共同输入至一个基本运算单元中之前,将所述输入矩阵中的所有数据后移一位,所述目标重复元素为任意一个所述重复元素;
累加模块,用于将得到的多个中间结果进行累加,获取反卷积运算结果。
可选的,所述重复元素定位模块包括:
重复元素定位单元,用于通过以下公式,定位所述重复元素:
其中,xd表示所述重复元素的横坐标,yd表示所述重复元素的纵坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长。
可选的,所述抽取起始点设定模块包括:
取值区域获取单元,用于根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内获取所述多个抽取起始点的坐标取值区域,所述坐标取值区域包括横坐标取值区域以及纵坐标取值区域;
抽取起始点设定单元,用于将所述坐标取值区域内的所有坐标点设定为所述多个抽取起始点。
可选的,所述取值区域获取单元包括:
横坐标取值区域获取子单元,用于通过以下公式,获取所述横坐标取值区域:
i∈(0,pl-1),pl=Kd mod Sd+Sd
其中,i表示任意一个所述抽取起始点的横坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长;
通过以下公式,获取所述纵坐标取值区域:
j∈(0,pw-1),pw=Sd
其中,j表示任意一个所述抽取起始点的纵坐标。
可选的,所述抽取模块包括:
行抽取单元,用于从目标抽取起始点开始,以所述反卷积核的步长为所述抽取间隔,按行对所述反卷积核进行抽取,获取多个行元素,其中,所有行元素与所述目标抽取起始点位于所述反卷积核中的同一列,任意两个相邻所述行元素之间的距离为所述反卷积核的步长,所述目标抽取起始点为任意一个所述抽取起始点;
列抽取单元,用于从所述目标抽取起始点以及每一个所述行元素开始,以所述反卷积核的步长为所述抽取间隔,按列对所述反卷积核进行抽取,获取多个列元素;
组合单元,用于将所述目标抽取起始点、所述多个行元素与所述多个列元素进行组合,获取目标子卷积核,所述目标子卷积核为与所述目标抽取起始点相对应的子卷积核。
本申请实施例公开了一种用于反卷积运算的数据预处理方法及装置,通过根据反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点,并根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素。硬件加速器在针对子卷积核与输入矩阵执行相乘累加操作时,不会存在大量的无效操作,提高了硬件加速器的计算效率,也无需额外的寄存器存储无效操作得到的中间结果,节省了硬件加速器的存储资源。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种用于反卷积运算的数据预处理方法的工作流程示意图;
图2为本申请实施例公开的一种用于反卷积运算的数据预处理方法中,建立的反卷积核坐标系示意图;
图3为本申请实施例公开的一种用于反卷积运算的数据预处理方法中,抽取所得的多个子卷积核示意图;
图4为本申请实施例公开的一种用于反卷积运算的数据预处理装置的结构示意图。
具体实施方式
为了解决在执行反卷积运算之前,由于使用补零操作对反卷积核进行数据预处理,导致卷积核矩阵中存在大量的零,这些零将导致许多基本运算单元所执行的相乘操作为无效操作,这些无效操作不仅降低硬件加速器的计算效率,而且由于需要寄存器来存储这些无效操作所得到的中间结果,将浪费硬件加速器的存储资源的问题,本申请通过以下实施例公开了一种用于反卷积运算的数据预处理方法及装置。
参见图1所示的工作流程示意图,本申请第一实施例公开的一种用于反卷积运算的数据预处理方法,包括:
步骤S101,获取反卷积核的尺寸以及所述反卷积核的步长。
步骤S102,根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点。
步骤S103,根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素,所述子卷积核用于与输入矩阵共同输入至硬件加速器中进行反卷积运算。
本申请实施例公开了一种用于反卷积运算的数据预处理方法,通过根据反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点,并根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素。硬件加速器在针对子卷积核与输入矩阵执行相乘累加操作时,不会存在大量的无效操作,提高了硬件加速器的计算效率,也无需额外的寄存器存储无效操作得到的中间结果,节省了硬件加速器的存储资源。
进一步的,在根据所述反卷积核的尺寸及所述反卷积核的步长,设定多个抽取起始点之前,所述数据预处理方法还包括:
参见图2,以所述反卷积核的左上角为原点,水平方向为横轴,垂直方向为纵轴,建立反卷积核坐标系。
本申请实施例中,建立反卷积核坐标系之前,还需对反卷积核的元素做对角线旋转,即左上角的元素到转到右下角,右下角的元素转到左上角。
进一步的,所述根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点,包括:
根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内获取所述多个抽取起始点的坐标取值区域,所述坐标取值区域包括横坐标取值区域以及纵坐标取值区域。
在一种实现方式中,通过以下公式,获取所述横坐标取值区域:
i∈(0,pl-1),pl=Kd mod Sd+Sd
其中,i表示任意一个所述抽取起始点的横坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长。mod函数为求余函数,Kd mod Sd表示Kd与Sd做除法运算后所得的余数。
通过以下公式,获取所述纵坐标取值区域:
j∈(0,pw-1),pw=Sd
其中,j表示任意一个所述抽取起始点的纵坐标。
将所述坐标取值区域内的所有坐标点设定为所述多个抽取起始点。
作为示例,若一个反卷积核的尺寸为9,步长为2,那么根据上述公式,可以获取横坐标取值区域为(0,2),纵坐标取值区域为(0,1),坐标取值区域内的所有坐标点包括:(0,0)、(0,1)、(0,2)、(1,0)、(1,1)及(1,2),将所有坐标点皆设定为抽取起始点。
在根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核之前,所述数据预处理方法还包括:
根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内定位重复元素,所述重复元素为在对所述反卷积核进行元素抽取过程中将会被重复抽取到的元素。
本申请实施例中,通过以下公式,定位所述重复元素(xd,yd):
其中,xd表示所述重复元素的横坐标,yd表示所述重复元素的纵坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长。
由于在整个抽取过程中,重复元素会被抽取到两次,因此对重复元素进行去重处理,将所述重复元素的数值缩小为原来的一半。
接下来,针对反卷积核进行元素抽取,获取多个子卷积核。
所述根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,包括:
从目标抽取起始点开始,以所述反卷积核的步长为所述抽取间隔,按行对所述反卷积核进行抽取,获取多个行元素,其中,所有行元素与所述目标抽取起始点位于所述反卷积核中的同一列,任意两个相邻所述行元素之间的距离为所述反卷积核的步长,所述目标抽取起始点为任意一个所述抽取起始点。
从所述目标抽取起始点以及每一个所述行元素开始,以所述反卷积核的步长为所述抽取间隔,按列对所述反卷积核进行抽取,获取多个列元素。
将所述目标抽取起始点、所述多个行元素与所述多个列元素进行组合,获取目标子卷积核,所述目标子卷积核为与所述目标抽取起始点相对应的子卷积核。
作为示例,假设反卷积核的尺寸为9,步长为2,根据上述内容可知,所有的抽取起始点包括(0,0)、(0,1)、(0,2)、(1,0)、(1,1)及(1,2),此处将(0,0)作为目标抽取起始点进行示例性的说明。
首先,从目标起始点(0,0)开始,以反卷积核的步长2为抽取间隔,按行对反卷积核进行抽取,得到行元素:(2,0)、(4,0)、(6,0)及(8,0)。
接着,从目标抽取起始点及所有行元素开始,以反卷积核的步长2为抽取间隔,按列对反卷积核进行抽取。其中,针对目标起始点(0,0),抽取得到的列元素包括(0,2)、(0,4)、(0,6)及(0,8);针对行元素(2,0),抽取得到的列元素包括(2,2)、(2,4)、(2,6)及(2,8);针对行元素(4,0),抽取得到的列元素包括(4,2)、(4,4)、(4,6)及(4,8)。针对行元素(6,0),抽取得到的列元素包括(6,2)、(6,4)、(6,6)及(6,8);针对行元素(8,0),抽取得到的列元素包括(8,2)、(8,4)、(8,6)及(8,8)。
将目标抽取起始、所有的行元素以及所有的列元素,按照坐标位置大小进行组合,便可得到目标子卷积核。
本申请实施例中,组成一个子卷积核的坐标(pd,qd)满足以下公式:
其中,Kc表示水平抽样次数,且li表示垂直抽样次数,且该子卷积核的尺寸为Kc×li
参见图3,按照上述步骤,针对所有的抽取起始点,对反卷积核进行元素抽取,便可获取Nc个子卷积核,其中,Nc=pw×pl。针对图3中示出的尺寸为4,步长为2的反卷积核,可获得4个子卷积核,即子卷积核0,子卷积核1、子卷积核2及子卷积核4。
如图3所示,在一种实现方式中,为了便于后续的卷积计算,可将每个子卷积核按行进行拆分,得到多个一维的子卷积核。
进一步的,在所述根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核之后,所述数据预处理方法还包括:
将所述输入矩阵与任意一个所述子卷积核共同输入至一个基本运算单元中进行相乘累加操作,获取中间结果,其中,若所述子卷积核为目标重复元素所在的两个子卷积核中的前一个子卷积核,则在将输入矩阵与该子卷积核共同输入至一个基本运算单元中之前,将所述输入矩阵中的所有数据后移一位,所述目标重复元素为任意一个所述重复元素。其中,基本运算单元为基于快速FIR算法设计的计算单元,可并行获得几个卷积结果。
将得到的多个中间结果进行累加,获取反卷积运算结果。
本申请实施例中,当Kd/Sd不是整数时,重复元素所在的子卷积核与输入矩阵进行卷积运算时,其每次卷积滑动得到的一维卷积计算结果之间将存在重叠。在将输入矩阵与N个子卷积核输入至硬件加速器中时,用N个基本运算单元来执行一维卷积运算,那么这N个基本运算单元中将会有2V0个基本运算单元产生的一维卷积计算结果需要叠加,其中,Vo=Kdmod Sd×Sd
为了能够将出现重叠的部分直接进行叠加,无需存储至寄存器之后才能进行叠加,上述实施例中,对输入矩阵中的数据进行移位处理,即在将输入矩阵与该子卷积核共同输入至一个基本运算单元中之前,将所述输入矩阵中的所有数据后移一位,使得它们输出的中间结果在空间位置上能够同步,进而可以直接进行相加,无需额外的寄存器进行存储之后才能相加。
在一种实现方式中,可以在相应输入矩阵的首个数据之前***一个零,使得该输入矩阵中的所有数据后移一位。
下述为本申请装置实施例,用于执行上述方法实施例。对于装置实施例中未披露的细节,请参照方法实施例。
本申请第二实施例公开了一种用于反卷积运算的数据预处理装置,所述数据预处理装置应用于本申请第一实施例所述的用于反卷积运算的数据预处理方法,参见图4,所述数据预处理装置包括:
参数获取模块10,用于获取反卷积核的尺寸以及所述反卷积核的步长。
抽取起始点设定模块20,用于根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点。
抽取模块30,用于根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素,所述子卷积核用于与输入矩阵共同输入至硬件加速器中进行反卷积运算。
进一步的,所述数据预处理装置还包括:
坐标系建立模块,用于在根据所述反卷积核的尺寸及所述反卷积核的步长,设定多个抽取起始点之前,以所述反卷积核的左上角为原点,水平方向为横轴,垂直方向为纵轴,建立反卷积核坐标系。
进一步的,所述数据预处理装置还包括:
重复元素定位模块,用于在根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核之前,根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内定位重复元素,所述重复元素为在对所述反卷积核进行元素抽取过程中将会被重复抽取到的元素。
元素去重模块,用于将所述重复元素的数值缩小为原来的一半。
进一步的,所述数据预处理装置还包括:
数据输入模块,用于将所述输入矩阵与任意一个所述子卷积核共同输入至一个基本运算单元中进行相乘累加操作,获取中间结果,其中,若所述子卷积核为目标重复元素所在的两个子卷积核中的前一个子卷积核,则在将输入矩阵与该子卷积核共同输入至一个基本运算单元中之前,将所述输入矩阵中的所有数据后移一位,所述目标重复元素为任意一个所述重复元素。
累加模块,用于将得到的多个中间结果进行累加,获取反卷积运算结果。
进一步的,所述重复元素定位模块包括:
重复元素定位单元,用于通过以下公式,定位所述重复元素:
其中,xd表示所述重复元素的横坐标,yd表示所述重复元素的纵坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长。
进一步的,所述抽取起始点设定模块包括:
取值区域获取单元,用于根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内获取所述多个抽取起始点的坐标取值区域,所述坐标取值区域包括横坐标取值区域以及纵坐标取值区域。
抽取起始点设定单元,用于将所述坐标取值区域内的所有坐标点设定为所述多个抽取起始点。
进一步的,所述取值区域获取单元包括:
横坐标取值区域获取子单元,用于通过以下公式,获取所述横坐标取值区域:
i∈(0,pl-1),pl=Kd mod Sd+Sd
其中,i表示任意一个所述抽取起始点的横坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长。
通过以下公式,获取所述纵坐标取值区域:
j∈(0,pw-1),pw=Sd
其中,j表示任意一个所述抽取起始点的纵坐标。
进一步的,所述抽取模块包括:
行抽取单元,用于从目标抽取起始点开始,以所述反卷积核的步长为所述抽取间隔,按行对所述反卷积核进行抽取,获取多个行元素,其中,所有行元素与所述目标抽取起始点位于所述反卷积核中的同一列,任意两个相邻所述行元素之间的距离为所述反卷积核的步长,所述目标抽取起始点为任意一个所述抽取起始点。
列抽取单元,用于从所述目标抽取起始点以及每一个所述行元素开始,以所述反卷积核的步长为所述抽取间隔,按列对所述反卷积核进行抽取,获取多个列元素。
组合单元,用于将所述目标抽取起始点、所述多个行元素与所述多个列元素进行组合,获取目标子卷积核,所述目标子卷积核为与所述目标抽取起始点相对应的子卷积核。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

Claims (6)

1.一种用于反卷积运算的数据预处理方法,其特征在于,包括:
获取反卷积核的尺寸以及所述反卷积核的步长;
以所述反卷积核的左上角为原点,水平方向为横轴,垂直方向为纵轴,建立反卷积核坐标系;
根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点,在所述反卷积核坐标系内定位重复元素,所述重复元素为在对所述反卷积核进行元素抽取过程中将会被重复抽取到的元素,将所述重复元素的数值缩小为原来的一半;
从目标抽取起始点开始,以所述反卷积核的步长为抽取间隔,按行对所述反卷积核进行抽取,获取多个行元素,其中,所有行元素与所述目标抽取起始点位于所述反卷积核中的同一列,任意两个相邻所述行元素之间的距离为所述反卷积核的步长,所述目标抽取起始点为任意一个所述抽取起始点;
从所述目标抽取起始点以及每一个所述行元素开始,以所述反卷积核的步长为所述抽取间隔,按列对所述反卷积核进行抽取,获取多个列元素;
将所述目标抽取起始点、所述多个行元素与所述多个列元素进行组合,获取目标子卷积核,所述目标子卷积核为与所述目标抽取起始点相对应的子卷积核;
将输入矩阵与任意一个所述子卷积核共同输入至一个基本运算单元中进行相乘累加操作,获取中间结果,其中,若所述子卷积核为目标重复元素所在的两个子卷积核中的前一个子卷积核,则在将输入矩阵与该子卷积核共同输入至一个基本运算单元中之前,将所述输入矩阵中的所有数据后移一位,所述目标重复元素为任意一个所述重复元素,将得到的多个中间结果进行累加,获取反卷积运算结果;
其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素,所述子卷积核用于与输入矩阵共同输入至硬件加速器中进行反卷积运算。
2.根据权利要求1所述的用于反卷积运算的数据预处理方法,其特征在于,所述根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内定位重复元素,包括:
通过以下公式,定位所述重复元素:
其中,xd表示所述重复元素的横坐标,yd表示所述重复元素的纵坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长。
3.根据权利要求1所述的用于反卷积运算的数据预处理方法,其特征在于,所述根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点,包括:
根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内获取所述多个抽取起始点的坐标取值区域,所述坐标取值区域包括横坐标取值区域以及纵坐标取值区域;
将所述坐标取值区域内的所有坐标点设定为所述多个抽取起始点。
4.根据权利要求3所述的用于反卷积运算的数据预处理方法,其特征在于,所述根据所述反卷积核的尺寸以及所述反卷积核的步长,在所述反卷积核坐标系内获取所述多个抽取起始点的坐标取值区域,包括:
通过以下公式,获取所述横坐标取值区域:
i∈(0,pl-1),pl=KdmodSd+Sd
其中,i表示任意一个所述抽取起始点的横坐标,Kd表示所述反卷积核的尺寸,Sd表示所述反卷积核的步长;
通过以下公式,获取所述纵坐标取值区域:
j∈(0,pw-1),pw=Sd
其中,j表示任意一个所述抽取起始点的纵坐标。
5.一种用于反卷积运算的数据预处理装置,其特征在于,所述数据预处理装置应用于权利要求1-4任一项所述的用于反卷积运算的数据预处理方法,所述数据预处理装置包括:
参数获取模块,用于获取反卷积核的尺寸以及所述反卷积核的步长;
抽取起始点设定模块,用于根据所述反卷积核的尺寸以及所述反卷积核的步长,设定多个抽取起始点;
抽取模块,用于根据所述多个抽取起始点,分别按照预设的抽取间隔,对所述反卷积核进行元素抽取,获取多个子卷积核,其中,不同的抽取起始点对应获取不同的子卷积核,每一个所述子卷积核包括抽取所得的多个元素,所述子卷积核用于与输入矩阵共同输入至硬件加速器中进行反卷积运算。
6.根据权利要求5所述的用于反卷积运算的数据预处理装置,其特征在于,所述抽取模块包括:
行抽取单元,用于从目标抽取起始点开始,以所述反卷积核的步长为所述抽取间隔,按行对所述反卷积核进行抽取,获取多个行元素,其中,所有行元素与所述目标抽取起始点位于所述反卷积核中的同一列,任意两个相邻所述行元素之间的距离为所述反卷积核的步长,所述目标抽取起始点为任意一个所述抽取起始点;
列抽取单元,用于从所述目标抽取起始点以及每一个所述行元素开始,以所述反卷积核的步长为所述抽取间隔,按列对所述反卷积核进行抽取,获取多个列元素;
组合单元,用于将所述目标抽取起始点、所述多个行元素与所述多个列元素进行组合,获取目标子卷积核,所述目标子卷积核为与所述目标抽取起始点相对应的子卷积核。
CN202010249282.4A 2020-04-01 2020-04-01 一种用于反卷积运算的数据预处理方法及装置 Active CN111428189B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010249282.4A CN111428189B (zh) 2020-04-01 2020-04-01 一种用于反卷积运算的数据预处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010249282.4A CN111428189B (zh) 2020-04-01 2020-04-01 一种用于反卷积运算的数据预处理方法及装置

Publications (2)

Publication Number Publication Date
CN111428189A CN111428189A (zh) 2020-07-17
CN111428189B true CN111428189B (zh) 2023-09-22

Family

ID=71551812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010249282.4A Active CN111428189B (zh) 2020-04-01 2020-04-01 一种用于反卷积运算的数据预处理方法及装置

Country Status (1)

Country Link
CN (1) CN111428189B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113971261A (zh) * 2020-07-23 2022-01-25 中科亿海微电子科技(苏州)有限公司 卷积运算装置、方法、电子设备及介质
CN111932437B (zh) 2020-10-10 2021-03-05 深圳云天励飞技术股份有限公司 图像处理方法、装置、电子设备及计算机可读存储介质
CN112686377B (zh) * 2021-03-18 2021-07-02 北京地平线机器人技术研发有限公司 利用卷积硬件对特征数据进行反卷积处理的方法和装置
CN112927124A (zh) * 2021-03-31 2021-06-08 成都商汤科技有限公司 一种数据处理方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3480740A1 (en) * 2017-11-07 2019-05-08 Samsung Electronics Co., Ltd. Method and apparatus with neural network performing deconvolution
CN110088777A (zh) * 2018-07-18 2019-08-02 深圳鲲云信息科技有限公司 反卷积实现方法及相关产品

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3480740A1 (en) * 2017-11-07 2019-05-08 Samsung Electronics Co., Ltd. Method and apparatus with neural network performing deconvolution
CN110088777A (zh) * 2018-07-18 2019-08-02 深圳鲲云信息科技有限公司 反卷积实现方法及相关产品

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
涂凯杰.基于传统卷积神经网络处理器的反卷积层加速研究.《中国优秀硕士学位论文全文数据库 信息科技辑》.2020,第4章. *

Also Published As

Publication number Publication date
CN111428189A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
CN111428189B (zh) 一种用于反卷积运算的数据预处理方法及装置
US10489479B1 (en) Matrix multiplication engine
CN111247527B (zh) 在卷积神经网络模型中确定特征图像的方法和装置
US10922785B2 (en) Processor and method for scaling image
CN110866862B (zh) 基于缓冲器的数据处理方法、装置、存储介质及电子设备
CN111951167B (zh) 超分辨率图像重建方法、装置、计算机设备和存储介质
CN108875077B (zh) 数据库的列存储方法、装置、服务器及存储介质
JP2017526081A (ja) 2次元フィルタの生成方法、クエリ方法、及び装置
CN106373112B (zh) 图像处理方法、装置和电子设备
EP4156079A1 (en) Image data storage method, image data processing method and system, and related apparatus
CN111860800A (zh) 神经网络加速设备及其操作方法
CN111639699A (zh) 一种图像特征提取的方法、***、设备及可读存储介质
WO2019057097A1 (zh) 卷积运算方法、装置、计算机设备及计算机可读存储介质
CN111639701B (zh) 一种图像特征提取的方法、***、设备及可读存储介质
CN107392316B (zh) 网络训练方法、装置、计算设备及计算机存储介质
CN110377342B (zh) 基于卷积神经网络的显存处理方法、装置及存储介质
CN111178513B (zh) 神经网络的卷积实现方法、卷积实现装置及终端设备
EP3154022A1 (en) A method of compressive sensing-based image filtering and reconstruction, and a device for carrying out said method
CN110322388B (zh) 池化方法及装置、池化***、计算机可读存储介质
CN109683798B (zh) 一种文本确定方法、终端及计算机可读存储介质
CN110018851A (zh) 数据处理方法、相关设备及计算机可读介质
CN111831207B (zh) 一种数据处理方法、装置及其设备
CN112163612B (zh) 基于fpga的大模板卷积图像匹配方法、装置及***
CN116010313A (zh) 一种通用、可配置的图像滤波计算多行输出***和方法
KR102510924B1 (ko) 대규모 병렬 연관된 승산기-누산기

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wang Zhongfeng

Inventor after: Mao Wendong

Inventor after: Lin Jun

Inventor before: Wang Zhongfeng

Inventor before: Xu Mingyang

Inventor before: Lin Jun

GR01 Patent grant
GR01 Patent grant