CN113994388A - 管理神经网络模型的方法和装置 - Google Patents

管理神经网络模型的方法和装置 Download PDF

Info

Publication number
CN113994388A
CN113994388A CN202080045137.2A CN202080045137A CN113994388A CN 113994388 A CN113994388 A CN 113994388A CN 202080045137 A CN202080045137 A CN 202080045137A CN 113994388 A CN113994388 A CN 113994388A
Authority
CN
China
Prior art keywords
dnn
model
models
dnn models
layers
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
Application number
CN202080045137.2A
Other languages
English (en)
Inventor
阿伦·亚伯拉罕
阿克沙伊·帕拉沙尔
苏哈什·P·K
维克拉姆·内尔沃伊·拉金迪兰
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113994388A publication Critical patent/CN113994388A/zh
Pending legal-status Critical Current

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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种在设备上管理深度神经网络(DNN)模型的方法。该方法包括:提取与多个DNN模型中的每一个相关联的信息;从所述信息中识别所述多个DNN模型之上共有的公共信息;将所述公共信息分离并存储到所述设备中的指定位置;并且控制所述多个DNN模型中的至少一个DNN模型以访问所述公共信息。

Description

管理神经网络模型的方法和装置
技术领域
本公开涉及设备中的神经网络的部署或管理,更具体地涉及基于神经网络模型的结构中的冗余来管理神经网络模型的方法和装置。
背景技术
需要/利用深度学习方法的应用在嵌入式设备(例如但不限于智能手机、物联网(IoT)设备、个人计算机(PC)、平板电脑等)中很普遍。为了采用深度学习方法来执行应用的指令,需要在嵌入式设备中部署深度神经网络(DNN)模型。DNN模型的这种部署允许用户在个人设备中安装应用。
目前,设备中能够部署多个DNN模型。多个DNN模型能够由设备中安装的不同应用来执行。随着设备中安装的应用数量的增加,需要在设备中部署更多数目的DNN模型。当启动应用时或如果需要执行与应用有关的指令,将DNN模型加载到中央处理单元(CPU)或设备中的其他处理单元(如果有)中。当执行完成时,DNN模型从CPU或从其他处理单元中卸载。如果设备具有能够在多种操作模式下运行的应用,则当存在模式切换时,加载/卸载不同的DNN模型。
发明内容
技术问题
在应用启动或模式切换期间加载和卸载DNN模型的处理会消耗时间,从而劣化设备的等待时间性能。
问题的解决方案
为了解决上述技术问题,提供了一种在设备上管理深度神经网络(DNN)模型的方法。该方法包括:提取与多个DNN模型中的每一个相关联的信息;从所述信息中识别多个DNN模型之上共有的公共信息;将所述公共信息分离并存储到所述设备中的指定位置;并且控制所述多个DNN模型中的至少一个DNN模型以访问所述公共信息。
发明的有益效果
在应用启动或模式切换期间加载和卸载DNN模型的处理能够在不消耗冗余时间的情况下执行,因此,本公开提高了在设备中启动应用或切换应用时的设备性能。
附图说明
在附图中示出了本文的实施例,其中附图中相同的附图标记在各图中表示对应的部分。从以下参考附图的描述中将更好地理解本文的实施例,在附图中:
图1是示出了在相机应用的启动和模式切换期间深度神经网络(DNN)模型的加载和卸载的示例场景;
图2示出了根据本公开实施例的被配置为基于DNN模型的结构中的冗余和DNN模型之间的依赖在设备中部署DNN模型的设备的各个单元;
图3A是示出了根据本公开实施例的用于基于DNN模型的结构中的冗余和DNN模型之间的依赖在设备中部署DNN模型的方法的流程图;
图3B是示出了根据本公开实施例的用于管理DNN模型的方法的流程图310;
图4是示出了根据本公开实施例的识别两个DNN模型中的冗余的示例;
图5是示出了根据本公开实施例的生成优化模型数据的示例,其中优化模型数据指示被设备中安装的相机应用利用的DNN模型中的冗余层和非冗余层;
图6是示出了根据本公开实施例的在设备的不同处理单元中加载DNN模型的示例;
图7是示出了根据本公开实施例的生成模型依赖图的示例,其中模型依赖图指示被设备中安装的相机应用利用的四个DNN模型之间的依赖;
图8是示出了根据本公开实施例的检测器DNN模型和分类器DNN模型的顺序执行的用例场景,其中检测器DNN模型和分类器DNN模型用于在由相机应用捕获的媒体的感兴趣区域(ROI)中检测对象并对检测到的对象进行分类;
图9是示出了根据本公开实施例的由模型预加载器在设备的不同处理单元中预加载DNN模型的示例;以及
图10A和图10B是示出了根据本公开实施例的由相机应用使用的DNN模型基于模型依赖图和优化模型数据的预加载/加载/卸载的用例场景。
最佳实施方式
为了解决上述技术问题,提供了一种在设备上管理深度神经网络(DNN)模型的方法。该方法包括:提取与多个DNN模型中的每一个相关联的信息;从所述信息中识别多个DNN模型之上共有的公共信息;将所述公共信息分离并存储到所述设备中的指定位置;并且控制所述多个DNN模型中的至少一个DNN模型以访问所述公共信息。
相应地,实施例提供了用于基于深度神经网络(DNN)模型的结构中的冗余和DNN模型之间的依赖在设备中部署DNN模型的方法和系统。实施例包括通过将每个DNN模型与其他DNN模型进行比较来识别DNN模型的结构中的冗余。实施例包括确定与每个DNN模型的每一层有关的参考计数。实施例包括遍历每个DNN模型的层并在遍历期间初始化每一层的参考计数值。如果确定DNN模型的层也存在于其他DNN模型中,则可以递增参考计数。如果与DNN模型的层相对应的参考计数递增,则可以将DNN模型的层识别为对DNN模型结构的冗余有贡献,这意味着该层存在于至少两个DNN模型中。参考计数值不递增的DNN模型层被认为是独有的。独有层所落在的DNN模型的结构部分可以被归类为特定区域。
实施例包括确定DNN模型之间的依赖,其中依赖指示DNN模型跨越多个应用或在应用内的执行顺序。可以通过判定至少一个应用是并行、独立还是按顺序执行至少两个DNN模型来确定该至少两个DNN模型之间的依赖。可以基于跨越多个应用或在应用内的DNN模型之间的依赖以及设备中的可用存储器来管理设备中DNN模型的非冗余层的加载和卸载。如果DNN模型被顺序地执行,并且如果DNN模型的结构存在冗余,则可以顺序地加载DNN模型特定区域的层。类似地,如果DNN模型被并行执行,并且DNN模型的结构存在冗余,则可以同时加载DNN模型的特定区域中的层。如果DNN模型彼此独立执行,则DNN模型之间不存在依赖。因此,DNN模型的层的加载和卸载是独立执行的。本文的实施例包括基于所识别的DNN模型的冗余和跨越多个应用或在应用内的DNN模型之间的依赖来预加载DNN模型的层。
具体实施方式
为了促进对本公开原理的理解,现在将参考附图中所示意的实施例并且将使用特定语言对其进行描述。然而,应当理解,并不由此旨在限制本公开的范围,所示意系统中的这种改变和进一步修改,以及其中所示意的本公开原理的这种进一步应用被预期为本公开所涉及领域的技术人员通常能够想到的。除非另有定义,否则本文使用的所有技术和科学术语具有与本公开所属领域的普通技术人员通常理解的相同的含义。本文提供的系统、方法和示例仅是示意性的,并不旨在进行限制。
本文所使用的术语“一些”被定义为“无、或一个、或多于一个、或全部”。相应地,术语“无”、“一个”、“多于一个”、“多于一个,但不是全部”或“全部”应都落在“一些”的定义之下。术语“一些实施例”可以指代没有实施例或指代一个实施例或指代若干实施例或指代所有实施例。相应地此,术语“一些实施例”被定义为表示“没有实施例、或一个实施例、或多于一个实施例、或所有实施例”。
本文使用的术语和结构用于描述、教导和示意一些实施例及其特定特征和要素,并不限制、约束或缩小权利要求或其等同物的范围。
更具体地,本文使用的任何术语例如但不限于“包括”、“包含”、“具有”、“由...组成”及其语法变体不指定一个确切的限制或约束,当然不排除可能添加一个或多个特征或元件,除非另有说明,此外,不得排除可能删除一个或多个所列特征和元件,除非另有说明用限制性语言“必须包括”或“需要包括”来说明。
无论某个特征或元件是否仅限于仅使用一次,无论哪种方式,它仍然可以被称为“一个或多个特征”或“一个或多个元件”或“至少一个特征”或“至少一个元件”。此外,术语“一个或多个”或“至少一个”特征或元件的使用并不排除没有该特征或元件,除非通过限制语言(例如“必须一个或多个”或“必须一个或多个元件”)另有指定。
除非另有定义,否则本文使用的所有术语,尤其是任何技术和/或科学术语可以被认为具有与本领域普通技术人员通常理解的相同含义。
本文参考了一些“实施例”。应当理解,实施例是所附权利要求中提出的任何特征和/或元件的可能实现方式的示例。为了示意所附权利要求的特定特征和/或元件满足独有性、实用性和非显而易见性的需要的一种或多种潜在方式,已经描述了一些实施例。
短语和/或术语的使用例如但不限于“第一实施例”、“另一实施例”、“备选实施例”、“一个实施例”、“实施例”、“多个实施例”、“一些实施例”、“其他实施例”、“另外实施例”、“进一步实施例”、“附加实施例”或其变体不一定指代相同的实施例。除非另有说明,结合一个或多个实施例描述的一个或多个特定特征和/或元件可以在一个实施例中找到,或可以在多于一个实施例中找到,或可以在所有实施例中找到,或没有实施例中可以找到。尽管一个或多个特征和/或元件可以在本文中仅在单个实施例的上下文中描述,或者备选地在多于一个实施例的上下文中描述,或者进一步备选地在所有实施例的上下文中描述,但是取而代之特征和/或元件可以是单独提供或以任何适当的组合提供或根本不提供。相反,在分开的实施例的上下文中描述的任何特征和/或元件可以备选地被实现为在单个实施例的上下文中一起存在。
在一些实施例的上下文中使用本文中阐述的任何特定和所有细节,因此不应必然将其视为对所附权利要求的限制因素。所附权利要求及其法律等同物能够在除了在以下描述中用作示意性示例的实施例之外的实施例的上下文中实现。
下面将结合附图详细描述本公开的实施例。
在应用启动或模式切换期间加载和卸载DNN模型的处理会消耗时间,从而劣化设备的等待时间性能。如果在CPU/其他处理单元的存储器中预加载DNN模式,则能够跳过DNN模型的加载和卸载。如果设备中安装的应用采用了大量DNN模型,并且如果保持将DNN模型预加载到CPU/其他处理单元中的存储器要求较高,则预加载可能会受到设备的约束。
在应用启动、应用退出和应用内的模式切换期间加载和卸载多个DNN模型的处理会劣化设备的性能。由于复杂DNN模型的显著存储器要求,可能无法预加载所有所需的DNN模型。目前,存在用于优化每个DNN模型的存储器使用的方法。然而,当使用多个DNN模型时,需要保留存储器的特定部分用于存储每个DNN模型。这会限制能够在设备中使用的DNN模型的数量。设备中除了CPU之外的其他处理单元,例如图形处理单元(GPU)、数字信号处理器(DSP)、神经处理单元(NPU)等,可能没有足够的存储器来预加载供设备中的应用使用的所有DNN模型。因此,由于存储器/性能限制,应用的开发人员/设计人员可能会部署更简单的模型,这可能无法在利用所有应用的所有功能方面提高设备的性能。
目前,迁移学习(基于机器学习)被用于开发或创建新DNN模型。在迁移学习中,为执行第一任务而开发的DNN模型能够被重用于执行第二任务。DNN的原始结构也经历了改变以“创建”新DNN模型。最初(在迁移学习期间),识别出具有高精度、低复杂度和小尺寸的预训练的DNN模型。预训练的DNN模型能够被配置为执行第一任务。此后,使用新数据集训练预训练的模型,其中在新数据集与用于预训练DNN模型的数据测试之间存在细微差异。一旦完成使用新数据集的训练,DNN模型就能够执行第二任务。由于迁移学习,DNN模型的结构经历了改变。使用不同的数据集来训练预先保留的DNN模型能够产生不同的新DNN模型。新DNN模型在它们各自的结构中可以具有相似性。因此,如果在设备中部署了多个DNN模型,并且如果每个DNN模型都与其他DNN模型具有结构相似性,那么就会有不必要的存储器使用。
图1是示出了根据本公开实施例的在相机应用的启动和模式切换期间加载和卸载DNN模型的示例场景。考虑相机应用具有两个操作模式,即第一模式和第二模式。如图1所示,考虑当用户启动相机应用时使用第一模式。在第一模式下操作时,相机应用使用两个DNN模型。考虑DNN模型是第一分类器和第一检测器。第一检测器可以检测相机预览中的对象,第一分类器能够对检测到的对象进行分类。
当相机应用在第一模式下操作时,第一分类器和第一检测器加载在一个处理单元(例如:GPU)上。在示例中,在GPU上加载第一分类器和第一检测器所花费的时间约为2.7秒。当存在模式切换时,相机应用开始在第二模式下操作(从第一模式切换之后)。模式切换(从第一模式到第二模式)之后,从GPU卸载第一分类器和第一检测器,加载第二分类器(DNN模型)和第二检测器(DNN模型)。加载第二分类器和第二检测器以及卸载第一分类器和第一检测器所花费的时间可以是2.7秒。当模式从第二模式切换到第一模式时,在卸载第二分类器和第二检测器之后加载第一分类器和第一检测器。因此,加载和卸载分类器和检测器的处理所花费的时间(约2.7秒)劣化了设备的性能。
等待时间性能劣化是由于处理单元的存储器约束,这约束了DNN模型的预加载,也需要频繁加载和卸载。在示例中,模型能够在设备启动时加载。为了保持每个模型被加载到处理单元上,需要加快大量存储器,这是设备的另一约束。随着设备的进步,部署在设备中的模型数量不断增加。大多数模型必须在更快的GPU、DSP和NPU上运行。尽管设备的随机存取存储器(RAM)大小已极大增加,但保持DNN模型预加载到处理单元上所需的存储量可能仍不足。
能够看出,直接在嵌入式设备上部署DNN模型会带来新的挑战,因为DNN模型利用了显著的计算复杂性和存储器需求。
参考在附图中示意并在以下描述中详述的非限制性实施例更全面地解释本文的实施例及其各种特征和有利细节。省略对众所周知的组件和处理技术的描述,以免不必要地模糊本文的实施例。本文使用的示例仅旨在有助于对可以实践本文的实施例的方式的理解并进一步使本领域技术人员能够实践本文的实施例。因此,这些示例不应被解释为限制本文的实施例的范围。
本文的实施例公开了以下方法和系统,其通过识别设备中的深度神经网络(DNN)模型的结构中的冗余来在设备中部署DNN模型、并且基于设备中DNN模型之间的依赖而高效地预加载/加载/卸载DNN模型的层。实施例包括通过确定在多个DNN模型中存在的层来识别DNN模型的结构中的冗余。实施例包括确定与所有DNN模型中的所有层有关的参考计数值。实施例包括遍历每个DNN模型的每一层并初始化与每一层有关的参考计数值。实施例包括如果层被遍历多于一次(在其他DNN模型中),则递增与DNN中的层有关的参考计数值。实施例包括如果与层有关的参考计数值已经递增,则将该层识别为冗余的贡献者。
实施例包括确定在应用内或跨越多个应用的DNN模型之间的依赖。能够通过判定至少两个DNN模型由至少一个应用同时、独立还是顺序执行来确定该至少两个DNN模型之间存在的依赖。本文的实施例包括基于DNN模型的冗余和跨越多个应用或在应用内的DNN模型的依赖来预加载DNN模型的不同层。
现在参考附图,并且更具体地参考图2至图10B,示出了优选实施例,其中贯穿附图相似的附图标记一致地表示对应的特征。
图2示出了根据本公开实施例的设备200的被配置为基于DNN模型的结构中的冗余和DNN模型之间的依赖在设备200中部署DNN模型的各个单元。如图2所示,设备200包括模型冗余分析器201、模型依赖分析器202、模型预加载器203、至少一个处理单元204、存储器205和显示器206。设备200的示例包括但不限于智能手机、平板电脑、笔记本电脑、可穿戴设备、个人计算机(PC)、物联网(IoT)设备或任何其他嵌入式设备。在实施例中,模型冗余分析器201、模型依赖分析器202、模型预加载器203和至少一个处理单元204可以实现为至少一个硬件处理器。
至少一个处理单元204包括中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)和神经处理单元(NPU)中的至少一个。存储器205可以存储在至少一个处理单元204上加载或从至少一个处理单元204卸载的DNN模型。存储器205可以存储与以下项中的至少一项有关的信息:DNN模型的层的细节、DNN模型的结构、至少一个处理单元204中可用的存储器、DNN模型之间的冗余以及DNN模型之间的依赖。该信息能够由模型冗余分析器201、模型依赖分析器202和模型预加载器203中的至少一个获取以管理至少一个处理单元204中的DNN模型的部署。
多个应用可以被安装在设备300中并且一个或多个应用可以利用至少一个DNN模型来执行与应用有关的操作。每个DNN模型包括多个层。DNN模型的部署包括在设备200中加载/预加载DNN模型以及从设备200卸载DNN模型。高效的加载、卸载和预加载能够提高设备200的存储器使用效率和等待时间。
模型冗余分析器201可以识别DNN模型的结构(架构)中的冗余。在一个实施例中,模型冗余分析器201可以通过将每个DNN模型与其他DNN模型进行比较来识别DNN模型的结构(架构)中的冗余。例如,如果设备200包括五个DNN模型,则模型冗余分析器201可以将每个DNN模型与其他四个DNN模型进行比较。比较涉及确定与每个DNN模型的每一层有关的参考计数。模型冗余分析器201可以遍历每个DNN模型的每一层。当第一次遍历DNN模型的层时,模型冗余分析器201可以初始化与DNN模型的层有关的参考计数值。
在遍历第一DNN模型时,如果模型冗余分析器201确定已经遍历了第一DNN模型中的层(例如:第二DNN模型),则模型冗余分析器201将与第一DNN模型中的层有关的参考计数值递增。在实施例中,模型冗余分析器201基于该层的细节来确定DNN模型的层是否已经被遍历。在示例中,细节包括层类型(例如卷积)和其他参数(例如核大小、步幅、填充等)。
如果第一DNN模型的层的细节是独有的,并且与已经遍历过的任何其他DNN模型中的任何其他层的细节都不匹配,则认为该层是独有的。另一方面,如果第一DNN模型中的层的细节与第二DNN模型或已经遍历的任何其他DNN模型中的层的细节匹配,则第一DNN模型和第二DNN模型以及其他DNN模型中的层均被认为对第一DNN模型、第二DNN模型和其他DNN模型的结构中的冗余有贡献。模型冗余分析器201可以将与对冗余有贡献的层有关的参考计数值递增。
在一个实施例中,层的细节包括与层有关的参数,其可以是运算中的学习权重和偏差值。DNN模型的结构可以表示或包括网络中的操作组合。在示例中,该结构包括3×3卷积块,3×3卷积块之后是第一修正线性单元(ReLU)运算块。第一ReLU运算块之后是1×1卷积块和第二ReLU运算块。
一旦确定了与所有DNN模型的所有层有关的参考计数值,那么每个DNN模型的结构就会被拆分为类别,即公共区域和特定区域。在DNN模型中,如果至少一个DNN模型的结构中包括层,则认为该层落在DNN模型的公共区域中。类似地,如果该层是DNN模型的独有层,则该层落在DNN模型的特定区域中。归类操作使得能够确定DNN模型的结构中的冗余的贡献者。模型冗余分析器201可以生成作为树的优化模型数据,其中根节点包括具有最高参考计数的层。后续级别中的层具有较小的参考计数值。叶节点由具有最小参考计数值的层组成,并表示DNN模型的落在各个DNN模型的结构的特定区域中的独有层。
模型依赖分析器202可以确定要在设备200中部署的DNN模型之间的依赖。依赖指示应用执行DNN模型的顺序以及被加载到处理单元204或从处理单元204卸载的DNN模型的不同层(尤其是各个DNN模型的特定区域中的层)被执行的顺序。
DNN模型之间的依赖可以存在于应用中,其中至少两个DNN模型由应用顺序或并行执行。依赖可以跨越一个或多个应用,其中至少两个DNN模型由各个应用依次或并行执行。如果至少两个DNN模型独立运行,则不同DNN模型之间不存在依赖。
模型依赖分析器202生成用于示出DNN模型之间的依赖的模型依赖图。在实施例中,可以使用由执行DNN模型的应用提供的信息来确定依赖。该信息指定DNN模型是顺序、并行还是独立的。模型依赖图的节点表示DNN模型,连接节点的边缘表示应用执行DNN模型的顺序。连接模型依赖图的节点的边缘的类型指定应用执行DNN模型的顺序。边缘的类型指定DNN模型是应同时加载还是顺序加载。在实施例中,如果存在连接两个DNN模型的定向边缘,则首先执行表示源节点(定向边缘的来源)的DNN模型,其次执行表示目的地节点的DNN模型。因此,定向边缘指定DNN模型被顺序执行。在另一实施例中,如果两个DNN模型之间存在非定向边缘,则由非定向边缘连接的DNN模型被并行执行。在又一实施例中,如果两个DNN模型之间没有边缘,则DNN模型被彼此独立地执行。模型预加载器203可以使用模型依赖图来确定需要预加载的DNN模型的层。
模型预加载器203基于DNN模型的结构中的冗余以及跨越多个应用或在应用内的DNN模型之间的依赖来预加载DNN模型的层。模型预加载器203获取优化模型数据、模型依赖图、以及至少一个处理单元204中用于预加载DNN模型的层的可用存储器。预加载减少了等待时间。模型预加载器203确保公共区域中的层不会被多次预加载。
在实施例中,可以预加载对冗余有贡献的DNN模型的层。基于与层有关的参考计数值,可以为对冗余有贡献的DNN模型层分配优先级。如果与DNN模型中的某个层有关的参考计数值较高,则分配的优先级较高。类似地,如果与DNN模型中的层有关的参考计数值较低,则分配的优先级较低。可以基于优先级,在至少一个处理单元204中预加载对冗余有贡献的DNN模型的层。
基于模型依赖图、优化模型数据和至少一个处理单元204中的可用存储器,模型预加载器203可以基于至少一个处理单元204中可用的存储器来确定要加载或卸载的DNN模型的层。模型预加载器203可以在至少一个处理单元204的存储器中加载/卸载DNN模型的结构的部分(公共区域和/或特定区域)。加载器203可以基于至少一个处理单元204共享的存储器来确定在卸载/加载DNN模型时要保持加载/卸载的DNN模型的结构的部分。
图2示出了设备200的示例性单元,但是应当理解,其他实施例不限于此。在其他实施例中,设备200可以包括更少或更多数量的单元。此外,单元的标签或名称仅用于示意目的,并不限制实施例的范围。一个或多个组件可以组合在一起以在设备200中执行相同或基本类似的功能。
图3A是示出了根据本公开实施例的用于基于DNN模型的结构中的冗余和DNN模型之间的依赖在设备200中部署DNN模型的方法的流程图300。在步骤301,该方法包括基于在设备200中的不同DNN模型中存在相同层来识别每个DNN模型的结构中的冗余。在实施例中,可以通过确定与每个DNN模型的所有层有关的参考计数值并比较参考计数值,将每个DNN模型与其他DNN模型进行比较。
实施例包括在第一次遍历DNN模型的层时,遍历DNN模型的层和初始化与DNN模型的层有关的参考计数值。如果在遍历不同的DNN模型时确定先前已经遍历了DNN模型的层,则将与DNN模型的层有关的参考计数值递增。实施例包括基于DNN模型的层的细节来确定该层是否已经被遍历。实施例包括如果与DNN模型的层有关的参考计数值递增,则识别该DNN模型的层对冗余有贡献。
基于与所有DNN模型的所有层有关的参考计数值,实施例包括将DNN模型的结构归类为两个类别,即公共区域和特定区域。落在DNN模型的公共区域中的层对冗余有贡献。落在DNN模型的特定区域中的层是DNN模型独有的。实施例包括生成示出了不同DNN模式的层的参考计数值的优化模型数据。在实施例中,优化模型数据是树,其中根节点中的层具有最高的参考计数。树的叶节点由具有最小参考计数值的层组成,并表示各个DNN模型中的独有层。
在步骤302,该方法包括根据应用或多个应用的执行顺序确定DNN模型之间的依赖。实施例包括确定DNN模型之间的依赖以确认应用/多个应用执行特定DNN模型的顺序。该顺序指定了要加载DNN模型的不同层以供至少一个处理单元204执行的顺序以及执行完成之后要从至少一个处理单元204卸载DNN模型的不同层的顺序。
基于DNN模型之间的依赖,实施例包括确定至少两个DNN模型由应用顺序还是并行执行。如果顺序执行至少两个DNN模型,则至少两个DNN模型的加载(或者如果在至少一个处理单元204中没有足够的存储器可用,则卸载)遵循执行的顺序。如果并行执行至少两个DNN模型,则同时加载至少两个DNN模型,其中避免了在至少两个DNN层的公共区域中多次加载层。如果至少两个DNN模型独立运行,则不同DNN模型之间不存在依赖。
实施例包括生成示出了DNN模型之间的依赖的模型依赖图。模型依赖图的节点代表DNN模型,并且连接节点的边缘表示执行DNN模型的顺序。连接模型依赖图的节点的边缘的类型指定DNN模型被执行的顺序。如果存在连接两个DNN模型的定向边缘,则首先执行表示源节点的DNN模型,然后执行表示目的地节点的DNN模型。如果两个DNN模型之间存在非定向边缘,则并行执行由非定向边缘连接的DNN模型。
在步骤303,该方法包括基于所识别的DNN模型的结构中的冗余和DNN模型之间的依赖来预加载、加载和卸载DNN模型的层。实施例包括基于与DNN模型的层有关的参考计数值将优先级分配给对冗余有贡献的DNN模型的层。分配给DNN模型的层的优先级和与DNN模型中的层相关的参考计数值成正比。实施例包括基于分配的优先级在至少一个处理单元204中预加载DNN模型的层,其中预加载的层对DNN模型的结构的冗余有贡献。实施例设置优先级,因为至少一个处理单元204可能不具有足够的存储器来保持始终预加载所有DNN模型的所有层。
实施例包括基于可用存储器(由至少一个处理单元204确定的存储器容量的可用性)来确定要加载或卸载的DNN模型的层。实施例包括将DNN模型的结构的公共区域和/或特定区域中的层加载到至少一个处理单元204的存储器中。实施例包括如果至少一个处理单元204的存储器不足,则卸载DNN模型的结构的公共区域和/或特定区域中的层。该实施例包括基于由至少一个处理单元204共享的存储器确定在卸载/加载DNN模型时保持加载/卸载DNN模型的结构的部分。
在实施例中,上述方法可以由设备200的处理单元204执行。
流程图300中的各种动作可以以呈现的顺序、以不同的顺序或同时执行。此外,在一些实施例中,可以省略图3中列出的一些动作。
图3B是示出了根据本公开实施例的用于管理DNN模型的方法的流程图310。
参考图3B,在步骤311,处理单元204可以提取与多个DNN模型中的每一个相关联的信息。与多个DNN模型中的每一个相关联的信息可以包括多个DNN模型中的每一个的参数和结构。与层相关的参数可以是在设备内执行的运算内的学习权重和偏差值。
在步骤313,处理单元204可以从信息中识别多个DNN模型共有的公共信息。
在步骤315,处理单元204可以将公共信息分离并存储到设备中的指定位置。
在步骤317,处理单元204可以控制多个DNN模型中的至少一个DNN模型以访问公共信息。在实施例中,处理单元204可以基于设备的可预加载存储容量来预加载公共信息的子集。
在实施例中,处理单元204可以在多个DNN模型中确定与设备上安装的每个应用相关联的依赖模型。依赖模型可以包括以下项中的至少一项:需要与多个DNN模型中的其他模型同时运行的模型、以及具有与多个DNN模型中的其他模型相关的固定执行顺序的模型。具有与多个DNN模型中的其他模型相关的固定执行顺序的模型可以包括以下中的至少一个:要与多个DNN模型中的其他模型相关地串行执行的模型、以及要与多个DNN模型中的其他模型并行执行的模型。
图4是示出了根据本公开实施例的两个DNN模型中的冗余识别的示例。如图4所示,考虑要在设备200上部署两个DNN,即网络1和网络2。考虑网络1和网络2已经通过迁移学习而获得,其中使用不同的数据集对预训练的DNN模型进行训练,以获得DNN模型,即网络1和网络2。因此,网络1和网络2可以具有结构相似性,这对网络1和网络2的结构中的冗余有贡献。网络1和网络2的节点表示DNN模型的层。
模型冗余分析器201可以遍历网络1和网络2的层以确定存在于两个DNN(即网络1和网络2)中的层。将存在于网络1和网络2二者(的一部分)中的层识别为对冗余有贡献。考虑模型冗余分析器201首先遍历网络1的层,随后遍历网络2的层。当第一次遍历特定层时,模型冗余分析器201初始化与特定层有关的参考计数。考虑模型冗余分析器201是第一次遍历网络1,在遍历期间初始化网络1的所有层。
一旦完成了网络1的遍历,模型冗余分析器201就可以开始遍历网络2的层。模型冗余分析器201可以递增与存在于网络1和网络2二者中的那些层相关的参考计数值。模型冗余分析器201可以基于与层有关的参数和层的权重,在确定那些层相同时递增参考计数值。初始化与网络2的其余层有关的参考计数值。将关联的参考计数已递增的层识别为对冗余有贡献(标记为绿色)。
此后,基于参考计数值,对网络1和网络2的结构进行归类以生成优化模型数据。将结构归类为公共区域(对冗余有贡献)和特定区域(非冗余)。将网络(DNN模型)的结构分类为公共区域和特定区域之一实现了对设备200的存储的最佳利用。实施例防止数据的冗余存储和独立于特定芯片组或处理器。模型冗余分析器201允许将网络部署在任何芯片组或处理单元上。
图5是示出了根据本公开实施例的优化模型数据的生成的示例,其中优化模型数据指示由设备200中安装的相机应用利用的四个DNN模型中的冗余和非冗余层。相机应用可以在两种模式(即第一模式和版本模式)下操作。当相机应用在第一模式下操作时,执行第一分类器和第一检测器。当相机应用在第二模式下操作时,执行第二分类器和第二检测器。用户可以在使用相机应用的同时切换操作模式,从而执行相关的分类器和检测器。
模型冗余分析器201可以遍历第一分类器、第一检测器、第二分类器和第二检测器的层以确定存在于所有四个DNN模型中的层。存在于至少两个DNN模型中的层可以被认为对第一分类器、第一检测器、第二分类器和第二检测器的结构中的冗余有贡献。落入第一分类器、第一检测器、第二分类器和第二检测器的结构的特定区域中的层是独有层。
如图5所示,考虑在第一分类器、第一检测器、第二分类器和第二检测器中存在242个层。优化模型数据呈现为树,其中具有较高参考计数的层充当具有较低参考计数的层的父级。叶节点处的层是各个DNN模型中的独有层。
考虑层0-158存在于第一分类器、第一检测器、第二分类器和第二检测器中。这些层对四个DNN的结构中的冗余有贡献。层0-158中的每一层的参考计数为4,因为层0-158存在于第一分类器、第一检测器、第二分类器和第二检测器中。层159-217存在于第一分类器和第二分类器中。层159-217的参考计数为2。层159-189存在于第一检测器和第二检测器中。层159-189的参考计数为2。其余层是非冗余的,对于相应的DNN模型是独有的。层218-219对于第一分类器是独有的,层218-219对于第二分类器是独有的,层190-235对于第二检测器是独有的,并且层190-242对于第一检测器是独有的。独有层的参考计数为1,是叶节点。
可以注意到,159-189存在于第一分类器、第一检测器、第二分类器和第二检测器中。层218-219存在于第一分类器和第二分类器中。层190-235存在于第一检测器和第二检测器中。然而,这些层中的内容是不同的,因此不被认为是相同的。如果这些层被认为是相同的,那么与这些层有关的参考计数值应已经递增并被放置在父级别节点中(相对于当前级别)。
第一分类器、第一检测器、第二分类器和第二检测器因此共享它们各自的结构,因为在公共区域中存在层。第一分类器和第二分类器共享90%的结构,即第一分类器的90%的层存在于第二分类器中。第一检测器和第二检测器共享70%的结构,即第一检测器的70%的层存在于第二分类器中。模型冗余分析器201允许用新数据集重新训练结构。如果已经加载了第一分类器的层,并且用户执行模式切换,这需要加载第二分类器,则实施例不需要加载第二分类器的整个结构。替代地,仅需要加载第二分类器独有的10%的层。因此,在运行DNN模型时不需要加载公共区域中的层(不存在于叶节点中的层)。如果先前加载的DNN模型与当前执行的DNN模型共享结构,则仅需加载DNN模型的独有层。因此,优化模型数据允许可视化DNN模式的结构中的冗余,这可以用于高效的预加载。
图6是示出了根据本公开实施例的在设备200的不同处理单元中加载DNN模型的示例。考虑四个DNN模型(即模型1、模型2、模型3和模型4)由设备200中安装的三个应用(应用1、应用2和应用3)执行。考虑应用1执行模型1和模型2,应用2执行模型3,应用3执行模型4。设备200包括四个处理单元,即DSP、NPU、CPU和GPU。DNN模型在四个处理单元的存储器上的加载进一步基于模型依赖图。
模型依赖图基于连接模型依赖图的节点(DNN模型)的边缘的类型来示出DNN模型之间的依赖。模型依赖图的边缘指定DNN模型应并行加载还是顺序加载。如果两个DNN模型之间存在定向边缘,则顺序执行DNN模型。如图6中的示例所示,模型1和模型2之间存在定向边缘,其中模型1充当源节点,模型2充当目的地节点。模型2的执行在模型1的执行之后。
模型1和模型2独立于模型3和模型4。模型3独立于模型1、模型2和模型4。模型4独立于模型1、模型2和模型3。因此,在模型1和模型3之间,在模型1和模型4之间,在模型2和模型3之间,在模型2和模型4之间,以及在模型3和模型4之间不存在边缘。模型依赖图用于管理处理单元中DNN模型的加载/卸载。
图7是示出了根据本公开实施例的模型依赖图的生成的示例,模型依赖图指示由设备200中安装的相机应用利用的四个DNN模型之间的依赖。相机应用可以在第一模式和版本模式下操作。当在第-模式下操作时,执行第一分类器和第一检测器。当在第二模式下操作时,执行第二分类器和第二检测器。当存在模式切换时,执行相关的分类器和检测器。
模型依赖分析器202可以确定第一分类器、第一检测器、第二分类器和第二检测器之间的依赖。依赖存在于由相机应用执行的DNN模型之间。第一检测器和第一分类器被顺序执行。在第一模式下,首先执行第一检测器,随后执行第一分类器。模型依赖图的边缘指定了DNN模型应被加载的顺序。由于第一检测器和第一分类器是顺序执行的,因此在加载第一检测器之后加载第一分类器。因此,第一检测器和第一分类器之间存在定向边缘,其中第一检测器表示源节点,第一分类器表示目的地节点。
当存在从第一模式到第二模式的模式切换时,执行第二检测器和第二分类器。第二检测器和第二分类器被顺序执行,即首先执行第二检测器,然后执行第二分类器。由于第二检测器和第二分类器被顺序执行,因此首先加载第二检测器,然后加载第二分类器。因此,第二检测器和第二分类器之间存在定向边缘,其中第二检测器表示源节点,第二分类器表示目的地节点。
第一检测器和第一分类器独立于第二检测器和第二分类器执行。因此,第一检测器与第二检测器和第二分类器中的任一个之间不存在依赖。类似地,第一分类器与第二检测器和第二分类器中的任何一个之间不存在依赖。因此,模型依赖图由两个模型依赖子图组成。
图8是示出了根据本公开实施例的检测器DNN模型和分类器DNN模型的顺序执行的用例场景,其中检测器DNN模型和分类器DNN模型用于在相机应用捕获的媒体的感兴趣区域(ROI)中检测对象并对检测到的对象进行分类。考虑使用相机应用捕获帧。在相机应用的两种模式(即场景检测器模式和Bixby第二模式)下,对帧执行检测器模型(第一或第二)以获得帧中的至少一个ROI。考虑已经获得了三个ROI,其中每个ROI包括至少一个检测到的对象。在检测到ROI之后,对每个ROI执行分类器模型(第一或第二)以对三个ROI中的每一个中的对象进行分类。
可以获得帧的一系列DNN推断。单个检测器推断之后是三个分类器推断(每个ROI一个)。第一分类器依赖于第一检测器,需要在第一检测器模型已加载之后被加载。类似地,第二分类器依赖于第二检测器模型,需要在第二检测器模型已加载之后被加载。除了上述之外,实施例包括收集与分类器和检测器要被执行的顺序有关的信息。
实施例允许重新使用先前用于执行检测器模型的输入/输出(IO)和内部存储器,以执行分类器模型。由于使用模型依赖图获得的信息,因此支持重新使用。例如,使用模型依赖图,实施例可以确定在执行检测器之后执行分类器。因此检测器和分类器模型不是同时加载的,如果检测器和分类器模型的结构中存在冗余,则加载分类器的非冗余部分。这使得能够改善设备200的存储器使用效率和等待时间。可以注意到,可以同时添加检测器和分类器模型,但是由于检测器和分类器模型是顺序执行的,因此可以重新使用存储器。
图9是示出了根据本公开实施例的由模型预加载器203在设备200的不同处理单元中预加载DNN模型的示例。如图9所示,模型预加载器203获得模型依赖图和优化模型数据。模型预加载器203确定每个处理单元204中的可用存储器。基于模型依赖图、优化模型数据和可用存储器,模型预加载器203可以选择需要预加载的DNN模型的层。模型预加载器203可以判定在每个处理单元204的存储器中是否加载/卸载DNN模型的结构的部分,判定在卸载/加载DNN模型时要保持加载/卸载DNN模型的结构的部分以及在处理单元204的存储器中加载的DNN模型之间共享的存储器。
图10A和图10B是示出了根据本公开实施例的基于模型依赖图和优化模型数据的由相机应用使用的DNN模型的预加载/加载/卸载的用例场景。相机应用的操作模式是第一模式和第二模式。如图10A和图10B所示,与相机应用执行DNN模型有关的模型依赖图以及优化模型数据被用于确定执行模型时要加载的层、模型执行完成时要卸载的层、以及模型执行完成之后需要保持加载的模型的层。如果足够的存储器可用于保持加载,则不需要卸载灰色块(标记为B)。否则,可以删除或卸载这些块以节省存储器,以便可以加载其他所需的块。
考虑NPU和DSP共享它们各自的内部存储器。考虑最初使用第二模式。因此,可以在DSP和NPU中加载或从DSP和NPU卸载第二检测器和第二分类器。第二检测器首先加载到DSP上,并且基于使用优化模型数据识别的冗余,在执行第二检测器之后,将第二分类器结构的特定区域(由非冗余层组成)加载到NPU上。第二检测器和第二分类器共享公共区域(层0-158)。由于NPU和DSP共享它们各自的存储器,因此不需要再次加载冗余层。
在另一场景下,可以将第二检测器预加载到DSP上,并且当相机应用切换到第二模式时,在执行了第二检测器(第二检测器已检测到相机捕获到的对象)之后,可以将第二分类器的特定区域加载到NPU上。如果DSP和/或NPU的存储器中有足够的可用空间,则在加载第二分类器的特定区域期间,不需要卸载第二检测器的特定区域。
在又一场景下,第二分类器可以预加载到NPU上,当相机应用切换到第二模式时,可以将第二检测器的特定区域加载到DSP上。如果DSP和/或NPU的存储器中有足够的可用空间,则在加载第二检测器的特定区域期间,不需要卸载第二分类器的特定区域。
当使用第一模式时,可以将第一检测器和第一分类器加载在DSP和NPU中或从DSP和NPU卸载。首先将第一检测器加载到DSP上,并且基于使用优化模型数据识别出的冗余,在第一检测器执行之后将第一分类器结构的特定区域(由非冗余层组成)加载到NPU上。基于优化模型数据,添加了第一检测器的特定区域。这是因为第二分类器和第一检测器共享公共区域(层0-217)。
在另一场景下,可以将第一检测器预加载到DSP上,并且当相机应用切换到第二模式时,在第一检测器执行之后将第一分类器的特定区域加载到NPU上。如果DSP和/或NPU的存储器中有足够的可用空间,则在NPU中加载第一分类器的特定区域期间,不需要从DSP卸载第一检测器的特定区域。可以注意到,第一检测器和第一分类器共享公共区域(层0-158)。
在又一场景下,第一分类器可以预加载到NPU上,并且当相机应用切换到第一模式时,可以将第一检测器的特定区域加载到DSP上。如果DSP和/或NPU的存储器中有足够的可用空间,则在DSP中加载第一检测器的特定区域期间,不需要从NPU卸载第一分类器的特定区域。
实施例允许在预加载期间提高存储器利用率。实施例有助于在使用加载单个DNN模型所需的稍高的存储器的同时预加载多个DNN模型。
本文公开的实施例可以通过在至少一个硬件设备上运行并执行网络管理功能以控制网络元件的至少一个软件程序来实现。图2中所示的网络元件包括可以是硬件设备或者硬件设备和软件模块的组合中的至少一个的块。
本文公开的实施例描述了用于基于不同深度神经网络(DNN)模型中的冗余层和DNN模型之间的依赖在设备中部署DNN模型的方法和系统。因此,可以理解为保护范围扩展到这样的程序,并且除了其中具有消息的计算机可读装置之外,这样的计算机可读存储装置还包含程序代码装置,当该程序在服务器或移动设备或任何合适的可编程设备上运行时,程序代码装置用于实现方法的一个或多个步骤。该方法在优选实施例中通过或与以例如超高速集成电路硬件描述语言(VHDL)等另一编程语言编写的软件程序一起实现,或通过一个或多个VHDL或在至少一个硬件设备上执行的若干软件模块来实现。硬件设备可以是可以编程的任何类型的便携式设备。该设备还可以包括例如以下装置:硬件装置,例如专用集成电路(ASIC),或硬件和软件装置的组合,例如ASIC和现场可编程门阵列(FPGA),或软件模块所处的至少一个微处理器和至少一个存储器。本文描述的方法实施例可以部分地以硬件和部分地以软件来实现。备选地,本公开可以例如使用多个中央处理单元(CPU)在不同的硬件设备上实现。
附图和前述描述给出了实施例的示例。本领域技术人员将认识到,所描述的元件中的一个或多个可以很好地组合成单个功能元件。备选地,某些元件可以拆分为多个功能元件。来自一个实施例的元件可以添加到另一实施例中。例如,本文描述的处理的顺序可以改变并且不限于本文描述的方式。
此外,任何流程图的动作既不需要按所示顺序执行;也不一定需要执行所有动作。同样,不依赖于其他动作的那些动作可以与其他动作并行执行。实施例的范围不意味着由这些具体示例来限制。许多变化(无论是否在规范中明确给出,例如结构、尺寸和材料使用的差异)都是可能的。实施例的范围至少与所附权利要求给出的一样宽。
上面已经关于特定实施例描述了益处、其他优点和问题的解决方案。但是,益处、优点、问题的解决方案以及可以引起任何益处、优点或解决方案出现或变得更加明显的任何组件均不得解释为任何或所有权利要求的关键、必需或基本特征或组件。
尽管已使用特定语言来描述本主题,但并不旨在因此而产生任何限制。对本领域技术人员来说显而易见的是,可以对该方法进行各种工作修改以实现如本文所教导的本发明构思。附图和前述描述给出了实施例的示例。本领域技术人员将认识到,所描述的元件中的一个或多个可以很好地组合成单个功能元件。备选地,某些元件可以拆分为多个功能元件。来自一个实施例的元件可以添加到另一实施例中。

