CN115220833A - 优化神经网络模型的方法和提供图形用户界面的方法 - Google Patents
优化神经网络模型的方法和提供图形用户界面的方法 Download PDFInfo
- Publication number
- CN115220833A CN115220833A CN202210387382.2A CN202210387382A CN115220833A CN 115220833 A CN115220833 A CN 115220833A CN 202210387382 A CN202210387382 A CN 202210387382A CN 115220833 A CN115220833 A CN 115220833A
- Authority
- CN
- China
- Prior art keywords
- compression
- layers
- neural network
- layer
- network model
- 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.)
- Pending
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 226
- 238000000034 method Methods 0.000 title claims abstract description 108
- 230000006835 compression Effects 0.000 claims abstract description 220
- 238000007906 compression Methods 0.000 claims abstract description 220
- 238000012545 processing Methods 0.000 claims description 39
- 230000008859 change Effects 0.000 claims description 19
- 238000013139 quantization Methods 0.000 claims description 4
- 230000001537 neural effect Effects 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 description 30
- 230000000875 corresponding effect Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 17
- 230000015654 memory Effects 0.000 description 17
- 238000011156 evaluation Methods 0.000 description 12
- 238000013527 convolutional neural network Methods 0.000 description 11
- 238000005457 optimization Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 210000002569 neuron Anatomy 0.000 description 6
- 238000011176 pooling Methods 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 210000003850 cellular structure Anatomy 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- 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
-
- 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/047—Probabilistic or stochastic networks
-
- 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/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Human Computer Interaction (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种优化神经网络模型的方法,包括:接收关于预训练的第一神经网络模型的原始模型信息;通过对第一神经网络模型执行压缩,生成第二神经网络模型和关于第二神经网络模型的压缩模型信息;并且在屏幕上输出原始模型信息的至少一部分和压缩模型信息的至少一部分。
Description
相关申请的交叉引用
本申请要求向韩国知识产权局(KIPO)于2021年4月19日递交的韩国专利申请No.10-2021-0050659和于2021年6月28日递交的韩国专利申请No.10-2021-0083716的优先权,其全部内容通过引用合并于此。
技术领域
示例实施例总体上涉及机器学习技术,并且更具体地涉及优化神经网络模型的方法、以及执行优化神经网络模型的方法的神经网络模型处理系统。
背景技术
存在多种基于机器学习的数据分类方法。其中一个示例是使用神经网络或人工神经网络(ANN)对数据执行分类的方法。ANN是通过工程设计人脑的细胞结构模型获得的,该模型执行有效识别模式的过程。人工神经网络是指基于软件或硬件的计算模型,其被设计为通过应用许多通过连接线互连的人工神经元来模仿生物计算能力。人脑由作为神经基本单位的神经元组成,并根据这些神经元之间不同类型的密集连接对信息执行加密或解密。人工神经网络中的人工神经元是通过简化生物神经元功能获得的。ANN通过将具有连接强度的人工神经元互连来执行认知或学习过程。
最近,已经研究了深度学习过程和服务以克服人工神经网络的局限性,并且随着深度学习过程和服务的开发,研究人员正在进行分析、优化和改进神经网络模型的各种研究项目。例如,进行了各种尝试来提供接口,以通过向用户提供模型信息来提高准确性或缩短执行时间。
发明内容
本公开的至少一个示例实施例提供了一种有效地优化预训练的或已经完成训练的神经网络模型的方法。
本公开的至少一个示例实施例提供了一种神经网络模型处理系统,其执行优化预训练的或已完成训练的神经网络模型的方法。
本公开的至少一个示例实施例提供了一种提供与神经网络模型相关联的图形用户界面(GUI)的方法,以及一种执行GUI提供方法的电子系统。
根据示例实施例的方面,提供了一种优化神经网络模型的方法,该方法包括:接收关于预训练的第一神经网络模型的原始模型信息;通过对第一神经网络模型执行压缩,生成第二神经网络模型和关于第二神经网络模型的压缩模型信息;并且在屏幕上输出原始模型信息的至少一部分和压缩模型信息的至少一部分。
根据示例实施例的方面,提供了一种基于计算机的神经网络模型处理系统,包括:输入设备,被配置为接收关于预训练的第一神经网络模型的原始模型信息;存储设备,被配置为存储程序代码;处理器,被配置为执行程序代码,以通过对第一神经网络模型执行压缩来生成第二神经网络模型和关于第二神经网络模型的压缩模型信息;以及输出设备,被配置为在处理器的控制下,在屏幕上输出原始模型信息的至少一部分和压缩模型信息的至少一部分。
根据示例实施例的方面,提供了一种优化神经网络模型的方法,该方法包括:接收关于预训练的并且包括多个原始层的第一神经网络模型的原始模型信息;通过对第一神经网络模型执行压缩来生成第二神经网络模型和关于第二神经网络模型的压缩模型信息,第二神经网络模型包括多个压缩层;在图形用户界面(GUI)上显示第一图形表示,第一图形表示包括多个压缩层的网络结构;通过GUI接收关于多个压缩层中的第一压缩层的第一用户输入;基于第一用户输入在GUI上显示第二图形表示,第二图形表示包括多个原始层中的第一原始层的特征与第一压缩层的特征的比较,第一原始层与第一压缩层相对应;通过GUI接收用于改变多个压缩层中的第二压缩层的设置的第二用户输入;基于第二用户输入更新第二压缩层的特征;基于第二用户输入在GUI上显示第三图形表示,第三图形表示包括多个原始层中的第二原始层的特征与第二压缩层的更新的特征的比较,第二原始层与第二压缩层相对应;针对多个压缩层生成多个分数值;在GUI上显示第四图形表示,第四图形表示包括基于多个分数值根据不同的方案显示的所述多个压缩层;以及在GUI上显示第五图形表示,第五图形表示包括所述多个压缩层,其中的至少一个压缩层是可基于多个分数值而改变的。
根据示例实施例的方面,提供了一种提供与优化神经网络模型有关的图形用户界面(GUI)的方法,该方法包括:接收关于预训练的第一神经网络模型的第一模型信息;通过对第一神经网络模型执行数据处理,生成第二神经网络模型和关于第二神经网络模型的第二模型信息;提供显示图形表示的图形用户界面(GUI),该图形表示包括彼此比较的第一模型信息的至少一部分和第二模型信息的至少一部分。
根据示例实施例的方面,提供了一种基于计算机的电子系统,包括:输入设备,被配置为接收关于预训练的第一神经网络模型的第一模型信息;存储设备,被配置为存储程序代码;处理器,被配置为执行程序代码,以通过对第一神经网络模型执行数据处理来生成第二神经网络模型和关于第二神经网络模型的第二模型信息;以及输出设备,被配置为在处理器的控制下提供图形用户界面(GUI),该GUI显示包括彼此比较的第一模型信息的至少一部分和第二模型信息的至少一部分的图形表示。
附图说明
根据结合附图的以下详细描述,将更清楚地理解说明性的而非限制性的示例实施例。
图1是示出根据示例实施例的优化神经网络模型的方法的流程图。
图2、图3和图4是示出根据示例实施例的神经网络模型处理系统的框图。
图5A、图5B、图5C和图6是用于描述神经网络模型的示例的图,神经网络模型是根据示例实施例的优化神经网络模型的方法的目标。
图7是示出图1的优化神经网络模型的方法的示例的流程图。
图8是示出图7中显示压缩结果的示例的流程图。
图9A和图9B是用于描述图8的操作示例的图。
图10是示出图7中显示压缩结果的示例的流程图。
图11A、图11B和图11C是用于描述图10的操作示例的图。
图12是示出图7中显示压缩结果的示例的流程图。
图13是描述图12的操作示例的图。
图14是示出图7中显示压缩结果的示例的流程图。
图15A、图15B、图15C和图15D是用于描述图10的操作示例的图。
图16是示出图7中显示压缩结果的示例的流程图。
图17是描述图16的操作示例的图。
图18是示出图7中显示压缩结果的示例的流程图。
图19A、图19B和图19C是用于描述图18的操作示例的图。
图20是示出根据示例实施例的优化神经网络模型的方法的流程图。
图21是示出优化图20的神经网络模型的方法的示例的流程图。
图22是示出图21中显示设置改变结果的示例的流程图。
图23A、图23B和图23C是用于描述图22的操作示例的图。
图24是示出根据示例实施例的优化神经网络模型的方法的流程图。
图25是示出图24的优化神经网络模型的方法的示例的流程图。
图26是示出图25中显示评分结果的示例的流程图。
图27A和图27B是用于描述图26的操作示例的图。
图28是示出图25中显示评分结果的示例的流程图。
图29A和图29B是用于描述图28的操作示例的图。
图30是示出根据示例实施例的执行神经网络模型优化方法的系统的框图。
具体实施方式
将参考附图更全面地描述各种示例实施例,在附图中示出了实施例。然而,本公开可以按多种不同形式来实现,并且不应当被解释为受到本文阐述的实施例的限制。在本申请中,类似的附图标记表示类似的元件。
图1是示出根据示例实施例的优化神经网络模型的方法的流程图。
参照图1,根据示例实施例的优化神经网络模型的方法由基于计算机的神经网络模型处理系统执行和/或实施,其中至少一些组件用硬件和/或软件实现。将参考图2、图3和图4描述神经网络模型处理系统的详细配置。将参考图5A、图5B、图5C和图6描述神经网络模型和执行该神经网络模型的神经网络系统的详细配置。
在根据示例实施例的优化神经网络模型的方法中,接收第一神经网络模型的原始模型信息(或第一模型信息)(步骤S100)。第一神经网络模型是预训练的或者已经完成训练的神经网络模型,可以称为原始神经网络模型。通过对第一神经网络模型执行压缩来生成第二神经网络模型和第二神经网络模型的压缩模型信息(或第二模型信息)(步骤S200)。第二神经网络模型是通过对第一神经网络模型的至少一部分进行修改而生成的,并且可以称为压缩神经网络模型。然而,示例实施例不限于此,并且可以通过对第一神经网络模型执行包括压缩在内的各种数据处理中的至少一种来生成第二神经网络模型和第二模型信息。
对神经网络模型的训练(或训练操作)表示在给定要解决的任务和任务的函数集合时以优化的方式解决该任务的过程,并且表示用于改进或增强神经网络模型的性能和/或准确性的过程。例如,对神经网络模型的训练可以包括确定神经网络模型的网络结构的操作、确定神经网络模型中使用的例如权重等参数的操作等。另外,在神经网络模型的训练过程中,在保持架构和数据类型的同时,除了架构和数据类型之外的参数可以改变。
相反,对神经网络模型的压缩(或压缩操作)表示用于在尽可能保持预训练的神经网络模型的性能和/或准确性的同时减小神经网络模型的大小和计算量的过程。为了提高神经网络模型的性能和/或准确性,神经网络模型中的层和参数的数量可能会增加,神经网络模型的大小和计算量可能会增加,并且在计算、存储和功率有限的环境(例如移动和嵌入式系统)中应用或使用神经网络模型可能会受到限制。因此,为了解决这些限制并降低神经网络模型的复杂度,可以对预训练的神经网络模型执行压缩。在神经网络模型的压缩过程中,包括架构和数据类型在内的所有参数都可以改变。
在一些示例实施例中,用于神经网络模型的压缩技术可以包括量化、修剪、矩阵分解等。量化可以表示通过将通常以浮点表示的权重缩减到特定位数来减小实际存储神经网络模型的大小的技术。修剪可以表示通过断开节点和权重之间的连接来减小神经网络模型的大小的技术,其中权重是在训练的权重之中由于对神经网络模型的性能的重要性低而被确定为相对不必要的权重。矩阵分解可以表示通过将具有两个或更多个维度的每一层的一个权重矩阵分解成两个或更多个矩阵来减少权重的数量和计算量的技术。例如,矩阵分解可以包括使用奇异值分解(SVD)将二维矩阵分解为两个矩阵的低秩近似、将三维或更高维度矩阵分解为多个rank-1张量的线性组合的规范多元(CP)分解等。
将压缩结果可视化并输出,使得原始模型信息的至少一部分和压缩模型信息的至少一部分显示在一个屏幕上(步骤S300)。例如,可以使用图形用户界面(GUI)来执行步骤S300。例如,可以在GUI上显示图形表示,该图形表示包括第一模型信息的至少一部分和第二模型信息的至少一部分的比较。将参考图9A、图9B、图11A、图11B、图11C、图13、图15A、图15B、图15C、图15D、图17、图19A、图19B、图19C、图23A、图23B、图23C、图27A、图27B、图29A和图29B描述GUI。
在根据示例实施例的优化神经网络模型的方法中,可以通过对预训练的神经网络模型执行压缩,而不是通过对神经网络模型进行训练,来优化神经网络模型。此外,可以视觉上显示压缩的结果,可以在一个屏幕上比较并显示压缩之前和之后的特征,并且可以提供用于这种显示的GUI。因此,可以提供用于优化神经网络模型的各种数据,可以视觉上提供粒度单位的信息,并且用户可以对预训练的神经网络模型进行精细调节或调谐。
图2、图3和图4是示出根据示例实施例的神经网络模型处理系统的框图。
参照图2,神经网络模型处理系统1000是基于计算机的神经网络模型处理系统,包括处理器1100、存储设备1200和输入/输出(I/O)设备1300。I/O设备1300包括输入设备1310和输出设备1320。
处理器1100可以用于执行根据示例实施例的优化神经网络模型的方法。例如,处理器1100可以包括微处理器、应用处理器(AP)、数字信号处理器(DSP)、图形处理单元(GPU)等。尽管图2中仅示出了一个处理器1100,但是示例实施例不限于此。例如,神经网络模型处理系统1000中可以包括多个处理器。另外,处理器1100可以包括高速缓冲存储器以增加计算容量。
存储设备1200可以存储和/或包括用于根据示例实施例的优化神经网络模型的方法的程序(PR)1210。存储设备1200还可以存储和/或包括用于执行根据示例实施例的优化神经网络模型的方法的压缩规则(CR)1220和评估规则(ER)1230。程序1210、压缩规则1220和评估规则1230可以从存储设备1200提供给处理器1100。
在一些示例实施例中,存储设备1200可以包括用于向计算机提供指令和/或数据的各种非暂时性计算机可读存储介质中的至少一种。例如,非暂时性计算机可读存储介质可以包括易失性存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等,和/或非易失性存储器,诸如闪存、磁阻随机存取存储器(MRAM)、相变随机存取存储器(PRAM)、电阻随机存取存储器(RRAM)等。非暂时性计算机可读存储介质可以插入计算机中,也可以集成在计算机中,或者可以通过网络和/或无线链路等通信介质与计算机连接。
输入设备1310可以用于针对根据示例实施例的优化神经网络模型的方法来接收输入。例如,输入设备1310可以包括用于接收用户输入UI的各种输入装置中的至少一种,诸如键盘、小键盘、触摸板、触摸屏、鼠标、遥控器等。
输出设备1320可以用于针对根据示例实施例的优化神经网络模型的方法来提供输出。例如,输出设备1320可以包括用于输出图形表示GR的输出装置,诸如显示设备,并且还可以包括各种输出装置中的至少一种,诸如扬声器、打印机等。
神经网络模型处理系统1000可以执行参考图1描述的根据示例实施例的优化神经网络模型的方法。例如,输入设备1310可以接收预训练的第一神经网络模型的原始模型信息。存储设备1200可以存储程序例程的信息,并且程序例程可以被配置为通过对第一神经网络模型执行压缩来生成第二神经网络模型和第二神经网络模型的压缩模型信息,并且生成压缩结果,使得原始模型信息的至少一部分和压缩模型信息的至少一部分显示在一个屏幕上。输出设备1320可以可视化并输出压缩结果处理器1100可以连接到输入设备1310、存储设备1200和输出设备1320,并且可以控制程序例程的执行。此外,神经网络模型处理系统1000可以执行根据示例实施例的优化神经网络模型的方法,这将参考图20和图24执行描述。
参照图3,神经网络模型处理系统2000包括处理器2100、I/O设备2200、网络接口2300、随机存取存储器(RAM)2400、只读存储器(ROM)2500和存储设备2600。
在一些示例实施例中,神经网络模型处理系统2000可以是计算系统。例如,计算系统可以是诸如台式计算机、工作站或服务器的固定计算系统,或者可以是诸如笔记本电脑的便携式计算系统。
处理器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或ROM 2500中存储的指令。如图3所示,RAM2400可以存储用于根据示例实施例的优化神经网络模型的方法的程序PR或者程序PR的至少一些元素,并且程序PR可以允许处理器2100执行优化神经网络模型的操作。
换言之,程序PR可以包括处理器2100可执行的多个指令和/或过程,并且程序PR中包括的多个指令和/或过程可以允许处理器2100执行根据示例实施例的优化神经网络模型的方法。每一个过程可以指示用于执行特定任务的一系列指令。过程可以被称为函数、例程、子例程或子程序。每一个过程可以处理从外部提供的数据和/或由其他过程生成的数据。
存储设备2600可以与图2中的存储设备1200基本相同。例如,存储设备2600可以存储程序PR,并且可以存储压缩规则CR和评估规则ER。在由处理器2100执行之前,可以将程序PR或者程序PR中的至少一些元素从存储设备2600加载到RAM 2400。存储设备2600可以存储以程序语言编写的文件,并且由编译器生成的程序PR或者程序PR中的至少一些元素可以被加载到RAM 2400。
存储设备2600可以存储将由处理器2100处理的数据、或者通过处理器2100的处理获得的数据。处理器2100可以基于程序PR处理存储设备2600中存储的数据以生成新数据,并且可以将所生成的数据存储在存储设备2600中。
I/O设备2200可以与图2中的I/O设备1300基本相同。I/O设备2200可以包括诸如键盘、指点设备等的输入设备,并且可以包括诸如显示设备、打印机等的输出设备。例如,用户可以通过I/O设备2200触发处理器2100对程序PR的执行,或者可以输入图2中的用户输入UI,并且可以检查图2中的图形表示GR。
网络接口2300可以提供对神经网络模型处理系统2000外部的网络的访问。例如,网络可以包括多个计算系统和通信链路,并且通信链路可以包括有线链路、光链路、无线链路或任意其他类型的链路。图2中的用户输入UI可以通过网络接口2300提供给神经网络模型处理系统2000,并且图2中的图形表示GR可以通过网络接口2300提供给其他计算系统。
参照图4,神经网络模型优化模块100可以由图2和图3的神经网络模型处理系统1000和2000执行和/或控制,并且可以包括GUI控制模块150和压缩模块200。神经网络模型优化模块100还可以包括分组模块300和评估更新模块400。
这里,术语“模块”可以是指但不限于执行特定任务的软件和/或硬件组件,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。模块可以被配置为驻留在有形可寻址存储介质上,并且被配置为在一个或多个处理器上执行。例如,“模块”可以包括诸如软件组件、面向对象的软件组件、类组件和任务组件之类的组件,并且可以包括进程、函数、例程、程度代码段、驱动器、固件、微代码、电路、数据、数据库、数据结构、表、数组和变量。“模块”可以被划分为执行具体功能的多个“模块”。
压缩模块200可以对神经网络模型执行压缩。例如,压缩模块200可以基于压缩规则(例如,图2和图3中的压缩规则CR)来执行压缩。
分组模块300可以对包括在神经网络模型中的层执行分组(或分组操作)。将参考图14和图16描述分组。
评估更新模块400可以对神经网络模型执行评估(或评估操作)和更新(或更新操作)。例如,神经网络模型的更新可以包括设置改变、层改变等。例如,评估更新模块400可以基于评估规则(例如,图2和3中的评估规则ER)来执行评估。将参考图20和图24描述评估和更新。
GUI控制模块150可以控制GUI以对神经网络模型执行优化。例如,GUI控制模块150可以控制GUI接收用户输入(例如,图2中的用户输入UI)并输出图形表示(例如,图2中的图形表示GR)。
在一些示例实施例中,神经网络模型优化模块100中的至少一些元件可以实现为指令代码或程序例程(例如,软件程序)。例如,指令代码或程序例程可以由基于计算机的电子系统执行,并且可以存储在位于该基于计算机的电子系统内部或外部的任何存储设备中。在其他示例实施例中,神经网络模型优化模块100的至少一些元件可以实现为硬件。例如,神经网络模型优化模块100的至少一些元件可以包括在基于计算机的电子系统中。
图5A、图5B、图5C和图6是用于描述作为根据示例实施例的优化神经网络模型的方法的目标的神经网络模型的示例的图。
图5A、图5B和图5C示出了神经网络模型的网络结构的示例,图6示出了用于执行和/或驱动神经网络模型的神经网络系统的示例。例如,神经网络模型可以包括人工神经网络(ANN)模型、卷积神经网络(CNN)模型、递归神经网络(RNN)模型、深度神经网络(DNN)模型等中的至少一种。然而,示例实施例不限于此。又例如,神经网络模型可以包括多种学习模型,例如反卷积神经网络、堆叠神经网络(SNN)、状态空间动态神经网络(SSDNN)、深度置信网络(DBN)、生成对抗网络(GAN)和/或受限玻尔兹曼机(RBM)。备选地或附加地,神经网络模型可以包括其他形式的机器学习模型,诸如线性和/或逻辑回归、统计聚类、贝叶斯分类、决策树、诸如主成分分析的降维和专家系统;和/或其组合,包括诸如随机森林之类的集合。
参照图5A,一般的神经网络可以包括输入层IL,多个隐藏层HL1,HL2,...,HLn和输出层OL。
输入层IL可以包括i个输入节点x1、x2、...、xi,其中i是自然数。长度为i的输入数据(例如向量输入数据)IDAT可以输入到输入节点x1、x2、...、xi,使得输入数据IDAT的每一个元素被输入到输入节点x1、x2、...、xi中的相应一个。
多个隐藏层HL1、HL2、...、HLn可以包括n个隐藏层,其中n为自然数,并且可以包括多个隐藏节点h1 1、h1 2、h1 3、...、h1 m、h2 1、h2 2、h2 3、...,h2 m、hn 1、hn 2、hn、...、hn m。例如,隐藏层HL1可以包括m个隐藏节点h1 1、h1 2、h1 3、...、h1 m,隐藏层HL2可以包括m个隐藏节点h2 1、h2 2、h2 3、...、h2 m,隐藏层HLn可以包括m个隐藏节点hn 1、hn 2、hn 3、...、hn m,其中m是自然数。
输出层OL可以包括j个输出节点y1、y2、...、yj,其中j是自然数。输出节点y1、y2、...、yj中的每一个可以对应于要分类的类别中的相应一个。输出层OL可以针对每一类别生成与输入数据IDAT相关联的输出值(例如,类别分数或数值输出,诸如回归变量)和/或输出数据ODAT。在一些示例实施例中,输出层OL可以是全连接层,并且可以表示例如输入数据IDAT对应于车辆的概率。
图5A中所示的神经网络的结构可以由与节点之间的分支(或连接)(示出为线)和分配给每一分支的加权值(未图示)有关的信息来表示。在一些神经网络模型中,一层内的节点可以不相互连接,但不同层的节点可以完全或部分地相互连接。在一些其他神经网络模型中,例如不受限制玻尔兹曼机中,除了(或替代地)其他层的一个或多个节点之外,一层内的至少一些节点还可以与一层内的其他节点连接。
每一个节点(例如,节点h1 1)可以接收先前节点(例如,节点x1)的输出,可以对接收的输出执行计算操作、运算或计算,并且可以输出计算操作、运算或计算的结果,作为到后续节点(例如,节点h2 1)的输出。每一个节点可以通过将输入应用于特定函数(例如,非线性函数)来计算要输出的值。
在一些示例实施例中,神经网络的结构是预先设定好的,并且用于节点之间的连接的加权值是使用如下数据来适当地设定的:对于该数据属于哪个类别(有时称为“标签”),具有已知答案。具有已知答案的这种数据有时被称为“训练数据”,而确定权重值的过程有时被称为“训练”。神经网络在训练过程中“学习”将数据与对应的标签相关联。一组可独立训练的结构和加权值有时被称为“模型”,通过具有确定的加权值的模型来预测输入数据属于哪个类别,然后输出预测值的过程有时被称为“测试”过程。
图5A中所示的一般神经网络可能不适合于处理输入图像数据(或输入声音数据),因为每一个节点(例如,节点h1 1)与先前层的所有节点(例如,包括在层IL中的节点x1,x2,...,xi)连接,随着输入图像数据的大小增加,加权值的数量急剧增加。因此,已经研究了通过将滤波技术与一般神经网络组合而实现的CNN,使得通过CNN有效地训练二维图像(例如,输入图像数据)。
参照图5B,CNN可以包括多个层CONV1,RELU1,CONV2,RELU2,POOL1,CONV3,RELU3,CONV4,RELU4,POOL2,CONV5,RELU5,CONV6,RELU6,POOL3和FC。
与一般神经网络不同,CNN的每一层可以具有宽度、高度和深度三个维度,因此输入到每一层的数据可以是具有宽度、高度和深度三个维度的体数据。例如,如果图5B中的输入图像具有32宽度(例如,32个像素)和32高度的尺寸以及三个颜色通道R、G和B,与输入图像相对应的输入数据IDAT可以具有32*32*3的大小。图5B中的输入数据IDAT可以称为输入体数据或输入激活体。
卷积层CONV1,CONV2,CONV3,CONV4,CONV5和CONV6中的每一个可以对输入体数据执行卷积运算。在图像处理中,卷积运算表示如下操作:基于具有加权值的掩模来处理图像数据,并且通过将输入值乘以加权值并将全部乘积值相加来获得输出值。掩模可以称为滤波器、窗或内核。
每一个卷积层的参数可以包括一组可学习的过滤器。每一个滤波器可以在空间上较小(沿宽度和高度),但可以延伸通过输入体的整个深度。例如,在前向传递期间,可以在输入体的宽度和高度上滑动(例如卷积)每一个滤波器,并且可以在滤波器的条目和任何位置处的输入之间计算点积。当在输入体的宽度和高度上滑动滤波器时,可以生成二维激活图,该二维激活图提供在每一个空间位置处该滤波器的响应。结果,可以通过沿深度维度堆叠这些激活图来生成输出体。例如,如果具有32*32*3大小的输入体数据通过具有四个有零填充的滤波器的卷积层CONV1传递,则卷积层CONV1的输出体数据可以具有32*32*12的大小(例如,体数据的深度增加)。
整流线性单元(RELU)层RELU1,RELU2,RELU3,RELU4,RELU5和RELU6中的每一个可以执行RELU操作,该RELU操作对应于由例如函数f(x)=max(0,x)(例如,对于所有负输入x,输出为零)定义的激活函数。例如,如果大小为32*32*12的输入体数据传递通过RELU层RELU1以执行整流线性单元运算,则RELU层RELU1的输出体数据可以具有32*32*12的大小(例如,保持体数据的大小)。
池化层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的大小(例如,体数据的宽度和高度减小,并且保持体数据的深度)。
通常,在CNN中一个卷积层(例如,CONV1)和一个RELU层(例如,RELU1)可以形成CONV/RELU层对,可以在CNN中重复排列CONV/RELU层对,并可以将池化层周期性地插入CNN中,从而减小图像的空间尺寸并提取图像的特征。
输出层或完全连接层FC可以输出针对每一个类别的输入体数据IDAT的结果(例如,类别评分)。例如,随着重复卷积运算和下采样运算,可以将与二维图像相对应的输入体数据IDAT转换为一维矩阵或矢量。例如,完全连接层FC可以指示输入体数据IDAT对应于轿车、卡车、飞机、船和马的概率。
CNN中包括的层的类型和数量可以不限于参考图5B描述的示例,并且可以根据示例实施例而改变。此外,虽然图5B中未示出,但CNN还可以包括其他层,例如用于将与预测结果相对应的分数值转换为概率值的softmax层、用于添加至少一个偏差的偏差添加层等。
参照图5C,RNN可以包括使用图5C左侧所示的特定节点或单元N的重复结构。
图5C右侧所示的结构可以指示左侧所示RNN的循环连接被展开(或铺开)。术语“展开”是指网络被写出或示出包括所有节点NA、NB和NC的完整或整个序列。例如,如果感兴趣的序列是3个单词的句子,则RNN可以展开为3层神经网络,每一个单词一层(例如,没有循环连接或没有循环)。
在图5C的RNN中,X表示RNN的输入。例如,Xt可以是在时间步长t处的输入,Xt-1和Xt+1可以分别是在时间步长t-1和t+1处的输入。
在图5C的RNN中,S表示隐藏状态。例如,St可以是在时间步长t处的隐藏状态,St-1和St+1可以分别是在时间步长t-1和t+1处的隐藏状态。可以基于先前的隐藏状态和在当前步骤处的输入来计算隐藏状态。例如,St=f(UXt+WSt-1)。例如,函数f通常可以是非线性函数,例如tanh或RELU。计算第一隐藏状态所需的S-1通常可以初始化为全零。
在图5C的RNN中,O表示RNN的输出。例如,Ot可以是在时间步长t处的输出,并且Ot-1和Ot+1可以分别是在时间步长t-1和t+1处的输出。例如,如果需要预测句子中的下一个单词,则输出将是整个词汇表中的概率向量。例如,Ot=softmax(VSt)。
在图5C的RNN中,隐藏状态可以是网络的“存储器”。例如,RNN可以具有一个“存储器”,它捕获到目前为止已计算的内容的相关信息。隐藏状态St可以捕获在所有先前时间步长中发生的事情的相关信息。输出Ot可以是仅基于当前时间步长t处的存储器来计算的。此外,与在每一层使用不同参数的传统神经网络不同,RNN可以在所有时间步长上共享相同的参数(例如,图5C中的U、V和W)。这可以表示如下事实:可以在每一步执行相同的任务,只是输入不同。这可以显著减少需要训练或学习的参数的总数。
参照图6,神经网络系统500可以包括用于执行和/或驱动神经网络模型的多个异构资源、以及用于管理和/或控制多个异构资源的资源管理器501。
多个异构资源可以包括中央处理单元(CPU)510、神经处理单元(NPU)520、图形处理单元(GPU)530、数字信号处理器(DSP)540和图像信号处理器(ISP)550,并且还可以包括专用硬件(DHW)560、存储器(MEM)570、直接存储器访问单元(DMA)580和连接590。CPU 510、NPU 520、GPU 530、DSP 540、ISP 550和专用硬件560可以称为处理器、处理单元(PE)、计算资源等。DMA 580和连接590可以称为通信资源。
CPU 510、NPU 520、GPU 530、DSP 540、ISP 550和专用硬件560可以执行各种计算功能,例如具体的计算和任务,并且可以用于执行神经网络模型。例如,专用硬件560可以包括视觉处理单元(VPU)、视觉知识产权(VIP)等。存储器570可以作为工作存储器或针对多个异构资源处理的数据的数据存储装置来操作,并且可以存储与神经网络模型相关联的数据。DMA 580可以控制对存储器570的访问。例如,DMA 580可以包括存储器DMA(MDMA)、外围DMA(PDMA)、远程DMA(RDMA)、智能DMA(SDMA)等。连接590可以执行与内部元件和/或外部设备的有线/无线通信。例如,连接590可以包括支持内部通信的内部总线,例如系统总线、外围组件互连(PCI)、PCI高速(PCIe)等,和/或可以支持外部通信,例如移动电信、通用串行总线(USB)、以太网、WiFi、蓝牙、近场通信(NFC)、射频识别(RFID)等。
虽然在图6中未示出,但计算资源还可以包括微处理器、应用处理器(AP)、定制硬件、压缩硬件等,通信资源还可以包括能够复制存储器的资源等。
在一些示例实施例中,神经网络系统500可以包括在任何计算设备和/或移动设备中。
在一些示例实施例中,可以由参考图5A、图5B和图5C描述的神经网络模型和参考图6描述的神经网络系统500执行、实施和/或处理各种服务和/或应用中的至少一种,例如计算机视觉(例如,图像分类、图像检测、图像分割、图像跟踪等)服务、基于生物信息或生物特征数据的用户认证服务、高级驾驶员辅助系统(ADAS)服务、语音辅助服务、自动语音识别(ASR)服务等。
图7是示出图1的优化神经网络模型的方法的示例的流程图。省略与图1重复的描述。
参照图7,在根据示例实施例的优化神经网络模型的方法中,提供用于优化神经网络模型的GUI(步骤S500)。然而,示例实施例不限于此,并且可以提供GUI以显示与神经网络模型相关联或相关的各种信息。稍后将详细描述GUI的具体配置。
通过GUI接收预训练的第一神经网络模型的原始模型信息(步骤S100a)。通过对第一神经网络模型执行压缩来生成第二神经网络模型和第二神经网络模型的压缩模型信息(步骤S200)。在GUI上显示压缩结果,使得原始模型信息的至少一部分和压缩模型信息的至少一部分显示在一个屏幕上(步骤S300a)。例如,如参考图5A、图5B和图5C所描述的,第一神经网络模型和第二神经网络模型中的每一个可以包括多个层。例如,可以将第一神经网络模型中包含的与原始模型信息相对应的层定义为多个原始层,并且可以将第二神经网络模型中包含的与压缩模型信息相对应的层定义为多个压缩层。
步骤S100a和S300a可以分别类似于图1中的步骤S100和S300,步骤S200可以与图1中的步骤S200基本相同。
图8是示出图7中显示压缩结果的示例的流程图。图9A和图9B是用于描述图8的操作示例的图。
参照图7、图8、图9A和图9B,当在GUI上显示压缩结果时(步骤S300a),可以在GUI上显示图形表示,该图形表示包括第二神经网络模型中包含的多个压缩层的网络结构(步骤S310)。例如,图形表示可以指示在包括在神经网络模型处理系统1000中的输出设备1320中包括的显示设备的一个屏幕上显示的视觉信息。
例如,如图9A所示,图形表示GR11可以包括在第二神经网络模型的输入和输出之间的多个压缩层LAYER11、LAYER12、LAYER13、LAYER14、LAYER15、LAYER16、LAYER17、LAYER18、LAYER19、LAYER1A、LAYER1B、LAYER1C、LAYER1D和LAYER1E的网络结构。例如,图形表示GR11可以包括多个层框(例如,矩形)和箭头,每一个层框对应于多个压缩层中的相应一个,每一个箭头指示压缩层之间的连接。
作为另一示例,如图9B所示,图形表示GR12可以表示多个压缩层LAYER11至LAYER1E的网络结构以及关于多个压缩层中的每一个是否满足或符合预定参考值的信息。例如,可以通过第一种方案(或方式)显示与满足参考值的压缩层相对应的层框,可以通过与第一方案不同的第二方案(或方式)来显示与不满足参考值的压缩层相对应的层框。
在一些示例实施例中,如图9B所示,可以通过在没有任何单独指示的情况下显示层框来实现第一方案,可以通过在层框中显示阴影来实现第二方案。在图9B的示例中,压缩层LAYER1E可以不满足参考值,并且与压缩层LAYER1E相对应的层框可以有阴影。另外,压缩层LAYER1E以外的其余压缩层LAYER1 1至LAYER1D可以满足参考值,并且与压缩层LAYER11到LAYER1D相对应的层框可以显示为没有任何单独指示。然而,示例实施例不限于此,并且可以使用不同的颜色、形状等来实现第一方案和第二方案。例如,可以通过显示绿色层框来实现第一方案,可以通过显示红色层框来实现第二种方案。
在一些示例实施例中,用于通过不同方案显示层框的参考值可以与性能(PERF)标准相关联或相关。例如,参考值可以与多个比较度量(例如,可以与之比较性能的指示符)中的至少一个相关联,比较度量包括信号量化噪声功率比(SQNR)、等待时间(LTC)、功耗(PWR)和利用率(UTIL)。当每一个压缩层的性能值大于或等于参考值时,可以通过第一方案显示对应的层框。当每一个压缩层的性能值小于参考值时,可以通过第二方案显示对应的层框。换言之,可以逐层地显示表示性能的指标值,并且当特定层的指标值小于参考值时,可以以不同的方式显示该特定层。
在一些示例实施例中,参考值可以是可选择的和/或可改变的。例如,如图9B所示,可以通过选择包括在图形表示GR12中的菜单110中的按钮112、114、116和118之一来选择和/或改变参考值。在图9B的示例中,可以通过选择按钮112来选择与SQNR相关联的参考值,并且可以基于与SQNR相关联的参考值通过第一方案和第二方案之一来显示每一个层框。例如,可以通过经由神经网络模型处理系统1000中包括的输入设备1310(例如,包括在输入设备1310中的鼠标或触摸屏)接收用户输入来选择按钮112、114、116和118中的一个。
图10是示出图7中显示压缩结果的示例的流程图。图11A、图11B和图11C是用于描述图10的操作示例的图。将省略与图8、图9A和图9B重复的描述。
参照图7、图10、图11A、图11B和图11C,当在GUI上显示压缩结果时(步骤S300a),可以在GUI上显示包括与多个原始层相关联的第一特征和与多个压缩层相关联的第二特征的比较在内的图形表示(步骤S320)。例如,第一特征的一些或全部与第二特征的一些或全部可以显示在一个屏幕上。
例如,如图11A、图11B和图11C所示,图形表示GR21、GR22和GR23中的每一个可以包括与原始模型信息相对应的多个原始层的分布特征和与压缩模型信息相对应的多个压缩层的分布特征的比较。例如,原始模型信息可以是浮动模型信息,压缩模型信息可以是固定模型信息。左侧所示的分布特征可以指示与多个原始层相关联的第一特征,而右侧所示的分布特征可以指示与多个压缩层相关联的第二特征。尽管未详细示出,但图形表示GR21、GR22和GR23中的每一个还可以包括附加信息,例如乘法累加(MAC)计数值、正常操作(OP)计数值、准确度值、性能值(例如,SQNR)等。
在一些示例实施例中,可以以层为单位和/或以通道为单位(例如,逐层地和/或逐通道地)来显示第一特征和第二特征。在图11A和图11B的示例中,图形表示GR21和GR22中的每一个可以包括在一个原始层中包括的多个通道(例如,channel0到channel23)的分布特征和与该一个原始层对应的一个压缩层中包括的多个通道的分布特征的比较。在图11C的示例中,图形表示GR23可以包括在一个原始层中包括的一个通道(例如,channel0)的分布特征和在一个压缩层中包括的一个通道的分布特征的比较。
在一些示例实施例中,可以选择性地仅显示一些数据。例如,当基于用户输入从图11A和图11B的图形表示GR21和GR22之一选择一个通道时,可以显示图11C的图形表示GR23。
在一些示例实施例中,通过GUI,可以比较原始模型的输出和压缩模型的输出,并显示对神经网络模型执行压缩之后发生改变的层。此外,可以提供模型设计所需的信息,例如模型复杂度或容量,可以通过分析模型的计算或属性来提供是否支持模型的信息,并且可以通过分析模型来提供存储占用信息。
图12是示出图7中显示压缩结果的示例的流程图。图13是描述图12的操作示例的图。将省略与图8、图9A、图9B、图10、图11A、图11B和图11C重复的描述。
参照图7、图12和图13,当在GUI上显示压缩结果时(图7中的步骤S300a),可以执行图12中的步骤S310、S315和S320。图12中的步骤S310可以与图8中的步骤S310基本相同,图12中的步骤S320可以与图10中的步骤S320基本相同。
可以通过GUI接收针对多个压缩层中的至少一个压缩层的用户输入(步骤S315)。可以基于在步骤S315中接收到的用户输入来执行步骤S320。
例如,可以通过步骤S310显示图9A和图9B的图形表示GR11和GR12中的一个。可以通过步骤S315接收针对多个压缩层LAYER11到LAYER1E中的第一压缩层的用户输入。可以通过步骤S320显示图11A、图11B和图11C的图形表示GR21、GR22和GR23中的一个,使得与第一压缩层相对应的第一原始层的特征与第一压缩层的特征进行比较并显示在一个屏幕上。
在一些示例实施例中,如图13所示,图形表示GRC1可以显示为第一图形表示GRI和第二图形表示GR2组合的形式。例如,第一图形表示GR1可以对应于图9A和图9B的图形表示GR11和GR12中的一个,并且第二图形表示GR2可以对应于图11A、图11B和图11C的图形表示GR21、GR22和GR23中的一个。换言之,步骤S310和步骤S320的图形表示可以显示在一个屏幕上。
图14是示出图7中显示压缩结果的示例的流程图。图15A、图15B、图15C和图15D是用于描述图14的操作示例的图。将省略与图8、图9A和图9B重复的描述。
参照图7、图14、图15A、图15B、图15C和图15D,当在GUI上显示压缩结果时(步骤S300a),可以执行图14中的步骤S310、步骤S325和步骤S330。图14中的步骤S310可以与图8中的步骤S310基本相同。
可以通过GUI接收用于对多个压缩层执行分组的用户输入(步骤S325)。可以在GUI上显示包括多个压缩层组的图形表示,每一个压缩层组包括多个压缩层中的至少一个压缩层(步骤S330)。可以基于在步骤S325中接收到的用户输入来执行步骤S330。
层分组表示基于特定标准对神经网络模型中包括的多个层执行分类的操作。当重复执行这样的分类操作时,具有N个层的神经网络模型可以表达为具有M个层组的简化形式。例如,层组的数量可以小于或等于层的数量(例如,M≤N)。通常,一个神经网络模型可能包括数十到数百个层,当对层进行分组时,使用层组来自动汇总并突出显示相关信息。与使用层提供的信息相比,上述信息可以有效地用于神经网络模型的开发。
在一些示例实施例中,用于对多个压缩层进行分组的参考值可以与性能标准和功能(FUNC)标准中的至少一个相关联或相关。例如,性能标准可以包括SQNR、等待时间、功耗和利用率中的至少一项。例如,功能标准可以包括CNN、特征提取器、骨干网、RNN、长短期记忆(LSTM)和注意力模块中的至少一种。可以基于参考值改变对多个压缩层进行分组的方案。
例如,如图15A所示,可以通过步骤S310显示包括在第二神经网络模型的输入和输出之间的多个压缩层LAYER21、LAYER22、LAYER23、LAYER24、LAYER25和LAYER26的网络结构的图形表示GR13。换言之,网络结构可以以层为单位显示,而不分组。
如图15A、图15B、图15C和图15D所示,可以通过步骤S325,通过选择包括在图形表示GR13、GR31、GR32和GR33中的菜单120中的按钮122、124、125、126、127和128中的一个来选择和/或改变参考值。如图15B、图15C和图15D所示,多个压缩层LAYER21到LAYER26可以例如基于参考值自动分组,并且可以通过步骤S330显示包括压缩层组的图形表示GR31、GR32和GR33。
在图15A和图15B的示例中,可以通过选择按钮122和125来选择与SQNR相关联的参考值,并且可以基于与SQNR相关联的参考值来显示包括压缩层组LAYER_GROUP11和LAYER_GROUP12以及压缩层LAYER26的图形表示GR31。例如,压缩层组LAYER_GROUP11可以包括压缩层LAYER21和LAYER22,压缩层组LAYER_GROUP12可以包括压缩层LAYER23到LAYER25。
在一些示例实施例中,图形表示GR31中不包括在压缩层组LAYER_GROUP11和LAYER_GROUP12中的压缩层LAYER26可以指示不满足预定标准(例如,性能标准SQNR)的压缩层。
在图15A和图15C的示例中,可以通过选择按钮122和126来选择与等待时间相关联的参考值,并且可以基于与延等待时间相关联的参考值显示包括压缩层组LAYER_GROUP21、LAYER_GROUP22和LAYER_GROUP23的图形表示GR32。例如,压缩层组LAYER_GROUP21可以包括压缩层LAYER21和LAYER22,压缩层组LAYER_GROUP22可以包括压缩层LAYER23和LAYER24,并且压缩层组LAYER_GROUP23可以包括压缩层LAYER25和LAYER26。在一些示例实施例中,如参考图15B所描述的,不满足预定标准(例如,性能标准等待时间)的压缩层可以以层为单位显示而不被分组。
在图15A和图15D的示例中,可以通过选择按钮122和127来选择与功耗相关联的参考值,并且可以基于与功耗相关联的参考值显示包括压缩层组LAYER_GROUP31和LAYER_GROUP32的图形表示GR33。例如,压缩层组LAYER_GROUP31可以包括压缩层LAYER21到LAYER24,压缩层组LAYER_GROUP32可以包括压缩层LAYER25和LAYER26。在一些示例实施例中,如参考图15B所描述的,不满足预定标准(例如,性能标准功耗)的压缩层可以以层为单位显示而不被分组。
在一些示例实施例中,可以选择两个或更多个参考值,并且基于两个或更多个参考值的图形表示可以不同于基于一个参考值的图形表示。例如,当选择两个或多个参考值时,根据不同的参考值突出显示的层可以通过不同的方案(例如,用不同的颜色)显示。
图16是示出图7中显示压缩结果的示例的流程图。图17是描述图16的操作示例的图。将省略与图8、图9A、图9B、图14、图15A、图15B、图15C和图15D重复的描述。
参照图7、图16和图17,当在GUI上显示压缩结果时(步骤S300a),可以执行图16中的步骤S310、S325、S330、S335和S340。图16中的步骤S310、S325和S330可以分别与图14中的步骤S310、S325和S330基本相同。
可以从图形用户界面接收针对多个压缩层组中的至少一个压缩层组的用户输入(步骤S335)。可以在GUI上显示包括在该至少一个压缩层组中包含的压缩层的图形表示(步骤S340)。可以基于在步骤S335中接收到的用户输入来执行步骤S340。
例如,可以通过步骤S310显示图15A的图形表示GR13,并且可以通过步骤S325和S330显示图15B的图形表示GR31。之后,可以通过步骤S335接收针对压缩层组LAYER_GROUP11的用户输入。图17的图形表示GR34,包括压缩层组LAYER_GROUP11中的压缩层LAYER21和LAYER22,可以通过步骤S340显示为扩展形式。
在一些示例实施例中,虽然没有详细说明,但是在显示图17的图形表示GR34之后,可以再次接收针对压缩层组LAYER_GROUP11的用户输入,然后可以再次将图15B的图形表示GR31显示为缩减形式。换言之,图15B和图17的图形表示GR31和GR34可以作为扩展或缩减形式彼此切换。
图18是示出图7中显示压缩结果的示例的流程图。图19A、图19B和图19C是用于描述图18的操作示例的图。将省略与图8、图9A和图9B重复的描述。
参照图7、图18、图19A、图19B和图19C,当在GUI上显示压缩结果时(步骤S300a),可以执行图18中的步骤S310、S345和S350。步骤S310可以与图8中的步骤S310基本相同。
可以通过GUI接收用于选择执行多个压缩层的至少一个目标设备的用户输入(步骤S345)。例如,至少一个目标设备可以包括图6中的CPU 510、NPU 520、GPU 530、DSP 540和ISP 550中的至少一个,并且还可以包括至少其他资源。可以在GUI上显示指示多个压缩层是否适合或适用于至少一个目标设备的图形表示(步骤S350)。可以基于在步骤S345中接收到的用户输入来执行步骤S350。
例如,如图19A所示,可以通过步骤S310显示包括在第二神经网络模型的输入和输出之间的多个压缩层LAYER31、LAYER32、LAYER33、LAYER34、LAYER35和LAYER36的网络结构的图形表示GR14。
如图19A、图19B和图19C所示,可以通过步骤S345,通过选择包括在图形表示GR14、GR41和GR42中的菜单130中的按钮132、134和136中的一个来选择和/或改变目标设备。如图19B和图19C所示,可以通过步骤S350显示图形表示GR41和GR42,每一个图形表示指示多个压缩层LAYER31到LAYER36是否适合所选目标设备。
在图19B的示例中,可以通过选择按钮132来选择NPU作为目标设备,并且可以显示图形表示GR41,该图形表示GR41指示多个压缩层LAYER31到LAYER36是否适合由NPU驱动。
在图19C的示例中,可以通过选择按钮132和136来选择NPU和DSP作为目标设备,并且可以显示图形表示GR42,该图形表示GR42指示多个压缩层LAYER31至LAYER36是否适合由NPU和DSP驱动。
在一些示例实施例中,从图形表示中删除或移除的压缩层(例如,未包括在图19B的图形表示GR41中的压缩层LAYER32)可以指示不能由目标设备(例如,NPU)驱动的压缩层。在示例中,图19B的图形表示GR41可以包括指示压缩层LAYER32不能由目标设备驱动并因此被删除的信息(例如,文本或图像信息)。此外,以与图形表示中的其他压缩层不同的方式显示的压缩层(例如,图19B的图形表示GR41中的带阴影压缩层LAYER33和图19C的图形表示GR42中的带阴影压缩层LAYER35)可以指示不适合目标设备的压缩层。图19B的图形表示G41或图19C的图形表示GR42可以包括带阴影压缩层LAYER33或LAYER35不适合目标设备的信息(例如,文本或图像信息)。
在一些示例实施例中,可以采用或提出不能由目标设备驱动或不适合目标设备的层的改变。例如,基于将会针对目标设备而优化神经网络模型的性能的改变,可以自动改变层并且可以显示改变后的层,和/或可以将可改变的层作为指导信息显示给用户。在一些示例实施例中,不能由目标设备驱动或不适合目标设备的第一层可以以不同的显示方式(例如,带阴影)显示,并且当用户选择第一层时,可以将第一层可以改变到的至少一个候选层显示为可通过用户操作来选择。例如,可以基于依据目标设备而预先确定的方案来提出层的改变,或者可以通过依据目标设备使用强化学习预测所选层的处理时间来提出层的改变。由于神经网络模型是基于选择的目标设备而改变的,所以神经网络模型可以改变为适合要使用的目标设备和/或系统,并且用户可以容易地比较改变后的模型与原始模型。对于另一示例,可以提出目标设备的改变,使得改变后的目标设备可以适合多个压缩层。
然而,示例实施例不限于此,可以提出和执行层组的改变以及层的改变。
在一些示例实施例中,可以在图14、图16和图18的每一个示例中附加地执行图10中的步骤S320和/或图12中的步骤S315和S320。在一些示例实施例中,可以在图16的示例中附加地执行图14中的步骤S325和S330。在一些示例实施例中,可以在图14的示例中附加地执行图16中的步骤S325、S330、S335和S340。
图20是示出根据示例实施例的优化神经网络模型的方法的流程图。将省略与图1重复的描述。
参照图20,在根据示例实施例的优化神经网络模型的方法中,图20中的步骤S100、S200和S300可以分别与图1中的步骤S100、S200和S300基本相同。
可以改变设置以用于提高第二神经网络模型的性能,并且可以将设置改变的结果可视化并输出(步骤S600)。例如,与步骤S300一样,可以使用GUI来执行步骤S600。
图21是示出图20的优化神经网络模型的方法的示例的流程图。将省略与图7、图20重复的描述。
参照图21,在根据示例实施例的优化神经网络模型的方法中,图21中的步骤S500、S100a、S200和S300a可以分别与图7中的步骤S500、S100a、S200和S300a基本相同。
通过执行用于提高第二神经网络模型的性能的设置改变,将设置改变的结果显示在GUI上(步骤S600a)。步骤S600a可以类似于图20中的步骤S600。
图22是示出图21中显示设置改变结果的示例的流程图。图23A、图23B和图23C是用于描述图22的操作示例的图。将省略与图8、图9A、图9B、图10、图11A、图11B、图11C、图12和图13重复的描述。
参照图21、图22、图23A、图23B和图23C,当在GUI上显示设置改变的结果时(步骤S600a),可以通过GUI接收用于改变多个压缩层的设置的用户输入(步骤S605)。可以更新与多个压缩层相关联的第二特征(步骤S610)。可以基于在步骤S605中接收到的用户输入来执行步骤S610。
可以在GUI上显示包括与多个原始层相关联的第一特征和与多个压缩层相关联的更新的第二特征的比较的图形表示(步骤S620)。步骤S620可以类似于图10中的步骤S320。
例如,如图23A所示,可以在执行步骤S600a之前显示其中组合了第一图形表示GR15和第二图形表示GR24的图形表示GRC21。第一图形表示GR15可以包括在第二神经网络模型的输入和输出之间的多个压缩层LAYER41、LAYER42、LAYER43、LAYER44、LAYER45和LAYER46的网络结构。第二图形表示GR24可以包括与原始模型信息相对应的多个原始层的分布特征和与压缩模型信息相对应的多个压缩层的分布特征。
如图23B所示,在组合了第一图形表示GR15和第二图形表示GR24的图形表示GRC22中包括菜单140,并且基于通过菜单140的用户输入,在步骤S605可以通过对压缩层LAYER42执行设置改变来形成和/或提供其中设置被改变的压缩层LAYER42′。例如,压缩层LAYER42的输入和/或输出的位数BN可以从X变为Y,其中X和Y中的每一个都是大于或等于1的整数。
在一些示例实施例中,可以在确定作为压缩结果而获得的第二神经网络模型的性能低于压缩前的第一神经网络模型的性能时执行设置改变。例如,可以在压缩层的分布特征比原始层的分布特征差时执行设置改变,如第二图形表示GR24所示。
如图23C所示,可以通过步骤S610执行特征更新;可以通过步骤S620显示包括多个原始层的分布特征和多个压缩层的更新的分布特征的第二图形表示GR52;并且可以显示其中组合了第一图形表示GR51和第二图形表示GR52的图形表示GRC23。例如,当使用或应用设置被改变的压缩层LAYER42′时,压缩层的更新的分布特征可以变得比原始层的分布特征好。
如上所述,可以基于实时交互来即刻应用和检查神经网络模型性能的改进和效果。也就是说,可以通过实时交互来显示用户所需的信息。例如,所需的信息可以包括特征图分布、SQNR、信噪比(SNR)、MAC计数值、OP计数值等。因此,可以缩短神经网络模型的开发时间,可以检查更详细的结果,并且用户可以在检查针对每一个设备的神经网络模型的预期性能的同时有效地进行设计。
图24是示出根据示例实施例的优化神经网络模型的方法的流程图。将省略与图1重复的描述。
参照图24,在根据示例实施例的优化神经网络模型的方法中,图24中的步骤S100、S200和S300可以分别与图1中的步骤S100、S200和S300基本相同。
通过执行用于确定第二神经网络模型的操作效率的评分,来可视化并输出评分的结果(步骤S700)。例如,与步骤S300一样,可以使用GUI来执行步骤S700。
图25是示出图24的优化神经网络模型的方法的示例的流程图。将省略与图7和图24重复的描述。
参照图25,在根据示例实施例的优化神经网络模型的方法中,图25中的步骤S500、S100a、S200和S300a可以分别与图7中的步骤S500、S100a、S200和S300a基本相同。
通过执行用于确定第二神经网络模型的操作效率的评分,将评分的结果显示在GUI上(步骤S700a)。步骤S700a可以类似于图24中的步骤S700。
图26是示出图25中显示评分结果的示例的流程图。图27A和图27B是用于描述图26的操作示例的图。将省略与图8、图9A和图9B重复的描述。
参照图25、图26、图27A和图27B,当在GUI上显示评分结果时(步骤S700a),可以为多个压缩层生成多个分数值(步骤S710)。可以基于多个分数值在GUI上显示包括多个压缩层的图形表示,其中至少一些压缩层由不同的方案显示(步骤S720)。
例如,如图27A所示,可以在执行步骤S700a之前,显示包括在第二神经网络模型的输入和输出之间的多个压缩层LAYER51、LAYER52、LAYER53、LAYER54、LAYER55和LAYER56的网络结构的第一图形表示GR16。
如图27B所示,可以通过步骤S710生成针对多个压缩层LAYER51至LAYER56的多个分数值SV51、SV52、SV53、SV54、SV55和SV56,并且可以通过步骤S720显示包括基于多个分数值SV51到SV56由不同方案显示的一些压缩层LAYER54到LAYER56在内的图形表示GR61。在一些示例实施例中,还可以显示多个分数值SV51至SV56。
在一些示例实施例中,可以通过第一方案来显示与具有大于参考分数值的分数值的压缩层相对应的层框。可以通过与第一方案不同的第二方案来显示与具有小于或等于参考分数值的分数值的压缩层相对应的层框。
在一些示例实施例中,如图27B所示,可以通过显示没有任何单独指示的层框来实现第一方案,并且可以通过在层框中显示单独指示(例如,阴影)来实现第二方案。在图27B的示例中,带阴影的压缩层LAYER54至LAYER56可以指示操作效率比较低的层,并且可以指示随着阴影的间隔越小,层的操作效率越低。然而,示例实施例不限于此,并且可以进行各种修改。例如,可以指示随着层框的颜色越深,层的操作效率越低。
在一些示例实施例中,可以基于多个压缩层的压缩性能的估计结果、多个压缩层是否适合目标设备的确定结果、多个压缩层的类型、多个压缩层的容量的预测结果以及多个压缩层的存储占用利用率中的至少一个来获得多个分数值。例如,可以通过对上述指标执行评分并使用不同的权重对评分的指标进行求和来获得多个分数值。
在神经网络模型中,可以将具有各种特征的层和其中聚集几个层的结构组合起来形成一个模型。每一个层或结构对于特定设备和/或系统的操作而言可能是高效的或者不高效的。如上所述,根据示例实施例,可以通过执行评分来检测效率低的层或结构,并且可以提供用于显示效率低的层或结构并由用户修改效率低的层或结构的界面。因此,可以实现神经网络模型的优化建模和改进性能。
图28是示出图25中显示评分结果的示例的流程图。图29A和图29B是用于描述图28的操作示例的图。将省略与图8、图9A、图9B、图26、图27A和图27B重复的描述。
参照图25、图28、图29A和图29B,当在GUI上显示评分结果时(步骤S700a),可以执行图28中的步骤S710、S720和S730。图28的步骤S710和S720可以分别与图26的步骤S710和S720基本相同。
可以基于评分结果改变多个压缩层中的至少一个(步骤S730)。
例如,如图29A所示,对于具有最低操作效率的压缩层LAYER56,可以提供包括在图形表示GR62中的菜单150,并且通过选择菜单150中包括的按钮152和154之一,可以从压缩层LAYER61和LAYER62中选择压缩层LAYER61。可以选择压缩层LAYER61和LAYER62作为替代压缩层LAYER56的候选,以提高操作效率。在一个示例中,按钮152和154可以伴随有指示(例如,文本或图像),该指示用于表示每一个对应的压缩层LAYER61或LAYER62可以将操作效率提高多少以及提高的操作效率的类型。基于选择按钮152,具有最低操作效率的压缩层LAYER56可以通过步骤S730而改变为压缩层LAYER61。与仅可以改变压缩层的设置的图22的示例相比,在图28的示例中可以改变压缩层本身。
如图29B所示,可以通过步骤S730显示图形表示GR63,其包括压缩层LAYER51到LAYER55和LAYER61以及对应的分数值SV51到SV55和SV61。可以看出,压缩层LAYER61中的阴影间隔比压缩层LAYER56中的阴影间隔宽,这指示了操作效率有所提高。
在一些示例实施例中,可以通过例如拖动来选择要修改的层和/或选择包括要修改的层在内的区域。在一些示例实施例中,可以为所选的层或区域推荐更合适的层或结构,并且可以从推荐列表中选择更合适的层或结构之一。在一些示例实施例中,可以从具有各种层的层调色板中选择要修改的层。如图29B所示,可以显示包括改变结果的图形表示。
在根据示例实施例的优化神经网络模型的方法中,可以提供GUI以在视觉上显示对神经网络模型的压缩结果以及以层为单位修改参数。可以提供该工具来比较和可视化对神经网络模型压缩之前和之后的结果。可以提供该工具来可视化用于评估压缩结果的标准。可以提供该工具来将压缩后改变的信息与原始信息匹配。可以提供该工具来根据需要重建和可视化网络图。可以提供该工具来显示针对每一个目标设备的可改变层并建议改变方案。可以提供该工具来显示和修改用于模型设计和改进的建议改进点和必要信息,并实时显示预期的改进性能。
图30是示出根据示例实施例的执行优化神经网络模型的方法的系统的框图。
参照图30,系统3000可以包括用户设备3100、云计算环境3200和网络3300。用户设备3100可以包括神经网络模型(NNM)优化引擎前端3110。云计算环境3200可以包括云存储3210、数据库3220、NNM优化引擎后端3230、云NNM引擎3240和库存后端3250。根据示例实施例的优化神经网络模型的方法可以在云环境上实现,并且可以由NNM优化引擎前端3110和/或NNM优化引擎后端3230执行。
本发明构思可以应用于包括深度学习、ANN和/或机器学习系统的各种电子设备和系统。例如,本发明构思可以应用于诸如个人计算机(PC)、服务器计算机、数据中心、工作站、移动电话、智能电话、平板电脑、笔记本电脑,个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航设备、可穿戴设备、物联网(IoT)设备、万物联网(IoE)设备、电子书阅读器、虚拟现实(VR)设备、增强现实(AR)设备、机器人设备、无人机等。
根据示例实施例,由附图中的框表示的组件、元件、模块或单元(在本段中统称为“组件”)中的至少一个可以体现为执行上述相应功能的各种数量的硬件、软件和/或固件结构。根据示例实施例,这些组件中的至少一个可以使用直接电路结构,例如存储器、处理器、逻辑电路、查找表等,其可以通过一个或多个微处理器或其他控制装置的控制来执行相应的功能。此外,这些组件中的至少一个可以由包含用于执行特定逻辑功能的一个或多个可执行指令并由一个或多个微处理器或其他控制装置执行的模块、程序或一部分代码具体实现。此外,这些组件中的至少一个可以包括或可以由诸如执行相应功能的中央处理单元(CPU)、微处理器等的处理器来实现。这些组件中的两个或更多个可以组合成一个单独的组件,该组件执行组合的两个或更多个组件的所有操作或功能。此外,这些组件中的至少一个的至少部分功能可以由这些组件中的另一个来执行。上述示例实施例的功能方面可以实现为在一个或多个处理器上执行的算法。此外,由方框表示的组件或者处理步骤可以将任意数量的相关技术用于电子配置、信号处理和/或控制、数据处理等。
在根据示例实施例的优化神经网络模型的方法、神经网络模型处理系统、方法和电子系统中,可以通过对预训练的神经网络模型执行压缩来优化神经网络模型,而不是通过对神经网络模型进行训练来优化神经网络模型,并且可以提供用于优化神经网络模型的GUI。因此,可以按层和/或通道(即逐层或逐通道)容易地比较神经网络模型压缩之前和之后的结果,附加提供的信息可以用于网络设计和改进;可以通过层分组,使用汇总和突出显示的信息,来实现高效的网络开发;可以通过使用与目标设备相关联的信息修改模型来实现针对特定系统优化的网络设计;以及可以通过可视化呈现的模型更新指导和基于实时交互而显示的修改后的预测性结果,来减少模型设计和改进所需的时间。
前述内容是对示例实施例的说明,而不应被解释为对其的限制。尽管已经描述了一些示例性实施例,然而本领域技术人员将容易理解,在不实质上脱离示例性实施例的新颖教义和优点的前提下,可以在示例性实施例中执行多种修改。因此,所有这样的修改旨在被包括在如权利要求及其等同物所定义的示例实施例的范围内。因此,应理解,前述内容是对各种示例实施例的说明,而不应被解释成限制于所公开的具体示例实施例,并且对所公开的示例实施例的修改以及其他示例实施例旨在被包括在所附权利要求及其等同物的范围内。
Claims (20)
1.一种优化神经网络模型的方法,所述方法包括:
接收关于预训练的第一神经网络模型的原始模型信息;
通过对所述第一神经网络模型执行压缩,生成第二神经网络模型和关于所述第二神经网络模型的压缩模型信息;以及
在屏幕上输出所述原始模型信息的至少一部分和所述压缩模型信息的至少一部分。
2.根据权利要求1所述的方法,其中,所述输出包括:
经由图形用户界面GUI显示所述原始模型信息的至少一部分和所述压缩模型信息的至少一部分。
3.根据权利要求1所述的方法,其中:
所述第一神经网络模型包括多个原始层,
所述第二神经网络模型包括多个压缩层,以及
所述输出包括:在图形用户界面GUI上显示第一图形表示,所述第一图形表示包括与所述多个原始层相关联的第一特征和与所述多个压缩层相关联的第二特征的比较。
4.根据权利要求3所述的方法,其中,所述第一特征和所述第二特征是以层为单位和/或以通道为单位来显示的。
5.根据权利要求3所述的方法,其中,所述输出还包括:
在所述GUI上显示第二图形表示,所述第二图形表示包括所述多个压缩层的网络结构;以及
通过所述GUI接收关于所述多个压缩层中的第一压缩层的第一用户输入,以及
其中,基于所述第一用户输入,显示所述第一图形表示,以便显示所述多个原始层中的第一原始层的特征与所述第一压缩层的特征的比较,所述第一原始层与所述第一压缩层相对应。
6.根据权利要求5所述的方法,其中,
所述第二图形表示包括与所述多个压缩层相对应的多个层框,
根据第一方案显示与满足预定参考值的压缩层相对应的第一层框,以及
根据不同于所述第一方案的第二方案显示与不满足所述预定参考值的压缩层相对应的第二层框。
7.根据权利要求6所述的方法,其中,所述预定参考值与信号量化噪声功率比、等待时间、功耗或利用率中的至少一项相关联。
8.根据权利要求5所述的方法,其中,所述输出还包括:
通过所述GUI接收用于对所述多个压缩层分组的第二用户输入;以及
基于所述第二用户输入在所述GUI上显示第三图形表示,所述第三图形表示包括多个压缩层组,每一个压缩层组包括所述多个压缩层中的至少一个压缩层。
9.根据权利要求8所述的方法,其中,所述输出还包括:
通过所述GUI接收关于所述多个压缩层组中的第一压缩层组的第三用户输入;以及
基于所述第三用户输入在所述GUI上显示第四图形表示,所述第四图形表示包括包含在所述第一压缩层组中的至少一个压缩层。
10.根据权利要求5所述的方法,其中,所述输出还包括:
通过所述GUI接收用于选择至少一个目标设备以执行所述多个压缩层的第四用户输入;以及
基于所述第四用户输入在所述GUI上显示第五图形表示,所述第五图形表示指示所述多个压缩层是否适合所选的至少一个目标设备。
11.根据权利要求10所述的方法,其中,所述至少一个目标设备包括中央处理单元CPU、神经处理单元NPU、图形处理单元GPU、数字信号处理器DSP或图像信号处理器ISP中的至少一个。
12.根据权利要求3所述的方法,还包括:
改变所述多个压缩层中的至少一个压缩层的设置,并输出改变所述设置的结果。
13.根据权利要求12所述的方法,还包括:
通过所述GUI接收用于改变所述多个压缩层中的所述至少一个压缩层的设置的第五用户输入;以及
基于所述第五用户输入更新所述第二特征,
其中,输出改变所述设置的结果包括:在所述GUI上显示第六图形表示,所述第六图形表示包括所述第一特征与更新的第二特征的比较。
14.根据权利要求3所述的方法,还包括:
针对操作效率对所述多个压缩层评分,并输出评分结果。
15.根据权利要求14所述的方法,其中,所述输出评分结果包括:
针对所述多个压缩层生成多个分数值;以及
在所述GUI上显示第七图形表示,其中所述多个压缩层是基于所述多个分数值而根据不同的方案来显示的。
16.根据权利要求15所述的方法,其中,
所述第七图形表示包括与所述多个压缩层相对应的多个层框,
根据第一方案显示与分数值大于参考分数值的压缩层相对应的第一层框,以及
根据不同于所述第一方案的第二方案显示与分数值小于或等于所述参考分数值的压缩层相对应的第二层框。
17.根据权利要求15所述的方法,其中,所述评分包括:基于所述多个压缩层的压缩性能的估计结果、所述多个压缩层是否适合目标设备的确定结果、所述多个压缩层的类型、所述多个压缩层的容量的预测结果或所述多个压缩层的存储占用利用率中的至少一个,对所述多个压缩层评分。
18.根据权利要求14所述的方法,还包括:
基于所述评分结果改变所述多个压缩层中的至少一个压缩层。
19.一种优化神经网络模型的方法,所述方法包括:
接收关于预训练的包括多个原始层的第一神经网络模型的原始模型信息;
通过对所述第一神经网络模型执行压缩,生成第二神经网络模型和关于所述第二神经网络模型的压缩模型信息,所述第二神经网络模型包括多个压缩层;
在图形用户界面GUI上显示第一图形表示,所述第一图形表示包括所述多个压缩层的网络结构;
通过所述GUI接收关于所述多个压缩层中的第一压缩层的第一用户输入;
基于所述第一用户输入在所述GUI上显示第二图形表示,所述第二图形表示包括所述多个原始层中的第一原始层的特征与所述第一压缩层的特征的比较,所述第一原始层与所述第一压缩层相对应;
通过所述GUI接收用于改变所述多个压缩层中的第二压缩层的设置的第二用户输入;
基于所述第二用户输入更新所述第二压缩层的特征;
基于所述第二用户输入在所述GUI上显示第三图形表示,所述第三图形表示包括所述多个原始层中的第二原始层的特征与所述第二压缩层的更新的特征的比较,所述第二原始层与所述第二压缩层相对应;
针对所述多个压缩层生成多个分数值;
在所述GUI上显示第四图形表示,所述第四图形表示包括基于所述多个分数值根据不同方案显示的所述多个压缩层;以及
在所述GUI上显示第五图形表示,所述第五图形表示包括所述多个压缩层,其中至少一个压缩层能够基于所述多个分数值而改变。
20.一种提供与优化神经网络模型相关的图形用户界面GUI的方法,所述方法包括:
接收关于预训练的第一神经网络模型的第一模型信息;
通过对所述第一神经网络模型执行数据处理,生成第二神经网络模型和关于所述第二神经网络模型的第二模型信息;以及
提供图形用户界面GUI,所述图形用户界面显示图形表示,所述图形表示包括相互比较的所述第一模型信息的至少一部分和所述第二模型信息的至少一部分。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210050659 | 2021-04-19 | ||
KR10-2021-0050659 | 2021-04-19 | ||
KR1020210083716A KR20220144281A (ko) | 2021-04-19 | 2021-06-28 | 신경망 모델의 최적화 방법 및 이를 수행하는 신경망 모델 처리 시스템 |
KR10-2021-0083716 | 2021-06-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220833A true CN115220833A (zh) | 2022-10-21 |
Family
ID=81307520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210387382.2A Pending CN115220833A (zh) | 2021-04-19 | 2022-04-13 | 优化神经网络模型的方法和提供图形用户界面的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220335293A1 (zh) |
EP (1) | EP4086818A1 (zh) |
JP (1) | JP2022165395A (zh) |
CN (1) | CN115220833A (zh) |
TW (1) | TW202242720A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI826129B (zh) * | 2022-11-18 | 2023-12-11 | 英業達股份有限公司 | 週期時間偵測及修正系統與方法 |
WO2024134735A1 (ja) * | 2022-12-19 | 2024-06-27 | 恒林日本株式会社 | 機械学習モデル生成装置、及び蓄電池の特性値算出装置 |
KR102586869B1 (ko) | 2023-02-27 | 2023-10-10 | 주식회사 노타 | 인공지능 기반의 모델의 벤치마크 결과를 제공하기 위한 방법 및 디바이스 |
KR102587263B1 (ko) | 2023-02-27 | 2023-10-12 | 주식회사 노타 | 인공지능 기반의 모델의 벤치마크 결과를 제공하기 위한 방법 및 디바이스 |
-
2022
- 2022-02-15 US US17/672,204 patent/US20220335293A1/en active Pending
- 2022-03-03 TW TW111107643A patent/TW202242720A/zh unknown
- 2022-03-30 JP JP2022055088A patent/JP2022165395A/ja active Pending
- 2022-04-12 EP EP22167840.2A patent/EP4086818A1/en active Pending
- 2022-04-13 CN CN202210387382.2A patent/CN115220833A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022165395A (ja) | 2022-10-31 |
US20220335293A1 (en) | 2022-10-20 |
TW202242720A (zh) | 2022-11-01 |
EP4086818A1 (en) | 2022-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3289529B1 (en) | Reducing image resolution in deep convolutional networks | |
US20220335293A1 (en) | Method of optimizing neural network model that is pre-trained, method of providing a graphical user interface related to optimizing neural network model, and neural network model processing system performing the same | |
WO2022083536A1 (zh) | 一种神经网络构建方法以及装置 | |
JP7366274B2 (ja) | ニューラル・ネットワークのための適応的探索方法および装置 | |
WO2022068623A1 (zh) | 一种模型训练方法及相关设备 | |
CN107403426B (zh) | 一种目标物体检测方法及设备 | |
US20230082597A1 (en) | Neural Network Construction Method and System | |
US20190114541A1 (en) | Method and system of controlling computing operations based on early-stop in deep neural network | |
US11934866B2 (en) | Operator operation scheduling method and apparatus to determine an optimal scheduling policy for an operator operation | |
KR20180048930A (ko) | 분류를 위한 강제된 희소성 | |
CN109934247A (zh) | 电子装置及其控制方法 | |
US20230004816A1 (en) | Method of optimizing neural network model and neural network model processing system performing the same | |
JP7226696B2 (ja) | 機械学習方法、機械学習システム及び非一時的コンピュータ可読記憶媒体 | |
US20230289572A1 (en) | Neural network structure determining method and apparatus | |
KR20220144281A (ko) | 신경망 모델의 최적화 방법 및 이를 수행하는 신경망 모델 처리 시스템 | |
Foo et al. | Era: Expert retrieval and assembly for early action prediction | |
CN114511042A (zh) | 一种模型的训练方法、装置、存储介质及电子装置 | |
CN116245142A (zh) | 用于深度神经网络的混合精度量化的系统和方法 | |
US20200293864A1 (en) | Data-aware layer decomposition for neural network compression | |
KR20220024076A (ko) | 기계 학습 모델 성능의 최적화 | |
CN111598093A (zh) | 图片中文字的结构化信息生成方法、装置、设备及介质 | |
JP2021527859A (ja) | 深層領域拡張を使用した画像内の不規則形状のセグメント化 | |
WO2022127603A1 (zh) | 一种模型处理方法及相关装置 | |
CN110858504A (zh) | 产生化学结构的方法、神经网络设备和非瞬时计算机可读的记录介质 | |
CN116710974A (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 |