CN111178512B - 器件运行神经网络的测试方法及装置 - Google Patents

器件运行神经网络的测试方法及装置 Download PDF

Info

Publication number
CN111178512B
CN111178512B CN201911413950.6A CN201911413950A CN111178512B CN 111178512 B CN111178512 B CN 111178512B CN 201911413950 A CN201911413950 A CN 201911413950A CN 111178512 B CN111178512 B CN 111178512B
Authority
CN
China
Prior art keywords
neural network
reference model
data
result
level
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
CN201911413950.6A
Other languages
English (en)
Other versions
CN111178512A (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.)
Zhongke Nanjing Artificial Intelligence Innovation Research Institute
Original Assignee
Zhongke Nanjing Artificial Intelligence Innovation Research Institute
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 Zhongke Nanjing Artificial Intelligence Innovation Research Institute filed Critical Zhongke Nanjing Artificial Intelligence Innovation Research Institute
Priority to CN201911413950.6A priority Critical patent/CN111178512B/zh
Publication of CN111178512A publication Critical patent/CN111178512A/zh
Application granted granted Critical
Publication of CN111178512B publication Critical patent/CN111178512B/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Image Analysis (AREA)

Abstract

公开了一种器件运行神经网络的测试方法及装置。本申请实施例中,待测器件运行神经网络的测试方法可以包括:利用神经网络的描述信息生成所述神经网络的参考模型;调用仿真器按照所述神经网络的参考模型来针对预定图像进行处理,以获得所述神经网络的预期结果;通过待测器件运行所述神经网络来针对所述预定图像进行处理,以获得所述神经网络的真实结果;根据所述神经网络的真实结果和所述神经网络的预期结果,确定所述待测器件是否能够正常运行所述神经网络。本申请能够自动完成针对器件运行神经网络状况的测试,无需人工构造测试数据和准备预期的计算结果,不仅可以显著降低人工负荷、提高测试效率,而且测试的准确性也更高。

Description