Claims (15)

1.一种在设备上管理深度神经网络DNN模型的方法,所述方法包括:
提取与多个DNN模型中的每一个相关联的信息;
从所述信息中识别所述多个DNN模型之上共有的公共信息;
将所述公共信息分离并存储到所述设备中的指定位置;并且
控制所述多个DNN模型中的至少一个DNN模型以访问所述公共信息。
2.根据权利要求1所述的方法,其中,与所述多个DNN模型中的每一个相关联的信息包括所述多个DNN模型中的每一个的参数和结构。
3.根据权利要求1所述的方法,还包括:
基于所述设备的可预加载存储器容量,预加载所述公共信息的子集。
4.根据权利要求3所述的方法,还包括:
在所述多个DNN模型之中,确定与所述设备上安装的每个应用相关联的依赖模型,
其中,所述依赖模型包括以下项中的至少一个:需要与所述多个DNN模型中的其他模型同时运行的模型、以及具有与所述多个DNN模型中的其他模型相关的固定执行顺序的模型。
5.根据权利要求4所述的方法,其中,具有与所述多个DNN模型中的其他模型相关的固定执行顺序的模型包括以下项中的至少一个:
要与所述多个DNN模型中的其他模型相关地串行执行的模型;以及
要与所述多个DNN模型中的其他模型并行执行的模型。
6.一种管理深度神经网络DNN模型的装置,所述装置包括:
存储器;以及
处理器,配置为:
基于在至少两个DNN模型中存在至少一层,识别所述至少两个DNN模型的结构中的冗余,
确定所述至少两个DNN模型之间的依赖,所述依赖指定执行所述至少两个DNN模型的模式,并且
基于所述至少两个DNN模型的冗余和依赖,部署所述至少两个DNN模型。
7.根据权利要求6所述的装置,其中,对所述至少两个DNN模型的部署还基于所述存储器的容量的可用性来执行。
8.根据权利要求6所述的装置,其中,所述至少两个DNN模型中的所述至少一层的存在是基于与所述至少两个DNN模型的结构中的所述至少一层相关联的至少一个参考计数值来检测的,
其中,所述参考计数值在对所述至少两个DNN模型的结构进行初始遍历期间被初始化。
9.根据权利要求8所述的装置,其中,当在所述至少两个DNN模型中遍历所述至少一层时,与所述至少一层相关联的所述至少一个参考计数值递增,其中所述至少两个DNN模型中的所述至少一层对所述至少两个DNN模型的结构中的冗余有贡献。
10.根据权利要求9所述的装置,其中,所述处理器被配置为当与层相关联的参考计数值递增时,确定所述层对所述结构中的冗余有贡献。
11.根据权利要求9所述的装置,其中,所述处理器被配置为在执行所述至少两个DNN模型之前,预加载对所述冗余有贡献的至少一层。
12.根据权利要求6所述的装置,其中,执行所述至少两个DNN模型的模式包括:
由应用顺序地执行所述至少两个DNN模型;以及
由应用并行执行所述至少两个DNN模型。
13.根据权利要求6所述的装置,其中,所述处理器被配置为基于所述至少两个DNN模型的冗余和依赖,预加载所述至少两个DNN模型的层。
14.根据权利要求13所述的装置,其中,所述处理器被配置为基于与所述至少两个DNN模型的层相关联的参考计数值,向所述至少两个DNN模型的层中的每一层分配优先级,并且其中对所述至少两个DNN模型的预加载还基于所分配的优先级。
15.根据权利要求6所述的装置,其中,所述处理器被配置为确定与所述至少两个DNN模型的所有层相关联的参考计数值,并基于所述参考计数值比较所述至少两个DNN模型中的每一个。
CN202080045137.2A 2019-06-28 2020-06-29 管理神经网络模型的方法和装置 Pending CN113994388A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN201941025814 2019-06-28
IN201941025814 2020-06-28
PCT/KR2020/008486 WO2020263065A1 (en) 2019-06-28 2020-06-29 Method and apparatus for managing neural network models

Publications (1)

Publication Number Publication Date
CN113994388A true CN113994388A (zh) 2022-01-28

Family

ID=74062113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080045137.2A Pending CN113994388A (zh) 2019-06-28 2020-06-29 管理神经网络模型的方法和装置

Country Status (5)

Country Link
US (1) US20220076102A1 (zh)
EP (1) EP3959663A4 (zh)
KR (1) KR20220028096A (zh)
CN (1) CN113994388A (zh)
WO (1) WO2020263065A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4165828A4 (en) 2020-09-03 2023-11-29 Samsung Electronics Co., Ltd. METHOD AND WIRELESS COMMUNICATION NETWORKS FOR HANDLING A DATA-DRIVEN MODEL

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2122542B1 (en) * 2006-12-08 2017-11-01 Medhat Moussa Architecture, system and method for artificial neural network implementation
US9665823B2 (en) * 2013-12-06 2017-05-30 International Business Machines Corporation Method and system for joint training of hybrid neural networks for acoustic modeling in automatic speech recognition
US10686869B2 (en) * 2014-09-29 2020-06-16 Microsoft Technology Licensing, Llc Tool for investigating the performance of a distributed processing system
KR101803409B1 (ko) * 2015-08-24 2017-12-28 (주)뉴로컴즈 다중 계층 신경망 컴퓨팅 장치 및 방법
US10235994B2 (en) * 2016-03-04 2019-03-19 Microsoft Technology Licensing, Llc Modular deep learning model
GB2549554A (en) * 2016-04-21 2017-10-25 Ramot At Tel-Aviv Univ Ltd Method and system for detecting an object in an image
AU2016203619A1 (en) * 2016-05-31 2017-12-14 Canon Kabushiki Kaisha Layer-based operations scheduling to optimise memory for CNN applications
US10656962B2 (en) * 2016-10-21 2020-05-19 International Business Machines Corporation Accelerate deep neural network in an FPGA
WO2019031858A1 (en) 2017-08-08 2019-02-14 Samsung Electronics Co., Ltd. METHOD AND APPARATUS FOR DETERMINING MEMORY NEEDS IN A NETWORK

Also Published As

Publication number Publication date
US20220076102A1 (en) 2022-03-10
EP3959663A4 (en) 2022-11-09
EP3959663A1 (en) 2022-03-02
WO2020263065A1 (en) 2020-12-30
KR20220028096A (ko) 2022-03-08

Similar Documents

Publication Publication Date Title
Zhang et al. DNNBuilder: An automated tool for building high-performance DNN hardware accelerators for FPGAs
US11704553B2 (en) Neural network system for single processing common operation group of neural network models, application processor including the same, and operation method of neural network system
US11556778B2 (en) Automated generation of machine learning models
US20140359563A1 (en) Efficient execution of graph-based programs
US8924701B2 (en) Apparatus and method for generating a boot image that is adjustable in size by selecting processes according to an optimization level to be written to the boot image
US11301705B2 (en) Object detection using multiple neural network configurations
WO2024007849A1 (zh) 面向智能计算的分布式训练容器调度
CN108764374B (zh) 图像分类方法、系统、介质和电子设备
WO2023160290A1 (zh) 神经网络推理加速方法、目标检测方法、设备及存储介质
US11797876B1 (en) Unified optimization for convolutional neural network model inference on integrated graphics processing units
CN113923472B (zh) 视频内容分析方法、装置、电子设备及存储介质
CN113994388A (zh) 管理神经网络模型的方法和装置
Oro et al. Work-efficient parallel non-maximum suppression kernels
CN112214321B (zh) 一种新增微服务的节点选择方法、装置及微服务管理平台
CN113496479A (zh) 用于处理检测框的设备和方法
JP2019028689A (ja) 不要ファイル検出装置、不要ファイル検出方法および不要ファイル検出プログラム
JP2021005379A (ja) 深層学習チップを検出する方法、装置、電子機器、およびコンピュータ記憶媒体
US20230185625A1 (en) Workload characterization-based capacity planning for cost-effective and high-performance serverless execution environment
JP2021018711A (ja) タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム
US20220327680A1 (en) Information processing apparatus, information processing method, and computer readable medium
CN112822425B (zh) 一种用于生成高动态范围图像的方法与设备
CN115795342B (zh) 一种业务场景分类的方法、装置、存储介质及电子设备
US20230244534A1 (en) Electronic device and controlling method of electronic device
KR101395007B1 (ko) 복수의 프로세서를 이용한 스냅샷 이미지 처리 장치 및 방법
US20240096085A1 (en) Method for compressing an ai-based object detection model for deployment on resource-limited devices

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