CN108320019B - 用于深度卷积神经网络的卷积计算方法及装置 - Google Patents

用于深度卷积神经网络的卷积计算方法及装置 Download PDF

Info

Publication number
CN108320019B
CN108320019B CN201810118043.8A CN201810118043A CN108320019B CN 108320019 B CN108320019 B CN 108320019B CN 201810118043 A CN201810118043 A CN 201810118043A CN 108320019 B CN108320019 B CN 108320019B
Authority
CN
China
Prior art keywords
convolution
knowledge base
optimization
execution plan
neural 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.)
Active
Application number
CN201810118043.8A
Other languages
English (en)
Other versions
CN108320019A (zh
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.)
Perfxlab Beijing Technology Co ltd
Original Assignee
Perfxlab 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 Perfxlab Beijing Technology Co ltd filed Critical Perfxlab Beijing Technology Co ltd
Priority to CN201810118043.8A priority Critical patent/CN108320019B/zh
Publication of CN108320019A publication Critical patent/CN108320019A/zh
Application granted granted Critical
Publication of CN108320019B publication Critical patent/CN108320019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种用于深度卷积神经网络的卷积计算方法及装置。该方法包括确定第一优化参数;根据所述第一优化参数建立知识库,其中所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;检索所述知识库中的是否存在符合预设性能条件的执行计划;如果所述知识库中的存在符合预设性能条件的执行计划,则生成符合预设性能条件的卷积计算方法。本申请解决了卷积计算方法的性能无法根据不同深度卷积神经网络自适应调优的技术问题。

Description

用于深度卷积神经网络的卷积计算方法及装置
技术领域
本申请涉及深度学习领域,具体而言,涉及一种用于深度卷积神经网络的卷积计算方法及装置。
背景技术
随着深度学习的发展,深度卷积神经网络成为应用最为广泛的网络结构,在图像、语音等领域应用广泛。深度卷积神经网络的核心算法是卷积计算,卷积计算在整个神经网络的计算中占据核心地位。
发明人发现,卷积算法的计算性能决定了深度卷积卷积网络的性能。影响卷积计算算法选择的因素主要包括:硬件架构特征、输入规模、通道数量、连续两次卷积计算的间隔大小以及卷积核大小等方面。
针对相关技术中卷积计算方法的性能无法根据不同深度卷积神经网络自适应调优的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种用于深度卷积神经网络的卷积计算方法,以解决卷积计算方法的性能无法根据不同深度卷积神经网络自适应调优的问题。能够实现不同输入在不同计算平台上卷积计算的最佳性能,大大提升深度学习算法在嵌入式平台上的性能。
为了实现上述目的,根据本申请的一个方面,提供了一种用于深度卷积神经网络的卷积计算方法,用于构建卷积算法的选择模型。
根据本申请的用于深度卷积神经网络的卷积计算方法包括:
确定第一优化参数,其中,所述第一优化参数用于初始化选择模型;根据所述第一优化参数建立知识库,其中,所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;检索所述知识库中的是否存在符合预设性能条件的执行计划,其中,所述执行计划用于作为当前深度卷积神经网络的卷积计算方法;以及如果所述知识库中的存在符合预设性能条件的执行计划,则生成符合预设性能条件的卷积计算方法。
进一步地,根据所述第一优化参数建立知识库包括:按照哈希表{key,value}的方式建立知识库;其中,将哈希表的key值配置为预设参数,将哈希表的value配置为深度卷积神经网络中的最优卷积算法。
进一步地,根据所述第一优化参数建立知识库包括:构建多维数组,用于表示知识库中的索引表;构建实际输入参数到所述多维数组索引的映射表;根据实际输入参数和所述映射表,确定key值在索引表中的索引,并返回对应的value值。
进一步地,检索所述知识库中的是否存在符合预设性能条件的执行计划包括:按照第一优化参数,提取实际输入参数;确定实际输入参数;通过实际输入参数在所述知识库中检索得到执行计划;通过执行计划生成用于卷积计算的预设代码。
进一步地,确定第一优化参数包括:硬件平台、输入图片规模、通道数量、连续两次卷积计算的间隔大小、卷积核的大小中的一种或者多种。
进一步地,如果所述知识库中的存在符合预设性能条件的执行计划,则生成符合预设性能条件的卷积计算方法包括如下任一一种:生成通用矩阵-矩阵乘法算法;生成Winograd算法;生成直接卷积算法。
为了实现上述目的,根据本申请的另一方面,提供了一种用于深度卷积神经网络的卷积计算装置。
根据本申请的用于深度卷积神经网络的卷积计算装置包括:确定模块,用于确定第一优化参数,其中,所述第一优化参数用于初始化选择模型;建立模块,用于根据所述第一优化参数建立知识库,其中所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;检索模块,用于检索所述知识库中的是否存在符合预设性能条件的执行计划,其中,所述执行计划用于作为当前深度卷积神经网络的卷积计算方法;生成模块,用于在所述知识库中的存在符合预设性能条件的执行计划时,生成符合预设性能条件的卷积计算方法
进一步地,所述建立模块包括:第一建立模块,所述第一建立模块,用于按照哈希表{key,value}的方式建立知识库;其中,将哈希表的key值配置为预设参数,哈希表的value配置为深度卷积神经网络中的最优卷积算法。
进一步地,所述建立模块包括:第二建立模块,所述第二建立模块,用于构建多维数组,用于表示知识库中的索引表;构建实际输入参数到所述多维数组索引的映射表;根据实际输入参数和所述映射表,确定key值在索引表中的索引,并返回对应的value值。
进一步地,所述检索模块包括:第一检索模块,所述第一检索模块,用于按照第一优化参数,提取实际输入参数;确定实际输入参数;通过实际输入参数在所述知识库中检索得到执行计划;通过执行计划生成用于卷积计算的预设代码。
在本申请实施例中,采用根据所述第一优化参数建立知识库的方式,通过检索所述知识库中的是否存在符合预设性能条件的执行计划,达到了自主选择性能最高的卷积计算算法的目的,从而实现了提高深度卷积神经网络性能的技术效果,进而解决了卷积计算方法的性能无法根据不同深度卷积神经网络自适应调优的技术问题。
此外,当硬件平台改变时,只需要根据算法选择模型选取最合适的卷积计算算法即可,在大幅提升性能的同时大大节省了人力资源。同时采用本申请的方法提高了竞争力,有益于深度学习产品的应用和推广。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请第一实施例的用于深度卷积神经网络的卷积计算方法示意图;
图2是根据本申请第一实施例的用于深度卷积神经网络的卷积计算方法示意图;
图3是根据本申请第二实施例的用于深度卷积神经网络的卷积计算方法示意图;
图4是根据本申请第三实施例的用于深度卷积神经网络的卷积计算方法示意图;
图5是根据本申请第一实施例的用于深度卷积神经网络的卷积计算装置示意图;
图6是根据本申请第二实施例的用于深度卷积神经网络的卷积计算装置示意图;以及
图7是根据本申请第三实施例的用于深度卷积神经网络的卷积计算装置示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,该方法包括如下的步骤S102至步骤S108:
步骤S102,确定第一优化参数,
所述第一优化参数用于初始化选择模型。
第一优化参数主要包括:优化知识的抽象和表达。优化知识是指最佳卷积算法选择模型的核心要素,其来源主要可以有两个方面:专家优化经验和历史性能测试数据。影响卷积计算算法选择的因素主要有以下五个方面:硬件架构特征;输入规模即需要进行卷积计算的图片大小;Channel数量;Stride大小即连续两次卷积计算的间隔;卷积kernel大小。
例如,可以从硬件平台、输入图片规模、Channels数量、Stride大小、卷积kernel大小五个方面对优化知识进行抽象。
其中,
硬件平台为底层硬件平台的主要架构;
输入图片规模定义为HⅹW,其中H为输入图片的高,W为输入图片的宽。输入规模定义为3个量级:256、64、32;
Channels数量定义为16、128、512、1024四个级别;
Stride大小定义为1和不等于1两个级别;
Kernel的大小定义为等于3和不等于3两个级别。
步骤S104,根据所述第一优化参数建立知识库,其中,所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;
根据上述第一优化参数中优化知识抽象的五个方面,以Hash表{key,value}的方式构建根据优化知识库。Hash表的key值为硬件平台、输入图片规模、Channels数量、Stride大小、Kernel大小五个方面,value值为最优的实现算法,如表1为算法选择模型的构建方式:
表1
Figure BDA0001571185050000061
步骤S106,检索所述知识库中的是否存在符合预设性能条件的执行计划,其中,所述执行计划用于作为当前深度卷积神经网络的卷积计算方法;
具体地,生成执行计划是指,首先将性能参数传递为自适应知识库,获得最佳实现方法;然后将最佳实现方法地址传递给该层神经网路。
步骤S108,如果所述知识库中的存在符合预设性能条件的执行计划,则生成符合预设性能条件的卷积计算方法。
具体地,根据上述确定的执行计划,调用相应的卷积计算算法代码,生成最终的高性能卷积算代码。
从以上的描述中,可以看出,本发明实现了如下技术效果:
在本申请实施例中,采用根据所述第一优化参数建立知识库的方式,通过检索所述知识库中的是否存在符合预设性能条件的执行计划,达到了自主选择性能最高的卷积计算算法的目的,从而实现了提高深度卷积神经网络性能的技术效果,进而解决了卷积计算方法的性能无法根据不同深度卷积神经网络自适应调优的技术问题。
本申请中提出了最佳算法选择模型的构建方法:并且可以结合专家优化经验和历史性能优化数据,从计算平台、输入图片规模、channels、stride以及kernel大小五个维度构建最佳算法选择模型,并构建高效索引机制,尽量减小模型对性能的损耗。知识库为离线构建完成,并可通过历史优化数据的不断积累而进行不断优化。
根据本发明实施例,优选地,如图2所示,根据所述第一优化参数建立知识库包括:
步骤S202,按照哈希表{key,value}的方式建立知识库;
以Hash表{key,value}的方式构建根据优化知识库。
步骤S204,将哈希表的key值配置为预设参数;
具体地,Hash表的key值为硬件平台、输入图片规模、Channels通道数量、Stride步长大小、Kernel卷积核大小五个方面。
步骤S206,将哈希表的value配置为深度卷积神经网络中的最优卷积算法。
value值为最优的实现算法。
根据本发明实施例,优选地,如图3所示,根据所述第一优化参数建立知识库包括:
步骤S302,构建多维数组,用于表示知识库中的索引表;
构建表示索引表的多维数组,多维数组的维度定义分别为硬件平台、输入图片规模、通道Channels、步长Stride、卷积核kernel。
步骤S304,构建实际输入参数到所述多维数组索引的映射表;
构建实际输入到多维数组索引的映射表。主要包含五个:硬件平台到多维数组第一维索引的映射表、矩阵输入规模到第二维的的映射表、Channel到第三维的的映射表、stride到第四维的的映射表、Kernel到第五维的的映射表。
步骤S306,根据实际输入参数和所述映射表,确定key值在索引表中的索引,并返回对应的value值。
根据实际输入和映射表,确定key值在索引表中的做种索引,并返回对应的value值。
采用五维数组的方式为hash表的所有key值建立索引表:Key[Hardware][Scale][Channels][Stride][Kernel]。索引表首先确定硬件平台;其次依次确定输入图片规模、Channels、Stride、Kernel Size;最后确定要采用的具体卷积算法。
根据本发明实施例,优选地,如图4所示,检索所述知识库中的是否存在符合预设性能条件的执行计划包括:
步骤S402,按照第一优化参数,提取实际输入参数;
第一优化参数提取包括但不限于,从实际应用中提取性能参数:
硬件平台,确定硬件平台的具体型号;
输入图片规模,确定输入图片的规模;
通道Channels,确定该层神经网络的Channel数目;
步长Stride,确定该层神经网络的stride大小;
卷积核Kernel大小,确定该层神经网络的大小。
步骤S404,确定实际输入参数;
确定实际输入参数:
第一优化参数提取包括但不限于,从实际应用中提取性能参数:
硬件平台,确定硬件平台的具体型号;
输入图片规模,确定输入图片的规模;
通道Channels,确定该层神经网络的Channel数目;
步长Stride,确定该层神经网络的stride大小;
卷积核Kernel大小,确定该层神经网络的大小。
步骤S406,通过实际输入参数在所述知识库中检索得到执行计划;
生成执行计划。首先将性能参数传递为自适应优化专家知识库,获得最佳实现方法;然后将最佳实现方法地址传递给该层神经网路。
步骤S408,通过执行计划生成用于卷积计算的预设代码。
生成高性能卷积计算代码。根据上述确定的执行计划,调用相应的卷积计算算法代码,生成最终的高性能卷积算代码。
通过上述方法,生成性能最佳卷积计算代码:通过抽象性能参数,确定最佳实现方法;制定执行计划,生成最佳性能的卷积计算代码。
作为本实施例中的优选,如果所述知识库中的存在符合预设性能条件的执行计划,则生成符合预设性能条件的卷积计算方法包括如下任一一种:
生成通用矩阵-矩阵乘法算法;
生成Winograd算法;
生成直接卷积算法。
主流的卷积算法的实现主要有GEMM(General Matrix-Matrix Multiplication,通用矩阵-矩阵乘法)、Winograd、直接卷积算法三种方法。由于在深度学习的训练阶段一般会同时处理多张图片,计算卷积时可以展开较大的矩阵,如果采用GEMM实现卷积算法的性能较高。但是在深度学习的检测阶段,一般只会处理一张图片,图片的规模一般较小,并且每一级神经网络处理的图片的大小(图片会随着神经网络层次的深入不断缩小)、Channel数(图片会随着神经网络层次的深入不断增多)都不相同。在这种情况下,GEMM并不总是性能最高的实现方案。更为严重的是,在深度神经网络执行过程中,每层网络的卷积计算的最佳实现方法是不同的。
本申请实施例中的方法能够在运行时自动选择性能最高的卷积计算算法,就显得尤为重要,且本实施例中的方法至少具备如下特点:能够根据硬件架构特征以及卷积计算的输入(包括但不限于输入规模、Channel数量、stride大小、卷积kernel大小等)自动选择性能最高的卷积计算算法。此外,该方法的开销必须极小,不会对整体计算效率造成影响。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,还提供了一种用于实施上述用于深度卷积神经网络的卷积计算方法的装置,如图5所示,该装置包括:确定模块10,用于确定第一优化参数,其中,所述第一优化参数用于初始化选择模型;建立模块20,用于根据所述第一优化参数建立知识库,其中所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;检索模块30,用于检索所述知识库中的是否存在符合预设性能条件的执行计划,其中,所述执行计划用于作为当前深度卷积神经网络的卷积计算方法;生成模块40,用于在所述知识库中的存在符合预设性能条件的执行计划时,生成符合预设性能条件的卷积计算方法。
在本申请的确定模块10中所述第一优化参数用于初始化选择模型。
第一优化参数主要包括:优化知识的抽象和表达。优化知识是指最佳卷积算法选择模型的核心要素,其来源主要可以有两个方面:专家优化经验和历史性能测试数据。影响卷积计算算法选择的因素主要有以下五个方面:硬件架构特征;输入规模即需要进行卷积计算的图片大小;Channel数量;Stride大小即连续两次卷积计算的间隔;卷积kernel大小。
例如,可以从硬件平台、输入图片规模、Channels数量、Stride大小、卷积kernel大小五个方面对优化知识进行抽象。
其中,
硬件平台为底层硬件平台的主要架构;
输入图片规模定义为HⅹW,其中H为输入图片的高,W为输入图片的宽。输入规模定义为3个量级:256、64、32;
Channels数量定义为16、128、512三个级别;
Stride大小定义为1和不等于1两个级别;
Kernel的大小定义为等于3和不等于3两个级别。
在本申请的建立模块20中根据上述第一优化参数中优化知识抽象的五个方面,以Hash表{key,value}的方式构建根据优化知识库。Hash表的key值为硬件平台、输入图片规模、Channels数量、Stride大小、Kernel大小五个方面,value值为最优的实现算法,如表1为算法选择模型的构建方式:
表1
Figure BDA0001571185050000111
在本申请的检索模块30中,具体地,生成执行计划是指,首先将性能参数传递为自适应知识库,获得最佳实现方法;然后将最佳实现方法地址传递给该层神经网路。
在本申请的生成模块40中,具体地,根据上述确定的执行计划,调用相应的卷积计算算法代码,生成最终的高性能卷积算代码。
本申请中提出了最佳算法选择模型的构建装置:并且可以结合专家优化经验和历史性能优化数据,从计算平台、输入图片规模、channels、stride以及kernel大小五个维度构建最佳算法选择模型,并构建高效索引机制,尽量减小模型对性能的损耗。知识库为离线构建完成,并可通过历史优化数据的不断积累而进行不断优化。
根据本发明实施例,优选地,如图6所示,所述建立模块20包括:第一建立模块201,所述第一建立模块201,用于按照哈希表{key,value}的方式建立知识库;其中,将哈希表的key值配置为预设参数,哈希表的value配置为深度卷积神经网络中的最优卷积算法。
本申请的所述第一建立模块201中以Hash表{key,value}的方式构建根据优化知识库。具体地,Hash表的key值为硬件平台、输入图片规模、Channels通道数量、Stride步长大小、Kernel卷积核大小五个方面。value值为最优的实现算法。
根据本发明实施例,优选地,如图6所示,所述建立模块20包括:第二建立模块202,所述第二建立模块202,用于构建多维数组,用于表示知识库中的索引表;构建实际输入参数到所述多维数组索引的映射表;根据实际输入参数和所述映射表,确定key值在索引表中的索引,并返回对应的value值。
在本申请实施例的第二建立模块202中构建表示索引表的多维数组,多维数组的维度定义分别为硬件平台、输入图片规模、通道Channels、步长Stride、卷积核kernel。
构建实际输入到多维数组索引的映射表。主要包含五个:硬件平台到多维数组第一维索引的映射表、矩阵输入规模到第二维的的映射表、Channel到第三维的的映射表、stride到第四维的的映射表、Kernel到第五维的的映射表。
根据实际输入和映射表,确定key值在索引表中的做种索引,并返回对应的value值。
采用五维数组的方式为hash表的所有key值建立索引表:Key[Hardware][Scale][Channels][Stride][Kernel]。索引表首先确定硬件平台;其次依次确定输入图片规模、Channels、Stride、Kernel Size;最后确定要采用的具体卷积算法。
根据本发明实施例,优选地,如图7所示,所述检索模块30包括:第一检索模块301,所述第一检索模块301,用于按照第一优化参数,提取实际输入参数;确定实际输入参数;通过实际输入参数在所述知识库中检索得到执行计划;通过执行计划生成用于卷积计算的预设代码。
在本申请所述第一检索模块301中第一优化参数提取包括但不限于,从实际应用中提取性能参数:
硬件平台,确定硬件平台的具体型号;
输入图片规模,确定输入图片的规模;
通道Channels,确定该层神经网络的Channel数目;
步长Stride,确定该层神经网络的stride大小;
卷积核Kernel大小,确定该层神经网络的大小。
在本申请所述第一检索模块301中生成执行计划。首先将性能参数传递为自适应优化专家知识库,获得最佳实现方法;然后将最佳实现方法地址传递给该层神经网路。
在本申请所述第一检索模块301中生成高性能卷积计算代码。根据上述确定的执行计划,调用相应的卷积计算算法代码,生成最终的高性能卷积算代码。
通过上述装置,生成性能最佳卷积计算代码:通过抽象性能参数,确定最佳实现方法;制定执行计划,生成最佳性能的卷积计算代码。
作为本实施例中的优选,在生成模块40中如果所述知识库中的存在符合预设性能条件的执行计划,则生成符合预设性能条件的卷积计算方法包括如下任一一种:生成通用矩阵-矩阵乘法算法;生成Winograd算法;生成直接卷积算法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (7)

