三维卷积运算装置与三维卷积运算方法制造方法及图纸

技术编号:34729316 阅读:14 留言:0更新日期:2022-08-31 18:17
本申请实施例公开了一种三维卷积运算装置与三维卷积运算方法,三维卷积运算方法包括:对一输入数据进行维度交换以将输入数据在深度维度与通道维度上的多个元素连续地排在一起,以产生一第一数据,分块地对所述第一数据与对应于第一权重数据的一第二数据执行一卷积运算,以产生一运算数据,以及按照所述输入数据的原始维度形式重新排序所述运算数据,以产生一输出数据。以产生一输出数据。以产生一输出数据。

【技术实现步骤摘要】
三维卷积运算装置与三维卷积运算方法


[0001]本申请涉及卷积运算装置,具体涉及一种利用重新排序数据维度形式来执行三维卷积运算的三维卷积运算装置与三维卷积运算方法。

技术介绍

[0002]卷积运算常见于人工神经网络模型中来进行判断多个数据之间是否有类似特征。在现有技术中,在计算三维卷积运算时会对深度维度以及通道维度上的多个数据值进行累加。在现有的数据格式中,深度维度上的多个数据值与通道维度上的多个数据值是分散的储存于内存。如此,将造成三维卷积运算的复杂度变高。此外,在进行三维卷积运算时,卷积运算装置需耗费较多时间来读出分散的多个数据值,导致卷积运算装置存取数据的效率变低,而使得三维卷积运算的处理效率不佳。

技术实现思路

[0003]在一些实施例中,本申请提供一种可提高卷积运算的处理效率的三维卷积运算装置与三维卷积运算方法,以改善先前技术的不足。
[0004]在一些实施例中,三维卷积运算方法包括:对一输入数据进行维度交换以将所述输入数据在深度维度与通道维度上的多个元素连续地排列在一起,进而产生一第一数据;分块地对所述第一数据与对应于一第一权重数据的一第二数据执行一卷积运算,以产生一运算数据;以及按照所述输入数据的原始维度形式重新排序所述运算数据,以产生一输出数据。
[0005]在一些实施例中,三维卷积运算装置包括缓冲器、直接内存访问电路、维度交换电路以及卷积运算电路。直接内存访问电路从一外部内存读出一输入数据,并储存所述输入数据至所述缓冲器。维度交换电路从所述缓冲器读出所述输入数据并对输入数据进行维度转换以将输入数据在深度维度与通道维度上的多个元素连续地排列在一起而产生一第一数据。卷积运算电路分块地对第一数据以及对应于一第一权重数据的一第二数据执行一卷积运算以产生一运算数据。维度交换电路还按照所述输入数据的一原始维度形式重新排序所述运算数据以产生一输出数据。
[0006]有关本申请的特征、实作与功效,兹配合图式作较佳实施例详细说明如下。
附图说明
[0007]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0008]图1为本申请实施例提供的三维卷积运算装置的示意图;
[0009]图2为本申请实施例提供的三维卷积运算方法的流程图;
[0010]图3为本申请实施例提供的对图1的输入数据进行维度交换以产生第一数据的示意图;
[0011]图4A为本申请实施例提供的经分块后的第一数据的示意图;
[0012]图4B为本申请实施例提供的经分块后的第二数据的示意图;
[0013]图5A为本申请实施例提供的执行单一卷积运算层的运算的数据流程图;以及
[0014]图5B为本申请实施例提供的执行多个卷积运算层的运算的数据流程图。
[0015]【符号说明】
[0016]100:三维卷积运算装置
[0017]100A:外部内存
[0018]110:直接内存访问电路
[0019]120:缓冲器
[0020]130:维度交换电路
[0021]140:卷积运算电路
[0022]200:三维卷积运算方法
[0023]BL1~BL4:分界线
[0024]C,Ci,Ck,Co:通道维度
[0025]D000,D001,D010,D011,D100,D101:数据
[0026]D110,D111,D200,D201,D210,D211:数据
[0027]D1~D3:数据
[0028]DC:运算数据
[0029]DC

