计算机执行的方法及装置制造方法及图纸

技术编号:34000678 阅读:32 留言:0更新日期:2022-07-02 12:04
本公开涉及一种计算机执行的方法及装置,应用于人工智能(Artificial Intelligence,AI)领域中的深度学习框架领域,所述方法应用于神经网络模型中的第一算子,所述方法包括:获取输入第一算子的第一特征图和第一算子对应的第一内核;将第一内核拆分为多个第二内核;根据第一特征图,获取每个第二内核对应的第二特征图;将多个第二内核分别与对应的第二特征图进行卷积运算,得到每个第二内核对应的卷积结果;按照多个第二内核的拆分方式对多个第二内核对应的卷积结果进行拼接,得到第一算子的运算结果;输出第一算子的运算结果。本公开提供的计算机执行的方法及装置能够提升算子的性能。子的性能。子的性能。

【技术实现步骤摘要】
计算机执行的方法及装置


[0001]本公开涉及终端人工智能(Artificial Intelligence,AI)领域中的深度学习框架领域,尤其涉及一种计算机执行的方法及装置。

技术介绍

[0002]深度学习框架为人工智能(Artificial Intelligence,AI)应用的基础,其关键特征包括易用性、可靠性以及高性能。深度学习框架的性能主要取决于高效的运行时以及高性能的算子实现。目前,卷积算子(Convolution)、反卷积算子(Deconvolution)、深度卷积算子(Depthwise Convolution,DW)和平均池化算子(Average Pooling,AvgPooling)为深度学习框架中较为流行的基础算子,在很大比例的网络模型中均有使用。
[0003]相关技术中,实现卷积算子、深度卷子算子和平均池化算子的反向求导算子时,以及实现反卷积算子时,需要先对输入算子的特征图按照步长进行补零,随后基于补零后的特征图进行相应的卷积操作,从而实现完整的运算。这种方式,将反向求导算子或者反卷积算子的运算转换为了常规的卷积运算,可以得到较好的硬件支持。
[0004]然而,相关技术中,对特征图补零的操作,会引入大量的无效运算,且无效运算的比例随着步长平方增长,这极大地影响了反向求导算子和反卷积算子的性能,进而影响了用户对深度学习框架的使用体验。

技术实现思路

[0005]有鉴于此,提出了一种计算机执行的方法及装置,以提升算子的运算效率,进而提升算子的性能。
[0006]第一方面,本公开的实施例提供了一种计算机执行的方法,所述方法应用于神经网络模型中的第一算子,所述方法包括:获取输入所述第一算子的第一特征图和所述第一算子对应的第一内核;将所述第一内核拆分为多个第二内核;根据所述第一特征图,获取每个第二内核对应的第二特征图;将所述多个第二内核分别与对应的第二特征图进行卷积运算,得到每个第二内核对应的卷积结果;按照所述多个第二内核的拆分方式对所述多个第二内核对应的卷积结果进行拼接,得到所述第一算子的运算结果;输出所述第一算子的运算结果。
[0007]在第一方面中,将算子的内核拆分为尺寸较小的内核,基于尺寸较小的内核获取补0数量较少的特征图,先将尺寸较小的内核与补0数量较少的特征图分别进行步长为1的卷积,然后将得到的各卷积结果进行拼接从而到的算子的运算结果,通过减少卷积过程中采用的特征图中取值为0的特征值的数量,减少了卷积过程中的无效运算量,提升了算子的运算效率进而提升了算子的性能。
[0008]根据第一方面,在所述计算机执行的方法的第一种可能的实现方式中,所述神经网络模型包括图像处理模型,所述第一特征图包括第一图像经过所述神经网络模型中的第二算子进行运算后得到中间图像,所述第一算子的运算结果用于输入所述神经网络模型的
第三算子进行运算,以得到所述第一图像的处理结果。
[0009]这样,通过提高第一算子的运算效率,提高了包括第一算子的图像处理模型的运算效率,进而提神了图像处理的速度,提高了图像处理的效率。
[0010]根据第一方面,或者第一方面的第一种可能的实现方式,在所述计算机执行的方法的第二种可能的实现方式中,将所述第一内核拆分为多个第二内核包括:对所述第一内核中的数据进行多次采样,得到多个采样数据,其中,采样的次数是根据所述第一算子的第一步长确定的,每次采样的位置是根据所述第一步长、所述第一内核的尺寸以及第三特征图的尺寸确定的,所述第三特征图表示输入所述第一算子对应的同规格卷积算子的特征图;基于每次采样得到的采样数据,生成一个第二内核,每次采样得到的采样数据存在于所述第二内核中的位置是根据所述采样数据被采样前存在于所述第一内核中的位置确定的。
[0011]这样,通过将第一内核拆分为多个尺寸较小的第二内核,可以降低后续采用内核进行卷积运算时的运算量,从而提高运算效率,提高算子性能。
[0012]根据第一方面的第二种可能的实现方式,在所述计算机执行的方法的第三种可能的实现方式中,对所述第一内核中的数据进行多次采样,得到多个采样数据,包括:根据所述第一步长对第三特征图进行膨胀,得到第四特征图,所述第四特征图中的特征值包括第一有效值和第一填充值,所述第一有效值表示所述第三特征图中存在的特征值,所述第一填充值表示所述第三特征图膨胀过程中添加的取值为0的特征值;根据第三内核在所述第四特征图的滑动,确定第四特征图中的第一有效值在第三内核中的位置,进而确定采样数据在所述第一内核中的位置,所述第三内核与所述第一内核尺寸相同;根据采样数据在所述第一内核中的一个位置,对所述第一内核中的数据进行一次采样,得到一个采样数据。
[0013]这样,通过按照第四特征图中的有效值在第三内核中的位置,确定采样数据在第一内核中的位置,可以使得第一内核拆分成第二内核后,仍然保持平移对称性。
[0014]根据第一方面的第三种可能的实现方式,在所述计算机执行的方法的第四种可能的实现方式中,滑动中确定的位置的数量是根据所述第一步长确定的。
[0015]根据第一方面的第四种可能的实现方式,在所述计算机执行的方法的第五种可能的实现方式中,所述第一步长包括水平步长和竖直步长,所述位置的数量为所述水平步长与所述竖直步长的乘积。
[0016]根据第一方面的第三种可能的实现方式至第五种可能的实现方式中的任意一种,在所述计算机执行的方法的第六种可能的实现方式中,所述第三内核包括所述第一内核。
[0017]这样,通过将第一内核作为第三内核,可以减少内核的数量,节省存储空间。
[0018]根据第一方面,或者以上第一方面的任意一种可能的实现方式,在所述计算机执行的方法的第七种可能的实现方式中,根据所述第一特征图,获取每个第二内核对应的第二特征图,包括:根据所述第一步长,对所述第一特征图进行膨胀,得到第五特征图,所述第五特征图中的特征值包括第二有效值和第二填充值,所述第二有效值表示所述第一特征图中存在的特征值,所述第二填充值表示所述第一特征图膨胀过程中添加的取值为0的特征值;根据所述第一内核的尺寸以及所述第一特征图对应的全卷积特征图的尺寸,对所述第五特征图进行扩张,得到第六特征图,所述第六特征图的尺寸与所述全卷积特征图尺寸相同,所述第六特征图中的特征值包括所述第二有效值、所述第二填充值和第三填充值,所述第三填充值表示所述第五特征图扩张过程中添加的取值为0的特征值;根据所述第三填充
值在所述第六特征图中的位置,以及所述第一步长,对所述第六特征图进行有效值补充,得到第七特征图,所述第七特征图与所述第六特征图同尺寸,所述第七特征图中的特征值包括所述第二有效值、所述第二填充值、第三有效值和第四填充值,所述第三有效值表示所述第三填充值中被设置为有效值的特征值,所述第四填充值表示所述第三填充值中除所述第三有效值以外的特征值;删除所述第七特征图中所述第二填充值以及所述第四填充值对应的部分,得到第八特征图,所述第八特征图包括所述第二有效值和所述第三有效值;从所述第八特征图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机执行的方法,其特征在于,一个神经网络模型中包括第一算子,所述方法应用于第一算子,所述方法包括:获取输入所述第一算子的第一特征图和所述第一算子对应的第一内核;将所述第一内核拆分为多个第二内核;根据所述第一特征图,获取每个第二内核对应的第二特征图;将所述多个第二内核分别与对应的第二特征图进行卷积运算,得到每个第二内核对应的卷积结果;按照所述多个第二内核的拆分方式对所述多个第二内核对应的卷积结果进行拼接,得到所述第一算子的运算结果;输出所述第一算子的运算结果。2.根据权利要求1所述的方法,其特征在于,所述神经网络模型包括图像处理模型,所述第一特征图包括第一图像经过所述神经网络模型中的第二算子进行运算后得到中间图像,所述第一算子的运算结果用于输入所述神经网络模型的第三算子进行运算,以得到所述第一图像的处理结果。3.根据权利要求1或2所述的方法,其特征在于,将所述第一内核拆分为多个第二内核包括:对所述第一内核中的数据进行多次采样,得到多个采样数据,其中,采样的次数是根据所述第一算子的第一步长确定的,每次采样的位置是根据所述第一步长、所述第一内核的尺寸以及第三特征图的尺寸确定的,所述第三特征图表示输入所述第一算子对应的同规格卷积算子的特征图;基于每次采样得到的采样数据,生成一个第二内核,每次采样得到的采样数据存在于所述第二内核中的位置是根据所述采样数据被采样前存在于所述第一内核中的位置确定的。4.根据权利要求3所述的方法,其特征在于,对所述第一内核中的数据进行多次采样,得到多个采样数据,包括:根据所述第一步长对第三特征图进行膨胀,得到第四特征图,所述第四特征图中的特征值包括第一有效值和第一填充值,所述第一有效值表示所述第三特征图中存在的特征值,所述第一填充值表示所述第三特征图膨胀过程中添加的取值为0的特征值;根据第三内核在所述第四特征图的滑动,确定第四特征图中的第一有效值在第三内核中的位置,进而确定采样数据在所述第一内核中的位置,所述第三内核与所述第一内核尺寸相同;根据采样数据在所述第一内核中的一个位置,对所述第一内核中的数据进行一次采样,得到一个采样数据。5.根据权利要求4所述的方法,其特征在于,滑动中确定的位置的数量是根据所述第一步长确定的。6.根据权利要求5所述的方法,其特征在于,所述第一步长包括水平步长和竖直步长,所述位置的数量为所述水平步长与所述竖直步长的乘积。7.根据权利要求4至6中任意一项所述的方法,其特征在于,所述第三内核包括所述第一内核。
8.根据权利要求1至7中任意一项所述的方法,其特征在于,根据所述第一特征图,获取每个第二内核对应的第二特征图,包括:根据所述第一步长,对所述第一特征图进行膨胀,得到第五特征图,所述第五特征图中的特征值包括第二有效值和第二填充值,所述第二有效值表示所述第一特征图中存在的特征值,所述第二填充值表示所述第一特征图膨胀过程中添加的取值为0的特征值;根据所述第一内核的尺寸以及所述第一特征图对应的全卷积特征图的尺寸,对所述第五特征图进行扩张,得到第六特征图,所述第六特征图的尺寸与所述全卷积特征图尺寸相同,所述第六特征图中的特征值包括所述第二有效值、所述第二填充值和第三填充值,所述第三填充值表示所述第五特征图扩张过程中添加的取值为0的特征值;根据所述第三填充值在所述第六特征图中的位置,以及所述第一步长,对所述第六特征图进行有效值补充,得到第七特征图,所述第七特征图与所述第六特征图同尺寸,所述第七特征图中的特征值包括所述第二有效值、所述第二填充值、第三有效值和第四填充值,所述第三有效值表示所述第三填充值中被设置为有效值的特征值,所述第四填充值表示所述第三填充值中除所述第三有效值以外的特征值;删除所述第七特征图中所述第二填充值以及所述第四填充值对应的部分,得到第八特征图,所述第八特征图包括所述第二有效值和所述第三有效值;从所述第八特征图中拆分出每个第二内核对应的第二特征图。9.根据权利要求8所述的方法,其特征在于,从所述第八特征图中拆分出每个第二内核对应的第二特征图,包括:针对每个第二内核:根据所述第二内核中的数值在所述第一内核中的位置、所述全卷积特征图的尺寸、所述第五特征图扩张过程中添加的取值为0的特征值的数量和位置,确定所述第八特征图中保留的第三有效值位置;按照保留的第三有效值的位置,以及所述第二有效值的位置,从所述第八特征图中拆分出所述第二内核对应的第二特征图。10.根据权利要求1至9中任意一项所述的方法,其特征在于,按照所述多个第二内核的拆分方式对所述多个第二内核对应的卷积结果进行拼接,得到所述第一算子的运算结果,包括:按照所述第二内核中的数值在所述第一内核中的位置,确定所述第二内核对应的卷积结果中的数值在所述第一算子的运算结果中的位置;按照每个每个卷积结果的数值在所述第一算子的运算结果中的位置,将每个卷积结果中的数值进行拼接,得到所述第一算子的运算结果。11.根据权利要求1至10中任意一项所述的方法,其特征在于,所述第一算子包括反卷积算子和反向求导算子中的一者或两者。12.一种计算机执行的装置,其特征在于,一个神经网络模型中包括第一算子,所述装置应用于所述第一算子,所述装置包括:第一获取模块,用于获取输入所述第一算子的第一特征图和所述第一算子对应的第一内核;拆分模块,用于将所述第一获取模块获取的第一内核拆分为多个第...

【专利技术属性】
技术研发人员:邵科杰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1