1.一种用于深度卷积神经网络的卷积计算方法,其特征在于,用于构建卷积算法的选择模型,所述方法包括:
确定第一优化参数,第一优化参数包括:优化知识的抽象和表达;其中,所述第一优化参数用于初始化选择模型;
根据所述第一优化参数建立知识库,其中,所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;
根据第一优化参数中优化知识抽象的五个方面,以Hash表{key,value}的方式构建知识库;Hash表的key值为硬件平台、输入图片规模、Channels数量、Stride大小、Kernel大小五个方面;
所述知识库用于按照表结构储存卷积算法和对应的第一优化参数,包括:
构建多维数组,用于表示知识库中的索引表;
构建实际输入参数到所述多维数组索引的映射表;
根据实际输入参数和所述映射表,确定key值在索引表中的索引,并返回对应的value值,其中,所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;
检索所述知识库中是否存在符合预设性能条件的执行计划,其中,所述执行计划用于作为当前深度卷积神经网络的卷积算法,将性能参数传递至知识库,获得最佳实现方法;然后将最佳实现方法地址传递给该层神经网络;以及
如果所述知识库中存在符合预设性能条件的执行计划,则生成符合预设性能条件的卷积算法;根据上述确定的执行计划,调用相应的卷积算法代码,生成最终的高性能卷积算法代码。
2.根据权利要求1所述的卷积计算方法,其特征在于,根据所述第一优化参数建立知识库包括:
按照哈希表{key,value}的方式建立知识库;
其中,将哈希表的key值配置为预设参数,将哈希表的value配置为深度卷积神经网络中的最优卷积算法。
3.根据权利要求1所述的卷积计算方法,其特征在于,检索所述知识库中是否存在符合预设性能条件的执行计划包括:
按照第一优化参数,提取实际输入参数;
确定实际输入参数;
通过实际输入参数在所述知识库中检索得到执行计划;
通过执行计划生成用于卷积计算的预设代码。
4.根据权利要求1所述的卷积计算方法,其特征在于,如果所述知识库中存在符合预设性能条件的执行计划,则生成符合预设性能条件的卷积算法包括如下任一一种:
生成通用矩阵-矩阵乘法算法;
生成Winograd算法;
生成直接卷积算法。
5.一种用于深度卷积神经网络的卷积计算装置,其特征在于,包括:
确定模块,用于确定第一优化参数,第一优化参数包括:优化知识的抽象和表达;其中,所述第一优化参数用于初始化选择模型;根据第一优化参数中优化知识抽象的五个方面,以Hash表{key,value}的方式构建知识库,Hash表的key值为硬件平台、输入图片规模、Channels数量、Stride大小、Kernel大小五个方面,所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;
建立模块,用于根据所述第一优化参数建立知识库,其中,所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;
所述建立模块包括:第二建立模块,
所述第二建立模块,用于构建多维数组,用于表示知识库中的索引表;
构建实际输入参数到所述多维数组索引的映射表;
根据实际输入参数和所述映射表,确定key值在索引表中的索引,并返回对应的value值,其中,所述知识库用于按照表结构储存卷积算法和对应的第一优化参数;
检索模块,用于检索所述知识库中的是否存在符合预设性能条件的执行计划,其中,所述执行计划用于作为当前深度卷积神经网络的卷积算法,将性能参数传递至知识库,获得最佳实现方法;然后将最佳实现方法地址传递给该层神经网络;
生成模块,用于在所述知识库中的存在符合预设性能条件的执行计划时,生成符合预设性能条件的卷积算法;根据上述确定的执行计划,调用相应的卷积算法代码,生成最终的高性能卷积算法代码。
6.根据权利要求5所述的卷积计算装置,其特征在于,所述建立模块包括:第一建立模块,
所述第一建立模块,用于按照哈希表{key,value}的方式建立知识库;
其中,将哈希表的key值配置为预设参数,哈希表的value配置为深度卷积神经网络中的最优卷积算法。
7.根据权利要求5所述的卷积计算装置,其特征在于,所述检索模块包括:第一检索模块,
所述第一检索模块,用于按照第一优化参数,提取实际输入参数;
确定实际输入参数;
通过实际输入参数在所述知识库中检索得到执行计划;
通过执行计划生成用于卷积计算的预设代码。
CN201810118043.8A 2018-02-06 2018-02-06 用于深度卷积神经网络的卷积计算方法及装置 Active CN108320019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810118043.8A CN108320019B (zh) 2018-02-06 2018-02-06 用于深度卷积神经网络的卷积计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810118043.8A CN108320019B (zh) 2018-02-06 2018-02-06 用于深度卷积神经网络的卷积计算方法及装置

