一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种跨芯片的神经网络精度测试方法、运行中心及系统与流程

2023-02-04 14:21:05 来源:中国专利 TAG:


1.本发明涉及人工智能技术领域,具体涉及一种跨芯片的神经网络精度测试方法、运行中心及系统。


背景技术:

2.随着人工智能和芯片技术的发展,出现了越来越多专用于神经网络推理的芯片,在这些芯片上部署神经网络模型往往需要使用芯片厂商提供的量化工具将模型量化至int8或更低的精度,这一量化过程往往伴随着精度的损失,因此量化后的精度测试不可或缺。
3.现有技术的测试方法包括以下三种:
4.(1)厂家提供pc端模拟运行的功能,该方法依赖厂家提供模拟功能,大部分厂家并不提供这一功能,即使提供这一功能,往往也只是用于少量数据验证,速度非常慢,无法用于大量数据集测试;
5.(2)由算法移植工程师工程化后在开发板上运行可执行程序测试,然而算法移植工程师往往对于各种算法如何测试精度并不了解,不同算法的数据集有不同的特点,由算法移植工程师去适应不同的数据集是低效的。
6.并且,这种方式在测试时,已经投入了移植的时间。
7.(3)由算法训练工程师根据算法移植工程师提供的可执行程序到开发板测试,需要算法训练工程师接触各种不同的开发板,增加了学习成本,而且一个神经网络模型往往依赖于其他网络模型进行前置的处理,直接在板端运行可执行程序的灵活性往往不够。


技术实现要素:

8.有鉴于此,本公开实施例提供一种跨芯片的神经网络精度测试方法、运行中心及系统,至少部分解决现有技术中存在的问题。
9.第一方面,本公开实施例提供了一种跨芯片的神经网络精度测试方法,包括:
10.获取待测神经网络模型的模型信息和待测芯片的芯片信息;
11.将所述模型信息转换为与所述芯片信息相适配的配置信息;
12.调用所述待测芯片运行适配后的待测神经网络模型,获取输出结果;
13.根据所述输出结果,确定所述待测芯片对应所述待测神经网络模型的神经网络精度。
14.根据本公开实施例的一种具体实现方式,可选地,所述将所述模型信息转换为与所测芯片信息相适配的配置信息,包括:
15.确定所述模型信息中的前处理信息,根据所述芯片信息,确定待测芯片对应的前处理接口;
16.根据所述芯片信息中的推理框架信息,确定所述待测芯片对应的推理接口;
17.根据所述模型信息中的后处理信息,确定所述待测芯片对应的后处理接口。
18.根据本公开实施例的一种具体实现方式,可选地,所述调用所述待测芯片运行适配后的待测神经网络模型,获取输出结果,包括:
19.通过所述前处理接口获取输入数据经过前处理后的信息;
20.通过所述推理接口将所述前处理后的信息输入到所述待测神经网络模型中,运行所述待测神经网络模型;
21.通过所述处理所述待测芯片在运行所述待测神经网络模型后的输出信息,获取待测神经网络模型的最后运行结果。
22.根据本公开实施例的一种具体实现方式,可选地,所述确定所述模型信息中的前处理信息,根据所述芯片信息,确定待测芯片对应的前处理接口,包括:
23.确定所述模型信息中的前处理信息中的图像信息和处理需求,按所述处理需求确定各个处理需求对应的图像处理子接口;
24.根据各个所述图像处理子接口,确定待测芯片对应的前处理接口。
25.根据本公开实施例的一种具体实现方式,可选地,所述将所述模型信息转换为与所测芯片信息相适配的配置信息,还包括:
26.在模型库中载入所述待测神经网络模型;
27.若接收到卸载所述待测神经网络模型请求,则从所述模型库中卸载所述待测神经网络模型。
28.根据本公开实施例的一种具体实现方式,可选地,所述获取待测神经网络模型的模型信息包括:
29.接收用户上传的神经网络模型文件,所述神经网络模型文件包括神经网络模型的模型信息;
30.或,
31.接收用户上传的神经网络模型的描述信息,从模型库中获取所述神经网络模型的模型信息。
32.根据本公开实施例的一种具体实现方式,可选地,所述将所述模型信息转换为与所述芯片信息相适配的配置信息,还包括:
33.若所述待测神经网络模型依赖其他神经网络模型的输出结果,则从所述模型库中查找所述其他神经网络模型的模型信息或从所述用户上传的神经网络模型文件中查找所述其他神经网络模型的模型信息;
34.将所述其他神经网络模型的模型信息转换为与所述芯片信息相适配的配置信息;
35.调用所述待测芯片运行适配后的所述其他神经网络模型,获取初始结果;
36.将所述初始结果作为所述待测神经网络模型的输入信息;
37.相应地,所述调用所述待测芯片运行适配后的待测神经网络模型,包括:
38.将所述输入信息载入到所述待测芯片中,以便所述待测芯片运行所述待测神经网络模型。
39.根据本公开实施例的一种具体实现方式,可选地,还包括:
40.将所述输出结果作为运行日志反馈至用户。
41.第二方面,本公开实施例提供了一种跨芯片的神经网络精度测试运行中心,包括:
42.获取模块,用于获取待测神经网络模型的模型信息和待测芯片的芯片信息;
43.适配模块,用于将所述模型信息转换为与所述芯片信息相适配的配置信息;
44.运行模块,用于调用所述待测芯片运行适配后的待测神经网络模型,获取输出结果;
45.输出模块,用于根据所述输出结果,确定所述待测芯片对应所述待测神经网络模型的神经网络精度。
46.根据本公开实施例的一种具体实现方式,可选地,所述适配模块包括:
47.前处理单元,用于确定所述模型信息中的前处理信息,根据所述芯片信息,确定待测芯片对应的前处理接口;
48.推理单元,用于根据所述芯片信息中推理框架信息,确定所述待测芯片对应的推理接口;
49.后处理单元,用于根据所述模型信息中的后处理信息,确定所述待测芯片对应的后处理接口。
50.第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
51.至少一个处理器;以及,
52.与该至少一个处理器通信连接的存储器;其中,
53.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述第一方面或第一方面的任一实现方式中的跨芯片的神经网络精度测试方法。
54.第四方面,本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述第一方面或第一方面的任一实现方式中的跨芯片的神经网络精度测试方法。
55.第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使该计算机执行前述第一方面或第一方面的任一实现方式中的跨芯片的神经网络精度测试方法。
56.本公开实施例中的跨芯片的神经网络精度测试方案,包括获取待测神经网络模型的模型信息和待测芯片的芯片信息;将所述模型信息转换为与所述芯片信息相适配的配置信息;调用所述待测芯片运行适配后的待测神经网络模型,获取输出结果;根据所述输出结果,确定所述待测芯片对应所述待测神经网络模型的神经网络精度。本公开的方案中,对于不同的芯片,仅需系统适配神经网络模型和芯片类型,不需要用户了解芯片间的差异,在保证性能的基础上,屏蔽了硬件差异,提高了开发效率。且该测试系统所使用的神经网络推理框架与算法移植工程师所使用的一致,保证算法训练工程师测试的精度与算法移植后的精度一致,避免算法训练工程师和算法移植工程师出现模型精度的差异。并且当测试中依赖其他神经网络模型时,不需要了解如何运行所依赖的模型,而只需要请求对应模型的结果即可,大大增加了灵活性。通过本公开实施例的跨芯片的神经网络精度测试方案,可以大大的提高人工智能算法的开发效率。
附图说明
57.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
58.图1为本公开实施例提供的一种跨芯片的神经网络精度测试方法流程示意图;
59.图2为本公开实施例提供的一种跨芯片的神经网络精度测试系统结构示意图;
60.图3为本公开实施例提供的一种跨芯片的神经网络精度测试运行中心结构示意图。
具体实施方式
61.下面结合附图对本公开实施例进行详细描述。
62.以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
63.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
64.还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
65.另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
66.图1为本公开实施例提供的一种跨芯片的神经网络精度测试方法流程示意图,图2为本公开实施例提供的一种跨芯片的神经网络精度测试系统结构示意图,如图1图2所示,该方法包括:
67.步骤s110、获取待测神经网络模型的模型信息和待测芯片的芯片信息;
68.具体地,如图2所示,跨芯片的神经网络精度测试运行系统可以仅包括跨芯片的神经网络精度测试运行中心2200(以下简称运行中心2200)。当需要在某个芯片(记为待测芯片)上测试某个神经网络模型(记为待测神经网络模型)时,运行中心2200首先获取待测神经网络模型的模型信息,例如待测神经网络模型文件、待测神经网络模型的存储位置、待测神经网络模型在模型库中的模型标识、模型名称、模型版本、待测神经网络模型的输入信息、预处理方式、后处理方式等,同时运行中心2200还需要获取待测芯片的芯片信息,例如
芯片厂家、芯片名称、芯片型号等。
69.在实际应用中,运行中心2200可以在模型库中存储用户需要存储的或常用的神经网络模型以及芯片信息,通过设置界面,供用户选择或上传。
70.用户可以在运行中心2200上传待测神经网络模型的模型信息和待测芯片的芯片信息,例如用户在运行中心2200上传待测神经网络模型文件,该文件包括了待测神经网络模型和模型信息,用户在运行中心2200输入待测芯片的型号,基于用户的上传操作,运行中心2200从获取待测神经网络模型的模型信息和待测芯片的芯片信息;或者,用户在运行中心2200点击选择待测神经网络模型的存储位置和待测芯片的型号,基于用户的点击操作,运行中心2200从存储位置获取待测神经网络模型的模型信息和待测芯片的芯片信息;或者用户在运行中心2200点击上传待测神经网络模型的描述信息和待测芯片的型号,其中描述信息可以为待测神经网络模型在模型库中的模型标识,基于用户的点击操作,运行中心2200从模型库获取待测神经网络模型的模型信息和待测芯片的芯片信息。
71.进一步地,为了方便用户,如图2所示,神经网络精度测试运行系统还可以设置可以与运行中心2200进行通信的客户端2100,用户通过客户端2100选择待测神经网络模型的模型信息和待测芯片的芯片信息,如用户直接上传文件,或者用户上传神经网络模型的位置信息或描述信息等,客户端2100响应于用户操作后,将携带上述信息的测试请求发送至运行中心2200,运行中心2200通过测试请求获取模型文件或根据描述信息从模型库中查找神经网络模型的模型信息或根据位置信息查找神经网络模型的模型信息。
72.步骤s120、将所述模型信息转换为与所述芯片信息相适配的配置信息;
73.具体地,运行中心2200首先确定模型信息中的前处理信息,根据芯片信息,确定待测芯片对应的前处理接口,进一步地,运行中心2200确定模型信息中的前处理信息中的图像信息和处理需求,按处理需求确定各个处理需求对应的前处理信息的图像处理子接口,例如,图像缩放子接口、抠图子接口、颜色转换子接口、图像对齐子接口等,实际处理时,运行中心2200可以根据待测芯片的芯片厂商提供的硬件加速算子或cpu设计各子接口。根据设置的前处理信息,组合调用图像处理子接口,完成对输入图像的前处理,实现前处理的配置化。前处理接口抽象出通用图像类,该图像类可创建对应硬件的图像,包括图像数据和图像格式等,所有图像相关数据使用该类表示,用户无需接触对应硬件的接口。
74.之后,运行中心2200根据芯片信息中的软件工具开发包sdk信息,确定所述待测芯片对应的推理接口,推理接口抽象出推理基类,包含初始化、推理、获取输出层结果、卸载接口,对于每个芯片类型,继承该基类,实现具体的功能,底层调用芯片厂家提供的神经网络sdk进行神经网络模型载入、前向推理、获取输出层结果、卸载神经网络模型。
75.最后,运行中心2200根据所述模型信息中的后处理信息,确定所述待测芯片对应的后处理接口。后处理执行取出神经网络模型对应层的操作,按需要的后处理方式得到最终的结果(如检测任务中的yolov5)。后处理接口抽象出出张量(tensor)类,该类用于存储神经网络的原始推理结果,根据设置的后处理类型,对输出的张量进行处理,获取处理后的结果,为了能够支持各种功能的神经网络,该处理结果也可由抽象的结构体保存,可保存向量、张量和框。
76.通过以上三个接口的抽象化处理,每款芯片对外的接口都相同,对其适配也局限于图像处理和推理部分,用户也不需要接触具体的芯片接口。本公开提出的抽象化的异构
推理引擎,在芯片厂家提供的sdk基础上,抽象出统一的图像处理和推理接口,这样在需要适配新的芯片时,只需抽象图像处理和推理接口进行适配新的芯片sdk,而无需修改本公开中的整体方案。
77.步骤s130、调用所述待测芯片运行适配后的待测神经网络模型,获取输出结果;
78.具体地,运行中心2200通过前处理接口2253确定前处理信息;通过推理接口2254将前处理信息发送至待测芯片,待测芯片将前处理信息输入到待测神经网络模型中,运行待测神经网络模型,通过后处理接口2255获取待测芯片在运行待测神经网络模型时的运行结果。
79.如图2所示,在实际应用中,还可以将测试运行中心2200按功能划分为多个中心,网络服务中心2210提供实际的对外能力,包括处理用户请求、上报健康状态和已载入模型信息到服务发现中心2220。服务发现中心2220根据配置的芯片类型,将请求转发至对应芯片的测试服务,测试服务中心2250收到请求后,根据配置的模型名称和模型版本,将对应数据放入对应模型的处理队列,测试服务中心的任务调度器根据用户配置、硬件特点等信息从处理队列中取出单个或多个任务依次进行前处理、推理和后处理操作,最后返回给用户任务结果。
80.步骤s140、根据所述输出结果,确定所述待测芯片对应所述待测神经网络模型的神经网络精度。
81.具体地,确定输出结果之后,根据输出结果与预设输出结果对比,确定待测芯片对应待测神经网络模型的神经网络精度。
82.例如对于神经网络模型a,需要测试量化后在芯片甲和芯片乙上的精度,只需要通过接口参数设置芯片类型为甲或乙,对于用户,其无需知晓芯片甲和芯片乙的差异,通过统一的客户端接口或运行中心界面即可完成对不同芯片的精度测试。
83.本公开实施例中的跨芯片的神经网络精度测试方法,包括获取待测神经网络模型的模型信息和待测芯片的芯片信息;将所述模型信息转换为与所述芯片信息相适配的配置信息;调用所述待测芯片运行适配后的待测神经网络模型,获取输出结果;根据所述输出结果,确定所述待测芯片对应所述待测神经网络模型的神经网络精度。本公开的方案中,对于不同的芯片,仅需适配神经网络模型和芯片类型,不需要用户了解芯片间的差异,在保证性能的基础上,屏蔽了硬件差异,提高了开发效率。且该测试系统所使用的神经网络推理框架与算法移植工程师所使用的一致,保证算法训练工程师测试的精度与算法移植后的精度一致,避免算法训练工程师和算法移植工程师出现模型精度的差异。通过本公开实施例的跨芯片的神经网络精度测试方案,可以大大的提高人工智能算法的开发效率。
84.进一步地,在上述实施例的基础上,可选地,所述将所述模型信息转换为与所测芯片信息相适配的配置信息,还包括:
85.在模型库中载入所述待测神经网络模型;
86.若接收到卸载所述待测神经网络模型请求,则从所述模型库中卸载所述待测神经网络模型。
87.具体地,如图2所示,测试运行中心2200还可以包括模型管理中心2240,模型管理中心2240定时扫描模型库,判断是否有需要载入或卸载的模型,并执行载入和卸载操作。网络服务中心2210定时从模型管理中心2240获取当前已经载入的模型,上报给服务发现中心
2220,服务发现中心2220根据上报的信息决定是否可以将对应模型的请求转发至测试服务中心2250。在收到用户请求后,测试服务中心2250根据用户传入的模型名称、版本信息,将用户请求的输入数据放入对应模型的任务队列,该模型的任务调度器2252依次从任务队列2251中取出数据,执行芯片端的模型推理,即通过前处理接口2253、推理接口2254和后处理接口2255处理依次处理,并将运行结果返回给用户。
88.进一步地,在上述各实施例的基础上,可选地,所述将所述模型信息转换为与所述芯片信息相适配的配置信息,还包括:
89.若所述待测神经网络模型依赖其他神经网络模型的输出结果,则从所述模型库中查找所述其他神经网络模型的模型信息或从所述用户上传的神经网络模型文件中查找所述其他神经网络模型的模型信息;
90.将所述其他神经网络模型的模型信息转换为与所述芯片信息相适配的配置信息;
91.调用所述待测芯片运行适配后的所述其他神经网络模型,获取初始结果;
92.将所述初始结果作为所述待测神经网络模型的输入信息;
93.相应地,所述调用所述待测芯片运行适配后的待测神经网络模型,包括:
94.将所述输入信息载入到所述待测芯片中,以便所述待测芯片运行所述待测神经网络模型。
95.具体地,若待测神经网络模型依赖于其他模型的输出,如人脸识别依赖人脸检测,则从模型库或用户上传的模型文件中获取所依赖的模型并上传至模型库。在执行待测神经网络模型前,先适配所依赖的其他网络模型,获取其他网络模型的输出结果,作为初始结果,然后,结合初始结果和待测神经网络模型的输入信息,在待测芯片上测试神经网络模型,通过这一方式,算法工程师可以灵活的搭建多个模型的测试流程,无需了解待测试模型所依赖模型如何运行,即可获得其结果。
96.进一步地,在上述各实施例的基础上,可选地,还包括:
97.将所述输出结果作为运行日志反馈至用户。
98.具体地,运行中心2200可以将输出结果作为日志通过客户端2100反馈给用户,如图2所示,运行中心2200还可以包括日志中心2230,将测试过程中的运行日志存入日志文件,由日志汇聚程序监控日志(如filebeat)并上传至日志中心,用户登陆日志中心2230,即可查看运行日志,判断模型载入、模型推理等的详细状态。
99.本公开实施例提供的跨芯片的神经网络精度测试方法,通过上述方法,算法训练工程师无需接触开发板,仅仅通过有限的接口获取神经网络模型在开芯片上的运行结果,对于不同的芯片,仅需要配置芯片类型,而不需要了解芯片间的差异。基于这种方式,当测试中依赖其他神经网络模型时,不需要了解如何运行所依赖的模型,只需要请求对应模型的结果即可,大大增加了灵活性。同时,该系统所使用的神经网络推理框架与算法移植工程师所使用的一致,也可以保证算法训练工程师测试的精度与算法移植后的精度一致,提高了人工智能算法的开发效率。
100.图3为本公开实施例提供的一种跨芯片的神经网络精度测试运行中心结构示意图,如图3所示,该运行中心包括:获取模块310,适配模块320,运行模块330和输出模块340,其中:
101.获取模块310用于获取待测神经网络模型的模型信息和待测芯片的芯片信息;适
配模块320用于将所述模型信息转换为与所述芯片信息相适配的配置信息;运行模块330用于调用所述待测芯片运行适配后的待测神经网络模型,获取输出结果;输出模块340用于根据所述输出结果,确定所述待测芯片对应所述待测神经网络模型的神经网络精度。
102.如上述运行中心,可选地,所述适配模块320包括:
103.前处理单元321,用于确定所述模型信息中的前处理信息,根据所述芯片信息,确定待测芯片对应的前处理接口;
104.推理单元322,用于根据所述芯片信息中的软件工具开发包sdk信息,确定所述待测芯片对应的推理接口;
105.后处理单元323,用于根据所述模型信息中的后处理信息,确定所述待测芯片对应的后处理接口。
106.本公开实施例提供的跨芯片的神经网络精度测试运行中心,用于实现上述跨芯片的神经网络精度测试方法,详见上述方法实施例,此处不再赘述。
107.本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令当由一个或多个处理器执行时,使所述一个或多个处理器执行前述的跨芯片的神经网络精度测试方法。
108.以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献