一种用于实现张量链式分解运算的设备和方法与流程

未命名 08-07 阅读:97 评论:0


1.本发明大体上涉及数据处理领域,尤其涉及卷积神经网络。公开了一种用于对卷积神经网络的卷积层实现张量链式分解运算的设备和方法。例如,该设备和方法可以执行硬件友好的张量链式分解运算,这可以加速卷积神经网络的操作。


背景技术:

2.一般来说,深度学习是一种训练神经网络执行任务的机器学习技术。神经网络可以是卷积神经网络。例如,卷积神经网络可以学习如何执行任务,例如,与计算机视觉、自然语言处理、语音识别等相关的分类任务。
3.传统的卷积神经网络实现了不同的准确度。此外,希望找到能够实现一定准确度的卷积神经网络来解决特定问题。然而,当使用更深层卷积神经网络时,例如,为了进一步提高准确度,这些卷积神经网络在浮点运算(floating point operation,flop)方面可能会变得更慢,并且在用户设备中操作时可能会变得甚至更慢。例如,对于包含具有512个特征图的卷积层的卷积神经网络,计算可能需要多达115次mflop运算,因此这些卷积层可能会显著降低推理时间。
4.提出了将张量分解作为一种降低计算成本的技术。张量分解技术是一类将高维张量表示为一系列低成本操作的方法,以便减少张量参数的数量并压缩数据。
5.传统的张量分解方法可以基于张量链式分解,该分解用于数据压缩,即,降低原始张量大小与压缩大小的比率。
6.然而,当传统的张量链式分解应用于卷积神经网络的卷积层时,仍然不能克服上述所有问题。


技术实现要素:

7.鉴于上述问题和缺点,本发明的实施例旨在改进对卷积神经网络(convolutional neural network,cnn)的卷积层应用张量链式分解运算。
8.实施例可以降低cnn的计算复杂度。此外,实施例有助于卷积层的硬件友好的张量链式分解。
9.实施例可以选择cnn的一个或多个卷积层进行分解,例如,确定cnn中的最佳分解顺序。
10.因此,目标是提供一种能够对cnn的卷积层有效实现张量链式分解运算的设备和方法。
11.该目标通过所附独立权利要求中描述的本发明的实施例实现。本发明的实施例的有利实现方式在从属权利要求中进一步限定。
12.本发明的第一方面提供了一种用于对cnn的卷积层实现张量链式分解运算的设备。所述设备用于:接收包括第一数量的通道的输入数据;对所述输入数据执行1x1卷积,以获得多个数据组,其中,所述多个数据组包括第二数量的通道;对所述多个数据组执行分组
卷积,以获得包括第三数量的通道的中间数据;对所述中间数据执行1x1卷积,以获得包括第四数量的通道的输出数据。
13.该设备可以是电子设备或可以包含在电子设备中,例如,个人计算机、服务器计算机、客户端计算机、笔记本电脑和笔记本计算机、平板设备、移动电话、智能手机、监控摄像头等。
14.该设备可以用于对cnn的卷积层实现张量链式分解运算。例如,该设备可以用张量链式运算替换cnn的卷积层。该运算可以包括张量的压缩算法。
15.通常,张量可以是包括多个元素的多维数组。例如,张量a可以表示如下:
16.a=(a,i1,i2,

,id]),ik∈{1,2,

,nk}
17.此外,通常,张量的秩r=(r0,r1,

,rd)的张量链式分解(tt)可以是一个表示,其中,每个张量元素是矩阵乘积,例如:
[0018][0019]
其中,r0=rd=1。在此处,“链式”(chain)一词可以用来强调与火车车厢序列相似。
[0020]
cnn是深度学习神经网络,其中,一个或多个构建块是基于卷积运算的。
[0021]
具体而言,该设备可以接收包括第一数量的通道的输入数据(例如,输入张量)。该输入数据可以与任何类型的数据相关,例如,图像数据、文本数据、语音数据等。此外,该设备可以对输入数据执行1x1卷积,从而可以获得多个数据组。
[0022]
例如,该设备可以执行卷积运算,该卷积运算可以是例如将具有第一数量的通道的输入特征图转换为具有第二数量的通道的输出特征图的运算,特别是通过将输入特征图与卷积核进行卷积。在不将本发明限于该特定示例的情况下,卷积运算的示例可以通过与卷积核进行卷积来将输入特征图(c是输入通道)转换为输出特征图(s是输出通道):
[0023][0024]
第一方面的设备可以对三维卷积张量实现张量链式分解,其中,多个核大小维度被组合在一起。例如,张量链式分解可以如下应用:
[0025][0026]
此外,张量链式卷积层可以如下:
[0027][0028]
此外,该设备可以获得包括第二数量的通道的多个数据组、包括第三数量的通道的中间数据和包括第四数量的通道的输出数据。
[0029]
与传统的分解方法相比,由该设备执行的卷积层的分解可以大幅降低计算成本。具体地,该设备执行的分解在真实硬件上提升速度。进一步地,第一方面的设备的实现方式
可以考虑哪个或哪些卷积层有利于分解,并可以进一步考虑这些层的分解顺序。
[0030]
在第一方面的一个实现方式中,基于在所述多个数据组之间共享的共享核,执行分组卷积。
[0031]
具体地,该设备可以执行与组之间的共享核的分组卷积。此外,基于在所述多个数据组之间共享的共享核执行分组卷积,可以例如通过添加底层运算(例如,核融合)来实现张量链式卷积的额外加速。
[0032]
在第一方面的另一个实现方式中,基于所述多个数据组中数据组的数量,确定所述第三数量的通道。
[0033]
在第一方面的另一个实现方式中,基于所述设备的一个或多个硬件特性,进一步确定所述第三数量的通道。
[0034]
例如,张量链式分解运算的实现方式对硬件友好,且不需要昂贵的数据迁移操作,并且可能显著加速cnn的推理阶段。具体地,该设备可以获得卷积层的最佳秩,使得可以避免与重塑操作、置换操作等相关的数据迁移,并且可以进一步提升处理硬件的速度。
[0035]
在第一方面的另一个实现方式中,每个数据组包括第五数量的通道,基于所述第三数量的通道和所述第五数量的通道,确定所述第二数量的通道。
[0036]
在第一方面的另一个实现方式中,所述设备还用于:获得包括第一数量的卷积层的cnn,其中,每个卷积层与相应的第一排序数相关联;基于所述cnn的训练,提供包括第二数量的卷积层和第三数量的分解卷积层的分解cnn,其中,所述第一数量等于所述第二数量和所述第三数量的总和,每个分解卷积层与相应的第二排序数相关联。
[0037]
例如,该设备可以获得具有较低秩张量表示的高度优化的卷积以及层分解的最佳顺序。
[0038]
在第一方面的又一个实现方式中,所述设备还用于对于所述cnn的卷积层,确定基于以下内容计算的加权对:加权后的卷积层,其中,所述加权后的卷积层是通过将第一加权可训练参数分配给所述卷积层而获得的;加权后的分解卷积层,其中,所述加权后的分解卷积层是通过将第二加权可训练参数分配给为所述卷积层确定的分解卷积层而获得的。
[0039]
例如,加权对可以是op(x,α)。此外,第一加权可训练参数可以是

α

,第二加权可训练参数可以是

1-α

。第一加权可训练参数和/或第二加权可训练参数是可训练的,即这些参数可以在训练过程中改变。
[0040]
此外,该设备可以确定卷积层conv(x)的加权对op(x,α),使得
[0041]
op(x,α)=α*conv(x)+(1-α)*dconv(x),where α may be in range[0,1]。
[0042]
换句话说,卷积层可以根据第一加权可训练参数

α

加权,分解后的卷积层根据第二加权可训练参数

1-α

加权。
[0043]
在第一方面的另一个实现方式中,所述设备还用于基于至少一个加权对,执行所述cnn的初始训练迭代。
[0044]
在第一方面的另一个实现方式中,所述设备还用于在执行所述初始训练迭代之后,确定具有最小第一加权可训练参数的至少一个卷积层。
[0045]
在第一方面的另一个实现方式中,所述设备还用于通过将具有所述最小第一加权可训练参数的所述卷积层的加权对替换为其分解卷积层,并且基于来自上次迭代的所述至少一个加权对的剩余部分,来执行所述cnn的附加训练迭代。
[0046]
在第一方面的又一个实现方式中,所述设备还用于迭代地执行以下步骤:确定具有最小第一加权可训练参数的卷积层;将具有所述最小第一加权可训练参数的所述卷积层的所述加权对替换为其分解卷积层;执行下一次训练迭代,直到将所确定数量的卷积层替换为其相应的分解卷积层。
[0047]
在第一方面的另一个实现方式中,所述设备包括适合于cnn的张量处理运算的人工智能加速器。
[0048]
本发明的第二方面提供了一种用于对卷积神经网络的卷积层实现张量链式分解运算的方法,其中,所述方法包括:接收包括第一数量的通道的输入数据;对所述输入数据执行1x1卷积,以获得多个数据组,其中,所述多个数据组包括第二数量的通道;对所述多个数据组执行分组卷积,以获得包括第三数量的通道的中间数据;对所述中间数据执行1x1卷积,以获得包括第四数量的通道的输出数据。
[0049]
在第二方面的一个实现方式中,基于在所述多个数据组之间共享的共享核,执行分组卷积。
[0050]
在第二方面的另一个实现方式中,基于所述多个数据组中数据组的数量,确定所述第三数量的通道。
[0051]
在第二方面的另一个实现方式中,基于所述设备的一个或多个硬件特性,进一步确定所述第三数量的通道。
[0052]
在第二方面的另一个实现方式中,每个数据组包括第五数量的通道,基于所述第三数量的通道和所述第五数量的通道,确定所述第二数量的通道。
[0053]
在第二方面的另一个实现方式中,所述方法还包括:获得包括第一数量的卷积层的cnn,其中,每个卷积层与相应的第一排序数相关联;基于所述cnn的训练,提供包括第二数量的卷积层和第三数量的分解卷积层的分解cnn,其中,所述第一数量等于所述第二数量和所述第三数量的总和,每个分解卷积层与相应的第二排序数相关联。
[0054]
在第二方面的另一个实现方式中,所述方法还包括对于所述cnn的卷积层,确定基于以下内容计算的加权对:加权后的卷积层,其中,所述加权后的卷积层是通过将第一加权可训练参数分配给所述卷积层而获得的;加权后的分解卷积层,其中,所述加权后的分解卷积层是通过将第二加权可训练参数分配给为所述卷积层确定的分解卷积层而获得的。
[0055]
在第二方面的另一个实现方式中,所述方法还包括基于至少一个加权对,执行所述cnn的初始训练迭代。
[0056]
在第二方面的另一个实现方式中,所述方法还包括在执行所述初始训练迭代之后,确定具有最小第一加权可训练参数的至少一个卷积层。
[0057]
在第二方面的另一个实现方式中,所述方法还包括通过将具有所述最小第一加权可训练参数的所述卷积层的加权对替换为其分解卷积层,并且基于来自上次迭代的所述至少一个加权对的剩余部分,来执行所述cnn的附加训练迭代。
[0058]
在第二方面的另一个实现方式中,所述方法还包括迭代地执行以下步骤:确定具有最小第一加权可训练参数的卷积层;将具有所述最小第一加权可训练参数的所述卷积层的所述加权对替换为其分解卷积层;执行下一次训练迭代,直到将所确定数量的卷积层替换为其相应的分解卷积层。
[0059]
在第二方面的另一个实现方式中,所述方法用于包括适合于cnn的张量处理运算
的人工智能加速器的设备。
[0060]
第三方面的方法实现了针对第一方面的发射机设备描述的优点和效果。
[0061]
本发明的第三方面提供了一种计算机程序,包括用于执行根据第二方面或其任一实现方式所述的方法的程序代码。
[0062]
本发明的第四方面提供了一种非瞬时性存储介质,存储可执行程序代码,当所述可执行程序代码由处理器执行时,执行根据第二方面或其任一实现方式所述的方法。
[0063]
需要说明的是,本技术中描述的所有设备、元件、单元和构件可以在软件或硬件元件或其任何类型的组合中实现。本技术中描述的各种实体所执行的所有步骤以及所描述的各种实体要执行的功能均意在指相应实体用于执行相应步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。
附图说明
[0064]
结合所附附图,下面具体实施例的描述将阐述上述各个方面及其实现方式,其中:
[0065]
图1描述了根据本发明的实施例的用于对cnn的卷积层实现张量链式分解运算的设备;
[0066]
图2描述了三维卷积张量的张量链式分解;
[0067]
图3描述了执行1x1卷积;
[0068]
图4描述了用于张量链式分解运算的方法的流程图;
[0069]
图5描述了用于基于cnn的训练获得分解cnn的方法的流程图;
[0070]
图6描述了将卷积层替换为加权卷积;
[0071]
图7描述了将卷积层的加权对替换为其分解卷积层;
[0072]
图8描述了改变一组加权对及其相应的卷积层;
[0073]
图9描述了根据本发明的实施例的用于对卷积神经网络的卷积层实现张量链式分解运算的方法的流程图。
具体实施方式
[0074]
图1示出了根据本发明的实施例的用于对cnn的卷积层实现张量链式分解运算的设备100。
[0075]
设备100可以是计算机、个人计算机、智能手机、监控摄像头等电子设备。
[0076]
设备100用于接收包括第一数量的通道的输入数据110。
[0077]
设备100还用于对输入数据110执行1x1卷积,以获得多个数据组120。多个数据组120包括第二数量的通道。
[0078]
设备100还用于对多个数据组120执行分组卷积,以获得中间数据130。中间数据130包括第三数量的通道。
[0079]
设备100还用于对中间数据130执行1x1卷积,以获得输出数据140。输出数据140包括第四数量的通道。
[0080]
设备100可以对cnn的卷积层实现张量链式卷积运算。
[0081]
设备100可以更准确地调谐,并且可以在真实硬件上提升速度,例如,不对张量链式核使用不同的秩,可以实现这样的加速。
[0082]
例如,设备100可以执行1x1卷积、与共享权重的分组卷积以及另一个1x1卷积的序列,用于实现硬件友好的张量链式分解。此外,通过在分组卷积中使用权重共享,设备100可以由于重用权重并且减少数据传输而在真实硬件上提升速度,并且可以避免耗时的置换和重塑操作等。
[0083]
设备100可以包括处理电路(图1中未示出),该处理电路用于执行、进行或启动本文描述的设备100的各种操作。该处理电路可以包括硬件和软件。硬件可以包括模拟电路或数字电路,或模拟电路和数字电路两者。数字电路可以包括专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)、数字信号处理器(digital signal processor,dsp)或多用途处理器等组件。在一个实施例中,处理电路系统包括一个或多个处理器和连接到一个或多个处理器的非瞬时性存储器。非瞬时性存储器可以携带可执行程序代码,该可执行程序代码当由一个或多个处理器执行时,使设备100执行、进行或启动本文描述的操作或方法。
[0084]
图2示意性地示出了对三维卷积张量执行张量链式分解的过程。例如,设备100可以对三维卷积张量执行所示的张量链式分解。
[0085]
具体地,设备100可以接收包括c个通道(第一数量的通道)的输入数据110。
[0086]
设备100还可以执行从c通道到r1r2通道的1x1卷积。例如,设备100可以对输入数据110执行1x1卷积,以获得包括第二数量的通道的多个数据组120。在图2的图中,第二数量的通道为r1r2。
[0087]
设备100还可以对具有r1r2通道的多个数据组120执行l
×
l分组卷积,以获得具有r2个通道(第三数量的通道)的中间数据130。例如,设备100可以执行与共享核权重的分组卷积。在图2的图200中,多个数据组120包括三个数据组221、222、223,基于在数据组221、222、223之间共享的共享核,执行分组卷积。
[0088]
设备100还可以执行从r2通道到s通道的1x1卷积。例如,设备100可以对中间数据130执行1x1卷积,以获得包括s个通道(第四数量的通道)的输出数据140。
[0089]
在图2的图200中,张量链式分解运算表示为三个卷积,其中,第二卷积是具有共享核权重的分组卷积。
[0090]
图3示意性地示出了执行1x1卷积的过程。
[0091]
图3的图300是示例性说明,其中,设备100可以对包括c个数量的通道的输入数据110执行第一1x1卷积,以获得包括r个通道(第二数量的通道)的数据组320。
[0092]
设备100还可以对数据组320执行第二1x1卷积,以获得包括s个通道(第四数量的通道)的输出数据。
[0093]
张量链式分解运算的示例可以如下:
[0094][0095]
图4示出了用于张量链式分解运算的方法400的流程图。方法400可以由设备100执行,如上所述。
[0096]
在步骤401,设备100可以获得输入数据110。输入数据110可以包括一系列图像滤波器
[0097]
在步骤402,设备100可以对输入数据110执行1x1卷积。例如,设备100可以与内核g0卷积x,其中,设备100还可以获得x0=conv(x,g0),其中,
[0098][0099]
在步骤403,设备100可以执行分组卷积。例如,设备100可以与内核g1分组卷积x0,其中,在r2组上共享g1。设备100还可以如下获得x1:
[0100]
x1=sharedgroupconv(x0,g1,r2),,其中,
[0101]
在步骤404,设备100可以与内核g2卷积x1,其中,设备100还可以获得y=conv(x1,g2),其中,
[0102]
在步骤405,设备100可以获得输出数据140。输出数据140可以是一系列输出滤波器,其中,
[0103]
现在参考图5,该图示出了用于获得cnn的分解卷积层的方法500的流程图。方法500可以由设备100执行,如上所述。
[0104]
在步骤501,设备可以获得包括第一数量(l)的卷积层的cnn。例如,设备100可以接收数据集d中具有l卷积层的输入架构a。
[0105]
在步骤502,设备100可以将每个卷积层conv
l
(x
l
)替换为加权对op
l
(x
l
,α
l
)。设备100还可以用值0.5初始化每个α
l

[0106]
在图6的图600中示出将卷积层替换为加权卷积的示例性说明。图6的图600示出了例如设备100可以将所有l卷积层替换为加权卷积。
[0107]
在步骤503,设备100可以循环c,对于k=1到k=k。
[0108]
在步骤504,设备100可以用该op(x)而非常规卷积来训练cnn达m轮。例如,设备100可以基于至少一个加权对op(x,α)和至少一个加权后的卷积层α*conv(x)执行cnn a的初始训练迭代。
[0109]
在步骤505,设备100可以在执行初始训练迭代之后确定具有最小加权参数α的卷积层conv(x)。例如,设备100可以根据以下条件找到具有最小权重α
l
的卷积层:
[0110][0111]
在步骤506,设备100可以确定是否此外,当设备100确定“是”时,设备100进入步骤507,当确定“否”时,设备100返回步骤509。
[0112]
在步骤507,设备100可以将具有最小加权参数α的卷积层conv(x)的加权对op(x,α)替换为其分解卷积层dconv(x)。
[0113]
图7的图700示出了将卷积层的加权对替换为其分解卷积的示例性说明。图7的图700示出了例如设备100将改变为相应的
[0114]
在步骤508,设备100可以将k增加1,并且可以进一步返回步骤503k次。(例如,k=10)
[0115]
在步骤509,设备100可以将剩余的l-kop
l
(x
l
,α
l
)改变为相应的卷积层conv
l
(x
l
)。
[0116]
图8示出了改变一组加权对及其相应的卷积层的示例性说明。例如,设备100可以
根据以下公式,基于确定交叉熵,来获得训练损失:
[0117][0118]
其中,net(x)是神经网络的输出,d是训练示例(x,y)的数据。
[0119]
在步骤510,设备100可以训练模型达m轮。例如,设备100可以通过将具有最小加权参数α的卷积层conv(x)的加权对op(x,α)替换为其分解卷积层dconv(x),基于至少一个加权对op(x,α))的剩余部分和来自上次迭代的至少一个加权后的卷积层α*conv(x)的剩余部分,来执行cnna的附加训练迭代。
[0120]
在步骤511,设备100可以对测试数据评估模型m。
[0121]
在步骤512,设备100可以返回具有k分解层的训练模型m。例如,设备100可以获得包括第二数量的卷积层和第三数量k的分解卷积层的分解cnn m。
[0122]
在下文中,讨论执行设备100的示例,但本发明并不限于该特定示例。
[0123]
首先,设备100为3x3卷积层选择秩r1,r2,并为1x1卷积选择秩r。
[0124]
设备100可以执行矩阵乘法运算。例如,设备100可以将大矩阵分割成预定大小的部分(例如,16,但可以使用任何设备特定的数量),并且还可以逐部分执行乘法运算。此外,如果通道数量不能被16整除,则通道可以用零填充,直到其数量可以被16整除。
[0125]
设备100还可以使用r2=16,因为张量链式卷积中的最后一个卷积以该通道数量运算,其中,r1=s/(4*r2)。因此,设备100可以使用以下条件:
[0126]
例如,如果c=512,s=512,l=3,则:
[0127]
·
第一卷积是从512个通道到128个通道的映射。
[0128]
·
第二卷积是从128个通道到16个通道的3
×
3分组卷积,其中,组的数量为16。因此,在这个卷积中,设备100在16组之间共享3
×3×8×
1形状权重。
[0129]
·
最后一个卷积是从16个通道到512个通道的映射。
[0130]
此外,在不限制本发明的情况下,呈现了分别由设备100和一些传统设备获得的浮点运算总数的比较。因此,使用以下符号:n是批处理大小,c是输入通道的数量,s是输出通道的数量,l是内核大小,r1,

