CN110956252A - 执行多个神经网络的计算的方法和计算装置 - Google Patents

执行多个神经网络的计算的方法和计算装置 Download PDF

Info

Publication number
CN110956252A
CN110956252A CN201811131524.9A CN201811131524A CN110956252A CN 110956252 A CN110956252 A CN 110956252A CN 201811131524 A CN201811131524 A CN 201811131524A CN 110956252 A CN110956252 A CN 110956252A
Authority
CN
China
Prior art keywords
layer
neural networks
tensor
splicing
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811131524.9A
Other languages
English (en)
Inventor
孙承根
罗远飞
焦英翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
4Paradigm Beijing Technology Co Ltd
Original Assignee
4Paradigm Beijing Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 4Paradigm Beijing Technology Co Ltd filed Critical 4Paradigm Beijing Technology Co Ltd
Priority to CN201811131524.9A priority Critical patent/CN110956252A/zh
Publication of CN110956252A publication Critical patent/CN110956252A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

一种执行多个神经网络的计算的方法和计算装置。所述方法包括由计算机执行的如下步骤:当多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层,将该相应层的原输入张量拼成一个比原输入张量高一维的张量;通过将高一维的张量输入到拼接层,以得到拼接层的输出张量的方式完成关于该相应层的计算;当多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的多个相应层中的第一个相应层拼接成第一拼接层;将所第一个相应层的原输入张量拼成一个比原输入张量高一维的张量;通过将所述高一维的张量输入到第一拼接层,以得到所述第一拼接层的输出张量的方式完成关于所述第一个相应层的计算。

Description