:暂存数据
[0030]DIN:输入数据
[0031]DO:输出数据
[0032]DW1,DW2:权重数据
[0033]D,Di,Dk:深度维度
[0034]H,Hi,Hk:高度维度
[0035]S205,S210,S215,S220,S225,S230,S235,S240,S245,S250:步骤
[0036]S501~S504,S511~S516:步骤W,Wi,Wk:宽度维度
具体实施方式
[0037]本文所使用的所有词汇具有其通常的意涵。上述词汇在普遍常用字典中的定义,在本申请的内容中包括任一于此讨论的词汇的使用例子仅为示例,不应限制到本申请的范围与意涵。同样地,本申请亦不仅以于此说明书所示出的各种实施例为限。
[0038]关于本文中所使用的“耦接”或“连接”,均可指二或多个组件相互直接作实体或电性接触,或是相互间接作实体或电性接触,亦可指二或多个组件相互步骤或动作。如本文所用,用语“电路”可为由至少一个晶体管与/或至少一个主被动组件按一定方式连接以处理信号的装置。
[0039]在一些实施例中,本申请通过重新排序数据的维度形式来让直接存取内存电路可更有效率地读出输入数据与权重数据,进而提高卷积运算的整体效率。
[0040]图1为本申请实施例提供的三维卷积运算装置100的示意图。在一些实施例中,三维卷积运算装置100可受控于一运算平台(其运行在至少一计算机主机上)。在一些实施例中,三维卷积运算装置100可包括一处理器(未示出),且三维卷积运算装置100中的其他电路可受控于该处理器。
[0041]三维卷积运算装置100包括直接内存访问(direct memory access)电路110、缓冲器120、维度交换电路130以及卷积运算电路140。直接内存访问电路110可从外部内存100A读取输入数据DIN与权重数据DW1,并将上述两个数据储存于缓冲器120。在一些实施例中,外部内存100A可为(但不限于)动态随机存取内存。在一些实施例中,缓冲器120可由(但不限于)静态随机存取内存实施。
[0042]在一些实施例中,三维卷积运算装置100所执行的卷积运算为三维卷积运算。相应地,输入数据DIN可为五维张量(tensor),其原始维度形式为五维形式。例如,该原始维度形式的排列顺序可表示为(N,Di,Hi,Wi,Ci),其中N为批次(batch)且可为输入数据DIN中最高维度的维度值,Di为深度维度,Hi为高度维度,Wi为宽度维度,且Ci为通道维度。例如,在后述图3的例子中,输入数据DIN的原始维度形式(N,Di,Hi,Wi,Ci)为(1,3,2,2,5),代表输入数据DIN在深度维度上的元素(或称为数据值)个数为3),在高度维度的元素个数为2,在宽度维度上的元素个数为2,且在通道维度上的元素个数为5。类似地,权重数据DW1的原始维度形式可表示为(Dk,Hk,Wk,Ck,Co),其中Dk为深度维度,Hk为高度维度,Wk为宽度维度,C为通道维度,且Co为权重数据DW1的最高维度的维度值(其相同于输出数据DO的通道维度的数值)。
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种三维卷积运算方法,其特征在于,包括:对一输入数据进行维度交换以将所述输入数据在深度维度与通道维度上的多个元素连续地排列在一起,进而产生一第一数据;分块地对所述第一数据与对应于一第一权重数据的一第二数据执行一卷积运算,以产生一运算数据;以及按照所述输入数据的原始维度形式重新排序所述运算数据,以产生一输出数据。2.如权利要求1所述的三维卷积运算方法,其特征在于,所述分块地对所述第一数据与对应于一第一权重数据的一第二数据执行一卷积运算,以产生一运算数据,包括:连续地读取所述第一数据中对应于不同深度的多个元素以执行所述卷积运算,其中所述多个元素对应于同一宽度与同一高度。3.如权利要求1所述的三维卷积运算方法,其特征在于,所述方法还包括:对所述第一权重数据进行维度交换以将所述第一权重数据在深度维度与通道维度上的多个元素连续地排列在一起,进而产生所述第二数据。4.如权利要求1所述的三维卷积运算方法,其特征在于,所述卷积运算包括一第一卷积运算层与一第二卷积运算层,所述分块地对所述第一数据与对应于一第一权重数据的一第二数据执行一卷积运算,以产生一运算数据,包括:分块地对所述第一数据与所述第二数据进行所述第一卷积运算层的运算,以产生一暂存数据;对一第二权重数据进行维度交换以将所述第二权重数据在深度维度与通道维度上的多个元素连续地排列在一起,进而产生一第三数据;以及分块地对所述暂存数据与所述第三数据进行所述第二卷积运算层的运算,以产生所述运算数据。5.一种三维卷积运算装置,其特征在于,包括:一缓冲器;一直接内存访问电路,从一外部内存读出一输入数据,并储存所述输入数据至所述缓冲器;一维度交换电路,从所述缓冲器读出所述输入数据并对所述输入数据进行维度交换以将所述输入数据在深度维度与通道维度上的多个元素连续地排列在一起而产生一第一数据;以及一卷积运算电路,分块地对所述第一数据与对应于一第一权重数据的一...

【专利技术属性】
技术研发人员:陈永胜
申请(专利权)人:星宸科技股份有限公司
类型:发明
国别省市:

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

1