,rd是原始张量链式分解运算(ttconv)秩,r1,r2与设备100获得的ttconv秩相关,r是传统设备获得的trconv(张量链式卷积)秩。
[0131]
[0132][0133]
一些示例(为方便起见,n=1,l=3):
[0134]
接下来,比较由设备100(基于执行张量链式分解运算ttconv)获得的结果与对象检测任务的先前实现方式。使用基于yolo的模型,最后三层分解过程如下:
[0135]
·
使用具有固定秩的tt-svd算法将最后三个卷积层从相关模型转换为ttconv。其中一个卷积分别具有c=256和s=512通道,另外两个卷积分别具有c=512和s=512通道。
[0136]
·
使用三个ttconv层训练该模型。
[0137]
·
设备100测量了推断时间。
[0138]
结果表明,使用设备100(实现张量链式分解运算或ttconv)比原始运算更合理。
[0139][0140]
接下来,使用设备100计算单独层的推理改进。该层是resnet50主干模型的一部分。
[0141]
此外,将原始卷积层与设备100获得的结果进行比较。
[0142]
c,sl,步长(s)常规conv推理ttconv推理256、512l=1,s=20.046ms0.033ms(-28%)
512、512l=3,s=10.059ms0.03ms(-47%)512、512l=3,s=20.058ms0.32ms(-45%)512、2048l=1,s=10.042ms0.023ms(-45%)1024、2048l=1,s=20.056ms0.023ms(-59%)
[0143]
结果表明,使用ttconv可以加速实际设备中的单个卷积层。因此,可以得出结论,由设备100执行的ttconv是硬件友好的。
[0144]
此外,由设备100执行的训练运算也可以提高模型质量。例如,选择resnet34作为在imagenet数据集上具有良好质量的模型。resnet模型包括四个4级,其中,通道数量随级增加,在resnet34的情况下,第四级仅包括512个通道卷积。
[0145][0146]
作为resnet34_stage,设备100使用:模型,其中,这些级中的所有卷积都用ttconv替换;resnet34_auto-模型,其中,这些级中的所有卷积都用op(x,α)替换并用我们的训练过程训练。
[0147]
此外,可以得出结论,使用所提出的ttconv改进了模型推理,例如,可以从最后一列上显示的数据导出该模型推理。此外,可以得出结论,使用设备100执行的训练,可以确定最佳层。
[0148]
图9示出了根据本发明的实施例的用于对卷积神经网络的卷积层实现张量链式分解运算的方法900。如上所述,方法900可以由设备100执行。
[0149]
方法900包括步骤901,用于接收包括第一数量的通道的输入数据110。
[0150]
方法900还包括步骤902,用于对所述输入数据110执行1x1卷积,以获得多个数据组120,其中,所述多个数据组120包括第二数量的通道。
[0151]
方法900还包括步骤903,用于对多个数据组120执行分组卷积,以获得包括第三数量的通道的中间数据130。
[0152]
方法900还包括步骤904,用于对中间数据130执行1x1卷积,以获得包括第四数量的通道的输出数据140。
[0153]
本发明已结合各种实施例作为示例以及实现方式进行描述。但是,根据对附图、本发明和所附权利要求书的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其它变化。在权利要求书以及说明书中,词语“包括”不排除其它元件或步骤,且不定冠词“一个”不排除多个。单个元件或其他单元可以满足权利要求书中描述的若干实体或项目
的功能。在互不相同的从属权利要求中列举某些措施并不表示这些措施的组合不能用于有利的实现方式中。

技术特征:
1.一种用于对卷积神经网络cnn的卷积层实现张量链式分解运算的设备(100),其特征在于,所述设备(100)用于:接收包括第一数量的通道的输入数据(110);对所述输入数据(110)执行1x1卷积,以获得多个数据组(120),其中,所述多个数据组(120)包括第二数量的通道;对所述多个数据组(120)执行分组卷积,以获得包括第三数量的通道的中间数据(130);对所述中间数据(130)执行1x1卷积,以获得包括第四数量的通道的输出数据(140)。2.根据权利要求1所述的设备(100),其特征在于,基于在所述多个数据组(120)之间共享的共享核,执行所述分组卷积。3.根据权利要求1或2所述的设备(100),其特征在于,基于所述多个数据组(120)中数据组的数量,确定所述第三数量的通道。4.根据权利要求3所述的设备(100),其特征在于,基于所述设备(100)的一个或多个硬件特性,进一步确定所述第三数量的通道。5.根据权利要求1至4中任一项所述的设备(100),其特征在于,每个数据组(221、222、223)包括第五数量的通道,基于所述第三数量的通道和所述第五数量的通道,确定所述第二数量的通道。6.根据权利要求1至5中任一项所述的设备(100),其特征在于,还用于:获得包括第一数量的卷积层的cnn,其中,每个卷积层与相应的第一排序数相关联;基于所述cnn的训练,提供包括第二数量的卷积层和第三数量的分解卷积层的分解cnn;其中,所述第一数量等于所述第二数量和所述第三数量的总和,每个分解卷积层与相应的第二排序数相关联。7.根据权利要求6所述的设备(100),其特征在于,还用于对于所述cnn的卷积层,确定基于以下内容计算的加权对:加权后的卷积层,其中,所述加权后的卷积层是通过将第一加权可训练参数分配给所述卷积层而获得的;加权后的分解卷积层,其中,所述加权后的分解卷积层是通过将第二加权可训练参数分配给为所述卷积层确定的分解卷积层而获得的。8.根据权利要求7所述的设备(100),其特征在于,还用于:基于至少一个加权对,执行所述cnn的初始训练迭代。9.根据权利要求8所述的设备(100),其特征在于,还用于:在执行所述初始训练迭代之后,确定具有最小第一加权可训练参数的至少一个卷积层。10.根据权利要求9所述的设备(100),其特征在于,还用于:通过将具有所述最小第一加权可训练参数的所述卷积层的加权对替换为其分解卷积层,并且基于来自上次迭代的所述至少一个加权对的剩余部分,来执行所述cnn的附加训练迭代。11.根据权利要求10所述的设备(100),其特征在于,还用于:
迭代地执行以下步骤:确定具有最小第一加权可训练参数的卷积层;将具有所述最小第一加权可训练参数的所述卷积层的所述加权对替换为其分解卷积层;执行下一次训练迭代,直到将所确定数量的卷积层替换为其相应的分解卷积层。12.根据权利要求11所述的设备(100),其特征在于,所述设备(100)包括适合于cnn的张量处理运算的人工智能加速器。13.一种用于对卷积神经网络的卷积层实现张量链式分解运算的方法(900),其特征在于,所述方法(900)包括:接收(901)包括第一数量的通道的输入数据(110);对所述输入数据(110)执行(902)1x1卷积,以获得多个数据组(120),所述多个数据组(120)包括第二数量的通道;对所述多个数据组(120)执行(903)分组卷积,以获得包括第三数量的通道的中间数据(130);对所述中间数据(130)执行(904)1x1卷积,以获得包括第四数量的通道的输出数据(140)。14.一种计算机程序产品,其特征在于,包括指令,当所述程序由计算机执行时,使得所述计算机执行根据权利要求13所述的方法(900)的步骤。

技术总结
本发明涉及一种用于对卷积神经网络的卷积层实现张量链式分解运算的设备。该设备接收包括第一数量的通道的输入数据,并对输入数据执行1x1卷积,以获得多个数据组,其中,所述多个数据组包括第二数量的通道。该设备还对所述多个数据组执行分组卷积,以获得包括第三数量的通道的中间数据。此外,该设备对中间数据执行1x1卷积,以获得包括第四数量的通道的输出数据。数据。数据。


技术研发人员:弗拉基米尔
受保护的技术使用者:华为技术有限公司
技术研发日:2020.12.01
技术公布日:2023/8/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