当前位置: 首页 > 专利查询>南京大学专利>正文

基于Winograd算法和近似乘法器的高效卷积实现方法及装置制造方法及图纸

技术编号:29759599 阅读:22 留言:0更新日期:2021-08-20 21:13
本申请公开了一种基于Winograd算法和近似乘法器的高效卷积实现及装置,所述方法包括:将获取的初始特征图分割成多个第一矩阵构成的矩阵序列,每一个第一矩阵包含6行6列的矩阵元素,矩阵序列中相邻矩阵之间具有2行或2列相重叠的矩阵元素;获取每一个第一矩阵对应一个输入矩阵以及初始特征图的初始卷积权重;根据初始卷积权重,计算作为Winograd卷积权重的第二矩阵;将各输入矩阵分别和Winograd卷积权重使用近似乘法器进行运算,得到多个输出矩阵,其中,每一个输入矩阵对应一个输出矩阵;将多个输出矩阵进行拼接,得到输出特征图。采用前述的方案,可大大降低单位卷积输出所需的乘法器的数量,提高卷积计算效率。

【技术实现步骤摘要】
基于Winograd算法和近似乘法器的高效卷积实现方法及装置
本申请涉及神经网络
,尤其涉及一种基于Winograd算法和近似乘法器的高效卷积实现方法及装置。
技术介绍
卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。随着深度学习的广泛应用与发展,卷积神经网络被使用的场景越来越多,特别是在图像识别场景中获得了突破性的发展。卷积神经网络部署于硬件上计算时,对于传统的卷积计算方法,输入一般是一个三维矩阵,分别有长,宽和通道数三个维度,有多个卷积核与输入矩阵进行卷积操作,其中每个卷积核也是三维的,和输入矩阵具有相同通道数。每个卷积核以一定步长在输入矩阵的长宽方向上进行滑动,并将其当前所覆盖的一个三维区域内的卷积核值和对应位置的输入矩阵的值进行乘加累计,最终得到输出矩阵上的一个值。多个卷积核进行这样的操作,并将所有得到的输出进行重叠,得到最终的一个三维的卷积输出。例如图1所示,图1中采用输入为经过预处理后的图片展示了单个卷积核的计算方式,计算每一个输出矩阵中的元素需要通道数×卷积核宽×卷积核高次乘法,图1中需要3×3×3=27次乘法来计算一个输出值,对于单个卷积核的完整计算就需要224×224×27=1354752次乘法,需要硬件提供大量的乘法计算单元即乘法器来处理。因此,由以上可见,传统的卷积计算方法耗费乘法器数量较多,计算效率往往较为低下。因此,目前亟需一种耗费乘法计算单元较少,高效率的卷积计算方法。
技术实现思路
本申请提供了一种基于Winograd算法和近似乘法器的高效卷积实现及装置,以解决传统的卷积计算方法耗费乘法器数量较多,计算效率往往较为低下的问题。第一方面,本申请实施例提供一种基于Winograd算法和近似乘法器的高效卷积实现方法,所述方法用于计算卷积层中卷积核大小为3×3,步长为1的卷积运算,所述方法包括:获取初始特征图;将所述初始特征图分割成多个第一矩阵构成的矩阵序列,其中每一个第一矩阵包含6行6列的矩阵元素,矩阵序列中相邻矩阵之间具有2行或2列相重叠的矩阵元素;获取每一个所述第一矩阵对应一个输入矩阵;获取初始特征图的初始卷积权重;根据所述初始卷积权重,计算得到包含6行6列矩阵元素的第二矩阵,作为Winograd卷积权重;将各输入矩阵分别和Winograd卷积权重使用近似乘法器进行运算,得到多个输出矩阵,其中,每一个输入矩阵对应一个输出矩阵;将多个输出矩阵进行拼接,得到输出特征图。结合第一方面,在一种实现方式中,所述输入矩阵由第一矩阵、第一常系数矩阵及第一常系数矩阵转置矩阵相乘得到。结合第一方面,在一种实现方式中,所述Winograd卷积权重由初始卷积权重、第二常系数矩阵及第二常系数矩阵转置矩阵相乘得到。结合第一方面,在一种实现方式中,所述输出矩阵使用以下公式进行计算:;其中,Y为输出矩阵,A为第三常系数矩阵,AT为A的转置矩阵,GgGT为Winograd卷积权重,BTdB为输入矩阵,为近似乘法器运算。结合第一方面,在一种实现方式中,所述Winograd卷积权重使用信号-量化噪音比进行量化精度的评估,具体使用以下公式计算:;其中,SQNR为信号-量化噪音比,wi表示原始的浮点数卷积权重,wqi表示量化后的定点数卷积权重。结合第一方面,在一种实现方式中,所述近似乘法器的计算过程如下:将所述输入矩阵和Winograd卷积权重分别量化为两个操作数;分别对两个操作数进行截取,获得输入矩阵对应的第一近似乘法器操作数和Winograd卷积权重对应的第二近似乘法器操作数;将输入矩阵对应的第一近似乘法器操作数和Winograd卷积权重对应的第二近似乘法器操作数进行乘法计算;最后对乘法计算结果数进行向左移位操作,从而得到最终的乘法结果,其中,移位的数量是先前截取后的最后剩余段的长度和。结合第一方面,在一种实现方式中,对操作数进行截取的方法包括:如果操作数的首位是0,且在紧接着首位的探测段中存在取值为1的比特位,则从当前探测段首位开始向后截取预定长度的比特段,并加上首位作为近似乘法器操作数;或者,如果操作数的首位是0,且所述探测段不存在取值为1的比特位,则直接在探测段后截取预定长度的比特段,作为近似乘法器操作数;或者,如果操作数的首位是1,且所述探测段存在取值为0的比特位,则从当前探测段首位开始向后截取预定长度的比特段,并加上首位作为近似乘法器操作数;或者,如果操作数的首位是1,且所述探测段不存在取值为0的比特位,则直接在探测段后截取预定长度的比特段,作为近似乘法器操作数。第二方面,本申请实施例部分提供了一种基于Winograd算法和近似乘法器的高效卷积实现装置,所述装置用于计算卷积层中卷积核大小为3×3,步长为1的卷积运算,所述装置包括:初始特征图获取模块,用于获取初始特征图;输入矩阵获取模块,用于将所述初始特征图分割成多个第一矩阵构成的矩阵序列,其中每一个第一矩阵包含6行6列的矩阵元素,矩阵序列中相邻矩阵之间具有2行或2列相重叠的矩阵元素,获取每一个所述第一矩阵对应一个输入矩阵;初始卷积权重获取模块,用于获取初始特征图的初始卷积权重;Winograd卷积权重获取模块,用于根据所述初始卷积权重,计算得到包含6行6列矩阵元素的第二矩阵,作为Winograd卷积权重;输出矩阵获取模块,用于将各输入矩阵分别和Winograd卷积权重使用近似乘法器进行运算,得到多个输出矩阵,其中,每一个输入矩阵对应一个输出矩阵;输出特征图获取模块,将多个输出矩阵进行拼接,得到输出特征图。结合第二方面,在一种实现方式中,所述输出矩阵获取模块包括近似乘法器单元,所述近似乘法器单元用于执行以下操作:将输入矩阵和Winograd卷积权重分别量化为两个操作数;分别对两个操作数进行截取,获得输入矩阵对应的第一近似乘法器操作数和Winograd卷积权重对应的第二近似乘法器操作数;将输入矩阵对应的第一近似乘法器操作数和Winograd卷积权重对应的第二近似乘法器操作数进行乘法计算;最后对乘法计算结果数进行向左移位操作,从而得到最终的乘法结果,其中,移位的数量是先前截取后的最后剩余段的长度和。结合第二方面,在一种实现方式中,对操作数进行截取的方法包括:如果操作数的首位是0,且在紧接着首位的探测段中存在取值为1的比特位,则从当前探测段首位开始向后截取预定长度的比特段,并加上首位作为近似乘法器操作数;或者,如果操作数的首位是0,且所述探测段不存在取值为1的比特位,则直接在探测段后截取预定长度的比特段,作为近似乘法器操作数;或者,如果操作数的首位是1,且所述探测段存在取值为0的比特位,则从当前探测段首位开始向后截取预定长度的比特段,并加上首位作为近似乘法器操作数;或者,如果操作数的首位是1,且本文档来自技高网...

【技术保护点】
1.一种基于Winograd算法和近似乘法器的高效卷积实现方法,其特征在于,所述方法用于计算卷积层中卷积核大小为3×3,步长为1的卷积运算,所述方法包括:/n获取初始特征图;/n将所述初始特征图分割成多个第一矩阵构成的矩阵序列,其中每一个第一矩阵包含6行6列的矩阵元素,矩阵序列中相邻矩阵之间具有2行或2列相重叠的矩阵元素;获取每一个所述第一矩阵对应一个输入矩阵;/n获取初始特征图的初始卷积权重;/n根据所述初始卷积权重,计算得到包含6行6列矩阵元素的第二矩阵,作为Winograd卷积权重;/n将各输入矩阵分别和Winograd卷积权重使用近似乘法器进行运算,得到多个输出矩阵,其中,每一个输入矩阵对应一个输出矩阵;/n将多个输出矩阵进行拼接,得到输出特征图。/n

【技术特征摘要】
1.一种基于Winograd算法和近似乘法器的高效卷积实现方法,其特征在于,所述方法用于计算卷积层中卷积核大小为3×3,步长为1的卷积运算,所述方法包括:
获取初始特征图;
将所述初始特征图分割成多个第一矩阵构成的矩阵序列,其中每一个第一矩阵包含6行6列的矩阵元素,矩阵序列中相邻矩阵之间具有2行或2列相重叠的矩阵元素;获取每一个所述第一矩阵对应一个输入矩阵;
获取初始特征图的初始卷积权重;
根据所述初始卷积权重,计算得到包含6行6列矩阵元素的第二矩阵,作为Winograd卷积权重;
将各输入矩阵分别和Winograd卷积权重使用近似乘法器进行运算,得到多个输出矩阵,其中,每一个输入矩阵对应一个输出矩阵;
将多个输出矩阵进行拼接,得到输出特征图。