执行多个神经网络的计算的方法和计算装置
技术领域
本发明涉及机器学习领域,更具体地讲,涉及一种执行多个神经网络的计算的方法和计算装置。
背景技术
随着海量数据的出现,人工智能技术迅速发展,而机器学习是人工智能发展到一定阶段的必然产物,其致力于通过计算的手段(例如,通过使用神经网络),从大量数据中挖掘有价值的潜在信息。
然而,随着数据量的增加,计算机对神经网络的处理能力(例如,运算速度)也备受考验。此外,在图像处理、命名实体识别和语音识别等领域中,往往需要一些具有相同结构的层的神经网络(例如,层结构完全相同的同构神经网络)来处理一组相应的输入(例如,图像输入、文本输入和语音输入等)。对于这种结构的神经网络的计算,传统的做法是对每个网络单独进行运算,当网络数量较大时,计算量非常大,耗时冗长。可见传统的针对同构神经网络的运算方式,运算效率低下,不满足实际业务的快速更新迭代的需求。
发明内容
本发明的目的在于提供一种执行多个神经网络的计算的方法和计算装置,以至少部分地解决上述的问题。
本发明的一方面提供一种由至少一个计算机执行多个神经网络的计算的方法,其中,该方法包括由所述至少一个计算机执行的如下步骤:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层,将所述多个神经网络的该相应层的原输入张量拼成一个比原输入张量高一维的张量;通过将所述高一维的张量输入到所述拼接层,以得到所述拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述顺序连接的多个相应层中的第一个相应层拼接成第一拼接层;将所述多个神经网络的所述第一个相应层的原输入张量拼成比一个原输入张量高一维的张量;通过将所述高一维的张量输入到所述第一拼接层,以得到所述第一拼接层的输出张量的方式完成所述多个神经网络中的关于所述第一个相应层的计算。
可选地,当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,所述方法还包括:对于所述多个神经网络中的所述第一个相应层之后的每个后续相应层,将所述多个神经网络的该后续相应层拼接成第二拼接层;通过将该后续相应层的上一相应层的输出结果输入到所述第二拼接层,以得到所述第二拼接层的输出结果的方式完成所述多个神经网络中的该后续相应层的计算。
可选地,所述方法还包括:对于所述多个神经网络中的所述顺序连接的多个相应层中的最后一个相应层,将由所述多个神经网络的最后一个相应层拼接成的拼接层的输出张量变形成比该输出张量本身低一维的张量。
可选地,所述方法还包括:当所述多个神经网络的一个相应层的结构相同时,将所述拼接层的输出张量变形成比该输出张量本身低一维的张量
可选地,所述相应层为如下中的任一种:全连接层;批量归一化层;激活函数层;按元素积层;类分解机层。
可选地,当所述相应层是全连接层时,拼接后的拼接层是局部连接层。
可选地,通过调用底层的并行矩阵运算库来完成所述多个神经网络中的关于结构相同的相应层的计算,其中,并行矩阵运算库包括MKL,OpenBlas,CUDA,cublas中的至少一个。
可选地,当所述相应层是全连接层,拼接后的拼接层是局部连接层时,对于局部连接层中的矩阵乘法使用矩阵运算库批量矩阵乘法函数加速计算,其中,批量矩阵乘法函数包括以下函数中的至少一个:Mkl库的cblas_dgemm_batch函数;cublas库的cublasDgemmStridedBatched函数。
可选地,所述多个神经网络为深度神经网络中的同构神经网络。
本发明的一方面提供一种执行多个神经网络的计算的计算装置,其中,所述计算装置包括:网络拼接单元,被配置为:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述顺序连接的多个相应层中的第一个相应层拼接成第一拼接层;输入拼成单元,被配置为:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层的原输入张量拼成一个比原输入张量高一维的张量;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述第一个相应层的原输入张量拼成一个比原输入张量高一维的张量;计算单元,被配置为:当所述多个神经网络的一个相应层的结构相同时,通过将所述高一维的张量输入到所述拼接层,以得到所述拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,通过将所述高一维的张量输入到所述第一拼接层,以得到所述第一拼接层的输出张量的方式完成所述多个神经网络中的关于所述第一个相应层的计算。
可选地,当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,网络拼接单元被配置为对于所述多个神经网络中的所述第一个相应层之后的每个后续相应层,将所述多个神经网络的该后续相应层拼接成第二拼接层;计算单元被配置为通过将该后续相应层的上一相应层的输出结果输入到所述第二拼接层,以得到所述第二拼接层的输出结果的方式完成所述多个神经网络中的该后续相应层的计算。
可选地,所述计算装置还包括:输出拼成单元,被配置为对于所述多个神经网络中的所述顺序连接的多个相应层中的最后一个相应层,将由所述多个神经网络的最后一个相应层拼接成的拼接层的输出张量变形成比该输出张量本身低一维的张量。
可选地,所述计算装置还包括:输出拼成单元,被配置为当所述多个神经网络的一个相应层的结构相同时,将所述拼接层的输出张量变形成比该输出张量本身低一维的张量。
可选地,所述相应层为如下中的任一种:全连接层;批量归一化层;激活函数层;按元素积层;类分解机层。
可选地,当所述相应层是全连接层时,拼接后的拼接层是局部连接层。
可选地,计算单元被配置为通过调用底层的并行矩阵运算库来完成所述多个神经网络中的关于结构相同的相应层的计算,其中,并行矩阵运算库包括MKL,OpenBlas,CUDA,cublas中的至少一个。
可选地,当所述相应层是全连接层,拼接后的拼接层是局部连接层时,对于局部连接层中的矩阵乘法使用矩阵运算库批量矩阵乘法函数加速计算,其中,批量矩阵乘法函数包括以下函数中的至少一个:Mkl库的cblas_dgemm_batch函数;cublas库的cublasDgemmStridedBatched函数。
可选地,所述多个神经网络为深度神经网络中的同构神经网络。
本发明的一方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被一个或多个计算装置执行时使得所述一个或多个计算装置实现如上所述的任一项方法。
本发明的一方面提供一种包括一个或多个计算装置和一个或多个存储装置的系统,所述一个或多个存储装置上记录有计算机程序,所述计算机程序在被所述一个或多个计算装置执行时使得所述一个或多个计算装置实现如上所述的任一项方法。
本发明这种通过对多个神经网络的结构相同的相应层进行拼接、将相应层的原输入张量拼成比一个原输入高一维的张量并利用高一维的张量和拼接后的相应层进行运算的技术方案,将运算次数较多的与各相应层分别对应的运算转换为运算次数较少的与拼接后的相应拼接层对应的批量运算。由于每进行一次运算就要调用一次运算库,而运算库的每次启动都有一定的固定开销,运算次数越多这种固定开销越大,因此本发明这种方案,通过减少运算次数,在保证运算等价的同时,大大减少了这种固定开销,从而提高了运算效率。
将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。
附图说明
通过下面结合示例性地示出一例的附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1A示出根据本发明的一个实施例的由至少一个计算机执行多个神经网络的计算的方法;
图1B示出根据本发明的另一实施例的由至少一个计算机执行多个神经网络的计算的方法;
图2示出根据本发明的执行多个神经网络的计算的计算装置;
图3A示出现有技术的执行多个神经网络的计算的示例;
图3B示出根据本发明的对图3A的多个神经网络进行处理和计算的示例;
图4A是三个独立的且结构相同的全连接层的示意图;
图4B是对图4A中的三个全连接层进行拼接后得到的局部连接层的示意图。
具体实施方式
提供以下参照附图进行的描述,以帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。所述描述包括各种特定细节以帮助理解,但这些细节被认为仅是示例性的。因此,本领域的普通技术人员将认识到:在不脱离本发明的范围和精神的情况下,可对这里描述的实施例进行各种改变和修改。此外,为了清楚和简明,可省略已知功能和构造的描述。
在本发明中,多个神经网络可以是包括在深度神经网络(DNN)(例如,深度稀疏网络(DSN))中的多个神经网络。应该理解,上述描述仅是示例,本发明不限于此,多个神经网络也可以包括在其他类型的神经网络中的多个神经网络。此外,这里的多个神经网络可用于各种用途的多个神经网络。例如,多个神经网络可用于处理图像输入、语音输入、文本输入等。应理解,上述多个神经网络的输入仅是示例,本发明不限于此,多个神经网络也可用于处理其他输入。
图1A示出根据本发明的一个实施例的由至少一个计算机执行多个神经网络的计算的方法。
参照图1A,根据本发明的由至少一个计算机执行多个神经网络的计算的方法包括由所述至少一个计算机执行的步骤S110、步骤S120和步骤S130。
在步骤S101中,当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层。这里,拼接层指的是拼接后的层。
这里,多个神经网络的一个相应层的结构相同可表示该相应层的神经元的数量和神经元之间的连接关系完全相同。换言之,多个神经网络均具有这样的相应层:相应层的神经元的数量和连接关系完全相同。作为示例,多个神经网络为深度神经网络中的同构神经网络。
所述相应层为如下中的任一种:全连接层;批量归一化层(batch normalizationlayer);激活函数层;按元素积层(element wise product layer);类分解机层(factorization machine layer,FM layer)。应理解,上述相应层仅是示例,本发明不限于此,相应层也可以是其输入被运算的其他层。例如,当相应层是全连接层时,拼接后的拼接层是局部连接层。
这里,拼接层中的各神经元之间的连接关系与多个神经网络中的拼接前的相应层的各对应神经元相同。换言之,拼接前后的相应层的各神经元之间的连接关系没有改变。
在步骤S102中,将所述多个神经网络的该相应层的原输入张量拼成一个比原输入张量高一维的张量。这里,原输入张量可指示在拼接之前的相应层的输入张量。
换言之,当原输入张量的维数为k(k为大于等于0的整数),拼成后的张量的维数为k+1。例如,当原输入张量分别是维数为1的张量[0,1]和[0,2]时,拼成后的张量是一个维数为2的张量
Figure BDA0001813670400000061
应理解,上述示例是说明性的,本发明不限于此,原输入张量可以是各种类型的维数相同的张量。
应该理解,虽然图1A中示出步骤S102在步骤S101之后,但是本发明不限于。例如,可在步骤S102之后执行步骤S101或者可同时执行步骤S102和步骤S101。
在步骤S103中,通过将所述高一维的张量输入到所述拼接层,以得到所述拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算。
此时,当比原输入张量高一维的张量被输入到由多个神经网络的相应层拼接成的拼接层时,多个神经网络的拼接前的各自相应层的矩阵运算被转换成了批量矩阵运算。
在这种情况下,可通过调用底层的并行矩阵运算库来完成所述多个神经网络中的关于结构相同的相应层的计算,其中,并行矩阵运算库包括MKL,OpenBlas,CUDA,cublas中的至少一个。作为示例,并行矩阵运算库可以是MKL(Math Kernel Library)库、CUDA库中的cublas库等,然而,本发明不对并行矩阵运算库进行限制。在一个实施例中,当所述相应层是全连接层,拼接后的拼接层是局部连接层时,对于局部连接层中的矩阵乘法使用矩阵运算库批量矩阵乘法函数加速计算,其中,批量矩阵乘法函数包括以下函数中的至少一个:Mkl库的cblas_dgemm_batch函数;cublas库的cublasDgemmStridedBatched函数。
在实际当中,运算库启动运算有一定的固定开销(例如,GPU kernel启动时间)。因此,通过将多个矩阵运算转换为批量矩阵运算并利用并行矩阵运算库进行运算,从而减少了运算库的启动开销,同时合理地利用了计算资源。
此外,可选地,可通过将拼接层的输出张量变形成比该输出向量本身低一维的张量。此时,可获得与多个神经网络中的拼接前的相应层的输出张量相同的多个张量。换言之,此时,拼接层能获得与拼接前的各相应层相同的输出结果。
也就是说,根据本发明的由至少一个计算机执行多个神经网络的计算的方法可在不改变多个神经网络的相应层的输出的情况下大幅提高了计算效率。
图1B示出根据本发明的另一实施例的由至少一个计算机执行多个神经网络的计算的方法。
参照图1B,根据本发明的由至少一个计算机执行多个神经网络的计算的方法包括由所述至少一个计算机执行的步骤S111、步骤S112和步骤S113。
在步骤S111中,当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述顺序连接的多个相应层中的第一个相应层拼接成第一拼接层。
换言之,参照图1B描述的根据本发明的由至少一个计算机执行多个神经网络的计算的方法是针对多个神经网络中的顺序连接的多个相应层的结构相同的情况,而参照图1A描述的根据本发明的由至少一个计算机执行多个神经网络的计算的方法是针对多个神经网络的只有一个相应层的结构相同的情况。因此,针对图1A对相应层的描述也可相应地适用于这里的相应层,为了简明,这里不再重复相同的描述。
作为示例,当多个神经网络包括第一神经网络和第二神经网络,第一神经网络包括第一网络层L1和与第一网络层L1直接连接的第二网络层L2(即,第一网络层L1的输出被输入到第二网络层L2),第二神经网络包括第三网络层L3和与第三网络层L3直接连接的第四网络层L4(即,第三网络层L3的输出被输入到第四网络层L4),且第一网络层L1和第三网络层L3结构相同,第二网络层L2和第四网络层L4结构相同时,可将第一网络层L1和第三网络层L3视为一个相应层,并可将第二网络层L2和第四网络层视为另一个相应层。应该理解,上述示例仅是说明性的,本发明不限于此,其他数量的神经网络和其他数量的相应层也是可行的。
此外,所述多个神经网络的第一个相应层指的是相应层中按输入层到输出层的方向的第一个相应层。例如,在上述多个神经网络包括第一神经网络和第二神经网络的示例中,第一网络层L1和第三网络层L3可被视为第一个相应层。根据步骤S111的方案,将第一网络层L1和第三网络层L3拼接成一个拼接层。
在步骤S112中,将所述多个神经网络的所述第一个相应层的原输入张量拼成一个比原输入张量高一维的张量。
这里,拼成的方式可与参照图1A的步骤S120所描述的方式相似,这里不再重复相似的描述。
在上述多个神经网络包括第一神经网络和第二神经网络的示例中,由于第一网络层L1和第三网络层L3被视为第一个相应层,所以这里将第一网络层L1的原输入张量和第二网络层L2的原输入张量拼成一个比第一网络层L1的原输入张量高一维的张量。应理解,第一网络层L1和第三网络层L3为结构相同的相应层,因此,第一网络层L1和第三网络层L3的原输入张量的输入维数相同。应该理解,上述示例只是了为了便于理解步骤S112,而并不意图对步骤S112进行限制。
在步骤S113中,通过将所述高一维的张量输入到所述第一拼接层,以得到所述第一拼接层的输出张量的方式完成所述多个神经网络中的关于所述第一个相应层的计算。这里,得到所述第一拼接层的输出张量的方式可与参照图1A的步骤S103所描述的方式相似,这里不再重复相似的描述。
当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,可通过调用底层的并行矩阵运算库来完成所述多个神经网络中的关于第一相应层的计算,并在不改变多个神经网络的第一相应层的输出的情况下大幅提高了计算效率。
此外,可选地,当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,根据本发明的由至少一个计算机执行多个神经网络的计算的方法还包括:对于所述多个神经网络中的所述第一个相应层之后的每个后续相应层,将所述多个神经网络的该后续相应层拼接成第二拼接层;通过将该后续相应层的上一相应层的输出结果输入到所述第二拼接层,以得到所述第二拼接层的输出结果的方式完成所述多个神经网络中的该后续相应层的计算。对应前面的举例,将第一网络层L2和第三网络层L4拼接成一个拼接层,即所述的第二拼接层。这里,拼接的方式可与参照图1A描述的步骤S101中的拼接方式相似,得到所述第二拼接层的输出结果的方式可与参照图1A描述的步骤S103中的方式相似,因此,不再重复相似的描述。
换言之,当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,可通过调用底层的并行矩阵运算库来完成所述多个神经网络中的关于后续相应层的计算,并在不改变多个神经网络的后续相应层的输出的情况下大幅提高了计算效率。
此外,可选地,根据本发明的由至少一个计算机执行多个神经网络的计算的方法还可包括:对于所述多个神经网络中的所述顺序连接的多个相应层中的最后一个相应层,将由所述多个神经网络的最后一个相应层拼接成的拼接层的输出张量变形成比该输出张量本身低一维的张量。此时,可获得与多个神经网络中的拼接前的最后一个相应层的输出张量相同的多个张量。
也就是说,根据本发明的由至少一个计算机执行多个神经网络的计算的方法可在不改变多个神经网络的顺序连续的多个相应层的最终输出的情况下大幅提高了计算效率。
图2示出根据本发明的执行多个神经网络的计算的计算装置200。
参照图2,计算装置200包括网络拼接单元210、输入拼成单元220和计算单元230。这里,计算装置200可以是被配置为执行参照图1A或图1B描述的任一方法的装置,因此,可为了简明而省略重复的描述。换言之,应该理解,参照图1A或图1B描述的方面也可应用于计算装置200的相应方面。
在本发明中,网络拼接单元210被配置为:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述顺序连接的多个相应层中的第一个相应层拼接成第一拼接层。
也就是说,网络拼接单元210是被配置为执行参照图1A描述的步骤S101和参照图1B描述的步骤S111的单元。因此,参照图1A描述的步骤S101和参照图1B描述的步骤S111的描述也可适用于网络拼接单元210,这里不再重复相似的描述。
此外,可选地,当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,网络拼接单元210还可被配置为对于所述多个神经网络中的所述第一个相应层之后的每个后续相应层,将所述多个神经网络的该后续相应层拼接成第二拼接层。
在本发明中,输入拼成单元220被配置为:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层的原输入张量拼成一个比原输入张量高一维的张量;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述第一个相应层的原输入张量拼成一个比原输入张量高一维的张量。
也就是说,输入拼成单元220是被配置为执行参照图1A描述的步骤S102和参照图1B描述的步骤S112的单元。因此,参照图1A描述的步骤S102和参照图1B描述的步骤S112的描述也可适用于输入拼成单元220,这里不再重复相似的描述。
在本发明中,计算单元230被配置为:当所述多个神经网络的一个相应层的结构相同时,通过将所述高一维的张量输入到所述拼接层,以得到所述拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,通过将所述高一维的张量输入到所述第一拼接层,以得到所述第一拼接层的输出张量的方式完成所述多个神经网络中的关于所述第一个相应层的计算。
也就是说,计算单元230是被配置为执行参照图1A描述的步骤S103和参照图1B描述的步骤S113的单元。因此,参照图1A描述的步骤S103和参照图1B描述的步骤S113的描述也可适用于计算单元230。这里不再重复相似的描述。
在一个实施例中,计算单元230可被配置为通过调用底层的并行矩阵运算库来完成所述多个神经网络中的关于结构相同的相应层的计算,其中,并行矩阵运算库包括MKL,OpenBlas,CUDA,cublas中的至少一个。作为示例,并行矩阵运算库可以是MKL(Math KernelLibrary)库、CUDA库中的cublas库等,然而,本发明不对并行矩阵运算库进行限制。在一个实施例中,当所述相应层是全连接层,拼接后的拼接层是局部连接层时,对于局部连接层中的矩阵乘法使用矩阵运算库批量矩阵乘法函数加速计算,其中,批量矩阵乘法函数包括以下函数中的至少一个:Mkl库的cblas_dgemm_batch函数;cublas库的cublasDgemmStridedBatched函数。
一般来说,运算库启动运算有有一定的固定开销(如GPU kernel启动时间)。因此,计算装置200通过将多个矩阵运算转换为批量矩阵运算并利用并行矩阵运算库进行运算,从而减少了运算库的启动开销,同时合理地利用了计算资源。
此外,可选地,当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,计算单元230还可被配置为通过将该后续相应层的上一相应层的输出结果输入到由网络拼接单元210产生的第二拼接层,以得到所述第二拼接层的输出结果的方式完成所述多个神经网络中的该后续相应层的计算。
此外,可选地,计算装置200还可包括输出拼成单元(未示出)。在一个实施例中,输出拼成单元可被配置为对于所述多个神经网络中的所述顺序连接的多个相应层中的最后一个相应层,将由所述多个神经网络的最后一个相应层拼接成的拼接层的输出张量变形成比该输出张量本身低一维的张量。在另一个实施例中,输出拼成单元可被配置为当所述多个神经网络的一个相应层的结构相同时,将所述拼接层的输出张量变形成比该输出张量本身低一维的张量。也就是说,根据本发明的计算装置200可在不改变多个神经网络的相应层的最终输出的情况下大幅提高了计算效率。
图3A示出现有技术的执行多个神经网络的计算的示例。
参照图3A,虽然多个神经网络的相应层被示出为全连接层,但是本发明不限于此。相应层可为如下中的任一种:全连接层;批量归一化层(batchnormalization layer);激活函数层;按元素积层(element wise product layer);类分解机层(factorizationmachine layer,FM layer)。此外,虽然图3A示出多个相应层,但本发明不限于此,也可以是一个结构相同的相应层。换言之,图3A中的神经网络仅是示例,本发明不限于此。
在神经网络中,通常会使用相同的网络结构处理一组输入。如图3A表示,方框表示数据,椭圆形表示网络层,b表示batch size即一次迭代输入数据的条数,i0,f1,f2,f3分别表示各层输出数据的维度,整个网络表示为n个形状为(b,i0)的张量各自经过一层全连接层后变成形状为(b,f1)的张量,再各自经过若干层变成n个形状为(b,f3)的张量,最后这n个张量拼在一起,变成形状(b,n×f3)的张量。换言之,(b,n×f3)的张量由n个形状为(b,f3)的张量拼在一起而形成。这种网络的特点是一组网络从输入、中间层到输出的网络结构完全相同,这种网络通常用来做模型融合。
为了便于理解术语“拼在一起”,这里,假设b为2,f3为3,n为2,一个张量(b,f3)为
Figure BDA0001813670400000111
另一张量(b,f3)为
Figure BDA0001813670400000112
此时通过将上述两个张量拼在一起,得到的结果(b,n×f3)为
Figure BDA0001813670400000121
应该理解,上述假设仅是示例,本发明中的b、f3和n可为任意其他大于0的自然数。
为了便于说明,下面假设网络的数量n为3。应该理解,n为3仅是示例,n也可以其他的数(例如,2或者比3大的整数)。此时,在图3A中,网络1的全连接层11、网络2的全连接层21、网络3的全连接层31为结构相同的相应层,网络1的全连接层12、网络2的全连接层22、网络3的全连接层32为结构相同的相应层,网络1的全连接层13、网络2的全连接层23、网络3的全连接层33为结构相同的相应层。
此外,与网络1的全连接层11、网络2的全连接层21、网络3的全连接层31对应的相应层是网络1、网络2和网络3的顺序连接的多个相应层中的距输入层最近的相应层,因此,它可被称为网络1、网络2和网络3的多个相应层中的第一个相应层。与网络1的全连接层12、网络2的全连接层22、网络3的全连接层32对应的相应层以及与网络3的全连接层13、网络2的全连接层23、网络3的全连接层33对应的相应层在第一相应层之后,因此,它们可被称为网络1、网络2和网络3的多个相应层中的后续相应层。另外,由于与网络3的全连接层13、网络2的全连接层23、网络3的全连接层33对应的相应层是网络1、网络2和网络3的顺序连接的多个相应层中的距输入层最远的相应层,因此,它可被称为网络1、网络2和网络3的多个相应层中的最后一个相应层。
这里,虽然图3A示出三个神经网络的三个相应层,但是本发明不限于此。例如,神经网络的数量不限于三个,也可以是两个或者多于三个;相应层的数量也不限于三个,也可以是一个、二个或者多于三个。换言之,图3A中的神经网络仅是示例,本发明不限于此。下面结合不同的示例说明只有一个相应层的示例以及只有部分层为相应层的示例,然而,本发明不限于此。
在一个示例中,当相应层的数量为1时,该相应层即是第一个相应层,也是最后一个相应层;此时,不存在后续相应层。例如,参照图3A,假设,当网络1的全连接层11、网络2的全连接层21、网络3的全连接层31为结构相同的相应层,网络1的全连接层12、网络2的全连接层22、网络3的全连接层32不为结构相同的相应层,网络1的全连接层13、网络2的全连接层23、网络3的全连接层33不为结构相同的相应层。此时,只对网络1的全连接层11、网络2的全连接层21、网络3的全连接层31进行拼接以得到拼接层。在这种情况下,可将网络1的全连接层11的原输入张量、网络2的全连接层21的原输入张量和网络3的全连接层31的原输入张量拼成一个比各原输入张量高一维的张量,其中,网络1的全连接层11的原输入张量、网络2的全连接层21的原输入张量和网络3的全连接层31的原输入张量由于各全连接层的结构相同而维数相同。之后,可将拼成的张量输入到拼接层,以得到拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算。为便于网络1的全连接层12、网络2的全连接层22、网络3的全连接层32接收输入,可将由网络1的全连接层11、网络2的全连接层21、网络3的全连接层31拼接成的拼接层的输出张量变形成比该输出张量本身低一维的张量。此时,比该输出张量本身低一维的张量的数量与神经网络的数量对应。在这个示例中,比该输出张量本身低一维的张量的数量为3。
在又一示例中,参照图3A,假设,当网络1的全连接层11、网络2的全连接层21、网络3的全连接层31为结构相同的相应层,网络1的全连接层12、网络2的全连接层22、网络3的全连接层32也为结构相同的相应层,但网络1的全连接层13、网络2的全连接层23、网络3的全连接层33不为结构相同的相应层。此时,可对网络1的全连接层11、网络2的全连接层21、网络3的全连接层31进行拼接以得到拼接层。在这种情况下,可将网络1的全连接层11的原输入张量、网络2的全连接层21的原输入张量和网络3的全连接层31的原输入张量拼成一个比各原输入张量高一维的张量,之后,可将拼成的张量输入到拼接层,以得到拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算。此外,可对网络1的全连接层12、网络2的全连接层22、网络3的全连接层32进行拼接以得到第二拼接层,并将上一拼接层的输出结果输入到第二拼接层以得到第二拼接层的输出结果的方式完成所述多个神经网络中的该相应层的计算。为便于网络1的全连接层13、网络2的全连接层23、网络3的全连接层33接收输入,可将由网络1的全连接层12、网络2的全连接层22、网络3的全连接层32拼接成的第二拼接层的输出张量变形成比该输出张量本身低一维的张量。此时,比该输出张量本身低一维的张量的数量与神经网络的数量对应。在这个示例中,比该输出张量本身低一维的张量的数量为3。
此外,虽然图3A示出与网络1的全连接层11、网络2的全连接层21、网络3的全连接层31对应的第一个相应层与输入层直接相连,但是本发明不限于此。在第一个相应层与输入层之间也可存在其他的网络层。
在接下来的实施例中,我们设定图3A中的各神经网络的结构完全相同,即网络1的全连接层11、网络2的全连接层21、网络3的全连接层31为结构相同的相应层,网络1的全连接层12、网络2的全连接层22、网络3的全连接层32为结构相同的相应层,网络1的全连接层13、网络2的全连接层23、网络3的全连接层33为结构相同的相应层。
在现有技术中,对于图3A中的结构完全相同的各神经网络,需要对每个神经网络单独连接,计算时需要对每一个神经网络进行矩阵运算(例如,矩阵乘法、其他运算)。以图3A为例,一共要进行9×n次矩阵乘法运算(前向3×n+后向6×n)。一般来说,神经网络中的矩阵乘法运算要使用底层的并行矩阵运算库(MKL,OpenBlas,CUDA,cublas等)而运算库启动运算有一定的固定开销(如GPU kernel启动时间),运算的次数越多,这种开销越大,当网络数量n较大时,这种计算效率低下。
图3B示出根据本发明的对图3A的结构完全相同的多个神经网络进行处理和计算的示例。这里,类似地,为便于说明,假设网络的数量n为3,此时,将图3A中的全连接层11、全连接层21和全连接层31依次进行拼接,得到图3B中的局部连接层1;将图3A中的全连接层12、全连接层22和全连接层32依次进行拼接,得到图3B中的局部连接层2;将图3A中的全连接层13、全连接层23和全连接层33依次进行拼接,得到图3B中的局部连接层3。
参照图3B,与图3A类似,方框表示数据,椭圆形表示网络层,b表示batch size即一次迭代输入数据的条数,i0,f1,f2,f3分别表示各层的维度,网络的输入是n个形状为(b,i0)的二维张量(这里,二维张量是相对意义上的张量(例如,相对下面三维张量的张量),而不一定是绝对的二维张量),先拼成形状为(n,b,i0)的三维张量,经过局部连接层1后变成形状为(n,b,f1)的张量,经过局部全连接层2后变形为(n,b,f2)的张量,再经过局部连接层3后变成形状为(n,b,f3)的张量,最后这个三维张量进行形状变换,变形(或还原)成形状(b,n×f3)的二维张量。
参照图3A和图3B,可看出根据本发明的方案对图3A的多个神经网络进行处理和计算的结果与图3A的多个神经网络按照传统方式计算的结果完全相同。但计算效率上有很大提高。在图3A的神经网络的传统方式计算中,需要9×n次矩阵乘法运算,而在图3B的神经网络的层的计算中,只需要做9次批量矩阵乘。在实际当中,批量矩阵乘法还可以用矩阵库提供的函数进行加速(如Mkl库的cblas_dgemm_batch函数,cublas库的cublasDgemmStridedBatched函数)矩阵运算的时间大大减少。其他的操作如加法,激活函数的运算次数也会减少n倍,整体效率提升。
为了阐明对相应层的拼接不会改变原来运算结果,即仍是等价运算,以下图4A和图4B进行说明。其中,图4A是三个独立的且结构相同的全连接层的示意图。图4B是对图4A中的三个全连接层进行拼接后得到的局部连接层的示意图。
参照图4A,全连接层1、全连接层2、全连接层3为三个结构相同的且各自独立的全连接层。即,全连接层1、全连接层2、全连接层3的神经元的数量完全相同(图4A中以每个独立的全连接层的两边各有4个神经元为例,且每个神经元与对面的四个神经元均有连接)。
将图4A中全连接层1、全连接层2和全连接层3按照顺序依次拼接后得到如图4B所示的两边各有12个神经元的局部连接层。可以看出拼接后每个神经元的连接关系都没有变化。但是作为一个整体,一个神经元并没有与对面的12个神经元均有连接,因此是一个局部连接层。
参见图4A和图4B,在拼接前后,神经元的数量和神经元之间的连接关系没有发生改变,因此,拼接前的各层的输出与拼接后的相应层的输出完全等价。
这里,全连接层1可以是参照图3A描述的网络1的全连接层11,全连接层2可以是参照图3A描述的网络2的全连接层21,全连接层3可以是参照图3A描述的网络3的全连接层31,然而,本发明不限于此,全连接层1、全连接层2和全连接层3也可以是参照图3A描述的其他相应层或者另外的相应层。
以上已参照图1至图4描述了根据本发明的示例性实施例的执行多个神经网络的计算的方法和计算装置。然而,应理解的是:图1至4中所使用的装置、系统、单元等可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些系统、装置或单元等可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的单元。此外,这些系统、装置或单元等所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
此外,上述方法可通过记录在计算可读存储介质上的计算机程序来实现。例如,根据本发明的示例性实施例,可提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被一个或多个计算装置执行时使得所述一个或多个计算装置实现本申请中所公开的任一方法。
例如,在所述计算机程序被一个或多个计算装置执行时使得所述一个或多个计算装置执行以下步骤:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层,将所述多个神经网络的该相应层的原输入张量拼成比一个原输入张量高一维的张量;通过将所述高一维的张量输入到所述拼接层,以得到所述拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述顺序连接的多个相应层中的第一个相应层拼接成第一拼接层;将所述多个神经网络的所述第一个相应层的原输入张量拼成一个比原输入张量高一维的张量;通过将所述高一维的张量输入到所述第一拼接层,以得到所述第一拼接层的输出张量的方式完成所述多个神经网络中的关于所述第一个相应层的计算。
上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,所述计算机程序在被运行时还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在参照图1到图4进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。
应注意,根据本发明的示例性实施例的根据本发明的示例性实施例的执行多个神经网络的计算的方法和计算装置,可完全依赖计算机程序的运行来实现相应的功能,其中,装置或系统的各个单元在计算机程序的功能架构中与各步骤相应,使得整个装置或系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
另一方面,当图1至图3B所提及的各个单元或装置以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读存储介质中,使得计算装置(如处理器)可通过读取并运行相应的程序代码或者代码段来执行相应的操作。
例如,根据本发明的实施例的一种包括一个或多个计算装置和一个或多个存储装置的系统,其中,所述一个或多个存储装置中存储有计算机程序,在所述计算机程序被所述一个或多个计算装置执行时使得所述一个或多个计算装置实现本申请中所公开的任一方法。例如,使得所述一个或多个计算装置执行以下步骤:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层,将所述多个神经网络的该相应层的原输入张量拼成一个比原输入张量高一维的张量;通过将所述高一维的张量输入到所述拼接层,以得到所述拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述顺序连接的多个相应层中的第一个相应层拼接成第一拼接层;将所述多个神经网络的所述第一个相应层的原输入张量拼成一个比原输入张量高一维的张量;通过将所述高一维的张量输入到所述第一拼接层,以得到所述第一拼接层的输出张量的方式完成所述多个神经网络中的关于所述第一个相应层的计算。
具体说来,上述计算装置可以部署在服务器中,也可以部署在分布式网络环境中的神经元装置上。此外,所述计算装置设备还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置设备的所有组件可经由总线和/或网络而彼此连接。
这里,所述计算装置并非必须是单个装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。所述计算装置还可以是集成控制计算装置或计算装置管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。
用于执行根据本发明的示例性实施例的神经网络的训练方法或命名实体识别方法的计算装置可以是处理器,这样的处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器、微控制器或微处理器。作为示例而非限制,所述处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。处理器可运行存储在存储装置之一中的指令或代码,其中,所述存储装置还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,所述网络接口装置可采用任何已知的传输协议。
存储装置可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储装置可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库计算装置可使用的其他存储装置。存储装置和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储装置中的文件。
应注意本发明示例性实施注重解决目前针对多个神经网络的结构相同的相应层的计算时计算机响应慢、运算开销大,运算效率低下。具体的来说,为了解决上述问题,本发明通过对多个神经网络的结构相同的相应层进行拼接、将相应层的原输入张量拼成一个比原输入高一维的张量并利用高一维的张量和拼接后的相应层进行运算的技术方案,由于将数量较多的与相应层对应的矩阵运算转换为数量较少的与拼接后的相应层对应的批量矩阵运算,在保证运算等价的同时加快了运算启动速度,减少了运算开销,提高了运算效率。
以上描述了本申请的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本申请不限于所披露的各示例性实施例。在不偏离本申请的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本申请的保护范围应该以权利要求的范围为准。

Claims (10)

1.一种由至少一个计算机执行多个神经网络的计算的方法,其中,该方法包括由所述至少一个计算机执行的如下步骤:
当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层,将所述多个神经网络的该相应层的原输入张量拼成一个比原输入张量高一维的张量;通过将所述高一维的张量输入到所述拼接层,以得到所述拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算;
当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述顺序连接的多个相应层中的第一个相应层拼接成第一拼接层;将所述多个神经网络的所述第一个相应层的原输入张量拼成一个比原输入张量高一维的张量;通过将所述高一维的张量输入到所述第一拼接层,以得到所述第一拼接层的输出张量的方式完成所述多个神经网络中的关于所述第一个相应层的计算。
2.如权利要求1所述的方法,当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,所述方法还包括:
对于所述多个神经网络中的所述第一个相应层之后的每个后续相应层,将各神经网络的该后续相应层拼接成第二拼接层;
通过将该后续相应层的上一相应层的输出结果输入到所述第二拼接层,以得到所述第二拼接层的输出结果的方式完成所述多个神经网络中的该后续相应层的计算。
3.如权利要求2所述的方法,所述方法还包括:
对于所述多个神经网络中的所述顺序连接的多个相应层中的最后一个相应层,将由各神经网络的最后一个相应层拼接成的拼接层的输出张量变形成比该输出张量本身低一维的张量。
4.如权利要求1所述的方法,所述方法还包括:
当所述多个神经网络的一个相应层的结构相同时,将所述拼接层的输出张量变形比该输出张量本身低一维的张量。
5.如权利要求1所述的方法,其中,所述相应层为如下中的任一种:
全连接层;
批量归一化层;
激活函数层;
按元素积层;
类分解机层。
6.如权利要求5所述的方法,其中,当所述相应层是全连接层时,拼接后的拼接层是局部连接层。
7.如权利要求1所述的方法,其中,通过调用底层的并行矩阵运算库来完成所述多个神经网络中的关于结构相同的相应层的计算,其中,并行矩阵运算库包括MKL,OpenBlas,CUDA,cublas中的至少一个。
8.一种执行多个神经网络的计算的计算装置,其中,该计算装置包括:
网络拼接单元,被配置为:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层拼接成一个拼接层;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述顺序连接的多个相应层中的第一个相应层拼接成第一拼接层;
输入拼成单元,被配置为:当所述多个神经网络的一个相应层的结构相同时,将所述多个神经网络的该相应层的原输入张量拼成一个比原输入张量高一维的张量;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,将所述多个神经网络的所述第一个相应层的原输入张量拼成比一个原输入张量高一维的张量;
计算单元,被配置为:当所述多个神经网络的一个相应层的结构相同时,通过将所述高一维的张量输入到所述拼接层,以得到所述拼接层的输出张量的方式完成所述多个神经网络中的关于该相应层的计算;当所述多个神经网络的顺序连接的多个相应层的结构分别对应相同时,通过将所述高一维的张量输入到所述第一拼接层,以得到所述第一拼接层的输出张量的方式完成所述多个神经网络中的关于所述第一个相应层的计算。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被一个或多个计算装置执行时使得所述一个或多个计算装置实现如权利要求1-7中任一项所述的方法。
10.一种包括一个或多个计算装置和一个或多个存储装置的系统,所述一个或多个存储装置上记录有计算机程序,所述计算机程序在被所述一个或多个计算装置执行时使得所述一个或多个计算装置实现如权利要求1-7中任一项所述的方法。
CN201811131524.9A 2018-09-27 2018-09-27 执行多个神经网络的计算的方法和计算装置 Pending CN110956252A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811131524.9A CN110956252A (zh) 2018-09-27 2018-09-27 执行多个神经网络的计算的方法和计算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811131524.9A CN110956252A (zh) 2018-09-27 2018-09-27 执行多个神经网络的计算的方法和计算装置

