用于使用3×3卷积矩阵执行卷积神经网络运算的方法和装置与流程

文档序号:35701212发布日期:2023-10-12 00:35阅读:23来源:国知局
用于使用3的制作方法


背景技术:

1、在计算机视觉中使用的卷积神经网络(cnn)具有多个层并且使用卷积作为基本运算。卷积矩阵的大小通常为3×3、5×5、7×7、9×9或11×11。cnn通常使用可编程逻辑设备(pld)(诸如现场可编程门阵列(fpga))或使用具有专用电路的专用集成电路(asic)来实施以实现快速处理时间。然而,根据输入图像构造矩阵所需的存储器块的数目和乘法器的数目与矩阵的大小直接成正比。此外,保持卷积权重矩阵值所需的寄存器的数目与矩阵的大小直接成正比。大量存储器块、乘法器和寄存器需要大量功率且增加费用,从而使得较大cnn(具有大于3×3的大小的cnn)的实施难以在较小大小的fpga和asic上实施。

2、例如,用于计算11×11矩阵的卷积的系统可能需要11个存储器块、用于卷积权重矩阵的121个寄存器、用于权重值的121个寄存器以及121个并行乘法器。

3、因此,本领域所需要的是允许实施提供比当前系统更低的成本和更低的功率的大cnn的方法和装置。


技术实现思路

1、公开了一种用于对包括多行图像值的图像文件执行n×n卷积的方法,包括:接收用于n×n卷积的权重矩阵;以及将权重矩阵划分成多个3×3权重矩阵。将用于3×3cnn的配置文件加载到集成电路(ic)设备中,以形成ic设备的神经网络引擎中的3×3cnn核。从图像文件读取一行或多行图像值,并将一行或多行图像值作为图像值集合存储在集成电路设备的缓冲器中。通过以下步骤对存储在缓冲器中的图像值集合执行3×3卷积:将来自3×3权重矩阵中的一个3×3权重矩阵的权重值耦合到集成电路设备的神经网络引擎中;将来自缓冲器的图像值加载到神经网络引擎中;执行cnn核的3×3cnn运算,利用所加载的图像值和来自3×3权重矩阵中的一个3×3权重矩阵的所耦合的权重值作为对3×3cnn运算的输入,以生成3×3卷积值。将与特定n×n卷积和特定图像值集合相关联的所有3×3卷积值在一起求和,以获得3×3值的和。重复执行3×3卷积和求和,直到已经处理了图像值集合中的所有列为止;以及重复以下动作直到已经处理了所述图像文件中的所有行图像值为止:读取、在缓冲器中存储一行或多行图像值、执行3×3卷积、求和以及重复执行3×3卷积。将与特定n×n卷积相关联的和中的每个和加到与特定n×n卷积相关联的其他所存储的和,以生成用于n×n卷积中的每个n×n卷积的n×n卷积值。

2、公开了一种ic设备,包括写入电路和读取电路,该读取电路用于从图像文件读取一行或多行图像值,并且用于执行读取以获得用于n乘n卷积神经网络的权重矩阵。ic设备的n×n cnn电路包括:神经网络引擎;控制器,该控制器耦合到神经网络引擎、读取电路和写入电路;权重矩阵成帧器,该权重矩阵成帧器耦合到读取电路并且耦合到神经网络引擎;激活矩阵成帧器,该激活矩阵成帧器耦合到读取电路并且耦合到神经网络引擎;以及累加器电路,该累加器电路耦合到神经网络引擎并且耦合到写入电路。控制器用于将权重矩阵划分成多个3×3权重矩阵,并且用于将用于3×3cnn的配置文件加载到ic设备中,以形成ic设备的神经网络引擎中的3×3cnn核。权重矩阵成帧器用于将3×3权重矩阵中的一个3×3权重矩阵加载到神经网络引擎中。激活矩阵成帧器包括用于将一行或多行图像值存储为图像值集合的缓冲器,并且用于将来自图像值集合中的每个图像值集合的图像值加载到神经网络引擎中。在接收到3×3权重矩阵中的一个3×3权重矩阵和图像值时,神经网络引擎用于执行所述3×3cnn核的3×3cnn运算以生成3×3卷积值。累加器电路用于将与特定n×n卷积相关联并且与特定图像值集合相关联的所有3×3卷积值在一起求和,并且用于存储3×3卷积值的每个和。ic设备进一步用于将与特定n×n卷积相关联的所存储的和中的每个和加到与特定n×n卷积相关联的其他所存储的和,以生成用于n×n卷积中的每个n×n卷积的n×n卷积值。

3、公开了一种包括写入电路和读取电路的pld。读取电路用于从图像文件读取一行或多行图像值,并且用于执行读取以获得用于n乘n卷积神经网络的权重矩阵。包括在pld中的n×n cnn电路包括:神经网络引擎;控制器,该控制器耦合到神经网络引擎、读取电路和写入电路;权重矩阵成帧器,该权重矩阵成帧器耦合到读取电路并且耦合到神经网络引擎;激活矩阵成帧器,该激活矩阵成帧器耦合到读取电路并且耦合到神经网络引擎;以及累加器电路,该累加器电路耦合到神经网络引擎并且耦合到写入电路。控制器用于将权重矩阵划分成多个3×3权重矩阵,并且用于将用于3×3cnn的配置文件加载到pld中以形成pld的神经网络引擎中的3×3cnn核。权重矩阵成帧器用于将3×3权重矩阵中的一个3×3权重矩阵加载到神经网络引擎中。激活矩阵成帧器包括用于将一行或多行图像值存储为图像值集合的缓冲器,并且用于将来自图像值集合中的每个图像值集合的图像值加载到神经网络引擎中。在接收到3×3权重矩阵中的一个3×3权重矩阵和图像值时,神经网络引擎用于执行3×3cnn核的3×3cnn运算以生成3×3卷积值。累加器电路用于将与特定n×n卷积相关联并且与特定图像值集合相关联的所有3×3卷积值在一起求和,并且用于存储3×3卷积值的每个和。pld进一步用于将与特定n×n卷积相关联的所存储的和中的每个和加到与特定n×n卷积相关联的其他所存储的和,以生成用于n×n卷积中的每个n×n卷积的n×n卷积值。

4、本发明的方法和装置允许实施大cnn,并且提供比常规系统更低的成本和更低的功率,在常规系统中,根据输入图像构造矩阵所需的存储器块的数目和乘法器的数目与矩阵的大小成正比。



技术特征:

1.一种用于对包括多行图像值的图像文件执行n×n卷积的方法,其中n大于3,所述方法包括:

2.根据权利要求1所述的方法,还包括存储3×3卷积值的每个和以及存储所述n×n卷积值中的每个n×n卷积值。

3.根据权利要求1所述的方法,其中所述缓冲器是三行缓冲器,并且所述图像值集合中的每个图像值集合由三行所述图像值组成。

4.根据权利要求3所述的方法,其中在已经存储第一组图像文件之后在所述缓冲器中存储所述行图像值包括重写先前存储在所述三行缓冲器中的一行或多行图像值。

5.根据权利要求1所述的方法,其中所述配置文件指示一个或多个偏差值以及如何将所述一个或多个偏差值加到3×3cnn乘积以生成所述3×3卷积值。

6.根据权利要求1所述的方法,包括:

7.根据权利要求1所述的方法,其中将与所述特定n×n卷积相关联的所述和中的每个和加到与所述特定n×n卷积相关联的所述其他所存储的和包括使用专用加法器电路将所述和中的每个和相加。

8.根据权利要求1所述的方法,其中将与所述特定n×n卷积相关联的所述和中的每个和加到与所述特定n×n卷积相关联的所述其他所存储的和包括对与所述特定n×n卷积相关联的所述和执行神经网络运算。

9.根据权利要求1所述的方法,其中将与所述特定n×n卷积相关联的所述和中的每个和加到与所述特定n×n卷积相关联的所述其他所存储的和包括:

10.一种集成电路设备,包括:

11.根据权利要求10所述的集成电路设备,其中所述缓冲器包括:第一行缓冲器,用于存储来自所述图像文件的第一行图像值;第二行缓冲器,用于存储来自所述图像文件的第二行图像值;以及第三行缓冲器,用于存储来自所述图像文件的第三行图像值;所述激活矩阵成帧器,用于在所述3×3cnn运算中的每个3×3cnn运算之前,将来自所述第一行缓冲器的三个图像值、来自所述第二行缓冲器的三个图像值以及来自所述第三行缓冲器的三个图像值加载到所述神经网络引擎中。

12.根据权利要求10所述的集成电路设备,还包括耦合到所述累加器电路的加法器电路,所述加法器电路用于将与特定n×n卷积相关联的所述和中的每个和加到与所述特定n×n卷积相关联的其他和,以生成用于所述n×n卷积中的每个n×n卷积的所述n×n卷积值。

13.根据权利要求10所述的集成电路设备,其中所述神经网络引擎用于通过执行神经网络运算将与特定n×n卷积相关联的所述和中的每个和加到与所述特定n×n卷积相关联的所述其他和,在所述神经网络运算中,第一列的权重值中的一些权重值具有值“1”并且其他列的权重值具有值“0”。

14.根据权利要求10所述的集成电路设备,其中所述神经网络引擎包括:

15.根据权利要求10所述的集成电路设备,包括写入电路以将3×3卷积值的每个和写入到数据存储设备或写入到本地存储器,以便将3×3卷积值的每个和存储在所述数据存储设备或所述本地存储器中。

16.根据权利要求10所述的集成电路设备,其中所述读取电路用于从存储在数据存储设备上的图像文件读取所述一行或多行图像值,并且用于执行对所述数据存储设备的读取以获得用于n乘n卷积神经网络(cnn)的所述权重矩阵。

17.根据权利要求10所述的集成电路设备,其中所述读取电路用于从存储在本地存储器中的图像文件读取所述一行或多行图像值,并且执行对本地存储器的读取以获得用于n乘n卷积神经网络(cnn)的所述权重矩阵。

18.一种可编程逻辑设备,包括:

19.根据权利要求18所述的可编程逻辑设备,其中所述神经网络引擎用于通过执行其中所述权重值被设置为值1的神经网络运算,将与所述特定n×n卷积相关联的所述和中的每个和加到与所述特定卷积相关联的所述其他和,以生成用于所述n×n卷积中的每个n×n卷积的所述n×n卷积值。

20.根据权利要求18所述的可编程逻辑设备,还包括:

21.根据权利要求20所述的可编程逻辑设备,其中所述读取电路用于从存储在数据存储设备上的图像文件读取所述一行或多行图像值,并且用于执行对所述数据存储设备的读取以获得用于n乘n cnn的所述权重矩阵。

22.根据权利要求20所述的可编程逻辑设备,其中所述读取电路用于从存储在本地存储器中的图像文件读取所述一行或多行图像值,并且执行对本地存储器的读取以获得用于n乘n cnn的所述权重矩阵。


技术总结
一种用于执行N×N矩阵的卷积的方法和装置。用于N×N卷积神经网络(CNN)的权重矩阵被接收并且被划分成3×3权重矩阵。多行图像值被读取并且作为图像值集合被存储在缓冲器中。执行3×3卷积以生成3×3卷积值。与特定N×N卷积和特定图像值集合相关联的所有3×3卷积值被求和。重复该3×3卷积和该求和,直到已经处理了该图像值集合中的所有列为止;重复以下动作直到已经处理了所有行图像值为止:读取、存储、执行3×3卷积、求和以及重复执行3×3卷积。将与特定N×N卷积相关联的和相加在一起以生成用于该N×N卷积中的每个N×N卷积的N×N卷积值。

技术研发人员:S·东途,B·P·雷迪
受保护的技术使用者:微芯片技术股份有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1