Publications (2)

Publication Number Publication Date
CN108320019A CN108320019A (zh) 2018-07-24
CN108320019B true CN108320019B (zh) 2020-11-24

Family

ID=62901969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810118043.8A Active CN108320019B (zh) 2018-02-06 2018-02-06 用于深度卷积神经网络的卷积计算方法及装置

Country Status (1)

Country Link
CN (1) CN108320019B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111311599B (zh) * 2020-01-17 2024-03-26 北京达佳互联信息技术有限公司 图像处理方法、装置、电子设备和存储介质
CN112488296B (zh) * 2020-11-25 2022-12-02 苏州浪潮智能科技有限公司 基于硬件环境的数据操作方法、装置、设备及存储介质
WO2022241725A1 (zh) * 2021-05-20 2022-11-24 中国科学院深圳先进技术研究院 卷积运算的处理方法、电子设备、移动终端及存储介质
CN113570031B (zh) * 2021-06-08 2024-02-02 中国科学院深圳先进技术研究院 卷积运算的处理方法、电子设备及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156956A (zh) * 2014-08-06 2014-11-19 中国科学院生物物理研究所 一种基于高斯小波一维峰值识别的多角度边缘检测方法
CN104933722A (zh) * 2015-06-29 2015-09-23 电子科技大学 一种基于Spiking-卷积网络模型的图像边缘检测方法
CN106779060A (zh) * 2017-02-09 2017-05-31 武汉魅瞳科技有限公司 一种适于硬件设计实现的深度卷积神经网络的计算方法
CN106778910A (zh) * 2017-01-12 2017-05-31 张亮 基于本地训练的深度学习系统和方法
CN107341761A (zh) * 2017-07-12 2017-11-10 成都品果科技有限公司 一种深度神经网络的计算执行方法和系统
CN107341545A (zh) * 2017-07-25 2017-11-10 郑州云海信息技术有限公司 一种深度神经网络运算系统及方法
CN107451653A (zh) * 2017-07-05 2017-12-08 深圳市自行科技有限公司 深度神经网络的计算方法、装置及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628837B1 (en) * 2000-05-19 2003-09-30 Xerox Corporation Assist channel coding with convolution coding
US20170344876A1 (en) * 2016-05-31 2017-11-30 Samsung Electronics Co., Ltd. Efficient sparse parallel winograd-based convolution scheme

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156956A (zh) * 2014-08-06 2014-11-19 中国科学院生物物理研究所 一种基于高斯小波一维峰值识别的多角度边缘检测方法
CN104933722A (zh) * 2015-06-29 2015-09-23 电子科技大学 一种基于Spiking-卷积网络模型的图像边缘检测方法
CN106778910A (zh) * 2017-01-12 2017-05-31 张亮 基于本地训练的深度学习系统和方法
CN106779060A (zh) * 2017-02-09 2017-05-31 武汉魅瞳科技有限公司 一种适于硬件设计实现的深度卷积神经网络的计算方法
CN107451653A (zh) * 2017-07-05 2017-12-08 深圳市自行科技有限公司 深度神经网络的计算方法、装置及可读存储介质
CN107341761A (zh) * 2017-07-12 2017-11-10 成都品果科技有限公司 一种深度神经网络的计算执行方法和系统
CN107341545A (zh) * 2017-07-25 2017-11-10 郑州云海信息技术有限公司 一种深度神经网络运算系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
cuDNN: Efficient Primitives for Deep Learning;Sharan Chetlur 等;《ARXIV PREPRINT ARXIV》;20141231;第1-9页 *
MEC: memory-efficient convolution for deep neural network;Minsik Ch 等;《ICML"17 Proceedings of the 34th International Conference on Machine Learning》;20170811;第70卷;第815-824页 *
Performance analysis of CNN frameworks for GPUs;Heehoon Kim 等;《2017 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)》;20170425;第55-64页 *
基于深度卷积神经网络的快速图像分类算法;王华利 等;《计算机工程与应用》;20170731;第53卷(第13期);第181-188页 *