器件运行神经网络的测试方法及装置
技术领域
本发明涉及人工智能技术领域,尤其涉及一种器件运行神经网络的测试方法及装置、设备、存储介质。
背景技术
神经网络是当前人工智能领域的重要的应用基础,在人脸识别、分类、特征提取、机器识别、无人驾驶等领域的应用越来越广泛。为了加速运算,越来越多的人工智能芯片都是基于神经网络的算法实现的。
实际应用中,在将神经网络装载到硬件(例如,专用芯片中)之后,需要对装载该神经网络的硬件执行神经网络运算的情况(例如,结果是否正确、精度是否满足预期等)进行测试。对该硬件运行神经网络的状况进行测试的过程中,需要人工构造该神经网络相关的图像数据、参数数据、指令等测试数据,还需要人工来准备预期的计算结果,数据量巨大、工作复杂度高,测试效率非常低。
发明内容
为解决上述技术问题,期望提供一种器件运行神经网络的测试方法及装置、设备、存储介质,可以自动完成针对器件运行神经网络状况的测试,无需人工构造测试数据和准备预期的计算结果,不仅能够显著降低人工负荷、提高测试效率,而且测试的准确性也更高。
根据本申请的一个方面,提供了一种待测器件运行神经网络的测试方法,包括:
利用神经网络的描述信息生成所述神经网络的参考模型;
调用仿真器按照所述神经网络的参考模型来针对预定图像进行处理,以获得所述神经网络的预期结果;
通过待测器件运行所述神经网络来针对所述预定图像进行处理,以获得所述神经网络的真实结果;
根据所述神经网络的真实结果和所述神经网络的预期结果,确定所述待测器件是否能够正常运行所述神经网络。
根据本申请的另一方面,还提供了一种待测器件运行神经网络的测试装置,包括:
参考模型生成单元,配置为利用神经网络的描述信息生成所述神经网络的参考模型;
仿真器,配置为在被所述神经网络的参考模型调用时,按照所述神经网络的参考模型来针对预定图像进行处理,以获得所述神经网络的预期结果;
神经网络单元,设置在待测器件上,并配置为运行所述神经网络来针对所述预定图像进行处理,以获得所述神经网络的真实结果;
确定单元,配置为根据所述神经网络的真实结果和所述神经网络的预期结果,确定所述待测器件是否能够正常运行所述神经网络。
根据本申请的另一方面,还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
用于存储所述处理器可执行指令的存储器;
所述一个或多个处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述待测器件运行神经网络的测试方法。
根据本申请的另一方面,还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-9任一所述待测器件运行神经网络的测试方法。
根据本申请实施例,能够自动完成各类神经网络的测试,无需人工构造测试数据和准备预期的计算结果,不仅能够显著降低人工负荷、提高测试效率,而且准确度也更高。
附图说明
图1为本申请实施例待测器件运行神经网络的测试方法的流程示意图;
图2为本申请实施例待测器件运行神经网络的测试装置的组成结构示意图;
图3a和图3b为本申请实施例中神经网络描述文件的示例性示意图;图3b为图3a的放大图。
图4为本申请实施例中包含神经网络的描述信息的数据表的示例性示意图;
图5为本申请实施例待测器件运行神经网络的测试装置生成参考模型的示意图;
图6为本申请实施例待测器件运行神经网络的测试装置模拟神经网络运算的过程示意图;
图7为本申请实施例待测器件执行神经网络运算的过程示意图;
图8为本申请实施例待测器件运行卷积神经网络的示例性测试流程示意图。
图9为本申请实施例的电子设备的结构示意图。
具体实施方式
下文将结合附图对本申请实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的各个实施例及其中的各特征可以相互任意组合。
如前文所述,在将神经网络安装到硬件(例如,专用芯片中)之后,需要对包含该神经网络的硬件执行神经网络运算的情况(例如,结果是否正确、精度是否满足预期等)进行测试。对该硬件运行神经网络的状况进行测试的过程中,需要人工构造该神经网络相关的图像数据、参数数据、指令等测试数据,还需要人工来准备预期的计算结果,数据量巨大、工作复杂度高,测试效率非常低。
对于上述技术问题,本申请实施例的基本构思是提供一种待测器件运行神经网络的测试方法及装置、设备、存储介质,能够自动完成针对器件运行神经网络状况的测试,无需人工构造测试数据和准备预期的计算结果,不仅可以显著降低人工负荷、提高测试效率,而且测试的准确性也更高。
下面对本申请实施例的示例性实现方式进行详细说明。
图1示出了本申请实施例待测器件运行神经网络的测试方法的示例性流程。如图1所示,本申请实施例中待测器件运行神经网络的测试方法可以包括如下步骤:
步骤S101,利用神经网络的描述信息生成所述神经网络的参考模型;
步骤S102,调用仿真器按照所述神经网络的参考模型来针对预定图像进行处理,以获得所述神经网络的预期结果;
步骤S103,通过待测器件运行所述神经网络来针对所述预定图像进行处理,以获得所述神经网络的真实结果;
步骤S104,根据所述神经网络的真实结果和所述神经网络的预期结果,确定所述待测器件是否能够正常运行所述神经网络。
图2示出了本申请实施例待测器件运行神经网络的测试装置的示例性结构。
如图2所示,本申请实施例中待测器件运行神经网络的测试装置可以包括:
参考模型生成单元21,配置为利用神经网络的描述信息生成所述神经网络的参考模型;
仿真器22,配置为在被所述神经网络的参考模型调用时,按照所述神经网络的参考模型来针对预定图像进行处理,以获得所述神经网络的预期结果;
神经网络单元23,设置在待测器件上,并配置为运行所述神经网络来针对所述预定图像进行处理,以获得所述神经网络的真实结果;
确定单元24,配置为根据所述神经网络的真实结果和所述神经网络的预期结果,确定所述待测器件是否能够正常运行所述神经网络。
本申请实施例中,神经网络的描述信息可以包括所述神经网络包括的层级、每个所述层级中包括的算子、所述算子之间的串联顺序、每个所述算子的运算参数和所述神经网络中每个层级的特征图的尺寸。通过这些描述信息可以解析获得神经网络的具体结构,从而生成与神经网络结构相一致的参考模型,以便在步骤S102中模拟该神经网络的运算。
图3示出了示例性的MV2的SSD网络的网络架构图,描述了神经网络的图像数据处理流向、以及各种类型的算子组成。但是,计算机(例如,下文的解析模块)无法直接解析这个高度抽象的网络架构图,需要在步骤S101之前将其具体化。把神经网络的算法转化成芯片之前,通常需要经过各学习框架训练。学习框架有Caffe、Tensorflow、PyTorch等,而不同学习框架对训练好的神经网络的描述格式也不一致。而且,一般所要研发的芯片都会支持多种不同的神经网络,这些神经网络往往是由不同的学习框架完成训练的。另外,为了神经网络的研发人员都能够理解这些神经网络模型,一般都会将各学习框架训练好的神经网络模型转化为例如图3所示的结构图,这个转换过程一般是手动处理的。
神经网络的网络结构图虽然可以清晰被芯片的开发人员所理解,但是计算机(例如,下文的解析模块)显然是无法直接处理的。因此,需要将该神经网络的网络结构图转换为计算机可识别的描述形式,以便解析神经网络的描述信息进而生成参考模型。换言之,在步骤S101之前,本申请实施例的上述方法还可以包括:将待测试的神经网络描述文件转换为计算机可以识别的描述形式。同理,在本申请实施例的上述装置还可以包括解析模块20,该解析模块20可以配置为将待测试的神经网络描述文件转换为计算机可以识别的描述形式。这里,计算机可以识别的描述形式可以是任何形式,例如表格等。实际应用中,该转换过程可以手工完成,也可以通过计算机等电子设备来自动实现。
一些示例中,可以通过如下方式来将待测试的神经网络转换为计算机可以识别的描述形式。即,先获取神经网络的描述文件(例如,上文所示的神经网络结构图),所述描述文件指示所述神经网络包括的算子的类型以及各个所述算子之间的图像数据处理流向;通过转换工具利用神经网络的描述文件生成数据表,数据表包括神经网络的描述信息。通过在数据表来表示神经网络的描述信息,计算机(例如,解析模块20)便可以对这种具象化后的神经网络结构描述进行准确识别,并加以分析处理。
该示例中,可以按照神经网络各层的算子的串联顺序,以及各算子需要的参数,重定义神经网络的描述格式为上述数据表。以卷积神经网络为例,图4示出了上述数据表的示例。图4的示例中,第一、二行描述原始输入图像的尺寸,为RGB三通道,图像尺寸为512x512。Layer列表示网络每层的名称,例如conv1、conv2_1等。Layer行表示当前层由哪些算子组成,例如PE11E、PE33DW、PE11L三个算子。每个算子都有对应的参数类别,例如:OP:操作指示符,表示当前算法做什么处理。BYPASS:当前算子不做任何处理。其他的指示符(例如MULT_8_3、MULT_8_3_NO_Q、MULT_8_3_WITH_Q、SHORTCUT等)均为自定义指示符,可以根据实际需要删减或增加。通道(Channel)、高度(Height)、宽度(Width)表示当前算子输出特征图的尺寸。例如,conv1层只做PE33DW的运算,输出特征图32个channel、尺寸为256X256,也即该输出特征图的通道数为32,高度大小和宽度大小均为256。填充(PADDING)表示当前算子是否需要做padding处理。STRID表示当前算子做卷积计算时滑窗移动的步进。PE_SIGN表示当前算子做卷积计算时输入的特征图是否为有符号数。NL_SIGN表示当前算子做卷积计算时输出的特征图是否为有符号数。
至少一些实施例中,在步骤S101中可以包括:步骤a1,调用内嵌函数按照所述神经网络中每个层级的特征图的尺寸来创建每个层级的第一数据结构,所述第一数据结构用于承载所述层级的输入特征图的图像数据或者所述层级的输出特征图的图像数据;步骤a2,调用内嵌函数基于所述神经网络中每个所述层级中包括的算子、所述算子之间的串联顺序、每个所述算子的运算参数来创建每个层级的第二数据结构,所述第二数据结构用于承载所述层级的运算参数数据;步骤a3,调用内嵌函数构建神经网络的参考模型。
在上述实施例中,参考模型生成单元21可以包括图像生成模块211、参数生成模块212、参考模型生成模块213。其中,图像生成模块211可配置为实现步骤a1的功能,参数生成模块212可以配置为实现步骤a2的功能,参考模型生成模块213可以配置为实现步骤a3的功能。
图5示出了步骤S101中具体实现过程示意图。
一些示例中,步骤a1中可以通过图像数据生成模块211生成符合神经网络测试要求的图像数据结构,该数据结构可以以systemverilog类的形式呈现,其中包括待测试网络各层特征图数据结构的实体,图像的基本数据类image,是预定义的基本数据类,神经网络各层的数据实体都可以由其实例化得到。
一些示例中,步骤a1中在第一数据结构中提供内嵌函数pre_randomize(),该函数是实现创建各层网络数据结构实体的主要场所。具体地,各层数据结构所需的参数可以由例如下解析模块或通过将神经网络的结构示意图转换为计算机可识别的形式(例如,上文的数据表)来提供。
特别地,针对原始图像数据,也就是网络第一层的输入数据,不但需要按照参数创建出数据结构的实体,还需要做真正的随机化处理,产生随机的测试数据,而不仅仅是数据结构的空壳子。其他层的数据结构仅需创建出数据结构的实体,它们的具体数据将在步骤S103中计算得到。如此,在步骤S103模型神经网络计算之前,只需调用该内嵌函数即可通过计算机来自动完成神经网络各层图像数据结构的预准备工作。
一些示例中,步骤a2中在可以通过参数生成模块212生成符合该网络测试要求的参数数据结构。同样地,该数据结构以systemverilog类的形式呈现,其中包括待测试网络各层所需参数的数据结构的实体。这里,参数可以包括两种类型,分别是各层计算所需要的卷积核参数以及做批标准化计算所需要的批量归一化(BN)参数。卷积核参数的基本数据类和BN参数的基本数据类都可以是预定义的基本数据类,神经网络各层计算所需要的参数实体可以由它们实例化得到。在该数据结构中提供内嵌函数pre_randomize(),该函数是实现创建各层参数数据结构实体的主要场所。各层网络参数所需的参数可以由解析模块20提供。卷积核参数和BN参数,不但需要按照参数创建出数据结构的实体,还需要做真正的随机化处理,产生随机的测试数据,而不仅仅是数据结构的空壳子。如此,在步骤S102模拟神经网络计算前,只需调用该内嵌函数即可完成各层图像数据结构的预准备工作。
一些示例中,步骤a3中可以由参考模型生成模块213生成符合该网络测试要求的网络参考模型,该参考模型可以以uvm_test类的形式呈现,其中包括做神经网络模型计算需要输入的原始图像数据和参数数据的实体。在该参考模型中提供内嵌函数,该函数是实现待测试卷积神经网络计算的主体函数。具体地,首先需要将参数的实体做随机化处理,即可调用上文提到的内嵌函数,完成各层卷积核参数和BN参数的随机数据生成,输入给参考模型计算使用。然后,在将图像数据的实体做随机化处理,即可调用上文提到的内嵌函数,完成原始图像的随机数据生成,输入给参考模型计算使用,以及完成网络其他各层图像数据结构的实体创建,做好缓存参考模型计算产生的各层数据。另外,解析模块20可以向参考模型提供各层计算算子所需要的参数。如此,在步骤S102中模拟神经网络计算时,只需调用该内嵌函数即可完成模拟卷积神经网络的计算。
至少一些实施例中,在步骤S102中可以包括:步骤b1,对所述第一数据结构进行随机化处理,生成对应所述预定图像以及所述神经网络中各个层级的中间特征图的图像数据;步骤b2,对所述第二数据结构进行随机化处理,生成所述神经网络的参考模型的运算参数数据;步骤b3,启动并运行所述仿真器来按照所述神经网络的参考模型模拟所述神经网络的运算针对所述预定图像进行处理,并获得所述神经网络的预期结果。
一些示例中,在步骤S102中使用仿真器22启动参考模型的模拟计算。具体地,经过步骤S101生成的神经网络的参考模型已经是能够调用仿真器运行的程序代码。启动该参考模型代码并运行,在仿真器22内部模拟对应的神经网络的各层的计算,产生的网络中间层数据由神经网络中间层特征图的数据结构创建出来的实体承载,最终的计算结果由最终计算结果的数据结构创建出来的实体承载。
图6示出了步骤S102的示例性实现过程。假设预定图像是原始图像image0,那么可以先将该原始图像image0的数据和神经网络参数(例如,卷积核,批量归一化(Bn)参数等)的相关数据输入到仿真器22中,仿真器22运行参考模型来对该原始图像image0的数据和神经网络参数(例如,卷积核,批量归一化(Bn)模拟神经网络的运算处理,最终得到神经网络的预期结果,该预期结果可以包括与神经网络的输出相对应的预期计算结果和神经网络中间层数据(例如,神经网络中间层的输出特征图)相对应的中间层预期结果。
至少一些实施例中,步骤S103之前还可以包括:生成所述神经网络的指令序列,并将所述指令序列装载到所述待测器件中。该实施例中,本申请实施例的上述装置中参考模型生成单元21还可以包括指令生成模块214,该指令生成模块214可以配置为生成所述神经网络的指令序列。具体地,指令生成模块214可以配置为生成符合该神经网络运行测试要求的指令数据结构,在DUT做真实的计算时才需要加载到DUT中去。
尽管验证DUT实现该卷积神经网络所需要的数据已经准备好了。但是,以数据结构形式呈现的数据,DUT无法识别处理。因此,上述方法中在步骤S103之前还可以包括:将神经网络计算需要输入的原始图像数据、参数数据转换为DUT的输入格式。相应的,本申请实施例的上述装置还可以包括数据转换模块25,该数据转换模块25可以配置为将神经网络计算需要输入的原始图像数据、参数数据转换为DUT的输入格式。
至少一些实施例中,步骤S103之前还可以包括:将预定图像的图像数据转换为第一二进制文件,通过接口驱动程序将所述第一二进制文件装载至所述待测器件中;将神经网络的运算参数数据转换为第二二进制文件,通过接口驱动程序将所述第二二进制文件装载至所述待测器件中。也就是说,数据转换模块25可以将预定图像的图像数据转换为第一二进制文件,通过接口驱动程序将所述第一二进制文件装载至所述待测器件中;将神经网络的运算参数数据转换为第二二进制文件,通过接口驱动程序将所述第二二进制文件装载至所述待测器件中。
实际应用中,数据转换模块25将输入的原始图像image0的数据转换为二进制文件,通过接口驱动程序将其驱动至DUT中。将输入的参数数据也转换为二进制文件,通过接口驱动程序将其驱动至DUT中。一些示例中,数据转换模块25所实现的转换可以是将以数据结构形式呈现的数据转化为DUT内部缓存中存储的格式。这些转换函数都是在第二步提到的基本数据类image中,预先手工编码好的。
在步骤S103中,启动DUT做神经网络的计算,产生真实的计算结果。图7示出了步骤S103的示例性实现过程。首先,通过数据转换模块25将原始图像image0的二进制文件、参数数据的二进制文件驱动到DUT中,同时将指令生成模块214生成的指令序列也驱动到DUT中,启动计算,DUT完成网络计算后,最终输出神经网络的真实结果。该真实结果可以包括神经网络的输出特征图。或者,该真实结果可以包括神经网络的输出特征图和该撒神经网络中各个中间层的输出特征图。
至少一些实施例中,在步骤S104中可以包括:将所述神经网络的真实结果与所述神经网络的预期结果比较,以确定所述神经网络的真实结果与其预期结果是否一致;响应于所述真实结果与所述预期结果一致,确定所述待测器件能够正常运行所述神经网络;响应于所述真实结果与所述预期结果不一致,确定所述待测器件无法正常运行所述神经网络。
一些示例中,在步骤S104中,将神经网络的真实结果和步骤S102中得到的神经网络的预期结果进行对比。如果一致,则说明DUT实现该卷积神经网络的功能正确,如果不一致,则说明DUT实现有误。一些示例中,可以将该真实结果中神经网络的输出特征图和该预期结果中对应神经网络输出特征图的部分预期结果进行对比(例如,元素级对比),如果两者中有一个对应元素的数值(例如,相同坐标的像素值)不同,则说明两者不一致,如果两者对应元素的数值均相等,则说明两者一直。
在步骤S104之后,还可以进一步分析解决DUT中的错误后,重新执行步骤S103,直到比对正确。换言之,上述方法还可以包括:确定所述待测器件无法正常运行所述神经网络之后,根据所述神经网络的真实结果与所述神经网络的预期结果之间的差异,确定导致所述待测器件无法正常运行所述神经网络的错误。相应的,本申请实施例的上述装置还可以包括:分析单元(图2中未示出),可配置为确定所述待测器件无法正常运行所述神经网络之后,根据所述神经网络的真实结果与所述神经网络的预期结果之间的差异,确定导致所述待测器件无法正常运行所述神经网络的错误。
实际应用中,还可以通过本申请实施例的上述方法或装置来对DUT中一个或多个神经网络的运行进行测试。对同一DUT上的多个神经网络的运行进行测试时,可以逐个进行,即先执行第一个神经网络的上述测试,再对下一神经网络的重新进行测试,如此逐个执行,直到该DUT上的所有神经网络的运行均完成测试。
以卷积神经网络为例,本申请实施例中待测器件运行神经网络的测试过程可以通过图8所示的示例性流程来实现。
如图8所示,待测器件运行卷积神经网络的示例性测试流程可以包括如下步骤:
步骤S801,将需要验证的卷积神经网络的描述文件转换成本发明装置能够识别的描述形式,解析模块对卷积神经网络描述文件做解析处理,得到神经网络描述信息;
步骤S802,调用图像数据生成模块根据解析结果生成对应上述卷积神经网络图像数据的数据结构,包括原始图像image0的数据结构、卷积神经网络中间层特征图的数据结构、以及最终计算结果的数据结构。
步骤S803,调用参数生成模块根据解析结果生成对应上述卷积神经网络各层卷积计算需要的卷积核参数的数据结构、以及做批标准化计算需要的BN参数的数据结构。
步骤S804,调用指令生成模块依据解析结果生成对应上述卷积神经网络的指令序列。
步骤S805,调用参考模型生成模块依据解析结果生成对应上述卷积神经网络的参考模型,该参考模型是能够调用仿真器运行的程序代码,如图2所示,分别将原始图像image0的数据结构、以及参数的数据结构创建出数据实体,并做随机化处理,模拟真实的测试输入数据。
步骤S806,启动参考模型代码运行,在仿真器内部模拟对应的卷积神经网络的各层的计算,产生神经网络的预期数据,该预期结果中的中间层数据由卷积神经网络中间层特征图的数据结构创建出来的实体承载,神经网络的最终计算结果由最终计算结果的数据结构创建出来的实体承载。
步骤S807,原始图像image0的数据以及参数数据,经过数据转换模块处理后,加载到DUT中,同时将生成的指令数据也加载到DUT中。
步骤S808,DUT针对原始图像image0执行对应卷积神经网络的计算,产生真实结果。
步骤S809,将神经网络的真实结果和神经网络的预期结果进行对比,如果神经网络的真实结果和神经网络的预期结果一致,说明DUT实现该卷积神经网络的功能正确,结束当前流程。
步骤S810,如果神经网络的真实结果和神经网络的预期结果不一致,则说明DUT实现有误,分析解决DUT中的错误,并返回步骤S808。
本申请实施例还提供了一种电子设备。如图9所示,该电子设备可以包括一个或多个处理器91和用于存储所述处理器可执行指令的存储器92,处理器91用于执行上文所述器件运行神经网络的测试方法的步骤。
处理器91可以是CPU、GPU或者具有指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器92可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器91可以运行所述程序指令,以实现上文所述片上网络温度预测方法以及/或者其他期望的功能。
当然,为了简化,图9中仅示出了该电子设备中的部分组件,省略了诸如显示器、扬声器、通信电路、总线、输入/输出接口等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。实际应用中,该电子设备可以实现为支持神经网络运算的芯片。
此外,本申请的实施例还可以包括计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行本说明书上述器件运行神经网络的测试方法中的步骤。
以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (8)

1.一种待测器件运行神经网络的测试方法,包括:
利用神经网络的描述信息生成所述神经网络的参考模型;
调用仿真器按照所述神经网络的参考模型来针对预定图像进行处理,以获得所述神经网络的预期结果;
通过待测器件运行所述神经网络来针对所述预定图像进行处理,以获得所述神经网络的真实结果;
根据所述神经网络的真实结果和所述神经网络的预期结果,确定所述待测器件是否能够正常运行所述神经网络;
其中,所述神经网络的描述信息包括所述神经网络的层级、每个所述层级中包括的算子、所述算子之间的串联顺序、每个所述算子的运算参数和所述神经网络中每个层级的特征图的尺寸;
其中,利用神经网络的描述信息生成所述神经网络的参考模型包括:
调用内嵌函数按照所述神经网络中每个层级的特征图的尺寸来创建每个层级的第一数据结构,所述第一数据结构用于承载所述层级的输入特征图的图像数据或者所述层级的输出特征图的图像数据;
调用内嵌函数基于所述神经网络中每个所述层级中包括的算子、所述算子之间的串联顺序、每个所述算子的运算参数来创建每个层级的第二数据结构,所述第二数据结构用于承载所述层级的运算参数数据;
调用内嵌函数构建神经网络的参考模型。
2.如权利要求1所述的方法,还包括:
获取神经网络的描述文件,所述描述文件指示所述神经网络包括的算子的类型以及各个所述算子之间的图像数据处理流向;
通过转换工具利用所述神经网络的描述文件生成数据表,所述数据表包括所述神经网络的描述信息。
3.如权利要求1所述的方法,其中,调用仿真器按照所述神经网络的参考模型来针对预定图像进行处理,以获得所述神经网络的预期结果,包括:
对所述第一数据结构进行随机化处理,生成对应所述预定图像以及所述神经网络中各个层级的中间特征图的图像数据;
对所述第二数据结构进行随机化处理,生成所述神经网络的参考模型的运算参数数据;
启动并运行所述仿真器来按照所述神经网络的参考模型模拟所述神经网络的运算针对所述预定图像进行处理,并获得所述神经网络的预期结果。
4.如权利要求1所述的方法,还包括:
生成所述神经网络的指令序列;以及将所述指令序列装载到所述待测器件中。
5.如权利要求1所述的方法,还包括:
将所述预定图像的图像数据转换为第一二进制文件,通过接口驱动程序将所述第一二进制文件装载至所述待测器件中;
将所述神经网络的运算参数数据转换为第二二进制文件,通过接口驱动程序将所述第二二进制文件装载至所述待测器件中。
6.如权利要求1所述的方法,其中,根据所述神经网络的真实结果和所述神经网络的预期结果,确定所述待测器件是否能够正常运行所述神经网络,包括:
将所述神经网络的真实结果与所述神经网络的预期结果比较,以确定所述神经网络的真实结果与其预期结果是否一致;
响应于所述真实结果与所述预期结果一致,确定所述待测器件能够正常运行所述神经网络;
响应于所述真实结果与所述预期结果不一致,确定所述待测器件无法正常运行所述神经网络。
7.如权利要求6所述的方法,还包括:
确定所述待测器件无法正常运行所述神经网络之后,根据所述神经网络的真实结果与所述神经网络的预期结果之间的差异,确定导致所述待测器件无法正常运行所述神经网络的错误。
8.一种待测器件运行神经网络的测试装置,包括:
参考模型生成单元,配置为利用神经网络的描述信息生成所述神经网络的参考模型;
仿真器,配置为在被所述神经网络的参考模型调用时,按照所述神经网络的参考模型来针对预定图像进行处理,以获得所述神经网络的预期结果;
神经网络单元,设置在待测器件上,并配置为运行所述神经网络来针对所述预定图像进行处理,以获得所述神经网络的真实结果;
确定单元,配置为根据所述神经网络的真实结果和所述神经网络的预期结果,确定所述待测器件是否能够正常运行所述神经网络;
其中,所述神经网络的描述信息包括所述神经网络的层级、每个所述层级中包括的算子、所述算子之间的串联顺序、每个所述算子的运算参数和所述神经网络中每个层级的特征图的尺寸;
其中,利用神经网络的描述信息生成所述神经网络的参考模型包括:
调用内嵌函数按照所述神经网络中每个层级的特征图的尺寸来创建每个层级的第一数据结构,所述第一数据结构用于承载所述层级的输入特征图的图像数据或者所述层级的输出特征图的图像数据;
调用内嵌函数基于所述神经网络中每个所述层级中包括的算子、所述算子之间的串联顺序、每个所述算子的运算参数来创建每个层级的第二数据结构,所述第二数据结构用于承载所述层级的运算参数数据;
调用内嵌函数构建神经网络的参考模型。
CN201911413950.6A 2019-12-31 2019-12-31 器件运行神经网络的测试方法及装置 Active CN111178512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911413950.6A CN111178512B (zh) 2019-12-31 2019-12-31 器件运行神经网络的测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911413950.6A CN111178512B (zh) 2019-12-31 2019-12-31 器件运行神经网络的测试方法及装置

Publications (2)

Publication Number Publication Date
CN111178512A CN111178512A (zh) 2020-05-19
CN111178512B true CN111178512B (zh) 2023-04-18

Family

ID=70655925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911413950.6A Active CN111178512B (zh) 2019-12-31 2019-12-31 器件运行神经网络的测试方法及装置

Country Status (1)

Country Link
CN (1) CN111178512B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742202A (zh) * 2020-05-29 2021-12-03 上海商汤智能科技有限公司 Ai芯片验证***、方法、设备及存储介质
CN112783705B (zh) * 2021-01-22 2022-12-02 展讯通信(天津)有限公司 一种测试方法、装置、***、芯片和电子设备
CN112819138A (zh) * 2021-01-26 2021-05-18 上海依图网络科技有限公司 一种图像神经网络结构的优化方法及装置
CN113032195B (zh) * 2021-03-24 2023-05-23 上海西井信息科技有限公司 芯片仿真验证方法、***、设备及存储介质
CN113408240B (zh) * 2021-06-25 2023-12-22 上海阵量智能科技有限公司 芯片验证方法及装置、存储介质
CN114004352B (zh) * 2021-12-31 2022-04-26 杭州雄迈集成电路技术股份有限公司 一种仿真实现方法、神经网络编译器以及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108470000B (zh) * 2018-03-06 2024-05-03 睿云联(厦门)网络通讯技术有限公司 通讯终端软件自动测试方法、***及介质
CN109063829B (zh) * 2018-06-22 2021-03-16 泰康保险集团股份有限公司 神经网络构建方法、装置、计算机设备和存储介质
CN110377472B (zh) * 2019-07-25 2021-05-18 重庆中星微人工智能芯片技术有限公司 定位芯片运行错误的方法及装置
CN110489344A (zh) * 2019-08-02 2019-11-22 Oppo广东移动通信有限公司 引擎测试方法及相关产品
CN110515811A (zh) * 2019-08-09 2019-11-29 中国信息通信研究院 终端人工智能性能基准测试方法及装置

Also Published As

Publication number Publication date
CN111178512A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN111178512B (zh) 器件运行神经网络的测试方法及装置
CN105701008B (zh) 用于测试用例生成的***和方法
CN113032195B (zh) 芯片仿真验证方法、***、设备及存储介质
US10831456B1 (en) External code integrations within a computing environment
US9612806B2 (en) Verification of computer-executable code generated from a model
CN111753983B (zh) 神经网络模型的定制化方法、***、设备和存储介质
JP7394213B2 (ja) スマートコントラクト処理方法、システム、コンピュータ機器、および読み取り可能な記憶媒体
CN114399019A (zh) 神经网络编译方法、***、计算机设备及存储介质
CN111209203A (zh) 一种基于源代码的模型验证方法
CN112527676A (zh) 模型自动化测试方法、装置及存储介质
CN112948233A (zh) 一种接口测试方法、装置、终端设备及介质
CN110347588B (zh) 软件验证方法、装置、计算机设备和存储介质
CN112560372B (zh) 一种芯片原型验证方法、装置、设备及介质
CN112860587A (zh) Ui自动测试方法和装置
EP3608786B1 (en) Systems and methods of requirements chaining and applications thereof
CN116450431A (zh) Cpu参考模型的指令功能测试***及其方法、计算机设备和存储介质
CN116243883A (zh) 一种测试激励生成方法、测试方法及相关设备
CN114756183A (zh) 数据打印方法、装置、设备及存储介质
CN111240972B (zh) 一种基于源代码的模型验证装置
CN111949510B (zh) 测试处理方法、装置、电子设备及可读存储介质
CN113220586A (zh) 一种自动化的接口压力测试执行方法、装置和***
CN112162743A (zh) 驱动程序生成方法、装置、计算机设备和存储介质
CN114756217B (zh) 基于插件的脚本生成***
CN111353335A (zh) 一种将控制层逻辑图转换为仿真***组态文件的方法
CN113343659B (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
CB02 Change of applicant information

Address after: 211100 floor 3, building 3, Qilin artificial intelligence Industrial Park, 266 Chuangyan Road, Nanjing, Jiangsu

Applicant after: Zhongke Nanjing artificial intelligence Innovation Research Institute

Address before: 211000 3rd floor, building 3, 266 Chuangyan Road, Jiangning District, Nanjing City, Jiangsu Province

Applicant before: NANJING ARTIFICIAL INTELLIGENCE CHIP INNOVATION INSTITUTE, INSTITUTE OF AUTOMATION, CHINESE ACADEMY OF SCIENCES

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant