优化神经网络模型的方法及执行该方法的神经网络模型处理系统与流程

文档序号:32745746发布日期:2022-12-30 22:02阅读:44来源:国知局
优化神经网络模型的方法及执行该方法的神经网络模型处理系统与流程
优化神经网络模型的方法及执行该方法的神经网络模型处理系统
1.相关申请的交叉引用
2.本技术基于并要求向韩国知识产权局(kipo)于2021年6月30日递交的韩国专利申请no.10-2021-0085534和于2021年8月30日递交的韩国专利申请no.10-2021-0114779的优先权,其全部内容通过引用合并于此。
技术领域
3.示例实施例总体上涉及机器学习技术,并且更具体地涉及优化神经网络模型的方法,以及执行优化神经网络模型的方法的神经网络模型处理系统。


背景技术:

4.存在基于机器学习对数据进行分类的各种方法。其中包括使用神经网络或人工神经网络(ann)对数据进行分类的方法。可以通过设计其中执行高效识别模式的过程的人脑的细胞结构模型来获得ann。ann是指基于软件或硬件并且旨在通过应用通过连接线互连的许多人工神经元来模仿生物计算能力的计算模型。人脑由作为神经的基本单元的神经元组成,并且根据这些神经元之间不同类型的密集连接对信息进行加密或解密。ann中的人工神经元是通过生物神经元功能的简化来获得的。ann通过互连具有连接强度的人工神经元来执行认知或学习过程。
5.最近,已经研究了深度学习过程和服务以克服ann的局限性,并且随着深度学习过程和服务的开发,研究者正在进行分析和优化改进神经网络模型的各种研究项目。传统上,使用通用算法的优化技术已经被使用。


技术实现要素:

6.本公开的至少一个示例实施例提供了一种高效地优化神经网络模型以最适用或最适合于目标设备的方法。
7.本公开的至少一个示例实施例提供了一种执行优化神经网络模型的方法的神经网络模型处理系统。
8.本公开的至少一个示例实施例提供了一种高效地操作神经网络模型的方法。
9.根据示例实施例,在优化神经网络模型的方法中,接收关于第一神经网络模型的第一模型信息。接收关于用于执行第一神经网络模型的第一目标设备的设备信息。基于第一模型信息、设备信息以及多个适合性确定算法中的至少一个,执行对第一神经网络模型是否适合于在第一目标设备上执行的分析。输出分析的结果,使得第一模型信息和分析的结果显示在屏幕上。
10.根据示例实施例,神经网络模型处理系统包括输入设备、存储设备、输出设备和处理器。输入设备接收关于第一神经网络模型的第一模型信息和关于用于执行第一神经网络模型的第一目标没备的设备信息。存储设备存储关于程序例程的信息。程序例程被配置为
使处理器:基于第一模型信息、设备信息以及多个适合性确定算法中的至少一个来执行对第一神经网络模型是否适合于在第一目标设备上执行的分析;以及生成分析的结果,使得第一模型信息和分析的结果显示在屏幕上。输出设备可视地输出分析的结果。处理器连接到输入设备、存储设备和输出设备,并且控制程序例程的执行。
11.根据示例实施例,在优化神经网络模型的方法中,提供了用于优化神经网络模型的图形用户界面(gui)。通过gui接收关于要优化的第一神经网络模型的第一模型信息。通过gui接收关于用于执行第一神经网络模型的第一目标设备的设备信息。基于第一模型信息、设备信息以及多个适合性确定算法中的至少一个,执行对第一神经网络模型是否适合于在第一目标设备上执行的分析。在gui上可视地输出分析的结果,使得第一模型信息和分析的结果显示在一个屏幕上。基于分析的结果通过gui接收用于从第一神经网络模型的层中选择第一层的第一用户输入。基于第一用户输入将第一层改变为第二层。在gui上可视地输出将第一层改变为第二层的结果。通过gui接收用于从第一神经网络模型的层中选择第三层的第二用户输入。基于第二用户输入来改变第三层的量化方案。在gui上可视地输出改变第三层的量化方案的结果。当执行分析时,通过基于第一算法对第一神经网络模型执行第一分析来获得第一神经网络模型的结构和层的性能分数。第一算法用于确定与第一目标设备相关联的第一神经网络模型的结构和层的性能效率。通过基于第二算法对第一神经网络模型执行第二分析来获得第一神经网络模型的结构和层的复杂度分数。第二算法用于分析第一神经网络模型的结构和层的复杂度和容量。通过基于第三算法对第一神经网络模型执行第三分析来获得第一神经网络模型的结构和层的存储器占用分数。第三算法用于确定与第一目标设备相关联的第一神经网络模型的结构和层的存储器效率。基于性能分数、复杂度分数和存储器占用分数来获得第一神经网络模型的总分数。
12.根据示例实施例,在方法中,提供了图形用户界面(gui)。接收关于第一神经网络模型的第一模型信息。接收关于用于执行第一神经网络模型的第一目标设备的设备信息。基于第一模型信息、设备信息以及多个适合性确定算法中的至少一个,执行对第一神经网络模型是否适合于在第一目标设备上执行的分析。在gui上显示第一图形表示,使得第一模型信息和分析的结果显示在一个屏幕上。第一图形表示包括第一模型信息和分析的结果。在gui上显示第二图形表示,使得基于分析的结果改变第一神经网络模型的层中的至少一个的结果被显示。第二图形表示包括改变第一神经网络模型的层中的至少一个的过程和结果。
附图说明
13.根据结合附图的以下详细描述,将更清楚地理解说明性的非限制性示例实施例。
14.图1是示出了根据示例实施例的优化神经网络模型的方法的流程图。
15.图2、图3和图4是示出了根据示例实施例的神经网络模型处理系统的框图。
16.图5a、图5b、图5c和图6是用于描述作为根据示例实施例的优化神经网络模型的方法的目标的神经网络模型的示例的图。
17.图7是示出了执行图1中的分析的示例的流程图。
18.图8是示出了执行图7中的第一分析的示例的流程图。
19.图9是示出了执行图1中的分析的示例的流程图。
20.图10是示出了执行图9中的第二分析的示例的流程图。
21.图11是示出了执行图1中的分析的示例的流程图。
22.图12和图13是示出了执行图11中的第三分析的示例的流程图。
23.图14是示出了执行图1中的分析的示例的流程图。
24.图15是示出了图1的优化神经网络模型的方法的示例的流程图。
25.图16a、图16b、图16c、图16d、图16e和图16f是用于描述图15的操作的图。
26.图17是示出了根据示例实施例的优化神经网络模型的方法的流程图。
27.图18是示出了图17中的改变第一神经网络模型的层中的至少一个的示例的流程图。
28.图19是示出了图17的优化神经网络模型的方法的示例的流程图。
29.图20a、图20b、图20c和图20d是用于描述图19的操作的图。
30.图21是示出了根据示例实施例的优化神经网络模型的方法的流程图。
31.图22是示出了图21中的将不同量化方案应用于第一神经网络模型的层中的至少一些的示例的流程图。
32.图23是示出了图21的优化神经网络模型的方法的示例的流程图。
33.图24a、图24b和图24c是用于描述图23的操作的图。
34.图25是示出了根据示例实施例的执行优化神经网络模型的方法的系统的框图。
具体实施方式
35.将参考其中示出了示例实施例的附图更全面地描述各种示例实施例。然而,本公开可以按多种不同形式来实现,并且不应当被解释为受到本文阐述的示例实施例的限制。贯穿本技术,类似的附图标记表示类似的元件。
36.图1是示出了根据示例实施例的优化神经网络模型的方法的流程图。
37.参考图1,根据示例实施例的优化神经网络模型的方法由基于计算机的神经网络模型处理系统执行和/或实施,在基于计算机的神经网络模型处理系统中,组件中的至少一些用硬件和/或软件来实现。将参考图2、图3和图4来描述神经网络模型处理系统的详细配置。
38.在根据示例实施例的优化神经网络模型的方法中,接收第一神经网络模型的第一模型信息(步骤s100)。例如,第一神经网络模型可以是已经完成训练的神经网络模型(例如,经预训练的神经网络模型),或者可以是正在执行训练的神经网络模型。换句话说,根据示例实施例的优化神经网络模型的方法可以在完成对第一神经网络模型的训练之后执行和/或实施,或者在执行对第一神经网络模型的训练的同时执行和/或实施。将参考图5a、图5b和图5c来描述神经网络模型的示例。
39.对神经网络模型的训练(或训练操作)指示当给定要解决的任务和任务的一组函数时以优化的方式解决任务的过程,并且指示用于改进或增强神经网络模型的性能和/或准确性的过程。例如,对神经网络模型的训练可以包括确定神经网络模型的网络结构的操作、确定神经网络模型中使用的诸如权重之类的参数的操作等。此外,在对神经网络模型进行训练期间,在保持架构和数据类型的同时,可以改变除了架构和数据类型之外的参数。
40.接收用于执行或驱动第一神经网络模型的第一目标设备的设备信息(步骤s200)。
例如,第一目标设备可以包括执行或驱动第一神经网络模型的处理元件和/或包括该处理元件的神经网络系统(或电子系统)。将参考图6来描述神经网络系统的示例。
41.基于第一模型信息、设备信息以及多个适合性确定算法中的至少一个,执行对第一神经网络模型是否适合于在第一目标设备上执行或驱动的分析(步骤s300)。例如,多个适合性确定算法可以包括用于确定第一神经网络模型的性能效率的第一算法、用于分析第一神经网络模型的复杂度和容量的第二算法、用于确定第一神经网络模型的存储器效率的第三算法等。将参考图7至图14来描述步骤s300中的多个适合性确定算法和分析的示例。
42.可视化并且输出分析的结果,使得第一模型信息和分析的结果显示在屏幕上(步骤s400)。例如,可以使用图形用户界面(gui)来执行步骤s400。例如,可以基于分数和颜色中的至少一个来显示分析的结果,并且可以在gui上显示包括第一模型信息和分析的结果的图形表示,使得第一模型信息和分析的结果一起被显示。将参考图16a、图16b、图16c、图16d、图16e、图16f、图20a、图20b、图20c、图20d、图24a、图24b和图24c来描述gui。
43.在根据示例实施例的优化神经网络模型的方法中,可以高效地实现被确定为最适用或最适合于目标设备的神经网络模型。例如,在对神经网络模型执行训练之前,可以设计针对目标设备优化的神经网络模型。在对神经网络模型完成训练之后,可以检查和/或确定神经网络模型是否适合于目标设备,并且如果需要,可以修改神经网络模型和/或可以建议更合适的新配置。此外,通过将合适的量化方案应用于神经网络模型的每个组件,可以获得优化的性能。此外,可以提供用于这种操作的gui。因此,用户可以高效地将神经网络模型设计和修改为针对目标设备是最优化的,并且可以应用合适的量化方案。
44.图2、图3和图4是示出了根据示例实施例的神经网络模型处理系统的框图。
45.参考图2,神经网络模型处理系统1000是基于计算机的神经网络模型处理系统,并且包括处理器1100、存储设备1200和输入/输出(i/o)设备1300。i/o设备1300包括输入设备1310和输出设备1320。
46.处理器1100可以用于执行根据示例实施例的优化神经网络模型的方法。例如,处理器1100可以包括微处理器、应用处理器(ap)、数字信号处理器(dsp)、图形处理单元(gpu)等。尽管图2中仅示出了一个处理器1100,但是示例实施例不限于此。例如,神经网络模型处理系统1000中可以包括多个处理器。此外,处理器1100可以包括高速缓冲存储器以增加计算容量。
47.存储设备1200可以存储和/或包括用于根据示例实施例的优化神经网络模型的方法的程序(pr)1210。存储设备1200还可以存储和/或包括用于执行根据示例实施例的优化神经网络模型的方法的适合性确定算法(sda)1220、更新算法(ua)1230和量化方案(qs)1240。可以从存储设备1200向处理器1100提供程序1210、适合性确定算法1220、更新算法1230和量化方案1240。
48.在一些示例实施例中,存储设备1200可以包括用于向计算机提供命令和/或数据的各种非暂时性计算机可读存储介质中的至少一种。例如,非暂时性计算机可读存储介质可以包括易失性存储器(例如静态随机存取存储器(sram)、动态随机存取存储器(dram)等)和/或非易失性存储器(例如闪存、磁阻随机存取存储器(mram)、相变随机存取存储器(pram)、电阻随机存取存储器(rram)等)。非暂时性计算机可读存储介质可以插入计算机中,可以集成在计算机中,或者可以通过诸如网络和/或无线链路之类的通信介质连接到计
算机。
49.输入设备1310可以用于接收用于根据示例实施例的优化神经网络模型的方法的输入。例如,输入设备1310可以接收模型信息mi和设备信息di,并且还可以接收用户输入。例如,输入设备1310可以包括各种输入装置(例如键盘、键区、触摸板、触摸屏、鼠标、远程控制器等)中的至少一种。
50.输出设备1320可以用于提供用于根据示例实施例的优化神经网络模型的方法的输出。例如,输出设备1320可以提供可视化输出vout。例如,输出设备1320可以包括用于显示可视化输出vout的输出装置(例如显示设备),并且还可以包括各种输出装置(例如扬声器、打印机等)中的至少一种。
51.神经网络模型处理系统1000可以执行参考图1描述的根据示例实施例的优化神经网络模型的方法。例如,输入设备1310可以接收第一神经网络模型的第一模型信息(例如,模型信息mi)和用于执行或驱动第一神经网络模型的第一目标设备的设备信息(例如,设备信息di)。存储设备1200可以存储程序例程的信息,并且程序例程可以被配置为:基于第一模型信息、设备信息以及多个适合性确定算法中的至少一个,执行对第一神经网络模型是否适合于在第一目标设备上执行的分析;以及生成分析的结果,使得第一模型信息和分析的结果显示在屏幕上。输出设备1320可以可视化并且输出分析的结果。处理器1100可以连接到输入设备1310、存储设备1200和输出设备1320,并且可以控制程序例程的执行。此外,神经网络模型处理系统1000可以执行将参考图17和图21描述的根据示例实施例的优化神经网络模型的方法。
52.参考图3,神经网络模型处理系统2000包括处理器2100、i/o设备2200、网络接口2300、随机存取存储器(ram)2400、只读存储器(rom)2500和存储设备2600。
53.在一些示例实施例中,神经网络模型处理系统2000可以是计算系统。例如,计算系统可以是诸如台式计算机、工作站或服务器之类的固定计算系统,或者可以是诸如膝上型计算机之类的便携式计算系统。
54.处理器2100可以与图2中的处理器1100基本相同或相似。例如,处理器2100可以包括用于执行任意指令集的核或处理器核(例如,因特尔架构-32(ia-32)、64比特扩展ia-32、x86-64、powerpc、sparc、mips、arm、ia-64等)。例如,处理器2100可以通过总线访问存储器(例如,ram 2400或rom 2500),并且可以执行ram 2400或rom2500中存储的指令。如图3所示,ram 2400可以存储用于根据示例实施例的优化神经网络模型的方法的程序pr或者程序pr的至少一些元素,并且程序pr可以允许处理器2100执行优化神经网络模型的操作。
55.换句话说,程序pr可以包括可由处理器2100执行的多个指令和/或过程,并且程序pr中包括的多个指令和/或过程可以允许处理器2100执行根据示例实施例的优化神经网络模型的方法。每个过程可以表示用于执行特定任务的一系列指令。过程可以被称为函数、例程、子例程或子程序。每个过程可以处理从外部提供的数据和/或由其他过程产生的数据。
56.存储设备2600可以与图2中的存储设备1200基本相同或相似。例如,存储设备2600可以存储程序pr,并且可以存储适合性确定算法sda、更新算法ua和量化方案qs。在由处理器2100执行之前,可以将程序pr或者程序pr的至少一些元素从存储设备2600加载到ram 2400。存储设备2600可以存储以程序语言编写的文件,并且由编译器产生的程序pr或者程序pr的至少一些元素可以被加载到ram 2400。
57.存储设备2600可以存储将由处理器2100处理的数据、或者通过处理器2100的处理获得的数据。处理器2100可以基于程序pr处理存储设备2600中存储的数据以产生新数据,并且可以将所产生的数据存储在存储设备2600中。
58.i/o设备2200可以与图2中的i/o设备1300基本相同或相似。i/o没备2200可以包括诸如键盘、指示设备等的输入设备,并且可以包括诸如显示设备、打印机等的输出设备。例如,用户可以通过i/o设备2200触发处理器2100对程序pr的执行,可以输入图2中的模型信息mi和设备信息di和/或图4中的用户输入ui,并且可以检查图2中的可视化输出vout和/或图4中的图形表示gr。
59.网络接口2300可以提供对神经网络模型处理系统2000外部的网络的访问。例如,网络可以包括多个计算系统和通信链路,并且通信链路可以包括有线链路、光链路、无线链路或任意其他类型的链路。可以通过网络接口2300向神经网络模型处理系统2000提供图2中的模型信息mi和设备信息di和/或图4中的用户输入ui,并且可以通过网络接口2300向另一计算系统提供图2中的可视化输出vout和/或图4中的图形表示gr。
60.参考图4,神经网络模型优化模块100可以由图2的神经网络模型处理系统1000和图3的神经网络模型处理系统2000来执行和/或控制。神经网络模型优化模块100可以包括gui控制模块200和分析模块300,并且还可以包括更新模块400和量化模块500。神经网络模型优化模块100可以提供用于优化神经网络模型的gui。
61.本文中,术语“模块”可以是指但不限于执行特定任务的软件和/或硬件组件,诸如现场可编程门阵列(fpga)或专用集成电路(asic)。模块可以被配置为驻留在有形可寻址存储介质上,并且被配置为在一个或多个处理器上执行。例如,“模块”可以包括诸如软件组件、面向对象的软件组件、类组件和任务组件之类的组件,并且可以包括过程、函数、例程、程序代码段、驱动器、固件、微代码、电路、数据、数据库、数据结构、表、数组和变量。“模块”可以划分为执行详细功能的多个“模块”。
62.分析模块300可以基于适合性确定算法(例如,图2和图3中的适合性确定算法sda)来执行对神经网络模型是否适合于在目标设备上执行的分析(或分析操作)。
63.分析模块300可以包括针对目标设备的预列出表(pt)310、性能估计器(pe)320、针对目标设备的经预训练的深度学习模型(pm)330、复杂度确定单元(cd)340、容量测量单元(cm)350和存储器估计器(me)360。将参考图7至图14描述与使用每个组件的分析相关联的详细操作。
64.更新模块400可以基于更新算法(例如,图2和图3中的更新算法ua)来执行对神经网络模型的更新(或更新算法)。例如,对神经网络模型的更新可以包括设置改变、层改变等。将参考图17描述与更新相关联的详细操作。
65.量化模块500可以基于量化方案(例如,图2和图3中的量化方案qs)来执行对神经网络模型的量化(或量化操作)。将参考图21描述与量化相关联的详细操作。
66.gui控制模块200可以控制gui执行对神经网络模型的优化。例如,gui控制模块200可以控制gui接收用户输入ui并且输出图形表示gr。例如,用户输入ui可以包括图2中的模型信息mi和设备信息di,并且图形表示gr可以与图2中的可视化输出vout相对应。
67.在一些示例实施例中,神经网络模型优化模块100的至少一些元件可以被实现为指令代码或程序例程(例如,软件程序)。例如,指令代码或程序例程可以由基于计算机的电
子系统执行,并且可以存储在位于基于计算机的电子系统内部或外部的任何存储设备中。在其他示例实施例中,神经网络模型优化模块100的至少一些元件可以被实现为硬件。例如,神经网络模型优化模块100的至少一些元件可以被包括在基于计算机的电子系统中。
68.图5a、图5b、图5c和图6是用于描述作为根据示例实施例的优化神经网络模型的方法的目标的神经网络模型的示例的图。
69.图5a、图5b和图5c示出了神经网络模型的网络结构的示例,并且图6示出了用于执行和/或驱动神经网络模型的神经网络系统的示例。例如,神经网络模型可以包括以下中的至少一种:人工神经网络(ann)模型、卷积神经网络(cnn)模型、递归神经网络(rnn)模型、深度神经网络(dnn)模型等。然而,示例实施例不限于此。又例如,神经网络模型可以包括各种学习模型,例如反卷积神经网络、堆叠神经网络(snn)、状态空间动态神经网络(ssdnn)、深度置信网络(dbn)、生成对抗网络(gan)和/或受限玻尔兹曼机(rbm)。备选地或附加地,神经网络模型可以包括其他形式的机器学习模型,例如线性和/或逻辑回归、统计聚类、贝叶斯分类、决策树、诸如主成分分析之类的降维和专家系统、和/或其组合,包括诸如随机森林之类的集成。
70.参考图5a,通用神经网络可以包括输入层il、多个隐藏层hl1、hl2、...、hln和输出层ol。
71.输入层il可以包括i个输入节点x1、x2、..、xi,其中i是自然数。长度为i的输入数据(例如,矢量输入数据)idat可以输入到输入节点x1、x2、...、xi,使得输入数据idat的每个元素被输入到输入节点x1、x2、...、xi中的相应一个。
72.多个隐藏层hl1、hl2、...、hln可以包括n个隐藏层,其中n是自然数,并且可以包括多个隐藏节点h
11
、h
12
、h
13
、...、h
1m
、h
21
、h
22
、h
23
、...、h
2m
、h
n1
、h
n2
、h
n3
、...、h
nm
。例如,隐藏层hl1可以包括m个隐藏节点h
11
、h
12
、h
13
、...、h
lm
,隐藏层hl2可以包括m个隐藏节点h
21
、h
22
、h
23
、...、h
2m
,并且隐藏层hln可以包括m个隐藏节点h
n1
、h
n2
、h
n3
、...、h
nm
,其中m是自然数。
73.输出层ol可以包括j个输出节点y1、y2、...、yj,其中j是自然数。输出节点y1、y2、...、yj中的每一个可以对应于要归类的类中的相应一个。输出层ol可以生成针对每个类的与输入数据idat相关联的输出值(例如,类分数或数值输出,例如回归变量)和/或输出数据odat。在一些示例实施例中,输出层ol可以是全连接层,并且可以指示例如输入数据idat对应于汽车的概率。
74.图5a中所示的神经网络的结构可以由关于节点之间的分支(或连接)(示出为线)的信息和分配给每个分支的加权值(未示出)来表示。在一些神经网络模型中,一层内的节点可以不彼此连接,但是不同层的节点可以彼此完全或部分地连接。在一些其他神经网络模型(例如无限制玻尔兹曼机)中,除了(或备选地)其他层的一个或多个节点之外,一层内的至少一些节点也可以连接到一层内的其他节点。
75.每个节点(例如,节点h
11
)可以接收先前节点(例如,节点x1)的输出,可以对所接收的输出执行计算操作、运算或计算,并且可以输出计算操作、运算或计算的结果作为到后续节点(例如,节点h
21
)的输出。每个节点可以通过将输入应用于特定函数(例如,非线性函数)来计算要输出的值。
76.在一些示例实施例中,预先设置神经网络的结构,并且通过使用数据来适当地设置节点之间的连接的加权值,其中该数据属于哪个类的答案(有时被称为“标签”)已知。具
有已知答案的数据有时被称为“训练数据”,并且确定加权值的过程有时被称为“训练”。神经网络在训练过程期间“学习”将数据与对应的标签相关联。一组可独立训练的结构和加权值有时被称为“模型”,并且通过具有确定的加权值的模型来预测输入数据属于哪个类,然后输出预测值的过程有时被称为“测试”过程。
77.图5a中所示的通用神经网络可能不适合于处理输入图像数据(或输入声音数据),因为每个节点(例如,节点h
11
)连接到先前层的所有节点(例如,包括在层il中的节点x1、x2、...、xi),然后随着输入图像数据的大小增加,加权值的数量急剧增加。因此,已经研究了通过将滤波技术与通用神经网络组合而实现的cnn,使得通过cnn高效地训练二维图像(例如,输入图像数据)。
78.参考图5b,cnn可以包括多个层conv1、relu1、conv2、relu2、pool1、conv3、relu3、conv4、relu4、pool2、conv5、relu5、conv6、relu6、pool3和fc。这里,conv是卷积层,relu是修正线性单元,pool是池化层,并且fc是全连接层。
79.与通用神经网络不同,cnn的每个层可以具有宽度、高度和深度三个维度,因此输入到每个层的数据可以是具有宽度、高度和深度三个维度的体数据。例如,如果图5b中的输入图像具有32个宽度(例如,32个像素)和32个高度以及三个颜色通道r、g和b的大小,对应于输入图像的输入数据idat可以具有32
×
32
×
3的大小。图5b中的输入数据idat可以被称为输入体数据或输入激活体。
80.卷积层conv1、conv2、conv3、conv4、conv5和conv6中的每一个可以对输入体数据执行卷积运算。在图像处理中,卷积运算指示基于具有加权值的掩模处理图像数据的操作,并且通过将输入值乘以加权值并将总乘积结果相加来获得输出值。掩模可以被称为滤波器、窗或内核。
81.每个卷积层的参数可以包括一组可学习的滤波器。每个滤波器可以在空间上较小(沿宽度和高度),但可以延伸过输入体的整个深度。例如,在正向传导期间,每个滤波器可以在输入体的宽度和高度上滑动(例如,卷积),并且可以在任何位置处在滤波器和输入的条目之间计算点积。当滤波器在输入体的宽度和高度上滑动时,可以生成二维激活图,该二维激活图与在每个空间位置处的该滤波器的响应相对应。结果,可以通过沿深度维度堆叠这些激活图来生成输出体。例如,如果具有32
×
32
×
3大小的输入体数据通过具有四个有零填充的滤波器的卷积层conv1,则卷积层conv1的输出体数据可以具有32
×
32
×
12的大小(例如,体数据的深度增加)。
82.relu层relu1、relu2、relu3、relu4、relu5和relu6中的每一个可以执行修正线性单元(relu)运算,其对应于由例如函数f(x)=max(0,x)定义的激活函数(例如,对于所有负输入x,输出为零)。例如,如果具有32
×
32
×
12大小的输入体数据通过relu层relu1以执行修正线性单元运算,则relu层relu1的输出体数据可以具有32
×
32
×
12的大小(例如,保持体数据的大小)。
83.池化层pool1、pool2和pool3中的每一个可以沿着宽度和高度的空间维度对输入体数据执行下采样运算。例如,以2
×
2矩阵形式排列的四个输入值可以基于2
×
2滤波器被转换为一个输出值。例如,可以基于2
×
2最大池化来选择以2
×
2矩阵形式排列的四个输入值的最大值,或者可以基于2
×
2平均池化来获得以2
×
2矩阵形式排列的四个输入值的平均值。例如,如果具有32
×
32
×
12大小的输入体数据通过具有2
×
2滤波器的池化层pool1,则
池化层pool1的输出体数据可以具有16
×
16
×
12的大小(例如,体数据的宽度和高度减小,并且体数据的深度保持)。
84.通常,一个卷积层(例如,conv1)和一个relu层(例如,relu1)可以在cnn中形成conv/relu层对,conv/relu层对可以在cnn中重复排列,并且可以在cnn中周期性地插入池化层,从而减小图像的空间大小并提取图像特征。
85.输出层或全连接层fc可以输出针对每个类的输入体数据idat的结果(例如,类分数)。例如,当重复进行卷积运算和下采样运算时,可以将与二维图像相对应的输入体数据idat转换为一维矩阵或矢量。例如,全连接层fc可以指示输入体数据idat对应于汽车、卡车、飞机、船和马的概率。
86.包括在cnn中的层的类型和数量可以不限于参考图5b描述的示例,并且可以根据示例实施例改变。此外,尽管在图5b中未示出,但是cnn还可以包括其他层,例如softmax层和偏置添加层等,softmax层用于将对应于预测结果的分数值转换为概率值,偏置添加层用于添加至少一个偏置。
87.参考图5c,rnn可以包括使用图5c的左侧所示的特定节点或单元n的重复结构。
88.图5c的右侧所示的结构可以指示左侧所示的rnn的递归连接被展开(或铺开)。术语“展开”意味着网络被写出或示出为包括所有节点na、nb和nc的完整或整个序列。例如,如果感兴趣的序列是3个单词的句子,则rnn可以展开为3层神经网络,每个单词一层(例如,没有递归连接或没有循环)。
89.在图5c中的rnn中,x指示rnn的输入。例如,xt可以是在时间步骤t处的输入,并且x
t-1
和x
t+1
可以分别是在时间步骤t-1和t+1处的输入。
90.在图5c中的rnn中,s指示隐藏状态。例如,s
t
可以是在时间步骤t处的隐藏状态,并且s
t-1
和s
t+1
可以分别是在时间步骤t-1和t+1处的隐藏状态。可以基于先前的隐藏状态和在当前步骤处的输入来计算隐藏状态。例如,s
t
=f(ux
t
+ws
t-1
)。例如,函数f通常可以是诸如tanh或relu之类的非线性函数。计算第一隐藏状态所需的s-1
通常可以初始化为全零。
91.在图5c中的rnn中,o指示rnn的输出。例如,o
t
可以是在时间步骤t处的输出,并且o
t-1
和o
t+1
可以分别是在时间步骤t-1和t+1处的输出。例如,如果需要预测句子中的下一个单词,它将是跨词汇表的概率的矢量。例如,o
t
=softmax(vs
t
)。
92.在图5c中的rnn中,隐藏状态可以是网络的“记忆”。例如,rnn可以具有“记忆”,其可以捕获关于到目前为止已计算了什么的信息。隐藏状态s
t
可以捕获关于所有先前时间步骤中发生了什么的信息。输出o
t
可以仅基于在当前时间步骤t处的记忆来计算。此外,与在每一层处使用不同参数的传统神经网络不同,rnn可以跨所有时间步骤共享相同的参数(例如,图5c中的u、v和w)。这可以指示可以在每个步骤处仅以不同的输入来执行相同任务的事实。这可以大大减少需要训练或学习的参数总数。
93.参考图6,神经网络系统600可以包括用于执行和/或驱动神经网络模型的多个异构资源、以及用于管理和/或控制多个异构资源的资源管理器601。
94.多个异构资源可以包括中央处理单元(cpu)610、神经处理单元(npu)620、图形处理单元(gpu)630、数字信号处理器(dsp)640和图像信号处理器(isp)650,并且还可以包括专用硬件(dhw)660、存储器(mem)670、直接存储器访问单元(dma)680和连接690。cpu 610、npu 620、gpu 630、dsp 640、isp 650和专用硬件660可以被称为处理器、处理单元(pe)、计
算资源等。dma 680和连接690可以被称为通信资源。
95.cpu 610、npu 620、gpu 630、dsp 640、isp 650和专用硬件660可以执行诸如特定的计算和任务之类的各种计算功能,并且可以用于执行神经网络模型。例如,专用硬件660可以包括视觉处理单元(vpu)、视觉知识产权(vip)等。存储器670可以用作工作存储器或针对由多个异构资源处理的数据的数据存储,并且可以存储与神经网络模型相关联的数据。dma 680可以控制对存储器670的访问。例如,dma680可以包括存储器dma(mdma)、外围dma(pdma)、远程dma(rdma)、智能dma(sdma)等。连接690可以执行与内部元件和/或外部设备的有线/无线通信。例如,连接690可以包括支持诸如系统总线、外围组件互连(pci)、pci快速(pcie)等的内部通信的内部总线和/或可以支持诸如移动电信、通用串行总线(usb)、以太网、wifi、蓝牙、近场通信(nfc)、射频识别(rfid)等的外部通信。
96.尽管在图6中未示出,但是计算资源还可以包括微处理器、应用处理器(ap)、定制硬件、压缩硬件等,并且通信资源还可以包括能够复制存储器的资源等。
97.在一些示例实施例中,神经网络系统600可以包括在任何计算设备和/或移动设备中。
98.在一些示例实施例中,各种服务和/或应用(例如计算机视觉(例如,图像分类、图像检测、图像分割、图像跟踪等)服务、基于生物信息或生物计量数据的用户认证服务、高级驾驶员辅助系统(adas)服务、语音助理服务、自动语音识别(asr)服务等)中的至少一种可以由参考图5a、图5b和图5c描述的神经网络模型和参考图6描述的神经网络系统600来执行、实施和/或处理。
99.图7是示出了执行图1中的分析的示例的流程图。
100.参考图1和图7,当执行对第一神经网络模型是否适合于在第一目标设备上执行的分析(步骤s300)时,用于执行分析的多个适合性确定算法可以包括第一算法,第一算法用于确定与第一目标设备相关联的第一神经网络模型的结构和层的性能效率,并且可以基于第一算法对第一神经网络模型执行第一分析(步骤s310)。例如,步骤s310可以由图4中的分析模块300执行。
101.如参考图5a、图5b和图5c所描述的,第一神经网络模型可以包括具有各种特性的多个层,并且可以具有若干层被分组在一起的结构(或网络结构)。在第一神经网络模型的结构和层中,可能存在不适用或不适合于第一目标设备的操作的结构、层和/或元素。在步骤s310中,可以确定或检查第一神经网络模型的结构和层对于第一目标设备是否高效,并且可以在步骤s400中对确定的结果进行评分和可视化显示。
102.图8是示出了执行图7中的第一分析的示例的流程图。
103.参考图7和图8,当基于第一算法对第一神经网络模型执行第一分析(步骤s310)时,可以使用针对第一目标设备的预列出表(例如,图4中的预列出表310)来获得第一神经网络模型的结构和层的第一分数(步骤s312)。
104.例如,可以基于预列出表310来分析第一神经网络模型的结构和层对于第一目标设备是否高效(步骤s312a),并且可以基于步骤s312a的结果来获得第一分数(步骤s312b)。例如,在步骤s312a中使用的预列出表310可以是预定义了对于第一目标设备中的推理高效和/或低效的结构和层的表或列表。例如,预列出表310可以包括在模型信息(例如,图2中的模型信息mi)中,并且可以与模型信息mi一起接收。例如,步骤s312b中的评分可以基于效率
的顺序来执行,并且可以针对具有较高效率的结构或层给予较高的分数,并且可以针对具有较低效率的结构或层给予较低的分数。
105.此外,可以通过使用性能估计器(例如,图4中的性能估计器320)预测第一神经网络模型的结构和层的处理时间来获得第一神经网络模型的结构和层的第二分数(步骤s314)。
106.例如,可以使用性能估计器320分析第一神经网络模型的结构和层的性能(步骤s314a),并且可以基于步骤s314a的结果来获得第二分数(步骤s314b)。例如,在步骤s314a中使用的性能估计器320可以是用于估计神经网络模型的处理时间的工具,并且可以以软件和/或硬件的形式实现。例如,可以执行步骤s314b中的评分,使得降低性能的结构和/或层被表示,并且可以针对具有较高性能的结构或层给予较高的分数,并且可以针对具有较低性能的结构或层给予较低的分数。
107.此外,可以使用针对第一目标设备的经预训练的深度学习模型(例如,图4中的经预训练的深度学习模型330)来获得第一神经网络模型的结构和层的第三分数(步骤s316)。
108.例如,在步骤s316中使用的经预训练的深度学习模型330可以是取决于第一目标设备而使用不同组件训练的模型。例如,经预训练的深度学习模型330可以包括在模型信息mi中,并且可以与模型信息mi一起接收。例如,步骤s316中的评分可以基于经预训练的深度学习模型330的确定输出来执行。
109.换句话说,在步骤s312中,可以预定义对于第一目标设备中的推理高效和/或低效的模型的结构和/或层,可以使用预列出表310来检测低效层,并且可以提供定义的解决方案。在步骤s314中,可以使用用于估计处理时间的工具来模拟每个组件,并且可以对每个组件的性能进行预测和评分。在步骤s316中,可以通过记录通过在第一目标设备上执行具有各种结构和层的若干模型获得的性能来预训练深度学习模型,并且可以使用经预训练的深度学习模型来测量第一神经网络模型的每一个组件的性能和适合性。
110.尽管图8示出了步骤s312、s314和s316基本上同时执行,但是示例实施例不限于此,并且步骤s312、s314和s316可以顺序地或以任何给定顺序执行。
111.可以基于第一分数、第二分数和第三分数来获得第一神经网络模型的结构和层的性能分数(步骤s318)。例如,可以基于加权求和方案来获得性能分数,在加权求和方案中,第一分数、第二分数和第三分数以不同的权重相加。例如,可以针对每个目标设备不同地设置权重。例如,针对第一分数、第二分数和第三分数的第一权重、第二权重和第三权重可以包括在模型信息mi中,并且可以与模型信息mi一起接收。
112.在一些示例实施例中,可以针对第一神经网络模型的结构和层中的每一个获得第一分数、第二分数、第三分数和性能分数。
113.图9是示出了执行图1中的分析的示例的流程图。
114.参考图1和图9,当执行对第一神经网络模型是否适合于在第一目标设备上执行的分析(步骤s300)时,用于执行分析的多个适合性确定算法可以包括第二算法,第二算法用于分析第一神经网络模型的结构和层的复杂度和容量,并且可以基于第二算法对第一神经网络模型执行第二分析(步骤s320)。例如,步骤s320可以由图4中的分析模块300执行。
115.在步骤s320中,可以通过分析第一神经网络模型的结构和层的复杂度和容量来确定和引导优化点,并且可以在步骤s400中对确定的结果进行评分和可视化显示。
116.图10是示出了执行图9中的第二分析的示例的流程图。
117.参考图9和图10,当基于第二算法对第一神经网络模型执行第二分析(步骤s320)时,可以通过确定第一神经网络模型的结构和层的复杂度来获得第一神经网络模型的结构和层的第四分数(步骤s322)。
118.例如,可以通过使用复杂度确定单元(例如图4中的复杂度确定单元340)来分析第一神经网络模型的结构和层的复杂度(步骤s322a),并且可以基于步骤s322a的结果来获得第四分数(步骤s322b)。例如,步骤s322a中使用的复杂度确定单元340可以是用于确定神经网络模型的复杂度的工具,并且可以以软件和/或硬件的形式来实现。例如,可以基于针对第一目标设备的复杂度的阈值来执行步骤s322b中的评分,并且可以针对具有较高复杂度的结构或层给予较低的分数,并且可以针对具有较低复杂度的结构或层给予较高的分数。
119.在一些示例实施例中,用于通过复杂度确定单元340确定复杂度的标准可以包括神经网络模型中包括的参数、单元和层的数量。在一些示例实施例中,用于通过复杂度确定单元340确定复杂度的方案和/或算法可以包括复杂度评估函数,其在monica bianchini和franco scarselli的论文“on the complexity of neural network classifiers:a comparison between shallow and deep architectures”中被公开。然而,示例实施例不限于此,并且可以使用各种标准、方案和/或算法来确定和/或检查复杂度。
120.此外,可以通过测量第一神经网络模型的结构和层的容量来获得第一神经网络模型的结构和层的第五分数(步骤s324)。
121.例如,可以通过使用容量测量单元(例如图4中的容量测量单元350)来分析第一神经网络模型的结构和层的容量(步骤s324a),并且可以基于步骤s324a的结果来获得第五分数(步骤s324b)。例如,在步骤s324a中使用的容量测量单元350可以是用于测量神经网络模型的容量的工具,并且可以以软件和/或硬件的形式来实现。例如,可以取决于容量要求来执行步骤s324b中的评分,并且可以针对具有较大容量的结构或层给予较高的分数,并且可以针对具有较小容量的结构或层给予较低的分数。
122.在一些示例实施例中,用于通过容量测量单元350测量容量的方案和/或算法可以包括在aosen wang等人的论文“deep neural network capacity”中所公开的算法。然而,示例实施例不限于此,并且可以使用各种标准、方案和/或算法来测量容量。
123.换句话说,在步骤s322中,可以使用用于确定第一神经网络模型的复杂度的算法来测量第一神经网络模型在第一目标设备上执行的开销程度,并且可以通过测量取决于第一神经网络模型的复杂度的第一目标设备的性能来预测第一神经网络模型的开销。在步骤s324中,可以测量第一神经网络模型的容量,可以使用第一神经网络模型的容量来确定和引导优化点,并且随着第一神经网络模型的容量变大,可以更容易地优化第一神经网络模型。
124.尽管图10示出了步骤s322和s324基本上同时执行,但是示例实施例不限于此,并且步骤s322和s324可以顺序地或以任何给定顺序执行。
125.可以基于第四分数和第五分数来获得第一神经网络模型的结构和层的复杂度分数(步骤s326)。例如,可以基于加权求和方案来获得复杂度分数,在加权求和方案中,第四分数和第五分数以不同的权重相加。例如,可以针对每个目标设备不同地设置权重。例如,针对第四分数和第五分数的第四权重和第五权重可以包括在模型信息mi中,并且可以与模
型信息mi一起接收。
126.在一些示例实施例中,可以针对第一神经网络模型的结构和层中的每一个获得第四分数、第五分数和复杂度分数。
127.图11是示出了执行图1中的分析的示例的流程图。
128.参考图1和图11,当执行对第一神经网络模型是否适合于在第一目标设备上执行的分析(步骤s300)时,用于执行分析的多个适合性确定算法可以包括第三算法,第三算法用于确定与第一目标设备相关联的第一神经网络模型的结构和层的存储器效率,并且可以基于第三算法对第一神经网络模型执行第三分析(步骤s330)。例如,步骤s330可以由图4中的分析模块300来执行。
129.在步骤s330中,可以通过分析第一神经网络模型的结构和层的存储器占用来确定和引导取决于存储器利用率的优化点,并且可以在步骤s400中对确定的结果进行评分和可视化显示。
130.图12和图13是示出了执行图11中的第三分析的示例的流程图。
131.参考图11和图12,当基于第三算法对第一神经网络模型执行第三分析(步骤s330)时,可以加载第一目标设备的存储器限制(步骤s332),并且可以基于第一目标设备的存储器限制来获得第一神经网络模型的结构和层的存储器占用分数(步骤s334)。
132.例如,由于第一目标设备的特性,可以存在诸如sram、dram等的存储器的限制,因此第一目标设备的性能可以取决于存储器的限制(例如读/写操作)而变化。可以使用存储器估计器(例如,图4中的存储器估计器360)来预先计算取决于第一神经网络模型的结构和/或类型可能在每一个操作中发生的存储器使用、瓶颈点、存储器共享等,因此可以基于预期的性能来设计优化模型。例如,步骤s334中使用的存储器估计器360可以是用于分析神经网络模型的存储器占用的工具,并且可以以软件和/或硬件的形式来实现。
133.在一些示例实施例中,可以针对第一神经网络模型的结构和层中的每一个获得存储器占用分数。
134.参考图11和图13,当基于第三算法对第一神经网络模型执行第三分析(步骤s330)时,步骤s332和s334可以分别与图12中的步骤s332和s334基本相同或相似。
135.当第一神经网络模型在存储器限制内不可用(或不是可用的)(步骤s512:否)时,可以改变、修改或更新第一神经网络模型(步骤s514)。例如,第一神经网络模型可以取决于存储器使用、瓶颈点、存储器共享等而改变。步骤s512和s514可以与稍后将描述的图17中的步骤s500相对应。
136.当第一神经网络模型在存储器限制内可用(步骤s512:是)时,该过程可以终止而不改变第一神经网络模型。
137.图14是示出了执行图1中的分析的示例的流程图。
138.参考图1和图14,当执行对第一神经网络模型是否适合于在第一目标没备上执行的分析(步骤s300)时,步骤s310可以与参考图7和图8描述的步骤s310基本相同或相似,步骤s320可以与参考图9和图10描述的步骤s320基本相同或相似,并且步骤s330可以与参考图11、图12和图13描述的步骤s330基本相同或相似。
139.可以基于在步骤s310中获得的性能分数、在步骤s320中获得的复杂度分数以及在步骤s330中获得的存储器占用分数来获得第一神经网络模型的总分数(步骤s340)。例如,
可以基于加权求和方案来获得总分数,在加权求和方案中,性能分数、复杂度分数和存储器占用分数以不同的权重相加。例如,可以针对每个目标设备不同地设置权重。例如,针对性能分数、复杂度分数和存储器占用分数的权重可以包括在模型信息mi中,并且可以与模型信息mi一起接收。
140.图15是示出了图1的优化神经网络模型的方法的示例的流程图。将省略与图1重复的描述。
141.参考图15,在根据示例实施例的优化神经网络模型的方法中,提供了用于优化神经网络模型的gui(步骤s1100)。稍后将描述gui的详细配置。
142.通过gui接收第一神经网络模型的第一模型信息(步骤s100a)。通过gui接收用于执行或驱动第一神经网络模型的第一目标设备的设备信息(步骤s200a)。基于第一模型信息、设备信息以及多个适合性确定算法中的至少一个,执行对第一神经网络模型是否适合于在第一目标设备上执行或驱动的分析(步骤s300)。在gui上显示分析的结果,使得第一模型信息和分析的结果显示在屏幕上(步骤s400a)。步骤s100a、s200a和s400a可以分别与图1中的步骤s100、s200和s400相似,并且步骤s300可以与图1中的步骤s300基本相同或相似。例如,步骤s300和s400a可以由图4中的分析模块300和gui控制模块200来执行。
143.图16a、图16b、图16c、图16d、图16e和图16f是用于描述图15的操作的图。
144.参考图15和图16a,在步骤s400a中,可以在初始操作时间处在gui上显示包括第一神经网络模型的结构和层的图形表示gr11。例如,图形表示gr11可以包括在第一神经网络模型的输入和输出之间的多个层layer1、layer2、layer3、layer4、layer5和layer6的网络结构。例如,图形表示gr11可以包括多个层框(例如,矩形)和多个箭头,其中每个层框对应于多个层中的相应一个,每个箭头指示层之间的连接。
145.参考图15、图16b、图16c、图16d、图16e和图16f,在步骤s400a中,可以在gui上显示图形表示gr12、gr13、gr14、gr15和gr16,每个图形表示包括第一神经网络模型的结构和层以及分析的结果。例如,可以基于对图形表示gr12、gr13、gr14、gr15和gr16中包括的菜单110中包括的按钮112、114、116和118中的一个的选择来显示分析的结果。
146.图16b、图16c、图16d和图16e示出了基于分数显示分析的结果的示例。在图16b的示例中,可以选择与性能分数相对应的按钮114,并且可以在gui上显示图形表示gr12,图形表示gr12包括多个层layer1至layer6和通过步骤s310获得的作为第一分析的结果的多个性能分数svp1、svp2、svp3、svp4、svp5和svp6。在图16c的示例中,可以选择与复杂度分数相对应的按钮116,并且可以在gui上显示图形表示gr13,图形表示gr13包括多个层layer1至layer6和通过步骤s320获得的作为第二分析的结果的多个复杂度分数svc1、svc2、svc3、svc4、svc5和svc6。在图16d的示例中,可以选择与存储器占用分数相对应的按钮118,并且可以在gui上显示图形表示gr14,图形表示gr14包括多个层layer1至layer6和通过步骤s330获得的作为第三分析的结果的多个存储器占用分数svm1、svm2、svm3、svm4、svm5和svm6。在图16e的示例中,可以选择与基于性能分数、复杂度分数和存储器占用分数的总分数相对应的按钮112,并且可以在gui上显示图形表示gr15,图形表示gr15包括多个层layer1至layer6和通过步骤s340获得的多个总分数svt1、svt2、svt3、svt4、svt5和svt6。
147.在一些示例性实施例中,图16b、图16c、图16d和图16e的图形表示gr12、gr13、gr14和gr15可以是彼此可切换的。
148.图16f示出了基于颜色来显示分析的结果的示例。与图16e的示例一样,在图16f的示例中可以选择与总分数相对应的按钮112,并且可以在gui上显示图形表示gr16,图形表示gr16包括多个层layer1至layer6和一些彩色层框。为了便于说明,在图16f中通过阴影线来指示颜色,并且具有较高阴影线密度的层框可以对应于具有较深颜色的层框。例如,彩色层layer2至layer4可以对应于具有相对低的总分数的层,具有较深颜色的层框可以对应于具有较低总分数的层,因此与层layer3相对应的总分数svt3可以是最低的总分数。这仅仅是示例,并且可以使用较深的颜色来指示具有较高总分数的层。尽管未详细示出,但是当选择按钮112、114和116中的一个时,也可以基于颜色来显示分析的结果,与图16f的示例一样。
149.然而,示例实施例不限于此,并且可以使用不同的形状等来实现图形表示,只要图形表示可以以视觉上可与其他层区分的方式来指示具有较低分数的层。
150.在一些示例实施例中,可以通过使用包括在神经网络模型处理系统1000中的输入设备1310(例如鼠标或触摸屏)接收用户输入来选择按钮112、114、116和118中的一个。
151.图17是示出了根据示例实施例的优化神经网络模型的方法的流程图。将省略与图1重复的描述。
152.参考图17,在根据示例实施例的优化神经网络模型的方法中,步骤s100、s200、s300和s400可以分别与图1中的步骤s100、s200、s300和s400基本相同或相似。
153.基于分析的结果来改变或修改第一神经网络模型的层中的至少一个(步骤s500)。例如,与步骤s400一样,可以在步骤s500中可视化并输出模型改变的结果,并且可以使用gui来执行s500。例如,步骤s500可以由图4中的更新模块400来执行。
154.图18是示出了图17中的改变第一神经网络模型的层中的至少一个的示例的流程图。
155.参考图17和图18,当基于分析的结果来改变第一神经网络模型的层中的至少一个时(步骤s500),可以从第一神经网络模型的层中选择具有最低分数的第一层(步骤s522)。可以推荐能够替换第一层并且分数高于第一层的至少一个第二层(步骤s524)。可以基于至少一个第二层来改变第一层(步骤s526)。例如,可以基于用户输入(例如,图4中的用户输入ui)来执行步骤s522和s526。例如,可以将第一层改变为第二层。
156.图19是示出了图17的优化神经网络模型的方法的示例的流程图。将省略与图15和图17重复的描述。
157.参考图19,在根据示例实施例的优化神经网络模型的方法中,步骤s1100、s100a、s200a、s300和s400a可以分别与图15中的步骤s1100、s100a、s200a、s300和s400a基本相同或相似。
158.可以在gui上显示模型改变的过程和结果,使得第一模型信息以及模型改变的过程和结果显示在屏幕上(步骤s500a)。步骤s500a可以与图17中的步骤s500相似。例如,步骤s500a可以由图4中的更新模块400和gui控制模块200来执行。
159.图20a、图20b、图20c和图20d是用于描述图19的操作的图。将省略与图16a、图16b、图16c、图16d、图16e和图16f重复的描述。
160.参考图16e、图16f、图19和图20a,在步骤s500a中,可以从多个层layer1到layer6中选择具有最低总分数svt3的层layer3,因此可以在gui上显示包括层layer3的信息(在菜
单120上)的图形表示gr21。例如,层layer3的输入数据的大小可以是(1,64,512,512),层layer3的输出数据的大小可以是(1,137,85,85),并且层layer3可以基于在菜单120上显示的配置来实现。
161.参考图19和图20b,在步骤s500a中,可以在gui上显示图形表示gr22,图形表示gr22包括能够替换第一层layer3的推荐层layer31、layer32和layer33的信息。例如,第一推荐层layer31可以用单个层并且基于菜单122上显示的配置来实现。例如,第二推荐层layer32和layer33可以用两个层并基于菜单122上显示的配置来实现。例如,当将第一层layer3改变为第一推荐层layer31时,改变前的模型与改变后的模型之间的相似度可以更高。例如,当将第一层layer3改变为第二推荐层layer32和layer33时,性能可以被更大的改进。
162.参考图19和图20c,在步骤s500a中,可以选择第一推荐层layer31以将层layer3改变为第一推荐层layer31,并且可以在gui上显示图形表示gr23,图形表示gr23包括选择第一推荐层layer31的操作的图形表示。
163.参考图19和图20d,在步骤s500a中,在将层layer3改变为第一推荐层layer31之后,可以在gui上显示图形表示gr24,图形表示gr24包括改变的模型的多个层layer1、layer2、layer31、layer4、layer5和layer6以及改变的模型的多个总分数svt1、svt2、svt31、svt4、svt5和svt6。例如,改变的层layer31的总分数svt31可以高于改变前的层layer3的总分数svt3。
164.在一些示例实施例中,可以通过经由包括在神经网络模型处理系统1000中的输入设备1310(例如鼠标或触摸屏)接收用户输入来在图20a和图20c中选择层和对应的层框。
165.如上所述,可以基于适合性确定算法使用可视界面来改变或修改神经网络模型,并且可以通过重复这样的修改过程来设计针对目标设备优化的神经网络模型。可以提出从简单的修改到新的备选结构,并且可以提供自动优化功能和基于用户输入条件的条件优化功能二者。
166.图21是示出了根据示例实施例的优化神经网络模型的方法的流程图。将省略与图1重复的描述。
167.参考图21,在根据示例实施例的优化神经网络模型的方法中,步骤s100、s200、s300和s400可以分别与图1中的步骤s100、s200、s300和s400基本相同或相似。
168.将不同量化方案应用于第一神经网络模型的层中的至少一些(步骤s600)。例如,与步骤s400一样,可以在步骤s600中可视化并输出量化方案改变的结果,并且可以使用gui来执行s600。例如,步骤s600可以由图4中的量化模块500来执行。
169.图22是示出了图21中的将不同量化方案应用于第一神经网络模型的层中的至少一些的示例的流程图。
170.参考图21和图22,当将不同量化方案应用于第一神经网络模型的层中的至少一些时(步骤s600),可以接收第一神经网络模型的第二模型信息(步骤s610)。第二模型信息可以在对第一神经网络模型的训练完成之后获得。可以基于第二模型信息从第一神经网络模型的层中选择要改变其量化方案的第三层(步骤s620)。可以改变所选择的第三层的量化方案(步骤s630)。例如,可以基于用户输入(例如,图4中的用户输入ui)来执行步骤s620和s630。
171.与步骤s100、s200、s300和s400不同,步骤s600可以在对第一神经网络模型的训练完成之后执行。例如,可以通过改变第一模型信息的至少一部分来获得第二模型信息。例如,尽管未详细示出,但是可以在图21中的步骤s400和s600之间执行图17中的步骤s500,以获得第二模型信息。
172.量化是对神经网络模型的一种压缩。对神经网络模型的压缩(或压缩操作)指示用于在尽可能保持预训练的神经网络模型的性能和/或准确性的同时减少神经网络模型的大小和计算量的过程。量化(或量化操作)指示用于通过将通常以浮点表示的权重减小到特定比特数来减小实际存储神经网络模型的大小的技术。
173.图23是示出了图21的优化神经网络模型的方法的示例的流程图。将省略与图15和图21重复的描述。
174.参考图23,在根据示例实施例的优化神经网络模型的方法中,步骤s1100、s100a、s200a、s300和s400a可以分别与图15中的步骤s1100、s100a、s200a、s300和s400a基本相同或相似。
175.可以在gui上显示量化方案改变的过程和结果,使得第二模型信息以及量化方案改变的过程和结果显示在屏幕上(步骤s600a)。步骤s600a可以与图21中的步骤s600相似。例如,步骤s600a可以由图4中的量化模块500和gui控制模块200来执行。
176.图24a、图24b和图24c是用于描述图23的操作的图。将省略与图16a、图16b、图16c、图16d、图16e、图16f、图20a、图20b、图20c和图20d重复的描述。
177.参考图23和图24a,在步骤s600a中,可以选择与包括在菜单130中的量化性能相对应的按钮132,并且可以在gui上显示图形表示gr31,图形表示gr31包括多个层layer1、layer2、layer31、layer4、layer5和layer6以及多个量化性能qp1、qp2、qp3、qp4、qp5和qp6。
178.参考图23和图24b,在步骤s600a中,可以选择与包括在菜单130中的量化方案的改变相对应的按钮134,可以选择要改变其量化方案的层layer31,可以将层layer31的量化方案从第一量化方案qs1改变为第二量化方案qs2,并且可以在gui上显示图形表示gr32,图形表示gr32包括与选择层layer31和改变层layer31的量化方案的操作相对应的图形表示。层layer31可以基于第二量化方案qs2来重新量化,并且应用于层layer31的量化方案可以不同于应用于其他层的量化方案。
179.参照图23和图24c,在步骤s600a中,可以选择包括在菜单130中的按钮132,并且可以在gui上显示图形表示gr33,图形表示gr33包括多个层layer1、layer2、layer31、layer4、layer5和layer6以及多个量化性能qp1、qp2、qp31、qp4、qp5和qp6。例如,基于第二量化方案qs2的层layer31的量化性能qp31可以高于基于第一量化方案qs1的层layer31的量化性能qp3。
180.如上所述,可以检查应用于每个组件的量化方案的准确性,并且可以通过取决于分布恢复程度的损失率对组件应用不同的量化方案来改进准确性。例如,可以通过比较浮点模型的层和特征图的量化准确性来提供取决于损失程度提供针对每个层和特征图的合适的量化方案的算法。通过对每个组件应用不同的量化方案并立即检查结果,可以获得优化的量化性能。用户可以任意设置针对一个或多个组件的目标最小/最大范围,可以设置量化分布模式,并且可以通过不同地应用非对称方案、对称方案等和/或通过应用不同的比特宽度来执行重新量化。
181.图25是示出了根据示例实施例的执行优化神经网络模型的方法的系统的框图。
182.参考图25,系统3000可以包括用户设备3100、云计算环境3200和网络3300。用户设备3100可以包括神经网络模型(nnm)优化引擎前端3110。云计算环境3200可以包括云存储3210、数据库3220、nnm优化引擎后端3230、云nnm引擎3240和库存后端3250。根据示例实施例的优化神经网络模型的方法可以在云环境上实现,并且可以由nnm优化引擎前端3110和/或nnm优化引擎后端3230执行。
183.本发明构思可以应用于包括深度学习、ann和/或机器学习系统的各种电子设备和系统。例如,本发明构思可以应用于诸如以下各项的系统:个人计算机(pc)、服务器计算机、数据中心、工作站、移动电话、智能电话、平板计算机、膝上型计算机,个人数字助理(pda)、便携式多媒体播放器(pmp)、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航设备、可穿戴设备、物联网(iot)设备、万物联网(ioe)设备、电子书阅读器、虚拟现实(vr)设备、增强现实(ar)设备、机器人设备、无人机等。
184.在根据示例实施例的优化神经网络模型的方法和神经网络模型处理系统中,可以高效地实现最适用或最适合于目标设备的神经网络模型。例如,在对神经网络模型执行训练之前,可以设计针对目标设备优化的神经网络模型。在对神经网络模型完成训练之后,可以检查和/或确定神经网络模型是否适合于目标设备,并且如果需要,可以修改神经网络模型和/或可以建议更合适的新配置。此外,通过将合适的量化方案应用于神经网络模型的每个组件,可以获得优化的性能。此外,可以提供用于这种操作的gui。因此,用户可以高效地将神经网络模型设计和修改为针对目标设备是最优化的,并且可以应用合适的量化方案。
185.根据示例实施例,由附图中的框表示的组件、元件、模块或单元(在本段中统称为“组件”)中的至少一个可以被体现为执行上述各个功能的各种数量的硬件、软件和/或固件结构。根据示例实施例,这些组件中的至少一个可以使用直接电路结构,诸如存储器、处理器、逻辑电路、查找表等,其可以通过一个或多个微处理器或其他控制装置的控制来执行各个功能。此外,这些组件中的至少一个可以由包含用于执行特定逻辑功能的一个或多个可执行指令并由一个或多个微处理器或其他控制装置执行的模块、程序或一部分代码具体实现。此外,这些组件中的至少一个可以包括执行各个功能的诸如中央处理单元(cpu)之类的处理器、微处理器等,或者由其实现。这些组件中的两个或更多个可以组合成执行所组合的两个或更多个组件的所有操作或功能的一个单个组件。此外,这些组件中的至少一个的至少部分功能可以由这些组件中的另一个执行。上述示例性实施例的功能方面可以在一个或多个处理器上执行的算法中实现。此外,由框表示的组件或者处理步骤可以将任意数量的相关技术用于电子配置、信号处理和/或控制、数据处理等。
186.前述内容是对示例实施例的说明,而不应被解释为对其的限制。尽管已经描述了一些示例实施例,然而本领域技术人员将容易理解,在不实质上脱离示例实施例的新颖教导和优点的前提下,可以在示例实施例中进行多种修改。因此,所有这种修改旨在被包括在如在权利要求中限定的示例实施例的范围内。因此,应理解,前述内容是对各种示例实施例的说明,而不应被解释成限制于所公开的具体示例实施例,并且对所公开的示例实施例的修改以及其他示例实施例旨在被包括在所附权利要求及其等同物的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1