Also Published As

Publication number Publication date
CN108320019A (zh) 2018-07-24

Similar Documents

Publication Publication Date Title
CN108320019B (zh) 用于深度卷积神经网络的卷积计算方法及装置
CN109783817B (zh) 一种基于深度强化学习的文本语义相似计算模型
US11645529B2 (en) Sparsifying neural network models
CN109543830B (zh) 一种用于卷积神经网络加速器的拆分累加器
EP3179415A1 (en) Systems and methods for a multi-core optimized recurrent neural network
CN110428046B (zh) 神经网络结构的获取方法及装置、存储介质
CN112200300B (zh) 卷积神经网络运算方法及装置
CN108510058B (zh) 神经网络中的权重存储方法以及基于该方法的处理器
CN114035936B (zh) 一种基于人工智能的多维并行处理方法、系统、设备和可读存储介质
CN111709493B (zh) 对象分类方法、训练方法、装置、设备及存储介质
CN113705589A (zh) 数据处理方法、装置及设备
CN113010312A (zh) 一种超参数调优方法、装置及存储介质
CN114781654A (zh) 联邦迁移学习方法、装置、计算机设备及介质
CN110837567A (zh) 实现知识图谱嵌入的方法和系统
CN106202522B (zh) 一种流场积分曲线的复用方法及系统
Zhang et al. Hardware-software codesign of weight reshaping and systolic array multiplexing for efficient CNNs
CN109190450A (zh) 基于分布式计算平台的人工智能遥感影像数据提取方法
CN110659286B (zh) 基于弱平衡空间树动态空间索引方法及其存储介质、装置
JP2023123636A (ja) ハイパーパラメータチューニング方法、装置及びプログラム
CN111602145A (zh) 卷积神经网络的优化方法及相关产品
WO2023048901A1 (en) Systems and methods for training and using optimized neural networks
CN116957041A (zh) 压缩神经网络模型的方法、装置和计算设备
CN113128688B (zh) 通用型ai并行推理加速结构以及推理设备
CN109716288A (zh) 网络模型编译器及相关产品
CN112749364B (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
GR01 Patent grant
GR01 Patent grant