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

技术编号:38430759 阅读:26 留言:0更新日期:2023-08-07 11:27
本发明专利技术涉及一种用于对卷积神经网络的卷积层实现张量链式分解运算的设备。该设备接收包括第一数量的通道的输入数据,并对输入数据执行1x1卷积,以获得多个数据组,其中,所述多个数据组包括第二数量的通道。该设备还对所述多个数据组执行分组卷积,以获得包括第三数量的通道的中间数据。此外,该设备对中间数据执行1x1卷积,以获得包括第四数量的通道的输出数据。数据。数据。

【技术实现步骤摘要】
【国外来华专利技术】一种用于实现张量链式分解运算的设备和方法


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

技术介绍

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

技术实现思路

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

,i
d
]),i
k
∈{1,2,

,n
k
}
[0017]此外,通常,张量的秩r=(r0,r1,

,r
d
)的张量链式分解(TT)可以是一个表示,其中,每个张量元素是矩阵乘积,例如:
[0018][0019]其中,r0=r
d
=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的卷本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】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的卷积层,确定基于以下内容计算的加权对:加权后的卷积层,其中,所述加权后的卷积层是通过将第一加权可训练参数分配给所述卷积层而获得的;加权后的分解卷积层,其中,所述加权后的分解...

【专利技术属性】
技术研发人员:弗拉基米尔
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1