CN111047017A - 一种神经网络算法的评估方法、装置及电子设备 - Google Patents
一种神经网络算法的评估方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111047017A CN111047017A CN201911307859.6A CN201911307859A CN111047017A CN 111047017 A CN111047017 A CN 111047017A CN 201911307859 A CN201911307859 A CN 201911307859A CN 111047017 A CN111047017 A CN 111047017A
- Authority
- CN
- China
- Prior art keywords
- neural network
- matrix
- algorithm
- evaluated
- size
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种神经网络算法的评估方法、装置及电子设备,包括:生成对应该神经网络矩阵的大小的映射矩阵,并且调用预设运算单元对各映射矩阵进行矩阵运算,以及统计运算时长,以及基于运算时长,确定待评估神经网络算法在预设运算单元上的运算效率,由于通过在预设运算单元对待评估神经网络算法包含的每个神经网络层对应的映射矩阵进行矩阵运算,模拟待评估神经网络算法在预设运算单元中的运行,并通过运算时长来确定待评估神经网络算法在预设运算单元上的运算效率,而运算时长可以直观的反映待评估神经网络算法在预设运算单元上的运算表现,因此,通过运算时长确定的运算效率,具有较高的准确性。
Description
技术领域
本发明涉及神经网络算法技术领域,特别是涉及一种神经网络算法的评估方法、装置及电子设备。
背景技术
神经网络算法在开发的过程中,往往需要结合硬件的性能对开发中的神经网络算法进行测试,以判断当前开发的神经网络算法在硬件上的运算表现是否满足预期,避免出现神经网络算法开发完成后无法在硬件上运行,和/或在硬件上需要花费大量时间运行,因此,在神经网络开发的过程中需要阶段性的评估开发中的神经网络算法在特定硬件上的运算效率,以根据评估结果对开发中的神经网络算法进行调试和优化。
发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
现有神经网络算法都是以神经网络的运算量来衡定,但神经网络算法的运算量只能反映神经网络算法的复杂程度,在不同硬件上相同运算量的神经网络算法其运算效率表现差异较大,因此,通过神经网络运算量评估神经网络运算效率并不准确。
发明内容
本发明实施例的目的在于提供一种神经网络算法的评估方法,以准确评估神经网络算法在硬件上的运算效率。具体技术方案如下:
本发明实施例提供一种神经网络算法的评估方法,包括:
针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵;
调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算;
统计所述预设运算单元完成对所述各映射矩阵进行矩阵运算所消耗的运算时长;
基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率,作为所述待评估神经网络算法的评估结果。
进一步的,在所述针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵之前,所述方法包括:
基于所述待评估神经网络算法包含的每个神经网络层所包含的神经元数量,以及所述待评估神经网络算法的输入数量和输出数量,确定每个所述神经网络层对应的神经网络矩阵的大小。
进一步的,所述针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵,包括:
按照待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,随机生成对应该神经网络矩阵的大小的矩阵,作为与该神经网络矩阵的大小对应的映射矩阵。
进一步的,在所述调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算之前,所述方法还包括:
获取所述待评估神经网络算法包含的各神经网络层之间的层间算法,作为所述矩阵运算算法。
进一步的,在所述基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率之前,所述方法还包括:
计算所述待评估神经网络算法的运算量;
所述基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率,包括:
计算所述运算时长与所述运算量的比值,作为所述待评估神经网络算法在所述预设运算单元上的运算效率。
进一步的,所述矩阵运算算法为通用矩阵乘运算算法。
本发明实施例还提供一种神经网络算法的评估装置,所述装置包括:
映射矩阵生成模块,用于针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵;
矩阵运算模块,用于调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算;
时长统计模块,用于统计所述预设运算单元完成对所述各映射矩阵进行矩阵运算所消耗的运算时长;
评估结果确定模块,用于基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率,作为所述待评估神经网络算法的评估结果。
进一步的,所述映射矩阵生成模块,还用于在针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵之前,基于所述待评估神经网络算法包含的每个神经网络层所包含的神经元数量,以及所述待评估神经网络算法的输入数量和输出数量,确定每个所述神经网络层对应的神经网络矩阵的大小。
进一步的,所述映射矩阵生成模块,具体用于按照待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,随机生成对应该神经网络矩阵的大小的矩阵,作为与该神经网络矩阵的大小对应的映射矩阵。
进一步的,所述矩阵运算模块,还用于在所述调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算之前,获取所述待评估神经网络算法包含的各神经网络层之间的层间算法,作为所述矩阵运算算法。
进一步的,所述评估结果确定模块,还用于计算所述待评估神经网络算法的运算量,并具体用于计算所述运算时长与所述运算量的比值,作为所述待评估神经网络算法在所述预设运算单元上的运算效率。
进一步的,所述矩阵运算算法为通用矩阵乘运算算法。
本发明实施例还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一神经网络算法的评估方法的步骤。
本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一神经网络算法的评估方法的步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一神经网络算法的评估方法。
本发明实施例提供的一种神经网络算法的评估方法、装置及电子设备,方案中,针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵,并且调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算,以及统计预设运算单元完成对各映射矩阵进行矩阵运算所消耗的运算时长,以及基于运算时长,确定待评估神经网络算法在预设运算单元上的运算效率,作为待评估神经网络算法的评估结果,由于通过在预设运算单元对待评估神经网络算法包含的每个神经网络层对应的映射矩阵进行矩阵运算,模拟待评估神经网络算法在预设运算单元中的运行,并通过运算时长来确定待评估神经网络算法在预设运算单元上的运算效率,而运算时长可以直观的反映待评估神经网络算法在预设运算单元上的运算表现,因此,通过运算时长确定的运算效率,具有较高的准确性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一个实施例提供的神经网络算法的评估方法的流程图。
图2为本发明另一个实施例提供的神经网络算法的评估方法的流程图。
图3为本发明一个实施例提供的神经网络算法的评估装置的结构示意图。
图4为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了给出准确评估神经网络算法在硬件上的运算效率的实现方案,本发明实施例提供了一种神经网络算法的评估方法、装置及电子设备,以下结合说明书附图对本发明的实施例进行说明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的一个实施例中,提供一种神经网络算法的评估方法,如图1所示,该方法包括以下步骤:
S101:针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵。
S102:调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算。
S103:统计预设运算单元完成对各映射矩阵进行矩阵运算所消耗的运算时长。
S104:基于运算时长,确定待评估神经网络算法在预设运算单元上的运算效率,作为待评估神经网络算法的评估结果。
本发明实施例提供的上述神经网络算法的评估方法中,针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵,并且调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算,以及统计预设运算单元完成对各映射矩阵进行矩阵运算所消耗的运算时长,以及基于运算时长,确定待评估神经网络算法在预设运算单元上的运算效率,作为待评估神经网络算法的评估结果,由于通过在预设运算单元对待评估神经网络算法包含的每个神经网络层对应的映射矩阵进行矩阵运算,模拟待评估神经网络算法在预设运算单元中的运行,并通过运算时长来确定待评估神经网络算法在预设运算单元上的运算效率,而运算时长可以直观的反映待评估神经网络算法在预设运算单元上的运算表现,因此,通过运算时长确定的运算效率,具有较高的准确性。
针对本发明实施例提供的上述神经网络算法的评估方法,待评估神经网络算法可以为任意类型的神经网络(NN,Neural Networks)算法,例如CNN(Convolutional NeuralNetworks,卷积神经网络)、RNN(Recurrent Neural Network,循环神经网络)等,其中,神经网络是由大量的、简单的神经元广泛地互相连接而形成的复杂网络系统。
一个神经网络算法包含有输入层、隐藏层和输出层,本发明实施例关注的是神经网络算法的运算效率,而输出层仅为运算后输出的结果,因此,本发明实施例在考虑神经网络算法的运算效率可以不考虑输出层。
在本发明实施例上述步骤S101中,待评估神经网络算法包含的每个神经网络层可以为待评估神经网络算法包含的输入层和隐藏层。
其中,神经网络层对应的神经网络矩阵的大小,可以为待评估神经网络算法包含的输入层对应的神经网络矩阵的大小和隐藏层对应的神经网络矩阵的大小。
本领域技术人员可知的,对于一个确定的神经网络算法,其包含的神经网络层对应的神经网络矩阵的大小是确定的。
在一个实施例中,待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小可以是预先已知的,也可以是通过待评估神经网络算法包含的其他参数去确定,例如待评估神经网络算法各神经网络层之间的连接关系等。
可选的,可以基于待评估神经网络算法包含的每个神经网络层所包含的神经元数量,以及待评估神经网络算法的输入数量和输出数量,确定每个神经网络层对应的神经网络矩阵的大小。
本领域技术人员所知的,矩阵的大小表示矩阵的行数和列数,可以用行数×列数的形式表示矩阵的大小。
针对待评估神经网络算法的包含的每个神经网络层而言,该神经网络层对应的神经网络矩阵的行数为该神经网络层包含的神经元的数量,该神经网络层的列数,为该神经网络层输出数量。
示例性的,待评估神经网络算法中一个神经网络层包含的神经元的数量为2,输出数量为3,则该神经网络层对应的神经网络矩阵的大小为2×3。
在一个实施例中,映射矩阵可以为矩阵大小与对应的神经网络矩阵的大小相同的矩阵,映射矩阵中各参数可以是随机确定的,也可以是根据预设的参数生成规则生成的。
示例性的,待评估神经网络算法中包含的神经网络层对应的神经网络矩阵的大小为2×3,则其对应的映射矩阵可以为:
其中,a1、a2、a3、b1、b2和b3表示数值。
针对本发明实施例上述步骤S102,其中预设运算单元可以为根据评估需求确定的,当需要在指定的设备上进行神经网络算法运算效率的评估时,可以将该指定的设备作为预设运算单元,可选的,还可以将该指定设备包含的特定运算单元作为预设运算单元。
示例性的,当指定的设备为安装有ARM(Advanced RISC Machine,高级精简指令集计算机)处理器的设备时,预设运算单元可以为该设备,也可以为ARM处理器,更进一步的,还可以是ARM处理器中的ALU(Arithmetic Logic Unit,算术逻辑单元),或者还可以是ARM处理器中的NEON(氖),其中NEON是适用于ARM Cortex-A和Cortex-R52系列处理器的一种128位SIMD(Single Instruction Multiple Data,单指令多数据流)扩展结构。
在一个实施例中,上述步骤S102中,矩阵运算算法可以包括映射矩阵之间的矩阵加、矩阵减、矩阵乘或矩阵除,其中,指定的矩阵运算算法可以为根据实际的需求来确定的,当对评估精度要求较高时,指定的矩阵运算算法可以为依据待评估神经网络算法来确定的,如指定的矩阵运算算法可以与待评估神经网络算法各神经网络层之间的矩阵运算算法相匹配,当需要简化评估过程时,可以使用待评估神经网络算法各神经网络层之间的矩阵运算算法中占比最多的矩阵运算算法作为指定的矩阵运算算法。
可选的,指定的矩阵运算算法可以为GEMM(General Matrix Multiplication,通用矩阵乘)运算算法。
示例性的,映射矩阵包括映射矩阵1和映射矩阵2,其中,映射矩阵1为矩阵大小为2×3的矩阵:
其中,c1、c2、c3、d1、d2和d3表示数值。
映射矩阵2为矩阵大小为3×1的矩阵:
其中,e1、e2和e3表示数值。
指定的矩阵运算算法GEMM运算算法,则调用预设运算单元对映射矩阵1和映射矩阵2按照GEMM运算算法进行运算,既调用预设运算单元计算下述公式的运算结果:
针对本发明实施例上述步骤S103,可以通过在预设运算单元开始运算时刻添加计时器的方式来统计预设运算单元完成对各映射矩阵进行矩阵运算所消耗的运算时长。
针对本发明实施例上述步骤S104,可以将步骤S103确定的运算时长作为待评估神经网络算法在预设运算单元上的运算效率,还可以取运算时长的倒数作为作为待评估神经网络算法在预设运算单元上的运算效率。
在本发明的另一个实施例中,还提供另一种神经网络算法的评估方法,如图2所示,该方法包括以下步骤:
S201:按照待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,随机生成对应该神经网络矩阵的大小的矩阵,作为与该神经网络矩阵的大小对应的映射矩阵。
本步骤中,可以按照神经网络矩阵的大小,随机生成矩阵大小为该神经网络矩阵的大小的映射矩阵,该映射矩阵各行和列的数值可以为随机生成的。
示例性的,神经网络矩阵的大小为2×3,则该神经网络矩阵对应的映射矩阵可以为:
神经网络矩阵的大小为3×1,则该神经网络矩阵对应的映射矩阵可以为:
S202:获取待评估神经网络算法包含的各神经网络层之间的层间算法,作为矩阵运算算法。
本步骤中,可以将待评估神经网络算法包含的各神经网络层之间的层间算法作为矩阵运算算法。
示例性的,待评估神经网络算法包含有1个输入层和2个隐藏层,其中输入层与第一神经网络层之间层间算法为矩阵加、第一神经网络层与第二神经网络层之间层间算法为矩阵乘,则矩阵运算算法包括输入层与第一神经网络层之间的矩阵加,以及第一神经网络层与第二神经网络层之间的矩阵乘。
或者,输入层与第一神经网络层之间层间算法与第一神经网络层与第二神经网络层之间层间算法相同,均为矩阵乘时,则矩阵运算算法为矩阵乘。
S203:调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算。
本步骤中,可以按照步骤S202确定的矩阵运算算法对各映射矩阵进行矩阵运算。
可选的,可以按照各映射矩阵对应的神经网络矩阵之间的层间算法对各映射矩阵进行矩阵运算。
例如,当矩阵运算算法包括输入层与第一神经网络层之间的矩阵加,以及第一神经网络层与第二神经网络层之间的矩阵乘,则将输入层对应的映射矩阵与第一神经网络层对应的映射矩阵进行矩阵加,将第一神经网络层对应的映射矩阵与第二神经网络层对应的映射矩阵进行矩阵乘。
S204:统计预设运算单元完成对各映射矩阵进行矩阵运算所消耗的运算时长。
本步骤中,与步骤S103相同或相似,本步骤在此不再赘述。
S205:计算待评估神经网络算法的运算量。
本步骤中,待评估神经网络算法的运算量可以为待评估神经网络算法的FLOPS(Floating-Point Operations Per Second,每秒浮点运算次数)。
神经网络算法的FLOPS的计算为现有技术,本步骤在此不再赘述。
S206:计算运算时长与运算量的比值,作为待评估神经网络算法在预设运算单元上的运算效率。
本步骤中,可以将计算运算时长与运算量的比值作为待评估神经网络算法在预设运算单元上的运算效率。
本发明实施例提供的上述如图2所示的神经网络算法的评估方法中,由于通过在预设运算单元对待评估神经网络算法包含的每个神经网络层对应的映射矩阵进行矩阵运算,模拟待评估神经网络算法在预设运算单元中的运行,并通过运算时长来确定待评估神经网络算法在预设运算单元上的运算效率,而运算时长可以直观的反映待评估神经网络算法在预设运算单元上的运算表现,因此,通过运算时长确定的运算效率,具有较高的准确性,并且通过随机的生成映射矩阵可以简化评估过程,以及由于将运算时长与运算量的比值作为待评估神经网络算法在预设运算单元上的运算效率,可以进一步的使确定的运算效率更加精确。
基于同一发明构思,根据本发明实施例提供的神经网络算法的评估方法,本发明实施例还提供了一种神经网络算法的评估装置,如图3所示,该装置包括:
映射矩阵生成模块301,用于针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵;
矩阵运算模块302,用于调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算;
时长统计模块303,用于统计预设运算单元完成对各映射矩阵进行矩阵运算所消耗的运算时长;
评估结果确定模块304,用于基于运算时长,确定待评估神经网络算法在预设运算单元上的运算效率,作为待评估神经网络算法的评估结果。
进一步的,映射矩阵生成模块301,还用于在针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵之前,基于待评估神经网络算法包含的每个神经网络层所包含的神经元数量,以及待评估神经网络算法的输入数量和输出数量,确定每个神经网络层对应的神经网络矩阵的大小。
进一步的,映射矩阵生成模块301,具体用于按照待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,随机生成对应该神经网络矩阵的大小的矩阵,作为与该神经网络矩阵的大小对应的映射矩阵。
进一步的,矩阵运算模块302,还用于在调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算之前,获取待评估神经网络算法包含的各神经网络层之间的层间算法,作为矩阵运算算法。
进一步的,评估结果确定模块304,还用于计算待评估神经网络算法的运算量,并具体用于计算运算时长与运算量的比值,作为待评估神经网络算法在预设运算单元上的运算效率。
进一步的,矩阵运算算法为通用矩阵乘运算算法。
本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:
针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵;
调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算;
统计所述预设运算单元完成对所述各映射矩阵进行矩阵运算所消耗的运算时长;
基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率,作为所述待评估神经网络算法的评估结果。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一神经网络算法的评估方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一神经网络算法的评估方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种神经网络算法的评估方法,其特征在于,包括:
针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵;
调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算;
统计所述预设运算单元完成对所述各映射矩阵进行矩阵运算所消耗的运算时长;
基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率,作为所述待评估神经网络算法的评估结果。
2.根据权利要求1所述的方法,其特征在于,在所述针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵之前,所述方法包括:
基于所述待评估神经网络算法包含的每个神经网络层所包含的神经元数量,以及所述待评估神经网络算法的输入数量和输出数量,确定每个所述神经网络层对应的神经网络矩阵的大小。
3.根据权利要求1或2所述的方法,其特征在于,所述针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵,包括:
按照待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,随机生成对应该神经网络矩阵的大小的矩阵,作为与该神经网络矩阵的大小对应的映射矩阵。
4.根据权利要求1或2所述的方法,其特征在于,在所述调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算之前,所述方法还包括:
获取所述待评估神经网络算法包含的各神经网络层之间的层间算法,作为所述矩阵运算算法。
5.根据权利要求4所述的方法,其特征在于,在所述基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率之前,所述方法还包括:
计算所述待评估神经网络算法的运算量;
所述基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率,包括:
计算所述运算时长与所述运算量的比值,作为所述待评估神经网络算法在所述预设运算单元上的运算效率。
6.根据权利要求1或2所述的方法,其特征在于,所述矩阵运算算法为通用矩阵乘运算算法。
7.一种神经网络算法的评估装置,其特征在于,包括:
映射矩阵生成模块,用于针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵;
矩阵运算模块,用于调用预设运算单元按照指定的矩阵运算算法对各映射矩阵进行矩阵运算;
时长统计模块,用于统计所述预设运算单元完成对所述各映射矩阵进行矩阵运算所消耗的运算时长;
评估结果确定模块,用于基于所述运算时长,确定所述待评估神经网络算法在所述预设运算单元上的运算效率,作为所述待评估神经网络算法的评估结果。
8.根据权利要求7所述的装置,其特征在于,所述映射矩阵生成模块,还用于在针对待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,生成对应该神经网络矩阵的大小的映射矩阵之前,基于所述待评估神经网络算法包含的每个神经网络层所包含的神经元数量,以及所述待评估神经网络算法的输入数量和输出数量,确定每个所述神经网络层对应的神经网络矩阵的大小。
9.根据权利要求7或8所述的装置,其特征在于,所述映射矩阵生成模块,具体用于按照待评估神经网络算法包含的每个神经网络层对应的神经网络矩阵的大小,随机生成对应该神经网络矩阵的大小的矩阵,作为与该神经网络矩阵的大小对应的映射矩阵。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911307859.6A CN111047017B (zh) | 2019-12-18 | 2019-12-18 | 一种神经网络算法的评估方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911307859.6A CN111047017B (zh) | 2019-12-18 | 2019-12-18 | 一种神经网络算法的评估方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111047017A true CN111047017A (zh) | 2020-04-21 |
CN111047017B CN111047017B (zh) | 2023-06-23 |
Family
ID=70237691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911307859.6A Active CN111047017B (zh) | 2019-12-18 | 2019-12-18 | 一种神经网络算法的评估方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111047017B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523657A (zh) * | 2020-04-26 | 2020-08-11 | 云知声智能科技股份有限公司 | 神经网络加速器创建方法及装置、电子设备和存储介质 |
CN112801287A (zh) * | 2021-01-26 | 2021-05-14 | 商汤集团有限公司 | 神经网络性能评估方法及装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103959233A (zh) * | 2011-09-15 | 2014-07-30 | 埃克森美孚上游研究公司 | 在执行eos计算的指令受限算法中最优化矩阵和向量运算 |
US20170169326A1 (en) * | 2015-12-11 | 2017-06-15 | Baidu Usa Llc | Systems and methods for a multi-core optimized recurrent neural network |
WO2018107383A1 (zh) * | 2016-12-14 | 2018-06-21 | 上海寒武纪信息科技有限公司 | 神经网络的卷积运算方法、装置及计算机可读存储介质 |
EP3343460A1 (en) * | 2016-12-31 | 2018-07-04 | INTEL Corporation | Hardware accelerator template and design framework for implementing recurrent neural networks |
CN108268947A (zh) * | 2016-12-30 | 2018-07-10 | 富士通株式会社 | 用于提高神经网络的处理速度的装置和方法及其应用 |
CN109597965A (zh) * | 2018-11-19 | 2019-04-09 | 深圳力维智联技术有限公司 | 基于深度神经网络的数据处理方法、系统、终端及介质 |
CN110352434A (zh) * | 2017-02-28 | 2019-10-18 | 微软技术许可有限责任公司 | 利用模型固定的神经网络处理 |
CN110515739A (zh) * | 2019-10-23 | 2019-11-29 | 上海燧原智能科技有限公司 | 深度学习神经网络模型负载计算方法、装置、设备及介质 |
-
2019
- 2019-12-18 CN CN201911307859.6A patent/CN111047017B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103959233A (zh) * | 2011-09-15 | 2014-07-30 | 埃克森美孚上游研究公司 | 在执行eos计算的指令受限算法中最优化矩阵和向量运算 |
US20170169326A1 (en) * | 2015-12-11 | 2017-06-15 | Baidu Usa Llc | Systems and methods for a multi-core optimized recurrent neural network |
WO2018107383A1 (zh) * | 2016-12-14 | 2018-06-21 | 上海寒武纪信息科技有限公司 | 神经网络的卷积运算方法、装置及计算机可读存储介质 |
CN108268947A (zh) * | 2016-12-30 | 2018-07-10 | 富士通株式会社 | 用于提高神经网络的处理速度的装置和方法及其应用 |
EP3343460A1 (en) * | 2016-12-31 | 2018-07-04 | INTEL Corporation | Hardware accelerator template and design framework for implementing recurrent neural networks |
CN110352434A (zh) * | 2017-02-28 | 2019-10-18 | 微软技术许可有限责任公司 | 利用模型固定的神经网络处理 |
CN109597965A (zh) * | 2018-11-19 | 2019-04-09 | 深圳力维智联技术有限公司 | 基于深度神经网络的数据处理方法、系统、终端及介质 |
CN110515739A (zh) * | 2019-10-23 | 2019-11-29 | 上海燧原智能科技有限公司 | 深度学习神经网络模型负载计算方法、装置、设备及介质 |
Non-Patent Citations (6)
Title |
---|
CHUANQI JIANG等: "Swarm Intelligence Optimized Generative Model for Network Performance Prediction", 《2019 IEEE 21ST INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS》 * |
CHUANQI JIANG等: "Swarm Intelligence Optimized Generative Model for Network Performance Prediction", 《2019 IEEE 21ST INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS》, 3 October 2019 (2019-10-03), pages 1311 - 1319 * |
桑若愚: "拟牛顿法硬件加速平台的实现及在神经网络训练中的应用", 《中国优秀硕士学位论文全文数据库》 * |
桑若愚: "拟牛顿法硬件加速平台的实现及在神经网络训练中的应用", 《中国优秀硕士学位论文全文数据库》, 31 May 2018 (2018-05-31), pages 135 - 97 * |
米哲: "神经网络性能评价指标汇总:精确度,准确率,ROC等", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/73569538》 * |
米哲: "神经网络性能评价指标汇总:精确度,准确率,ROC等", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/73569538》, 16 July 2019 (2019-07-16) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523657A (zh) * | 2020-04-26 | 2020-08-11 | 云知声智能科技股份有限公司 | 神经网络加速器创建方法及装置、电子设备和存储介质 |
CN111523657B (zh) * | 2020-04-26 | 2023-06-20 | 云知声智能科技股份有限公司 | 神经网络加速器创建方法及装置、电子设备和存储介质 |
CN112801287A (zh) * | 2021-01-26 | 2021-05-14 | 商汤集团有限公司 | 神经网络性能评估方法及装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111047017B (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019119301A1 (zh) | 在卷积神经网络模型中确定特征图像的方法和装置 | |
US11887020B2 (en) | Thermal load prediction method and apparatus, readable medium, and electronic device | |
WO2022148181A1 (zh) | 一种稀疏矩阵加速计算方法、装置、设备及介质 | |
CN110474900B (zh) | 一种游戏协议测试方法及装置 | |
CN106327340B (zh) | 一种金融网络的异常节点集合侦测方法及装置 | |
CN108845828B (zh) | 一种协处理器、矩阵运算加速方法及系统 | |
CN111047017B (zh) | 一种神经网络算法的评估方法、装置及电子设备 | |
CN110351299B (zh) | 一种网络连接检测方法和装置 | |
CN110334013B (zh) | 决策引擎的测试方法、装置及电子设备 | |
JP7135853B2 (ja) | バッファオーバーフローの低減 | |
CN113568821A (zh) | 一种ai芯片计算性能的测试方法、装置、设备、及介质 | |
CN114091281A (zh) | 产品寿命预测方法、装置、电子设备及存储介质 | |
CN113342671B (zh) | 对运算模块进行验证的方法、装置、电子设备和介质 | |
CN113946983A (zh) | 产品可靠性薄弱环节评估方法、装置和计算机设备 | |
CN116204396A (zh) | 一种针对分析型数据库性能的测试方法和装置 | |
CN116382658A (zh) | Ai模型的编译方法、装置、计算机设备及存储介质 | |
CN116226666A (zh) | 规则冲突检测方法、装置、电子设备及可读存储介质 | |
CN112527538B (zh) | 设备更新方法、装置、电子设备及存储介质 | |
CN113766333B (zh) | 视频热度值的确定方法、装置、电子设备和存储介质 | |
CN111598638A (zh) | 点击率确定方法、装置及设备 | |
CN110008100A (zh) | 用于网页访问量异常检测的方法及装置 | |
CN114912763B (zh) | 一种武器装备体系综合能力的确定方法及装置 | |
CN113704687B (zh) | 一种张量计算运行方法、装置及运算系统 | |
CN114637858A (zh) | 一种知识图谱构建方法、装置、设备及介质 | |
Morganti | Extreme Value Theory and Auction Models |
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 |