2.根据权利要求1所述的方法,其特征在于,所述输入矩阵由第一矩阵、第一常系数矩阵及第一常系数矩阵转置矩阵相乘得到。


3.根据权利要求1所述的方法,其特征在于,所述Winograd卷积权重由初始卷积权重、第二常系数矩阵及第二常系数矩阵转置矩阵相乘得到。


4.根据权利要求1-3任一项所述的方法,其特征在于,所述输出矩阵使用以下公式进行计算:


其中,Y为输出矩阵,A为第三常系数矩阵,AT为A的转置矩阵,GgGT为Winograd卷积权重,
BTdB为输入矩阵,为近似乘法器运算。


5.根据权利要求1所述的方法,其特征在于,所述Winograd卷积权重使用信号-量化噪音比进行量化精度的评估,具体使用以下公式计算:


其中,SQNR为信号-量化噪音比,wi表示原始的浮点数卷积权重,wqi表示量化后的定点数卷积权重。


6.根据权利要求1所述的方法,其特征在于,所述近似乘法器的计算过程如下:
将所述输入矩阵和Winograd卷积权重分别量化为两个操作数;
分别对两个操作数进行截取,获得输入矩阵对应的第一近似乘法器操作数和Winograd卷积权重对应的第二近似乘法器操作数;
将输入矩阵对应的第一近似乘法器操作数和Winograd卷积权重对应的第二近似乘法器操作数进行乘法计算;
最后对乘法计算结果数进行向左移位操作,从而得到最终的乘法结果,其中,移位的数量是先前截取后的最后剩余段的长度和。


7.根据权利要求6所述的方法,其特征在于,对操作数进行截取的方法包括:
如果操作数的首位是0,且在紧接着首位的探测段中存在取值为1的比特位,则从当前探测段首位开始向后截取预定长度的比特段,并加上首位作为近似乘法器操作数;
或者,如果操作数的首位是0,且所述探测段不存在取值为1的比特位,则直接在探测段后截取...

【专利技术属性】
技术研发人员:杜力张宸硕杜源
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1