Publications (1)

Publication Number Publication Date
CN110956252A true CN110956252A (zh) 2020-04-03

Family

ID=69967934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811131524.9A Pending CN110956252A (zh) 2018-09-27 2018-09-27 执行多个神经网络的计算的方法和计算装置

Country Status (1)

Country Link
CN (1) CN110956252A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506523A (zh) * 2020-12-21 2021-03-16 上海携旅信息技术有限公司 Bert模型的优化方法及系统、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506523A (zh) * 2020-12-21 2021-03-16 上海携旅信息技术有限公司 Bert模型的优化方法及系统、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US20220391665A1 (en) Method for splitting neural network model by using multi-core processor, and related product
US11790212B2 (en) Quantization-aware neural architecture search
US8131659B2 (en) Field-programmable gate array based accelerator system
Li et al. FPGA accelerates deep residual learning for image recognition
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
US11604960B2 (en) Differential bit width neural architecture search
EP3979143A1 (en) Method of performing splitting in neural network model by means of multi-core processor, and related product
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
US20200202195A1 (en) Neural network processing using mixed-precision data representation
US20200302330A1 (en) Outlier quantization for training and inference
CN114792387A (zh) 图像恢复方法和设备
CN110956252A (zh) 执行多个神经网络的计算的方法和计算装置
Peng et al. Mbfquant: a multiplier-bitwidth-fixed, mixed-precision quantization method for mobile cnn-based applications
Mai et al. A fast and accurate splitting method for optimal transport: Analysis and implementation
CN111160535A (zh) 基于Hadoop的DGCNN模型加速方法
US20220374718A1 (en) Backpropagation using parametrizing angles of unitary matrix
CN114201746A (zh) 低电路深度同态加密评估
CN111796797A (zh) 一种利用ai加速器实现环上多项式乘法计算加速的方法和装置
Nanjappa CAFFE2 QUICK START GUIDE: modular and scalable deep learning made easy
CN111506742A (zh) 多元关系知识库构建方法和系统
Liu et al. Lightweight Deep Learning for Resource-Constrained Environments: A Survey
US20230129845A1 (en) Method and electronic device for performing deep neural network operation
US20220051095A1 (en) Machine Learning Computer
US20240144051A1 (en) Hardware-aware generation of machine learning models
CN115841587B (zh) 图像分类任务的特征提取方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination