CN114902243A - 电子设备及其控制方法 - Google Patents
电子设备及其控制方法 Download PDFInfo
- Publication number
- CN114902243A CN114902243A CN202080090736.6A CN202080090736A CN114902243A CN 114902243 A CN114902243 A CN 114902243A CN 202080090736 A CN202080090736 A CN 202080090736A CN 114902243 A CN114902243 A CN 114902243A
- Authority
- CN
- China
- Prior art keywords
- weight
- information
- class
- index
- electronic device
- 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
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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种电子设备。所述电子设备包括:存储器,被配置为存储第一信息和第二信息;以及处理器,被配置为基于电子设备的资源信息,通过加载第一信息获得第一权重矩阵,或者通过加载第一信息和第二信息获得第二权重矩阵,其中,第一信息包括与第一权重矩阵相关的权重和与所述权重对应的第一索引,并且,第二信息包括用于获得第二权重矩阵的附加权重和与附加权重对应的第二索引。
Description
技术领域
与本公开一致的装置和方法涉及电子设备及其控制方法,更具体地,涉及执行神经网络权重减少(weight reduction)操作的电子设备及其控制方法。
背景技术
在资源有限的电子设备中执行深度神经网络(DNN)时,将现有神经网络转换为更小(简单)神经网络模型的神经网络权重减少技术非常重要。这是因为,通过神经网络的权重减少,可以减少参数的大小,从而减少传输引起的功耗和存储器带宽,并且通过使用压缩参数进行计算,可以大大减少计算量。
大多数DNN操作被配置为输入(特征)和权重(或参数)的乘积,并且将某些参数的值强制为0被称为修剪(pruning)。在应用修剪时,可以只压缩具有非0值的参数,以减少数据传输量,并且可以将具有0值的参数排除在计算之外,从而大大减少计算量。然而,随着训练的参数值改变,它可能与实际准确度有所不同。因此,可以通过再训练过程恢复到修剪之前的近似准确度。
发明内容
技术问题
如上所述,通过使用神经网络权重减少操作,可以降低功耗并减少计算量。然而,在相关技术中,一旦已经确定了神经网络的权重减少方法,就存在确定的权重减少方法仅被操作并且无法进行可扩展性的问题。具体而言,存在根据电子设备的资源仅统一应用神经网络权重减少、并且由于根据电子设备的各种情形统一应用权重减少方法所以无法进行高效操作的问题。
问题的解决方案
本公开的实施例克服了上述缺点和上面未描述的其他缺点。此外,本公开不要求克服上述缺点,并且本公开的实施例可以不克服上述任何问题。
本公开提供了一种考虑电子设备的资源信息来执行神经网络权重减少操作的电子设备及其控制方法。
根据本公开的一个实施例,一种电子设备包括:存储器,被配置为存储第一信息和第二信息;以及处理器,被配置为基于电子设备的资源信息,通过加载第一信息获得第一权重矩阵,或者通过加载第一信息和第二信息获得第二权重矩阵,其中,第一信息包括与第一权重矩阵相关的权重和与权重对应的第一索引,并且第二信息包括用于获得第二权重矩阵的附加权重和与附加权重对应的第二索引。
处理器可以被配置为:通过将输入数据输入到使用第一权重矩阵或第二权重矩阵的人工智能模型来获得输出数据,并且在电子设备的资源信息被改变的基础上,基于第一权重矩阵获得第二权重矩阵或者基于第二权重矩阵获得第一权重矩阵。
可以基于包括在第一信息中的权重和第一索引、附加权重和第二索引来获得第二权重矩阵。
处理器可以被配置为通过基于第一索引和第二索引将附加权重与包括在第一信息中的权重组合来获得第二权重矩阵。
处理器可以被配置为:基于第一索引确定与第一索引对应的权重在第二权重矩阵中的位置,基于第二索引确定与第二索引对应的附加权重在第二权重矩阵中的位置,基于与第一索引对应的权重的位置和与第二索引对应的权重的位置,改变第一索引或第二索引中的至少一个,并基于权重的位置、附加权重的位置和改变的索引获得第二权重矩阵。
资源信息可以包括电子设备的内部存储器的可用容量、电子设备的功率状态、在电子设备中执行的应用的资源或在电子设备中执行的人工智能模型的资源中的至少一个。
第一信息可以包括通过修剪权重信息中小于第一阈值的权重获得的信息中的第二阈值或更大的权重以及与第二阈值或更大的权重对应的索引,并且第二信息可以包括通过修剪获得的信息中小于第二阈值的权重和与小于第二阈值的权重对应的索引。
处理器可以被配置为通过基于第一信息执行第一训练来改变第一信息,通过基于第一信息和第二信息执行第二训练来改变第二信息,并且通过加载改变的第一信息获得第一权重矩阵或通过加载改变的第一信息和改变的第二信息获得第二权重矩阵
处理器可以被配置为通过基于包括在与第二权重矩阵对应的第三信息中的权重、与权重对应的第三索引以及第二索引从第三信息中擦除与第二索引对应的附加权重,来获得第一权重矩阵。
处理器可以被配置为:基于第二索引和第三索引确定附加权重在第二权重矩阵中的位置,基于附加权重的位置从第三信息中擦除(或删除或移除或消除)附加权重,并通过修改与擦除的附加权重在第三权重信息中的位置邻近的权重的索引来获得第一权重矩阵。
根据本公开的另一实施例,一种存储第一信息和第二信息的电子设备的控制方法,包括:基于电子设备的资源信息,通过加载第一信息获得第一权重矩阵,或者通过加载第一信息和第二信息获得第二权重矩阵,其中,第一信息包括与第一权重矩阵相关的权重和与权重对应的第一索引,并且第二信息包括用于获得第二权重矩阵的附加权重和与附加权重对应的第二索引
该控制方法还包括:通过将输入数据输入到使用第一权重矩阵或第二权重矩阵的人工智能模型来获得输出数据,并且在电子设备的资源信息被改变的基础上,基于第一权重矩阵获得第二权重矩阵或者基于第二权重矩阵获得第一权重矩阵。
可以基于包括在第一信息中的权重和第一索引、附加权重和第二索引来获得第二权重矩阵。
在获得第二权重矩阵中,可以通过基于第一索引和第二索引将附加权重与包括在第一信息中的权重组合来获得第二权重矩阵。
在获得第二权重矩阵中,基于第一索引可以确定与第一索引对应的权重在第二权重矩阵中的位置,基于第二索引可以确定与第二索引对应的附加权重在第二权重矩阵中的位置,基于与第一索引对应的权重的位置和与第二索引对应的权重的位置,可以改变第一索引或第二索引中的至少一个,并且基于权重的位置、附加权重的位置和改变的索引,可以获得第二权重矩阵。
资源信息可以包括电子设备的内部存储器的可用容量、电子设备的功率状态、在电子设备中执行的应用的资源或在电子设备中执行的人工智能模型的资源中的至少一个。
第一信息可以包括通过修剪权重信息中小于第一阈值的权重获得的信息中的第二阈值或更大的权重以及与第二阈值或更大的权重对应的索引,并且第二信息可以包括通过修剪获得的信息中小于第二阈值的权重和与小于第二阈值的权重对应的索引。
控制方法还可以包括通过基于第一信息执行第一训练来改变第一信息,通过基于第一信息和第二信息执行第二训练来改变第二信息,并且通过加载改变的第一信息获得第一权重矩阵或通过加载改变的第一信息和改变的第二信息获得第二权重矩阵
控制方法还可以包括通过基于包括在与第二权重矩阵对应的第三信息中的权重、与权重对应的第三索引以及第二索引从第三信息中擦除与第二索引对应的附加权重,来获得第一权重矩阵。
在获得第一权重矩阵中,基于第二索引和第三索引可以确定附加权重在第二权重矩阵中的位置,基于附加权重的位置可以从第三信息中擦除附加权重,并通过修改与擦除的附加权重在第三权重信息中的位置邻近的权重的索引可以获得第一权重矩阵。
在进行下面的详细描述之前,阐述贯穿本专利文件中使用的某些词和短语的定义可能是有利的:术语“包括”和“包含”以及它们的派生词意味着包括但不限于;术语“或”是包容性的、意味着和/或;短语“与……相关联”和“与其相关联”及其派生词可能意味着包括、被包括在……内、相互连接、包含、被包含在……内、连接到或与……连接、耦合到或与……耦合、与……可通信,与……合作、交错、并列、接近、绑定到或与……绑定、具有、具有……的属性等;并且术语“控制器”意味着控制至少一个操作的任何设备、系统或其部分,这样的设备可以以硬件、固件或软件、或者硬件、固件或软件中的至少两个的某种组合来实现。应该注意,与任何特定控制器相关联的功能可以是集中式的或分布式的,无论是本地的还是远程的。
此外,以下描述的各种功能可以由一个或多个计算机程序来实现或支持,每个计算机程序由计算机可读程序代码形成并体现在计算机可读介质中。术语“应用”和“程序”是指一个或多个计算机程序、软件组件、指令集、过程、功能、对象、类、实例、相关数据,或适用于在合适的计算机可读程序中实现的部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够被计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频光盘(DVD)或任何其他类型的存储器。“非暂时性”计算机可读介质排除运送暂时性电或其他信号的有线、无线、光或其他通信链路。非暂时性计算机可读介质包括可以永久存储数据的介质和诸如可重写光盘或可擦除存储器设备的可以存储数据并随后重写数据的介质。
贯穿本专利文件提供了某些词和短语的定义,本领域普通技术人员应该理解,在许多(如果不是大多数)情况下,这样的定义适用于这样定义的词和短语的先前以及未来的使用。
附图说明
通过参考附图描述本公开的某些实施例,本公开的上述和/或其他方面将更加清晰,其中:
图1是示出根据本公开的实施例的电子设备的框图;
图2是用于描述图1的电子设备的详细配置的框图;
图3是用于描述根据本公开的实施例的零跳跃(zero-skipping)操作的示图;
图4是用于描述根据本公开的另一实施例的零跳跃操作的示图;
图5A是用于描述基于由图4的实施例的零跳跃操作生成的信息来获得权重矩阵的示例的操作的示图;
图5B是用于描述获得权重矩阵的另一示例的操作的示图;
图6A是用于描述获得权重矩阵的各种示例的示图;
图6B是用于描述获得权重矩阵的其他示例的示图;
图7是用于描述修剪操作和零跳跃操作的示图;
图8是用于描述获得权重信息的示例的示图;
图9是用于描述生成权重信息的示例的示图;
图10A是用于描述生成权重信息的另一个示例的示图;
图10B是用于描述在图10A的示例中应用另一计算过程的操作的示图;
图10C是用于描述生成权重信息的又一示例的示图;
图11是用于描述基于修剪操作改变的权重的分布的示图;
图12是用于描述不考虑电子设备的资源确定权重的示例的示图;
图13是用于描述考虑电子设备的资源确定权重的示例的示图;
图14A是用于描述将多个权重分类为多个类的操作的示图;
图14B是用于描述将多个权重分类为多个类的操作的计算过程的示图;
图14C是用于继续描述图14B的操作的示图;
图14D是用于描述权重的分布的示图;
图15是用于描述基于被分类为多个类的权重信息执行人工智能分析的示例的示图;
图16是用于描述基于被分类为多个类的权重信息执行人工智能分析的另一示例的示图;
图17是用于描述考虑资源信息来识别类的示例的示图;
图18是用于描述考虑资源信息来识别类的另一示例的示图;
图19是用于描述考虑资源信息来识别类的又一示例的示图;
图20是用于描述设置操作点的操作的流程图;
图21是用于描述根据本公开的实施例的电子设备的控制方法的示图;以及
图22是根据本公开的实施例的、根据操作点的改变来比较延迟的改变的示图。
具体实施方式
下面讨论的图1至图22以及用于描述本专利文件中的本公开的原理的各种实施例仅作为说明,不应以任何方式解释为限制本公开的范围。本领域技术人员将理解本公开的原理可以在任何适当布置的系统或设备中实现。
在下文中,将参照附图详细描述本公开。
考虑到本公开的功能,选择当前广泛使用的通用术语作为本公开的实施例中使用的术语,但是可以取决于本领域技术人员的意图或司法判例、新技术的兴起等而改变。此外,在特定情况下,可能存在申请人任意选择的术语。在这种情况下,这样的术语的含义将在本公开的对应描述部分中详细提及。因此,本公开中所使用的术语应该基于术语的含义和贯穿本公开的内容来定义,而不是简单的术语名称。
在本公开中,“具有”、“可能具有”、“包括”、“可能包括”等表述指示存在对应的特征(例如,数值、功能、操作、诸如部件的组件等),并且不排除附加特征的存在。
表述“A和/或B中的至少一个”应当理解为表示“A”或“B”或“A和B”中的任何一个。
在本公开中使用的表述“第一”、“第二”等,可以指示各种组件而不管组件的顺序和/或重要性,将仅被使用以将一个组件与另一个组件区分开,而不限制对应的组件。
当提及任何组件(例如,第一组件)(可操作地或通信地)连接到或耦合到另一个组件(例如,第二组件)/与另一个组件耦合时,将理解为任何组件直接与另一个组件耦合/耦合到另一个组件,或者可以通过其他组件(例如,第三组件)与另一个组件耦合/耦合到另一个组件。
除非上下文另有明确指示,否则单数表述包括复数表述。还应理解,本申请中使用的术语“包括”或“构成”指定说明书中提及的特征、数字、步骤、操作、组件、部件或其组合的存在,但不排除存在或添加一个或多个其他特征、数字、步骤、操作、组件、部件或其组合。
在本公开中,“模块”或“~者/~器”可以执行至少一种功能或操作,并且可以通过硬件或软件来实现或者通过硬件和软件的组合来实现。此外,多个“模块”或多个“~者/器”可以集成在至少一个模块中,并被实现为需要由特定硬件实现的除了“模块”或“~者/器”之外的至少一个处理器(未示出)。
在本公开中,术语“用户”可以是使用电子设备的人或使用电子设备的设备(例如,人工智能电子设备)。
在下文中,将参照附图更详细地描述本公开的实施例。
根据本公开的与人工智能相关的功能是通过处理器和存储器来操作的。处理器可以被配置为一个或多个处理器。此时,一个或多个处理器可以是诸如CPU、AP或数字信号处理器(DSP)的通用处理器,诸如GPU或视觉处理单元(VPU)的图形专用处理器,或诸如神经网络处理单元(NPU)的人工智能专用处理器。一个或多个处理器执行控制以根据存储在存储器中的预定义操作规则或人工智能模型来处理输入数据。可替代地,当一个或多个处理器为人工智能专用处理器时,可以将人工智能专用处理器设计在专用于处理特定人工智能模型的硬件架构中。
预定义的操作规则或人工智能模型的特征在于通过训练(学习)来创建。这里,通过训练创建意味着通过由训练算法使用多个训练数据来训练基本人工智能模型,从而创建预定义的操作规则或人工智能模型集以执行期望的特性(或目的)。这样的训练可以在执行根据本公开的人工智能的设备本身中执行,或者也可以通过单独的服务器和/或系统执行。训练算法的示例包括监督训练(学习)、无监督(学习)、半监督(学习)或强化(学习),但训练算法不限于上述示例。
人工智能模型可以包括多个神经网络层。多个神经网络层中的每个具有多个权重值并且通过前一层的操作结果与多个权重之间的操作来执行神经网络操作。可以通过人工智能模型的训练结果来优化多个神经网络层的多个权重。例如,可以更新多个权重,以在训练过程期间减少或最小化从人工智能模型获取的损失值或成本值。人工神经网络可以包括深度神经网络(DNN),其示例包括卷积神经网络(CNN)、深度神经网络(DNN)、递归神经网络(RNN)、受限玻尔兹曼机(RBM)、深度信念网络(DBN)、双向循环深度神经网络(BRDNN)或深度Q网络,但不限于上述示例。
图1是示出根据本公开的实施例的电子设备的框图。
参照图1,电子设备100可以包括存储器110和处理器120。
根据本公开的不同实施例的电子设备100可以包括例如智能手机、平板个人计算机(PC)、移动电话、图像电话、台式个人计算机(PC)、膝上型个人计算机、上网本计算机、工作站、服务器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、相机或可穿戴设备中的至少一个。可穿戴设备可以包括配件类型的可穿戴设备(例如,手表、戒指、手链、脚链、项链、眼镜、隐形眼镜或头戴式设备(HMD))、纺织或服装整合类型的可穿戴设备(例如,电子服装)、身体附件类型的可穿戴设备(例如,皮肤垫(skin pad)或纹身)或生物可植入电路中的至少一个。在一些实施例中,电子设备100可以包括例如电视机、数字视频盘(DVD)播放器或音频中的至少一种。
存储器110可以被实现为被包括在处理器120中的诸如ROM(例如,电可擦可编程只读存储器(EEPROM))或RAM的内部存储器,或者被实现为与处理器120单独的存储器。在这种情况下,取决于数据存储目的,存储器110可以以嵌入在电子设备100中的存储器的形式或可附接到电子设备100并且从电子设备100可拆卸的存储器的形式来实现。例如,用于驱动电子设备100的数据可以存储在嵌入在电子设备100中的存储器中,并且用于电子设备100的扩展功能的数据可以存储在可附接到电子设备100并且可从电子设备100拆卸的存储器中。
同时,嵌入在电子设备100中的存储器可以实现为易失性存储器(例如,动态随机存取存储器(DRAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)等),或非易失性存储器(例如,一次可编程只读存储器(OTPROM)、可编程ROM(PROM)、可擦除和可编程ROM(EPROM)、电可擦除和可编程ROM(EEPROM)、掩膜ROM、闪存ROM、闪存存储器(例如,NAND闪存、NOR闪存等)、硬盘驱动器或固态驱动器(SSD)),以及可以以诸如存储卡(例如,紧凑型闪存(CF)、安全数字(SD)、微型安全数字(Micro-SD)、迷你安全数字(Mini-SD)、极限数字(xD)、多媒体卡(MMC)等)、可连接到USB端口的外部存储器(例如,USB存储器)等的形式实现的可附接到电子设备100和可从电子设备100拆卸的存储器中的至少一个。
存储器110可以存储至少一个指令。这里,指令可以指用户的命令、用户的操作或预设事件中的至少一个。
根据本公开实施例的存储器110可以存储人工智能模型。同时,人工智能模型不一定存储在电子设备100的存储器110中,并且人工智能模型可以以存储在外部服务器中的形式实现。
处理器120可以执行电子设备100的总体控制操作。
处理器120可以实现为数字信号处理器(DSP)、微处理器或处理数字信号的时间控制器(TCON)。然而,处理器120不限于此,而是可以包括中央处理单元(CPU)、微控制器单元(MCU)、微处理单元(MPU)、控制器、应用处理器(AP)、图形处理单元(GPU)、通信处理器(CP)和ARM处理器中的一个或多个,或者可以被定义为对应的术语。此外,处理器120还可以被实现为片上系统(SoC)或嵌入处理算法的大规模集成(LSI),并且也可以以现场可编程门阵列(FPGA)的形式实现。此外,处理器120可以通过执行存储在存储器110中的计算机可执行指令来执行各种功能。
处理器120可以包括基于电子设备100的资源信息,通过加载第一信息获得第一权重矩阵或者通过加载第一信息和第二信息,获得第二权重矩阵的处理器。这里,第一信息可以包括与第一权重矩阵相关的权重以及和与第一权重矩阵相关的权重对应的第一索引,并且第二信息可以包括用于获得第二权重矩阵的附加权重和与附加权重对应的第二索引。
处理器120可以基于资源信息确定是加载第一信息还是加载第一信息和第二信息两者。这里,第一信息和第二信息可以指与对应于第一类和第二类的权重相关的信息。
这里,类(class)可以是通过在对人工智能模型中使用的权重矩阵的压缩过程中获得的权重值根据大小进行分类得到的组。例如,假设原始权重矩阵包括100个权重。假设随着原始权重矩阵被压缩(例如修剪),100个权重当中的50个权重被修剪为0,并且50个权重具有非零值,则可以将50个权重当中具有阈值或更大的权重指派给第一类,并且可以将50个权重当中具有小于阈值的权重值的权重指派给第二类。同时,类的数量、阈值的数量和阈值可以根据实施例而变化。
因此,在本公开中,通过加载第一信息获得第一权重矩阵可以是指基于关于第一类中所包括(或指派)的权重的信息来获得权重矩阵。另外,通过加载第一信息和第二信息获得第二权重矩阵可以指基于关于第一类中所包括的权重和第二类中所包括的权重两者的信息来获得权重矩阵。
同时,处理器120可以基于电子设备100的资源信息来确定是使用对应于第一类的权重信息(或权重数据,在下文中,为了方便,统称为权重信息)还是使用对应于第一类和第二类的权重信息。这里,资源信息可以指与和当前电子设备100的硬件相关的资源、执行特定模块或特定应用所要求的要求的资源等相关的信息。例如,资源信息可以包括电子设备100的内部存储器容量(总容量、使用的容量、可用容量)、电子设备100的功率状态、在电子设备100中执行的应用的资源,或在电子设备100中执行的人工智能模型的资源中的至少一个。
这里,内部存储器的使用的容量可以指内部存储器的总容量当中已经使用的容量,并且可用容量可以指内部存储器中当前可用的容量。例如,可用容量可以被计算为通过从内部存储器的总容量中减去内部存储器的使用的容量而获得的容量。
电子设备100的功率状态可以指电子设备100的当前功率状态或当前设置的功率模式。例如,如果电子设备100的功率当前不足并且第一和第二信息两者都被上载,则负载(load)可能是高的。因此,处理器120可以通过仅加载第一信息来获得权重矩阵。可替代地,当电子设备100处于低功率模式时,可以通过仅加载第一信息来获得权重矩阵。
在电子设备100中执行的应用的资源可能与当前执行的应用中使用的人工智能模型所要求的权重矩阵的准确度相关。例如,如果当前执行的应用中使用的权重矩阵是可以只用第一信息获得的第一权重矩阵,则可以只加载第一信息,并且如果当前执行的应用中使用的权重矩阵是可以用第一信息和第二信息获得的第二权重矩阵,可以加载第一信息和第二信息二者。
同时,即使在使用相同的应用或相同的人工智能模型时,所要求的资源也可能实时变化。例如,在同一应用中执行第一功能所要求的权重矩阵与执行第二功能所要求的权重矩阵可能不同。稍后将参考图12和13描述具体操作。
如上所述,处理器120可以基于电子设备100的资源信息确定是否使用与第一类对应的权重信息,即第一信息,或者是否使用与第一类和第二类对应的权重信息,即第一信息和第二信息两者。
如上所述,处理器120可以基于资源信息识别类组合(class combination)并获得与识别的类组合对应的权重信息。然后,处理器120可以基于获得的权重信息获得权重矩阵。然后,处理器120可以基于获得的权重矩阵和输入数据获得输出数据。
同时,资源信息可以实时改变,并且处理器120可以实时获得电子设备100的资源信息。然后,如果处理器120基于获得的资源信息识别到资源已经改变了阈值或更多,则处理器120可以获得新的权重矩阵。这里,可以基于内部存储器的可用资源和每个类的资源来获得阈值。
改变资源信息的示例可以包括当前使用的资源的数量的增加和减少。由于当前使用的资源的减少是可用资源的增加,所以处理操作没有问题,但是由于当前使用的资源的增加是可用资源的减少,则可能出现问题。
在下文中,为了描述方便,将在假设电子设备100的资源信息与处理器120的内部存储器的可用容量相关的情况下进行描述。
处理器120可以实时确定内部存储器的可用容量。当在使用通过当前使用第一和第二信息获得的第二权重矩阵的同时内部存储器的可用容量减少时,处理器120可以通过从第二权重矩阵中排除第二信息来获得第一权重矩阵,以将第二权重矩阵改变为第一权重矩阵。另一方面,可能存在人工智能分析的目标数量增加或要求相对较高的准确度的情况。当在使用通过当前使用第一信息获得的第一权重矩阵的同时用于人工智能分析的目标的数量增加时,处理器120可以通过将第二信息添加到第一权重矩阵来获得第二权重矩阵以将第一权重矩阵改变为第二权重矩阵。在下文中,将描述使用第一信息、或者第一信息和第二信息来获得第一权重矩阵或第二权重矩阵的具体方法。
如果要求应用于人工智能模型的第一权重矩阵,则处理器120可以获得与第一类对应的第一权重信息(或第一信息)。此外,第一权重信息可以包括第一类中包括的权重和与第一类中包括的权重对应的第一索引。这里,第一索引可以包括与多个权重中的每一个对应的多个索引。例如,如果第一类中包括的权重的数量为三个,则第一索引的数量也可以为三个。
根据实施例的处理器120可以基于第一权重信息获得第一权重矩阵。这里,第一权重矩阵是仅使用第一类获得的,并且可以是反映相对高的权重的矩阵。
如果要求将第二权重矩阵应用于人工智能模型,则处理器120可以获得与第二类对应的第二权重信息(或第二信息)以及与第一类对应的第一权重信息(或第一信息)。第二权重信息可以包括第二类中包括的权重和与第二类中包括的权重对应的第二索引。这里,由于第二类中包括的权重连同第一类中包括的权重一起被用于构建第二权重矩阵,因此以下将第二类中包括的权重称为附加权重。
同时,处理器120可以通过基于第一索引和第二索引将附加权重与包括在第一权重信息中的权重组合来获得第二权重矩阵。
具体地,处理器120可以基于第一索引确定与第一索引对应的权重在第二权重矩阵中的位置,可以基于第二索引确定与第二索引对应的附加权重在第二权重矩阵中的位置,可以基于与第一索引对应的权重的位置和与第二索引对应的权重的位置来改变第一索引或第二索引中的至少一个,并且可以基于权重的位置、附加权重的位置和改变的索引获得第二权重矩阵。
在生成第二权重矩阵时,处理器120可以基于包括在第一权重信息中的第一索引来识别包括在第一权重信息中的权重的位置,并且可以基于包括在第二权重信息中的第二索引识别包括在第二权重信息中的权重(附加权重)的位置。
这里,在生成第二权重矩阵时,处理器120可以根据需要改变第一索引或第二索引中的至少一个。因为第二权重矩阵是第一权重信息和第二权重信息的组合,所以可以不照原样使用第一索引和第二索引。因此,在生成第二权重矩阵时,可以改变第一索引或第二索引的值。然而,初始存储的初始索引(第一索引或第二索引中的一个)可能不被改变。例如,在图5A中,第一权重信息中包括的第一索引为{3,10},和第二权重信息中包括的第二索引为{9}。然而,新创建的权重信息的索引是{3,5,4}。仅保持初始索引3,并且第一索引和第二索引二者的值可以更改。
将参照图5A至图9描述基于组合操作生成新权重信息和新权重矩阵的详细操作。
同时,第一权重信息可以包括通过修剪权重信息中小于第一阈值的权重而获得的信息中的第二阈值或更大的权重以及与第二阈值或更大的权重对应的索引,并且第二权重信息可以包括通过修剪获得的信息中小于第二阈值的权重以及与小于第二阈值的权重对应的索引。
这里,权重信息可以指未根据类进行分类的一组原始权重。权重信息可以对应于图7的附图标记706。
这里,修剪操作可以指将小于阈值的权重改变为零的操作。处理器120可以执行将包括在权重信息中的多个权重当中小于第一阈值的权重改变为零的修剪操作。
通过执行修剪操作而改变的权重信息可以被描述为修剪的权重信息。修剪的权重信息可以对应于图7的附图标记711。
处理器120可以将包括在修剪的权重信息中的多个权重分类为多个类。具体地,处理器120可以基于权重的大小值将修剪的权重信息中包括的多个权重分类到多个类中。处理器120可以将包括在修剪的权重信息中的多个权重当中具有第二阈值或更大的权重的大小值(或权重的重要性)的权重指派给第一类,并且可以将小于第二阈值的权重指派给第二类。具有相对高的大小值的权重可以被指派给第一类,而具有相对低的大小值的权重可以被指派给第二类。这里,第一阈值和第二阈值可以用作不同的准则并且可以具有不同的值。
同时,处理器120可以获得包括在修剪的权重信息(类A1)中的多个权重当中的包括在第一类(类a11)中的权重以及与包括在第一类(类a12)中的权重对应的第一索引。此外,处理器120可以获得包括在修剪的权重信息(类A1)中的多个权重当中的包括在第二类(类a12)中的权重以及与包括在第二类(类a12)中的权重对应的第二索引。
同时,第一信息可以包括通过对通过修剪获得的信息(类A1)(修剪的权重信息)中的第二阈值或更大的权重(类a11)执行第一训练获得的权重(类a13)和与通过执行第一训练获得的权重(类a13)对应的索引,第二信息可以包括通过对通过修剪获得的信息(类A1)(修剪的权重信息)中的第二阈值或更大的权重(类a13)和小于第二阈值的权重(类a12)执行第二训练获得的权重(类a14)和与通过执行第二训练获得的权重(类a14)对应的索引,并且第二阈值或更大的权重(类a13)可以在第二训练期间固定。此外,处理器120可以被配置为通过基于第一信息执行第一训练来改变第一信息(类a11),通过基于第一信息和第二信息执行第二训练来改变第二信息(类a12),以及通过加载改变的第一信息(类a13)获得第一权重矩阵,或者通过加载改变的第一信息(类a13)和改变的第二信息(类a14)获得第二权重矩阵。此外,处理器120可以被配置为通过对通过修剪获得的信息(类A1)中的第二阈值或更大的权重(类a11)执行第一训练获得权重(类a13),获得与通过执行第一训练获得的权重(类a13)对应的索引,将第一信息中包括的权重(类a11)和索引改变为通过执行第一训练获得的权重(类a13)和与通过执行第一训练获得的权重(类a13)对应的索引,通过对通过执行第一训练获得的权重(类a13)执行第二训练获得的权重(类a13和类a14)中小于第二阈值的权重(类a14)和通过修剪获得的信息中小于第二阈值的权重(类a12),获得与通过执行第二训练获得的权重(类a13和类a14)中小于第二阈值的权重(类a14)对应的索引,将第二信息中包括的权重(类a12)和索引改变为通过执行第二训练获得的权重(类a13和类a14)中小于第二阈值的权重(类a14)和与通过执行第二训练获得的权重(类a13和类a14)中小于第二阈值的权重(类a14)对应的索引,通过加载改变的第一信息(类a13)获得第一权重矩阵或者通过加载改变的第一信息(类a13)和改变的第二信息(类a14)获得第二权重矩阵。此外,在第二训练期间,第二阈值或更大的权重(类a13)是固定的。
这里,第一训练和第二训练可以对应于再训练过程。再训练过程可以指检查修改的权重信息以减少错误的过程。现有的权重信息可能在再训练过程中改变。第一训练可以是针对第一类的再训练,并且第二训练可以是针对多个类的再训练。
参照图14的步骤S1421,当再训练特定类中包括的权重时,可以改变权重。处理器120可以将修剪的权重信息中的第二阈值或更大的权重指派给第一类。此外,处理器120可以再训练(第一训练)被指派给(被包括到)第一类的权重。这里,包括在第一类中的权重可以在再训练(第一训练)期间改变。
参照图14A的步骤S1426,当再训练多个类中包括权重时,可以针对多个类中的一些类不改变权重,并且可以针对多个类中剩下的类改变权重。处理器120可以将修剪的权重信息中的第二阈值或更大的权重指派给第一类,并且可以将修剪的权重信息中小于第二阈值的权重指派给第二类。此外,处理器120可以再训练(第二训练)被指派给(被包括到)第一类和第二类的权重。这里,第一类中包括的权重可以在再训练(第二训练)期间固定,而只有在第二类中包括的权重可以在再训练(第二训练)期间改变。当对多个类执行再训练操作时,可以固定包括在具有相对高的权重的类中的权重,并且可以改变包括在具有相对低的权重的类中的权重。
同时,处理器120可以基于权重信息执行修剪操作,可以对修剪的权重信息执行零跳跃操作,并且可以将执行了修剪和零跳跃操作的权重信息分类为多个类。稍后将参照图3和图7描述零跳跃操作。同时,根据一实施例,可以省略修剪操作、零跳跃操作或将权重信息分类为多个类的操作中的至少一个,并且其顺序也可以改变。
同时,第一权重矩阵可以是使用第一权重信息获得的矩阵,第二权重矩阵可以是通过使用第一权重信息和第二权重信息获得的矩阵。具体地,处理器120可以通过组合第一权重信息和第二权重信息以生成第二权重矩阵来获得第三权重信息。第三权重信息可以包括第一类和第二类中包括的权重,以及与包括在第一类和第二类中的权重对应的索引(第三索引)。此外,处理器120可以基于获得的第三权重信息获得第二权重矩阵。
处理器120可以执行从现有权重信息中擦除包括在特定类中的权重的操作。假设处理器120已经通过使用第一权重信息和第二权重信息获得第二权重矩阵。在使用第二权重矩阵进行人工智能分析期间,可能存在内部存储器不足导致资源不足的情形。这里,处理器120可以改变权重信息或权重矩阵以减少人工智能分析要求的资源。例如,处理器120可以执行擦除包括在多个类当中具有低权重的类中的权重的操作以减少资源。
处理器120可以基于包括在与第二权重矩阵对应的第三权重信息中的权重、与该权重对应的第三索引以及第二索引,通过从第三权重信息中擦除与第二索引对应的附加权重来获得第一权重矩阵。
这里,与第二权重矩阵对应的第三权重信息可以是通过组合第一权重信息和第二权重信息得到的信息。此外,第三权重信息中包括的权重可以指第一类和第二类中包括的权重。此外,与该权重对应的第三索引可以指与第一类和第二类中包括的权重对应的索引。此外,与第二索引对应的附加权重可以指第二类中包括的权重。
这里,处理器120可以基于第二索引和第三索引确定附加权重在第二权重矩阵中的位置,可以基于附加权重的位置从第三权重信息中擦除附加权重,并且可以通过修改与第三权重信息中擦除的附加权重的位置邻近的权重的索引来获得第一权重矩阵。
这里,附加权重可以指包括在第二类中的权重。
处理器120可以基于预设事件执行擦除多个类当中的特定类的权重的操作。具体地,处理器120可以擦除包括在基于电子设备100的资源信息获得的第三权重信息(或第二权重矩阵)中的权重(包括在第一类和第二类中的权重)当中的第二类中包括的权重。处理器120可以使用第二索引来仅擦除多个权重当中的包括在第二类中的权重。因为只要仅仅知道第二索引,就可以检测第二类中包括的权重的位置,所以即使不知道包括在第二类中的权重的大小值(或权重的重要性),也可以只擦除第二类中包括的权重。因此,处理器120可以基于第三权重信息和第二索引擦除包括在获得的第三权重信息(或第二权重矩阵)中的权重(包括在第一类和第二类中的权重)当中的第二类中包括的权重。此外,处理器120可以改变第三索引当中紧邻近擦除的权重的索引。具体地,如果存在两个邻近的索引,则处理器120可以通过将两个索引中的每个索引的数据求和来获得新的索引。稍后将参照图10A、图10B和图10C描述详细的计算过程。
具体地,处理器120可以通过擦除包括在第三权重信息(或第二权重矩阵)中的权重(包括在第一类和第二类中的权重)当中的包括在第二类中的权重来获得新的权重信息。这里,新的权重信息可以对应于第一权重信息。
处理器120可以基于获得的权重矩阵和输入数据获得输出数据。具体地,处理器120可以使用获得的权重矩阵和输入数据执行乘法运算,并且可以获得作为运算结果的输出数据。
根据本公开,通过针对各种神经网络启用可扩展的操作场景,可以最大化用户满意度并提高已安装产品的竞争力。此外,根据本公开,因为可以根据功耗来选择操作点,所以可以最大化具有低存储器容量的电子设备(例如,移动设备)的用户满意度。
具体地,根据本公开,可以基于电子设备的资源信息通过将权重信息分类为多个类来确定类组合。因此,即使在资源不足的情形下,也可以通过适当地选择类组合或生成新的权重矩阵来执行人工智能分析。
同时,在本公开中,已经描述了电子设备100的权重被存储的格式是游程长度编码(RLC)。然而,根据实施例,权重被存储的格式可以是压缩稀疏行(CSR)或压缩稀疏列(CSC)。CSR是在矩阵中以水平顺序重新布置的方法,并且可以指组织和压缩行的方法。CSR是在矩阵中以垂直和水平顺序重新布置的方法,并且可以指将组织行的方法应用到CSR列。
同时,在上文中,仅示出和描述了电子设备100的简单配置,但是在实现时可以另外提供各种配置。这将在下面参照图2进行描述。
图2是用于描述图1的电子设备的详细配置的框图。
参照图2,电子设备100可以包括存储器110、处理器120、通信接口130、显示器140、用户接口150和输入/输出接口160。
同时,将省略存储器110和处理器120的操作当中与上述操作相同的操作的冗余描述。
处理器120通常通过使用存储在存储器110中的各种程序来控制电子设备100的操作。具体地,处理器120包括随机存取存储器(RAM)、只读存储器(ROM)、主中央处理单元(CPU)、第一到第n接口和总线。RAM、ROM、主CPU、第一至第n接口等可以通过总线相互连接。用于引导(boot)系统等的指令集被存储在ROM中。当输入开机命令以给主CPU供应功率时,主CPU根据ROM中存储的指令将存储器110中存储的操作系统(O/S)复制到RAM中,并执行O/S以引导系统。当引导完成时,主CPU将存储在存储器110中的各种应用程序复制到RAM中,并执行复制到RAM的应用程序以执行各种操作。主CPU访问存储器110以使用存储在存储器110中的O/S来执行引导。此外,主CPU通过使用存储在存储器110中的各种程序、内容、数据等来执行各种操作。第一到第n接口连接到上述各种组件。接口中的一个也可以是通过网络连接到外部设备的网络接口。
通信接口130是根据各种类型的通信方法执行与各种类型的外部设备的通信的组件。通信接口130包括Wi-Fi模块、蓝牙模块、红外通信模块、无线通信模块等。这里,每个通信模块可以以至少一个硬件芯片的形式实现。
Wi-Fi模块和蓝牙模块分别以Wi-Fi方法和蓝牙方法执行通信。在使用Wi-Fi模块或蓝牙模块的情况下,首先发送和接收诸如服务集标识符(SSID)、会话密钥等的各种连接信息,使用连接信息连接通信,并且然后可以发送和接收各种信息。
红外通信模块根据红外数据协会(IrDA)技术执行通信,红外数据协会(IrDA)技术通过使用可见光和毫米波之间的红外线在短距离无线地发送数据。
无线通信模块可以包括根据各种无线通信协议执行通信的至少一个通信芯片,无线通信协议诸如除了上述通信方法之外的Zigbee、第三代(3G)、第三代合作伙伴项目(3GPP)、长期演进(LTE)、高级LTE(LET-A)、第4代(4G)、第5代(5G)等。
此外,通信接口130可以包括局域网(LAN)模块、以太网模块或有线通信模块中的至少一个,以用于使用双股电缆(pair cable)、同轴电缆或光纤电缆执行通信。
根据一个示例,通信接口130可以使用相同的通信模块(例如,Wi-Fi模块)来与诸如远程控制器和外部服务器的外部设备进行通信。
根据另一示例,通信接口130可以使用不同的通信模块(例如,Wi-Fi模块)来与诸如远程控制器和外部服务器的外部设备进行通信。例如,通信接口130可以使用以太网模块或Wi-Fi模块中的至少一个与外部服务器进行通信,并且可以使用BT模块与诸如远程控制器的外部设备进行通信。然而,这仅是示例,并且当与多个外部设备或外部服务器进行通信时,通信接口130可以使用各种通信模块当中的至少一个通信模块。
显示器140可以被实现为各种类型的显示器,例如液晶显示器(LCD)、有机发光二极管(OLED)显示器、等离子显示面板(PDP)等。显示器140还可以包括可以以非晶硅薄膜晶体管(TFT)、低温多晶硅(LTPS)TFT和有机TFT(OTFT)的形式实现的驱动电路、背光单元等。同时,显示器140可以实现为与触摸传感器、柔性显示器、三维(3D)显示器等组合的触摸屏。
此外,根据本公开的实施例,显示器140可以包括容纳显示面板的边框(bezel)以及输出图像的显示面板。特别地,根据本公开的实施例,边框可以包括用于感测用户交互的触摸传感器(未示出)。
用户接口150可以实现为诸如按钮、触摸板、鼠标或键盘的设备,或者还可以实现为也可以执行上述显示功能和操纵/输入功能的触摸屏。这里,按钮可以是诸如机械按钮、触摸板、滚轮等的各种类型的按钮,它们形成在任意区域,诸如电子设备100的主体外面的前部、侧部和后部。
输入/输出接口160可以是高清多媒体接口(HDMI)、移动高清链路(MHL)、通用串行总线(USB)、显示端口(DP)、雷电(thunderbolt)、视频图形阵列(VGA)端口、RGB端口、D超小型(D-SUB)和数字视觉接口(DVI)中的任何一个接口。
输入/输出接口160可以输入和输出音频和视频信号中的至少一个。
根据实施方式示例,输入/输出接口160可以包括作为单独的端口的仅用于输入和输出音频信号的端口和仅用于输入和输出视频信号的端口,或者可以被实现为用于输入和输出音频信号和视频信号两者的一个端口。
电子设备100可以包括扬声器(未示出)。扬声器(未示出)可以是不仅输出由输入/输出接口160处理的各种音频数据而且还输出各种通知声音或语音消息的组件。
电子设备100还可以包括麦克风(未示出)。麦克风是用于接收用户语音或其他声音并将用户语音或其他声音转换为音频数据的组件。
麦克风(未示出)可以在激活状态下接收用户语音。例如,麦克风可以整合地形成在电子设备100的上侧,或者在前方向、侧面方向等。麦克风可以包括各种组件,诸如用于以模拟形式收集用户语音的麦克风,用于放大收集的用户语音的放大器电路,用于将放大的用户语音采样并转换为数字信号的A/D转换电路,以及用于从转换的数字信号移除噪声的滤波电路。
相机(未示出)是用于通过捕捉主题(subject)来生成捕捉的图像的组件,其中,捕捉的图像是包括移动图像和静止图像两者的概念。
相机(未示出)可以获得至少一个外部设备的图像,并且可以被实现为相机、镜头、红外传感器等。
相机(未示出)可以包括镜头和图像传感器。镜头的类型包括通用镜头、广角镜头和变焦镜头,并且可以根据电子设备100的类型、特性和使用环境来确定。作为图像传感器,可以使用互补金属氧化物半导体(CMOS)和电荷耦合器件(CCD)。
相机(未示出)将入射光输出为图像信号。具体地,相机(未示出)可以包括镜头、像素和AD转换器。镜头可以从主题收集光并在捕捉区域中形成光学图像,并且像素可以将通过镜头入射的光输出为模拟图像信号。此外,AD转换器可以将模拟图像信号转换为数字图像信号并输出转换的数字图像信号。特别地,相机(未示出)被安置为捕捉电子设备100的前方向,并且可以通过捕捉存在于电子设备100前面的用户来生成捕捉的图像。
同时,在描述根据本公开实施例的电子设备100时,描述了只有一个相机(未示出),但在实际实施方式中,可以安置多个相机。电子设备100可以包括多个相机,并且可以通过组合通过多个相机接收的图像来识别用户的头部姿势。因为可以更准确地分析三维运动,所以使用多个相机而不是使用单个相机可以有效地识别用户的头部姿势。
图3是用于描述根据本公开的实施例的零跳跃操作的示图。
参照图3,根据实施例,电子设备100可以使用通用方法305处理输入数据,或者可以基于零跳跃方法310处理输入数据。
通用方法305可以是将权重信息306和输入数据307相乘的方法。通用方法305可以不对权重信息306应用任何修改,并且可以是照原样使用已经获得的权重的方法。权重信息306可以被分类为具有权重为0的数据和具有权重不为0的数据。具有权重为0的数据可以被分类为多个组,多个组306-1、306-2,306-3可以根据连续的0数据被分类。权重信息中具有权重不为0的数据可以是{0.7,-0.1,0.86}。此外,电子设备可以根据通用方法305分别将权重信息306和输入数据307相乘。这里,电子设备100可以执行总共15次乘法计算。
同时,零跳跃方法310可以是跳跃权重信息306中具有权重为0的数据的方法。这里,跳跃操作可以指不执行乘以零的计算过程。例如,零跳跃方法310可以使用零的数量作为从权重信息306中排除零权重信息的索引。此外,零跳跃方法310可以获得包括在每个组306-1、306-2和306-3中的零的数量。多个组306-1、306-2和306-3中的零的数量可以是3、5和4。此外,关于零的数量的信息可以用作索引。例如,电子设备100可以使用关于多个组306-1、306-2和306-3中零的数量的信息作为索引311-1、311-2和311-3。第一组306-1的索引311-1可以指跳跃的输入数据(12、2和9)的数量(三)。此外,第二组306-2的索引311-2可以指跳跃的输入数据(45、6、23、3和12)的数量(五)。此外,第三组306-3的索引311-3可以指跳跃的输入数据(9、1、45和6)的数量(四)。此外,零跳跃方法310可以将输入数据(1、2和23)分别与权重信息306当中具有权重不为0的数据(0.7、-0.1和0.86)相乘。结果,电子设备100可以通过零跳跃操作基于权重信息306获得对应于{3,0.7,5,-0.1,4,0.86}的权重信息。此外,这里,“3、5、4”可以是索引,“0.7、-0.1、0.86”可以是权重。
电子设备100根据通用方法305需要执行总共15个计算过程,而根据零跳跃方法310需要执行总共3个计算过程,从而使得可以简化计算过程。
图4是用于描述根据本公开另一实施例的零跳跃操作的示图。
参照图4,电子设备100可以基于权重的大小值(或权重的重要性)执行零跳跃操作。电子设备100可以通过仅获得具有权重的大小值(或权重的重要性)为阈值或更大的权重来执行零跳跃操作(401),或者可以通过仅获得具有权重的大小值(或权重的重要性)小于阈值的权重来执行零跳跃操作(402)。
关于操作401,电子设备100可以将权重信息405分类为具有权重为0的数据和具有权重不为0的数据(0.7、-0.1和0.86)。此外,电子设备100可以从具有权重不为0的数据(0.7、-0.1和0.86)中识别阈值(例如,0.2)或更大的权重(0.7和0.86)。电子设备100可以将具有权重不为0的数据当中小于阈值(0.2)的权重(-0.1)确定为等于0。此外,电子设备100可以将权重信息405分类为具有权重为0的数据组406-1和406-2以及具有权重不为0的数据组407-1和407-2。此外,如图3所述,电子设备100可以识别具有权重为0的每个数据组中零的数量。对应于组406-1的零的数量是三,并且对应于组406-2的零的数量是十。这里,电子设备100可以通过在零的数量中包括小于阈值(0.2)的权重来计算零的数量。例如,“-0.1”不为0,但是如果权重小于0.2,则数据被确定为0,因此,可以通过在零的数量中包括“-0.1”来计算零的数量。
关于操作401,电子设备100可以使用获得的零的数量作为索引。对应于组406-1的零的数量是三,并且电子设备100可以使用获得的零的数量(三)作为对应于组406-1的索引411-1。此外,对应于组406-2的零的数量为十,电子设备100可以使用获得的零的数量(十)作为对应于组406-2的索引411-2。
关于操作401,电子设备100可以基于权重信息405、预设阈值以及获得的索引411-1和411-2获得第一权重信息410。第一权重信息410可以包括索引411-1和411-2、权重407-1和407-2、以及顺序信息(以411-1、407-1、411-2和407-2的顺序)。
权重信息405和第一权重信息410两者可以对应于与权重相关的信息。然而,为了便于解释,可以将原始权重描述为权重信息405,并且可以将通过零跳跃操作改变的权重描述为第一权重信息410。
操作401描述了当权重的大小值为阈值(0.2)或更大时,通过从权重信息405执行零跳跃操作来获得第一权重信息410的过程。
关于操作402,当权重的大小值小于阈值(0.2)时,电子设备100可以通过从权重信息405执行零跳跃操作来获得第二权重信息415。
关于操作402,电子设备100可以将权重信息405分类为具有权重为0的数据和权重不为0的数据(0.7、-0.1、0.86)。此外,电子设备100可以从具有不为0的权重的数据(0.7、-0.1、0.86)中识别小于阈值(例如0.2)的权重(-0.1)。电子设备100可以将具有不为0的权重的数据当中阈值(0.2)或更大的权重(0.7和0.86)确定为等于0。这里,电子设备100可以不去确定具有不为0的权重的数据当中在最后位置识别的、比阈值0.2更小的权重(-0.1)之后的权重。由于权重(0.86)已经被操作401反映,所以最终识别的权重(-0.1)之后的权重可以被忽略和不被确定,而不包括在第二权重中信息415中。此外,电子设备100可以将权重信息405分类为具有权重为0的数据组406-3和具有权重不为0的数据组407-3。此外,如图3所述,电子设备100可以识别具有为0的权重的每个数据组中零的数量。对应于组406-3的零的数量是九。这里,电子设备100可以通过在零的数量中包括阈值(0.2)或更大的权重来计算零的数量。例如,“0.7”不为0,但如果权重为0.2或更大,则数据被确定为0,因此,可以通过将“0.7”包括在零的数量中来计算零的数量。
关于操作402,电子设备100可以使用获得的零的数量作为索引。对应于组406-3的零的数量为九,并且电子设备100可以使用获得的零的数量(九)作为对应于组406-3的索引411-3。
关于操作402,电子设备100可以基于权重信息405、预设阈值和获得的索引411-3来获得第二权重信息415。第二权重信息415可以包括索引411-3、权重407-3和顺序信息(以411-3和407-3的顺序)。
电子设备100可以将权重信息405分类为多个类。这里,类可以指用于对用于人工智能分析的多个权重进行分类的单元。可以基于权重的大小值(或权重的重要性)对类进行分类。例如,假设100个权重用于人工智能分析。100个权重当中具有阈值或更大的权重值的权重可能被分配给第一类,并且具有小于阈值的权重值的权重可能被分配给第二类。同时,类的数量、阈值的数量和阈值可以根据实施例而变化。
例如,第一类可以指与根据第一权重大小准则(例如,权重的大小值是0.2或更大)获得的第一权重信息410相关的信息,而第二类可以指与根据第二权重大小准则(例如,权重的大小值小于0.2)获得的第二权重信息415相关的信息。
电子设备100可以获得对应于多个类的第一和第二权重信息410和415。第一权重信息410可以是通过对具有相对大的权重的数据进行分组而获得的信息,并且第二权重信息415可以是通过对具有小权重的数据进行分组而获得的信息。因为使用第一权重信息410和第二权重信息415两者即为使用整个权重信息405,所以可以保持计算的准确度。然而,在电子设备100的资源不足的情况下,因为第一权重信息410和第二权重信息415二者可能不都被使用,所以可以仅使用第一权重信息410来执行计算操作。当仅使用具有相对大的权重值的第一权重信息410时,准确度可能会稍微劣化,但可以正常执行计算处理操作。
图5A是用于描述基于由图4的实施例的零跳跃操作生成的信息来获得权重矩阵的操作的示图。
参照5A,权重信息505可以对应于图4的权重信息405,并且权重信息510和515可以对应于图4的第一和第二权重信息410和415。因此,省略了权重信息505以及对应于多个类的权重信息510和515的冗余描述。
电子设备100可以将获得的权重信息510和515存储在DRAM 501中,并且根据需要向内核生成器520发送权重信息510和515。
内核生成器520可以是内核生成模块,并且可以基于至少一个接收的权重信息来生成新的权重信息。例如,内核生成器520可以基于对应于第一类的第一权重信息510和对应于第二类的第二权重信息515来生成对应于新类的新权重信息525。这里,内核生成器520可以使用以下预定义代码信息来生成新的权重信息525。预定义代码信息可以是与使用堆栈结构处理数据的操作相关的代码。同时,内核生成器520可以是参数生成器。
这里,由内核生成器520生成的新权重信息525可以与通过图3中的零跳跃操作获得的权重信息相同。存在的不同是图3中公开的权重信息是通过对权重信息306执行零跳跃操作而获得的,并且图5中公开的权重信息525是基于与多个类对应的权重信息510和515获得的。因此,根据图3的方法,不能通过组合与多个类对应的权重信息510和515来获得新权重信息525。因此,内核生成器520可以通过组合单独的权重信息来生成一个整合的权重信息。
同时,图5A中公开的操作。可以通过以下代码执行。
while(not empty){
for(all classes){
skip_count=pop(class_id,SKIP);
if(skip_count<count_min){
count_min=skip_count;
class_sel=class_id;
}
push(class_id,SKIP,skip_count);
}
for(every classes){
if(class_id!=class_sel){
skip_count=pop(class_id,SKIP);
skip_count-=(count_min+1);
push(class_id,SKIP,skip_count);
}
}
skip_count=pop(class_sel,SKIP);
kernel_val=pop(class_sel,KERNEL);
store(skip_count,kernel_val);
}
图5B是用于描述获得权重矩阵的另一示例的操作的示图。
参照图5B,电子设备100可以将每个类的权重信息510和515存储在DRAM 501中,并且将由内核生成器520生成的新权重信息525存储在片上存储器502中。这里,权重信息510可以是与第一类对应的第一权重信息,并且权重信息515可以是与第二类对应的第二权重信息。此外,权重信息525可以是通过组合第一类和第二类而新生成的权重信息。这里,根据实施例,用户可以执行在片上存储器502中新生成与第一类对应的权重信息的操作。这里,权重信息525可以包括索引525-1、525-3和525-5和与索引525-1、525-3和525-5对应的权重525-2、525-4和525-6。
根据实施例,为了生成对应于第一类的权重信息,内核生成器520可以从片上存储器502接收通过组合第一类和第二类生成的权重信息525,并且接收与第二类对应的第二权重信息515。
这里,权重信息515可以包括索引515-1和与索引515-1对应的权重515-2。作为示例,内核生成器520可以仅从DRAM 501接收权重信息515的索引515-1。因为关于权重的信息已经存储在片上存储器502中,所以可以只接收索引515-1,而无需单独接收权重515-2。此外,内核生成器520可以基于接收的索引515-1和接收的权重信息525来生成与第一类对应的权重信息530。权重信息530可以包括索引530-1和530-3以及与索引530-1和530-3对应的权重530-2和530-4。此外,内核生成器520可以从权重信息525中擦除对应于与接收的索引515-1对应的“9”的权重。可以通过将权重信息525的索引本身的值相加并将与权重对应的部分转换为“1”来执行计算。具体而言,内核生成器520可以通过将索引525-1的“3”、权重525-2的转换的值“1”和索引525-3的“5”相加来检查数量9,并且可以擦除作为更后的值的权重525-4的“-0.1”。内核生成器520可以通过将索引525-3的“5”、擦除的权重525-4的转换的值“1”以及索引525-5的“4”中的所有相加而获得“10”,并且“10”可以用作新的索引530-3。
根据另一实施例,内核生成器520可以擦除存储在片上存储器502中的权重信息525,并从DRAM 501接收与第一类对应的第一权重信息。第一权重信息510可以与新生成的权重信息530相同。
同时,图5B中公开的操作可以使用图5A中描述的代码来执行。省略了代码的冗余描述。
图6A是用于描述获得权重矩阵的各种示例的示图。
参照图6A,电子设备100可以包括DRAM 601、直接存储器访问控制器(DMAC)602、内核生成器603或片上存储器604中的至少一个。此外,电子设备100可以基于上述多个组件中的至少一个获得最终权重信息,并基于最终的权重信息执行人工智能分析。
电子设备100可以根据各种示例执行生成或改变权重信息的操作。
在第一示例605中,假设对应于第一类的权重信息存储在DRAM 601中,并且仅使用对应于第一类的权重信息来执行人工智能分析。因为电子设备100仅使用对应于第一类的权重信息来执行人工智能分析,所以可能不要求生成或改变权重信息的单独操作。因此,内核生成器603不需要生成新的权重信息。电子设备100可以向DMAC 602发送存储在DRAM 601中的对应于第一类的权重信息,以及向片上存储器604直接发送被发送给DMAC 602的、对应于第一类的权重信息。此外,电子设备100可以通过使用被发送给片上存储器604的、对应于第一类的权重信息来执行人工智能分析。当要求快速的数据处理速度时,可以使用根据第一示例605的数据处理方法。
在第二示例610中,假设对应于第一类的权重信息和对应于第二类的权重信息存储在DRAM 601中,并且使用对应于第一类的权重信息和对应于第二类的权重信息两者来执行人工智能分析。因为只有对应于第一类的权重信息和对应于第二类的权重信息存储在DRAM 601中,并且没有通过组合第一类和第二类获得的整合的权重信息,所以电子设备100可以生成整合的权重信息。为了生成整合的权重信息,电子设备100可以向DMAC 602发送存储在DRAM 601中的对应于第一类的权重信息和对应于第二类的权重信息,并且DMAC 602可以向内核生成器602发送回对应于第一类的权重信息和对应于第二类的权重信息。内核生成器603可以基于接收的对应于第一类的权重信息和接收的对应于第二类的权重信息生成新的权重信息(整合的权重信息)。此外,电子设备100可以向片上存储器604发送由内核生成器603生成的整合的权重信息,并基于发送给片上存储器604的整合的权重信息执行人工智能分析。当要求高质量的数据分析结果时,可以使用根据第二示例610的数据处理方法。
在第三示例615中,假设对应于第二类的权重信息存储在DRAM 601中,对应于第一类的权重信息存储在片上存储器604中,并且使用对应于第一类的权重信息和对应于第二类的权重信息两者来执行人工智能进行分析。这里,由于电子设备100还没有获得作为结果的、通过组合第一类和第二类获得的权重信息,因此电子设备100需要生成整合的权重信息。因此,电子设备100可以向DMAC 602发送与存储在DRAM 601中的第二类对应的权重信息,并且向内核生成器603发送被发送给DMAC 602的、对应于第二类的权重信息。此外,电子设备100可以向内核生成器603发送存储在片上存储器604中的、对应于第一类的权重信息。此外,电子设备100可以基于对应于第一类的权重信息和对应于第二类的权重信息通过内核生成器603来生成整合的权重信息。此外,电子设备100可以从内核生成器603向片上存储器604发送生成的整合的权重信息。此外,电子设备100可以基于发送给片上存储器604的整合的权重信息执行人工智能分析。当从快速数据处理方法改变为高质量数据处理方法时,可以使用根据第三示例615的数据处理方法。
在第四示例620中,假设对应于第二类的权重信息存储在DRAM 601中,对应于第一类和第二类两者的整合的权重信息存储在片上存储器604中,并且仅使用对应于第一类的权重信息执行人工智能分析。当前,由于片上存储器604中仅存储整合的权重信息,因此电子设备100需要通过内核生成器603生成对应于第一类的权重信息。因此,电子设备100可以从片上存储器604向内核生成器603发送整合的权重信息。此外,电子设备100可以从DRAM601向DMAC 602发送对应于第二类的权重信息,并且向内核生成器603发送被发送的对应于第二类的权重信息。电子设备100可以基于整合的权重信息和对应于第二类的权重信息来生成对应于第一类的权重信息。因为整合的权重信息包括对应于第一类的权重信息和对应于第二类的权重信息两者,所以电子设备100可以执行从整合的权重信息中仅擦除对应于第二类的权重信息的操作。因为内核生成器603执行数据擦除操作,所以内核生成器603可以对应于擦除模式。此外,电子设备100可以通过仅使用与由内核生成器603生成的第一类对应的权重信息来执行人工智能分析。当从高质量数据处理方法改变到快速数据处理方法时,可以使用根据第四示例620的数据处理方法。
在第五示例625中,假设对应于第一类的权重信息和对应于第二类的权重信息分别存储在片上存储器604中,并且使用对应于第一类和第二类两者的权重信息两者执行人工智能分析。电子设备100可以从片上存储器604向内核生成器603发送与第一类对应的权重信息和与第二类对应的权重信息从以生成整合的权重信息。此外,电子设备100可以通过内核生成器603基于与第一类对应的权重信息和与第二类对应的权重信息来生成整合的权重信息。此外,电子设备100可以向片上存储器604发送由内核生成器603生成的整合的权重信息。此外,电子设备100可以基于整合的权重信息执行人工智能分析。当从快速数据处理方法改变为高质量数据处理方法时,可以使用根据第五示例625的数据处理方法。
图6B是用于描述获得权重矩阵的其他示例的示图。
参照图6B,如图6A所述,电子设备100可以包括DRAM 601、直接存储器访问控制器(DMAC)602、内核生成器603或片上存储器604中的至少一个。
第六示例630可以是对应于第二类的权重信息存储在DRAM 601中、对应于第一类和第二类两者的整合的权重信息存储在片上存储器604、以及仅使用对应于第一类的权重信息执行人工智能分析、类似于第四示例620的示例。然而,第六示例630的内核生成器603可以不从DRAM 601接收与第二类对应的所有权重信息,而是只有索引。因为已经从片上存储器604接收了对应于第二类的权重信息的权重,所以可以仅从DRAM 601接收排除了权重的索引。已经参考图5B描述了与其相关的具体操作。
第七示例635可以是对应于第三类的权重信息存储在DRAM 601中,对应于所有第一类、第二类和第三类的整合的权重信息存储在片上存储器604中,仅使用对应于第一类和第二类的权重信息执行人工智能分析的示例。当前,由于片上存储器604中仅存储了整合的权重信息,因此电子设备100需要通过内核生成器603生成对应于第一类和第二类的权重信息。因此,电子设备100可以执行控制以从片上存储器604向内核生成器603发送整合的权重信息。此外,电子设备100可以执行控制以通过DMAC 602向内核生成器603仅发送存储在DRAM 601中的对应于第三类的权重信息的索引。另外,内核生成器603可以通过使用接收的整合的权重信息和索引来生成新的权重信息。稍后将参考图10B描述与此相关的具体操作。
第八示例640可以是对应于第二类的权重信息和对应于第三类的权重信息存储在DRAM 601中,对应于所有第一类、第二类、以及第三类的整合的权重信息存储在片上存储器604中,并且仅使用对应于第一类的权重信息执行人工智能分析的示例。当前,由于片上存储器604中仅存储了整合的权重信息,因此电子设备100需要通过内核生成器603生成对应于第一类的权重信息。因此,电子设备100可以执行控制以从片上存储器604向内核生成器603发送整合的权重信息。另外,电子设备100可以执行控制以通过DMAC 602仅向内核生成器603发送存储在DRAM 601中的对应于第二类的权重信息的索引和对应于第三类的权重信息的索引。此外,内核生成器603可以通过使用接收的整合的权重信息和索引来生成新的权重信息。稍后将参考图10C描述与此相关的具体操作。
图7是用于描述通用方法705、修剪操作710和零跳跃操作715的示图。
参照图7,电子设备100可以根据通用方法705将权重信息706和输入数据707相乘。通用方法705可以不对权重信息706应用任何修改并且可以是照原样使用已经获得的权重的方法.
同时,电子设备100可以考虑关于权重信息706中的权重大小的信息来改变权重信息706。具体地,电子设备100可以执行修剪操作710。修剪操作710可以是当权重的大小为阈值或更小时,将权重改变为0的操作。例如,假设阈值为0.09。电子设备100可以将具有阈值(0.09)或更小的大小值的权重改变为0。电子设备100可以在权重信息706中对具有阈值(0.09)或更小的权重的大小的权重分组分成连续的权重,并且可以获得多个组706-1、706-2和706-3。此外,电子设备100可以将包括在多个组706-1、706-2和706-3中的每个组中的权重改变为0。这样的修剪操作710可以具有通过将一定大小或更小的权重改变为0来简化计算过程的目的。因此,电子设备100可以获得通过修剪操作710改变的权重信息711。此外,电子设备100可以将改变的权重信息711与输入数据707相乘。通用方法705和通过修剪操作710的计算方法具有相同数量的计算次数,但在通过修剪操作710的计算方法中,由于乘以0的次数的数量较大,因此可以简化计算过程并且可以提高处理速度。
同时,电子设备100可以对由修剪操作710生成的改变的权重信息711执行零跳跃操作715。因为已经参考图3描述了零跳跃操作,因此省略了冗余的描述。电子设备100可通过对改变的权重信息711执行零跳跃操作715来生成权重信息716,并且权重信息716可包括索引3、5和4、权重0.7、-0.1和0.86以及顺序信息3、0.7、5、-0.1、4和0.86。
图8是用于描述获得权重信息的示例的示图。
参照图8,电子设备100可以获得通过根据预设准则对权重信息805进行分类而获得的多个类以及与多个类中的每个类对应的权重信息。因为已经参考图4详细描述了获得多个类和对应于多个类的权重信息的操作,因此将省略冗余的描述。
这里,权重信息805可以对应于已经对其执行修剪操作的结果数据。权重信息805可以包括具有权重为0的数据和具有权重不为0的数据805-1、805-2、805-3、805-4和805-5。
这里,电子设备100可以将权重信息805分类为三类。可以预先存储第一阈值和第二阈值以对三个类进行分类。当权重的大小值(或权重的重要性)为第一阈值或更大时,电子设备100可以确定权重对应于第一类,当权重的大小值(权重的重要性)为第二阈值或更大且小于第一阈值时,确定权重对应于第二类,当权重的大小值(权重的重要性)小于第二阈值时,确定权重对应于第三类。
例如,假设第一阈值为0.6,并且第二阈值为0.3。因为权重(0.7)805-1和权重(0.8)805-4中的每个的大小值是第一阈值(0.6)或更大,所以电子设备100可以确定权重(0.7)805-1而权重(0.8)805-4对应第一类。此外,因为权重(0.5)805-3和权重(-0.4)805-5中的每个的大小值为第二阈值(0.3)或更大且小于第一阈值(0.6),所以电子设备100可以确定权重(0.5)805-3和权重(-0.4)805-5对应于第二类。另外,因为权重(-0.1)805-2的大小值小于第二阈值(0.3),所以电子设备100可以确定权重(-0.1)805-2对应于第三类。第一类可以是具有最高大小值的一组权重,而第三类可以是具有最低大小值的一组权重。
电子设备100可以获得对应于每个类的权重信息。具体地,电子设备100可以获得对应于第一类的权重信息811、对应于第二类的权重信息812和对应于第三类的权重信息813。对应于第一类的权重信息811可以通过将排除被确定为第一类的权重805-1和805-4之外的权重考虑为0来获得。对应于第二类的权重信息812可以通过将排除被确定为第二类的权重805-3和805-5之外的权重考虑为0来获得。对应于第三类的权重信息813可以通过将排除被确定为第三类的权重805-2之外的权重考虑为0来获得。
同时,对应于每个类的权重信息可以不包括在每个类的最后的权重之后放置的零的数量。例如,对应于第一类的权重信息811可以仅包括直到最后的权重805-4的数据,并且对应于第三类的权重信息813可以仅包括直到最后的权重805-2的数据。
同时,由于已经参照图4描述了获得对应于每个类的权重信息的方法,省略了冗余的描述。
电子设备100可以包括DRAM 810或内核生成器815中的至少一个。电子设备100可以在DRAM 810中存储对应于第一类的权重信息811、对应于第二类的权重信息812和对应于第三类的权重信息813。此外,电子设备100可以根据需要通过使用对应于第一类的权重信息811、对应于第二类的权重信息812或对应于第三类的权重信息813中的至少一个来执行人工智能分析。
在图8中,假设仅使用对应于第一类的权重信息811来执行人工智能分析。电子设备100可以通过仅使用存储在DRAM 810中的多个权重信息当中的对应于第一类的权重信息811来执行人工智能分析。这里,电子设备100可以向内核生成器815发送对应于第一类的权重信息811。然而,因为DRAM 810本身已经包括对应于第一类的权重信息811,所以可能不需要生成新的权重信息。由于内核生成器815不需要执行单独的组合操作,因此当要求快速的数据处理速度时,可以使用根据图8中公开的示例的数据处理方法。
同时,通过仅使用对应于第一类的权重信息811来执行人工智能分析的图8中的示例可以是类似于图6A的第一示例605的示例。然而,图8中公开的示例可以是分类为三个类的示例,不同于图6A的第一示例605。
图9是用于描述生成权重信息的示例的示图。
参照图9,权重信息905可以对应于图8的权重信息805。另外,对应于第一类的权重信息911、对应于第二类的权重信息912和对应于第三类的权重信息913可以分别对应于图8的权重信息811、812和813。因此,省略了冗余的描述。
在图9的示例中,假设对应于第一类的权重信息911、对应于第二类的权重信息912、对应于第三类的权重信息913存储在DRAM 601中,并且使用对应于第一类、第二类、第三类的权重信息中的所有来执行人工智能分析。这里,通过整合对应于第一类、第二类和第三类的权重信息中的所有而获得的新权重信息可以被描述为整合的权重信息914。
电子设备100可以向内核生成器915发送存储在DRAM 910中的权重信息911、912和913中的每个以组合对应于第一类的权重信息911、对应于第二类的权重信息912、以及对应于第三类的权重信息913,并且内核生成器915可以基于权重信息911、912和913中的每个生成整合的权重信息914。这里,内核生成器915可以使用预定义的代码信息来生成整合的权重信息914。预定义的代码信息可以是与使用堆栈结构处理数据的操作相关的代码。当针对数据分析结果请求高质量时,可以使用根据图9中公开的示例的数据处理方法。
同时,通过使用图9中的整合的权重信息914执行人工智能分析的示例可以是类似于图6A的第二示例610的示例。然而,图9中公开的示例可以是分类为三个类的示例,不同于图6A的第二示例610。
同时,图9中公开的操作可以使用图5A中描述的代码来执行。省略了对代码的冗余描述。
图10A是用于描述生成权重信息的另一个示例的示图。
参照图10A,权重信息1005可以对应于图8的权重信息805。另外,对应于第一类的权重信息1011、对应于第二类的权重信息1012和对应于第三类的权重信息1013可以分别对应于图8的权重信息811、812和813。此外,对应于第一类、第二类和第三类中的所有的整合的权重信息1014可以对应于图9的整合的权重信息914。因此,将省略图8和图9的冗余描述。
在图10A的示例中,假设对应于第一类的权重信息1011、对应于第二类的权重信息1012和对应于第三类的权重信息1013存储在DRAM 1010中,并且整合的权重信息1014存储在片上存储器1020中。此外,在图10A的示例中,假设使用对应于第一类和第二类的权重信息执行人工智能分析。这里,权重信息1013可以包括索引1013-1和对应于索引1013-1的权重1013-2。此外,权重信息1014可以包括索引1014-1、1014-3、1014-5、1014-7和1014-9以及对应于索引1014-1、1014-3、1014-5、1014-7和1014-9的权重1014-2、1014-4、1014-6、1014-8和1014-10。整合的权重信息可以指包括第一类、第二类和第三类中的所有的权重信息。
根据图10A的示例,电子设备100仅存储对应于第一类的权重信息1011、对应于第二类的权重信息1012、对应于第三类的权重信息1013和整合的权重信息1014,但可以不存储对应于第一类和第二类的权重信息。因此,电子设备100可以通过内核生成器1015生成对应于第一类和第二类的权重信息1016。这里,权重信息1016可以包括索引1016-1、1016-3、1016-5和1016-7和对应于索引1016-1、1016-3、1016-5和1016-7的权重1016-2、1016-4、1016-6和1016-8。
这里,内核生成器1015可以从DRAM 1010接收对应于第三类的权重信息1013当中的索引1013-1和对应于索引1013-1的权重1013-2两者。另外,内核生成器1015可以从片上存储器1020接收整合的权重信息1014当中的索引1014-1、1014-3、1014-5、1014-7和1014-9以及对应于索引1014-1、1014-3、1014-5、1014-7和1014-9的权重1014-2、1014-4、1014-6、1014-8和1014-10。
这里,内核生成器1015可以基于整合的权重信息1014和对应于第三类的权重信息1013来生成对应于第一类和第二类的权重信息1016。因为整合的权重信息1014包括对应于第一类的权重信息1011、对应于第二类的权重信息1012和对应于第三类的权重信息1013中的所有,所以电子设备100可以执行仅从整合的权重信息1014中擦除对应于第三类的权重信息的操作。因为内核生成器1015执行数据擦除操作,所以内核生成器1015可以对应于擦除模式。此外,电子设备100可以通过仅使用由内核生成器1015生成的对应于第一类和第二类的权重信息1016来执行人工智能分析。当要求快速的数据处理速度和高质量的数据分析结果时,可以使用根据图10A的示例的数据处理方法。
图10B是用于描述在图10A的示例中应用另一计算过程的操作的示图。
参照图10B,内核生成器1015在执行与图10A中相同的操作时可能不从DRAM 1010接收权重1013-2。具体地,内核生成器1015可以仅从DRAM 1010接收索引1013-1。结果,可以仅执行在生成新权重信息1016的过程中减去权重的操作。因此,内核生成器1015可以找到仅由索引1013-1擦除的权重(-0.1)的位置。因此,不同于图10A的示例,内核生成器1015可以仅从DRAM 1010接收权重信息1013的索引1013-1。
因为图10B的剩余操作可以对应于图10A的那些,因此省略了冗余的描述。
图10C是用于描述生成权重信息的又一示例的示图。
参照图10C,DRAM 1010可以包括对应于第一类的权重信息1011、对应于第二类的权重信息1012和对应于第三类的权重信息1013。这里,权重信息1012可以包括索引1012-1和1012-3以及对应于索引1012-1和1012-3的权重1012-2和1012-4。此外,权重信息1013可以包括索引1013-1和对应于索引1013-1的权重1013-2。
内核生成器1015可以从DRAM 1010仅接收权重信息1012的索引1012-1和1012-3以及权重信息1013的索引1013-1。另外,内核生成器1015可以从片上存储器1020接收整合的权重信息1014当中的索引1014-1、1014-3、1014-5、1014-7和1014-9以及对应于索引1014-1、1014-3、1014-5、1014-7和1014-9的权重1014-2、1014-4、1014-6、1014-8和1014-10。
这里,内核生成器1015可以通过从接收的权重信息1014中擦除与权重信息1012的索引1012-1和1012-3以及权重信息1013的索引1013-1对应的权重来生成新的权重信息1017。这里,权重信息1017可以包括索引1017-1和1017-3以及对应于索引1017-1和1017-3的权重1017-2和1017-4。权重信息1017可以指对应于第一类的权重信息,因此可以与权重信息1011相同。
因为图10C的剩余操作可以对应于图10A和图10B的那些,因此省略了冗余的描述。
图11是用于描述基于修剪操作而改变的权重的分布的示图。
参照图11,组织图表1105可以是对应于基本权重信息的组织图表,组织图表1125可以是修剪操作后的组织图表。在组织图表1105和组织图表1125中,可以表示输入层和输出层之间的关系。同时,修剪操作可以通过人工智能模型来执行。
假设输入层包括4个节点i1、i2、i3和i4,并且输出层包括5个节点o1、o2、o3、o4和o5。这里,可以在输入层的节点和输出层的节点之间确定权重,并且在上述假设中,可以确定总共20个权重。在组织图表1105和组织图表1125中,粗实线可以指具有权重不为0的数据,细实线可以指具有权重为0的数据,并且虚线可以指执行修剪操作的数据。
表格1110可以指基本权重信息,表格1130可以指在基本权重信息中执行修剪操作的权重信息。人工智能模型可以从包括在表格1110中的20个权重中识别不为0的权重,并且可以从不为0的权重中识别小于预设阈值(0.1)的权重。人工智能模型可以将不为0的权重中小于预设阈值(0.1)的权重分组为一个组1111。另外,人工智能模型可以对识别的组1111执行修剪操作。这里,修剪操作可以指将不为0的数据改变为0的操作。对识别的组1111执行修剪操作之后,数据组1131的所有权重可能为0。
表格1115可以表示基本权重信息的每个权重大小的数量信息,并且表格1135可以表示对其执行修剪操作的权重信息的每个权重大小的数量信息。表1115可以对应于表格1110,并且表格1135可以对应于表格1130。
图形1120可以表示基本权重信息的权重的大小与权重的数量之间的关系,图形1140可以表示执行修剪操作的权重信息的权重的大小与权重的数量之间的关系。根据图形1120,基本权重信息可以具有随着权重的大小增加而权重的数量减少并且随着权重的大小减小而权重的数量增加的分布。另外,区域1121可以对应于组1111,区域1141可以对应于组1131。同时,点1142可以指示基于修剪操作反映零的数量的增加的结果。
图12是用于描述不考虑电子设备的资源而确定权重的示例的示图。
参照图12,包括在权重信息中的权重的总数可以是固定的。如果权重的总数是固定的,那么包括权重的人工智能模块的准确度可能也是恒定的。
表格1205是示出权重的数量与人工智能模块的准确度之间的关系的表格。如果权重的总数固定为n1,那么人工智能模块的准确度可能也是固定的。假设电子设备100包括识别面部的人工智能模块,并且分析限制中的面部的数量为7。
在第一示例1210中,假设目标面部的数量为4。由于人工智能模块的分析限制中的面部数量为7,因此电子设备100可以分析小于分析限制中面部的数量的所有四个目标面部。第一示例1210可以是对应于电子设备100的资源充足的情况的示例。
在第二示例1215中,假设目标面部的数量为15。由于电子设备100的分析限制中的面部数量为7,则电子设备100可以不分析所有目标面部。因此,电子设备100可以识别15个目标面部中的7个面部,并仅对7个目标面部执行分析,而可以不分析剩余的8个目标面部。第二示例1215可以是对应于电子设备100的资源不足的情况的示例。
图13是用于描述考虑电子设备的资源来确定权重的示例的示图1305。
参照图13,可以改变包括在权重信息中的权重的总数。如果权重的总数被改变了,则人工智能模块的准确度可能改变。如果权重的总数减少,人工智能模块的准确度可能减少,并且如果权重的总数增加,人工智能模块的准确度可能增加。
假设电子设备100中包括的人工智能模块的当前权重的总数为n1,分析限制中的面部数量为7。
在第一示例1310中,假设目标面部的数量为4。由于电子设备100的分析限制中的面部的数量为7,因此电子设备100可以分析小于分析限制中面部的数量的所有四个目标面部。第一示例1310可以是对应于电子设备100的资源充足的情况的示例。
在第二示例1315中,假设目标面部的数量为15。由于人工智能模块的分析限制中的面部的数量为7,电子设备100可能不分析所有目标面部。因此,电子设备100可以改变权重的总数来分析所有15个目标面部。电子设备100可以将权重的总数改变为小于n1的n2。随着权重的总数减少,计算量减少,结果,可以确保电子设备100的资源。另外,如果权重的总数是n2,假设分析限制中的面部的数量是15。则电子设备100可以通过将关于人工智能模块的权重的总数量的信息从n1改变为n2来分析所有目标面部(15),其中,n2是小于n1的值。
但是,由于权重总数量减少,人工智能模块的准确度可能降低。考虑到用户要求的准确度和电子设备100的资源信息两者,电子设备100可以在多个操作点当中识别最优操作点。电子设备100可以基于识别的最优操作点将权重的总数量从n1改变为n2。
图14A是用于描述将多个权重分类为多个类的操作的示图。
参照图14A,电子设备100可以在执行人工智能分析之前预先训练权重信息。这里,可以在除了电子设备100之外的外部服务器中生成预先训练的权重信息。另外,外部服务器可以将权重信息分类为多个类。类的数量可以是预定义的数量,并且也可以预定义训练方法。
图14A中公开的多个表格1405、1410、1415-1、1415-2、1420、1425、1430和1435可以表示权重的大小和权重的数量之间的关系。
同时,为了将权重信息分类为多个类,外部服务器可以包括第一阶段1401和第二阶段1402。
在第一阶段1401中,可以将权重信息分类为类A1和类B1。根据表格1405,类A1可以是具有相对大的大小的权重(或权重的重要性)的类,并且类B1可以是具有相对小的大小的权重(或权重重要性)的类。将类A1和类B1分类的准则可以是预设信息或用户输入的信息。例如,预设信息可以为将第一类分类为前20%并将第二类分类为从前20%到前100%的准则。外部服务器可以基于所有权重当中权重的大小(或权重的重要性)将对应于前20%的权重分组为类A1,并将对应于前20%到前100%的权重分组为类B1。这里,在将所有权重分类为类A1和类B1时,根据实施例,可以基于训练结果改变现有权重的值。然而,根据另一实施例,将权重信息分类为多个类可以以在保持现有权重的值的同时仅执行分组操作的形式来实现。
此外,外部服务器可以对多个类当中具有相对小的权重的大小的类(类B1)执行修剪操作(S1406)。如果对类B1执行修剪操作,则可以将具有相对小的大小的权重改变为0,对应于改变的结果的关系图形可以是图形1410。图形1410可以指示当对权重信息执行修剪操作时,只剩余相对大的权重。
此外,外部服务器可以对剩余在权重信息中的类(类A1)执行再训练操作(S1411-1)。对应于再训练操作S1411-1的结果的关系图形可以是图形1415-1。这里,再训练操作S1411-1可以指对包括在类A1中的权重进行再训练的操作。基于再训练权重的操作,可以改变现有类A1中包括的权重,并且将改变的权重描述为类A2。也就是说,类A1和类A2的权重可以不同。
外部服务器可以对A2类执行再训练操作(S1411-2)。对应于再训练操作S1411-2的结果的关系图形可以是图形1415-2。这里,再训练操作S1411-2可以指将一个类再次分类为多个类的操作。例如,外部服务器可以基于再训练操作将类A2分类为类a11和类a12。将类A2分为类a11和类a12的准则可以是预设信息或用户输入信息。例如,假设将类分类为多个类的标准是目标类的50%。外部服务器可以将类A2中包括的权重当中的对应于前50%的权重分组为类a11,并将对应于前50%到前100%的权重分组为类a12。这里,类a11和类a12可以各自包括总权重的10%。这里,再训练操作S1411-2可以包括与分组操作一起改变权重的值的操作。即,基于再训练操作S1411-2的结果,包括在类A2中的权重与包括在类a11和类a12中的权重可能不同。
此外,外部服务器可以对多个类当中具有相对小的权重的大小的类(类a12)执行修剪操作(S1406)。如果对类a12执行修剪操作,可以将具有相对小的大小的权重改变为0,并且对应于改变的结果的关系图形可以是图形1420。图形1420可以指示当对权重信息执行修剪操作时,只剩余相对大的权重。
此外,外部服务器可以对剩余在权重信息中的类(类a11)执行再训练操作(S1421)。这里,再训练操作可以指将现有类中包括的权重改变为新的权重。对应于再训练操作S1421的结果的关系图形可以是图形1425。例如,外部服务器可以将类a11改变为类a13。这里,包括在类a13中的权重和包括在类a11中的权重可以不同。这里,再学习操作S1421可以是从第一阶段1401移动到第二阶段1402的操作。
此外,外部服务器可以对权重信息执行再训练操作(S1426)。这里,再训练操作可以指通过将已经被修剪操作擦除的类(类a12)添加到权重信息中剩余的类(类a13)来执行再训练。通过添加已经被修剪操作擦除的类(类a12)来执行再训练可以指改变类a12中包括的权重。对应于再训练操作S1426的结果的关系图形可以是图形1430。例如,外部服务器可以基于再训练操作对类a13和类a14进行分类。此外,类a14可以是在再训练类a12的操作S1426中生成的类。具体地,外部服务器可以添加类a12并对类a13和类a12执行再训练操作S1426。这里,当执行再训练操作S1426时,可以不改变包括在类a13中的权重。外部服务器可以只改变包括在类a12中的权重,并且可以改变包括在类a12中的权重以将改变的权重分组到新的类a14中。也就是说,外部服务器可以通过改变包括在类a12中的权重来生成新的类a14。类a14可以是在再训练类a12的操作S1426中生成的类,并且类a14中包括的权重和类a12中包括的权重可以不同。
此外,外部服务器可以对权重信息执行再训练操作(S1431)。这里,再训练操作可以指通过将已经被修剪操作擦除的类(类B1)添加到剩余在权重信息中的类(类a13和类a14)来执行再训练。通过添加已经被修剪操作擦除的类(类B1)来执行再训练可以指改变类B1中包括的权重。对应于再训练操作S1431的结果的关系图形可以是图形1435。例如,外部服务器可以基于再训练操作将类B2添加到类a13和类a14。这里,对应于类a13和类a14的权重值可以不通过再训练操作S1431改变。外部服务器基于类a13、类a14和类B1执行再训练操作,并且可以只改变对应于类B1的权重。这里,可以通过改变对应于类B1的权重来生成新的类B2。类B2可以是在再训练类B1的操作S1431中生成的类,并且类B2中包括的权重和类B1中包括的权重可以不同。
外部服务器可以最终将权重信息分类为三组(类a13、类a14和类B2),并且可以将最终得到的三组(类a13、类a14和类B2)存储在存储器中。另外,外部服务器可以分别存储对应于存储在存储器中的三组(类a13、类a14和类B2)的权重信息。
图14B是用于描述将多个权重分类为多个类的操作的计算过程的示图。
参照图14B,外部服务器可以包括原始权重。这里,原始权重可以由表格1440中所示的4*5矩阵表示。外部服务器可以基于原始权重执行70%的修剪操作1450、80%的修剪操作1460和90%的修剪操作1470。
70%修剪操作1450可以指将70%的权重转换为0,同时从原始权重留下30%的权重。70%修剪操作1450可以包括分类操作、修剪操作和再训练操作。这里,分类操作可以是指以预设的方式布置权重(原始或转换的权重)。在第一分类操作中,外部服务器可以如表格1451所示地布置原始权重,而无需任何单独的数据转换。另外,外部服务器可以修剪与对应于表格1451的权重的70%对应的权重。要被修剪的权重可以基于权重的大小来确定。然而,可以另外地应用各种准则,而无需仅考虑权重的大小。如果执行70%修剪,则外部服务器可以获得对应于表格1452的权重。外部服务器可以在获得对应于表格1452的权重之后执行再训练操作。外部服务器可以获得表格1453对应的权重作为再训练操作的结果。外部服务器可以基于对应于表格1453的权重执行80%修剪操作1460。
80%修剪操作1460可以指将80%的权重转换为0,同时从对应于表格1453的权重(包括0)中留下20%的权重。外部服务器可以对对应于表格1453的权重执行分类操作。当外部服务器在执行分类操作时,可能改变一些权重。例如,外部服务器可以将对应于表格1453的权重当中的“0.62”改变为“0.82”。外部服务器可以基于分类操作获得对应于表格1461的权重。另外,外部服务器可以通过基于获得的对应于表格1461的权重执行修剪操作来获得对应于表格1462的权重。另外,外部服务器可以通过基于获得的对应于表格1462的权重执行再训练操作来获得对应于表格1463的权重。外部服务器可以基于对应于表格1463的权重执行90%修剪操作1470。
90%修剪操作1470可以指将90%的权重转换为0,同时从对应于表格1463的权重(包括0)中留下10%的权重。外部服务器可以对对应于把表格1463的权重执行分类操作。这里,分类操作可以是指在不单独改变数据的情况下对权重进行布置。外部服务器可以根据分类操作获得对应于表格1471的权重。另外,外部服务器可以基于获得的对应于表格1471的权重执行修剪操作来获得对应于表格1472的权重。另外,外部服务器可以通过基于获得的对应于1472的权重执行再训练操作来获得对应于表格1473的权重。这里,外部服务器可以识别对应于表格1473的权重当中具有不为0的值的权重(“1.43”和“0.94”)是对应于第一类的权重。此外,外部服务器可以执行恢复操作1480以识别对应于第二类的权重。
图14C是用于继续描述图14B的操作的示图。
参照图14C,外部服务器可以基于对应于表格1473的权重执行恢复操作1480。具体地,外部服务器可以通过恢复已经在90%修剪操作1470中转换为0的权重(“0.71”和“0.85”)来获得对应于表格1481的权重。另外,外部服务器可以通过基于对应于表格1481的权重执行再训练操作来获得对应于表格1482的权重。这里,可以基于再训练操作改变一些权重。这里,外部服务器不改变对应于第一类的权重(“1.43”和“0.94”),而可以仅将恢复操作1480中添加的权重(“0.71”和“0.85”)改变为新的权重(“0.66”和“1.10”)。这里,外部服务器可以将恢复过程中新获得的权重(“0.66”和“1.10”)识别为对应于第二类的权重。
同时,外部服务器可以基于对应于表格1482的权重进行恢复操作1490。具体地,外部服务器可以通过恢复已经在80%修剪操作1460中被转换为0的权重(“0.30”和“0.41”)来获得对应于表格1491的权重。另外,外部服务器可以通过基于对应于表格1491的权重执行再训练操作来获得对应于表格1492的权重。这里,可以基于再训练操作改变一些权重。这里,外部服务器不改变对应于第一类的权重(“1.43”和“0.94”)和对应于第二类的权重(“0.66”和“1.10”),而可以只将在恢复操作1490中添加权重(“0.30”和“0.41”)改变为新的权重(“0.14”和“0.49”)。这里,外部服务器可以将恢复过程中新获得的权重(“0.14”和“0.49”)识别为对应于第三类的权重。
结果,外部服务器可以获得被分类为多个类的权重1495。具体地,对应于第一类的权重可以是“1.43”和“0.94”,对应于第二类的权重可以是“0.66”和“1.10”,并且对应于第三类的权重可以是“0.14”和“0.49”。外部服务器可以通过组合关于获得的权重1495的索引和对应于索引的权重来生成权重信息。此外,外部服务器可以将生成的权重信息发送给电子设备100。
图14D是用于描述权重的分布的示图。
参照图14D,图形1496可以表示权重的分布。图形1496的横轴可以指权重,纵轴可以指权重的数量。关于图14A和图14B中描述的权重,权重的绝对值越小,权重的数量可能越大,权重的绝对值越大,权重的数量可能越少。
图15是用于描述基于被分类为多个类的权重信息来执行人工智能分析的多个示例的示图。
图15中公开的第一示例1501可以是单独的内核生成器1525和神经网络处理器(NPU)1535的示例。具体地,第一示例1501可以包括将原始权重分类为多个类的操作1510,以及基于多个分类的类的权重和电子设备100的资源来确定使用对于哪个类的权重的操作。这里,将权重分类和存储到多个类的操作1510可以在外部服务器(未示出)中执行,并且可以在电子设备100中执行其他操作。电子设备100可以从外部服务器(未示出)接收被分类为多个类的权重,并且将接收的权重存储在DRAM(存储器)中。同时,外部服务器(未示出)可以指执行计算过程以确定在人工智能模型中使用的权重的服务器。
关于将原始权重分类并存储到多个类中的操作1510,外部服务器(未示出)可以从存储原始权重的环境1505改变为将原始权重分类到多个类的环境1506。存储原始权重的环境1505可以是指将人工智能模块中使用的多个权重保持在预设数量的环境。原始权重被分类到多个类的环境1506可以指初始存储的预设权重基于权重的大小值(或权重的重要性)被分类到多个类的环境。因为已经参照图14A至图14B描述了将原始权重分类为多个类的环境1506的详细操作,因此省略了冗余描述。同时,存储原始权重的环境1505和将原始权重分类为多个类的环境1506可以是外部服务器(未示出)的环境。外部服务器(未示出)可以向电子设备100发送与环境1505和1506中的每一个对应的权重信息,并且电子设备100可以将接收的权重信息存储在DRAM(未示出)中。特别地,电子设备100可以将权重分类并存储到处于离线状态(未连接到外部网络的环境)的多个类中。
根据第一示例1501,电子设备100可以包括DRAM(未示出)、状态分析模块1515(状态分析器)、操作控制模块1520(操作管理器)、内核生成器1525、SRAM 1530,或神经网络处理器1535中的至少一个。
DRAM(未示出)可以从外部服务器(未示出)接收和存储对应于多个类的权重信息。此外,电子设备100可以基于内核生成器1525将必要的权重信息从DRAM(未示出)向内核生成器1525发送。此外,内核生成器1525可以基于必要的权重信息生成新的权重信息。同时,当内核产生器1525不需要改变权重信息时,电子设备100可以直接从DRAM(未示出)向SRAM1530发送权重。
可以基于状态分析模块1515和操作控制模块1520来确定是通过组合权重信息生成新的权重信息还是照原样使用现有权重信息。具体地,状态分析模块1515可以分析电子设备100的资源的当前状态。此外,操作控制模块1520可以基于由状态分析模块1515识别的电子设备100的资源确定操作点。选择操作点的操作可以是确定如何使用对应于存储在DRAM(未示出)中的多个类的权重信息的操作。
作为示例,当电子设备100的当前资源充足时,操作控制模块1520可以使用对应于所有类的所有权重信息来执行人工智能分析。为了综合对应于所有类的权重信息并执行人工智能分析,操作控制模块1520可以确定将对应于第一类的权重信息、对应于第二类的权重信息和对应于第三类的权重信息组合(或整合)。此外,电子设备100可以将对应于第一类的权重信息、对应于第二类的权重信息和对应于第三类的权重信息从DRAM(未示出)向内核生成器1525发送,以及可以在内核生成器1525中生成对应于第一类、第二类和第三类的整合的权重信息。另外,电子设备100可以将生成的整合的权重信息从内核生成器1525向SRAM1530发送。
作为另一示例,当电子设备100的资源不足时,操作控制模块1520可以识别最优操作点。可以基于用户满意度(分析准确度)和处理时间中的至少一个来确定最优操作点。假设仅使用对应于第一类的权重信息确定执行人工智能分析的最优操作点。操作控制模块1520可以向DRAM(未示出)发送控制信号以向SRAM 1530发送存储在DRAM(未示出)中的对应于第一类的权重信息,而不生成新的权重信息。
SRAM 1530可以从DRAM(未示出)或内核生成器1525接收权重信息并向神经网络处理器1535发送权重信息。神经网络处理器1535可以基于接收的权重信息执行人工智能分析。
同时,第二示例1502可以是内核生成器1570被包括在NPU 1565中的示例。在第二示例1502中,与在第一示例1501中一样,在外部服务器中将原始权重分类并存储到多个类的操作1510可以以相同的方式执行,并且因此省略了冗余的描述。
根据第二示例1502,电子设备100可以包括DRAM 1550、DMAC 1555、SRAM 1560、NPU1565和内核生成器1570。电子设备100可以从外部服务器(未示出)接收被分类为多个类的权重信息并将权重信息存储在DRAM 1550中。此外,电子设备100可以分析电子设备100的资源状态并基于状态分析模块(未示出)以及操作控制模块(未示出)确定操作点。电子设备100可以将关于确定的操作点的信息存储在NPU 1565中。另外,NPU 1565可以生成请求与确定的操作点对应的权重信息的控制信号。此外,电子设备100可以向DRAM 1550发送生成的控制信号。另外,电子设备100可以从DRAM 1550获得与生成的控制信号对应的权重信息,并通过DMAC 1555和SRAM 1560向NPU 1565发送权重信息。另外,NPU 1565可以向内核生成器1570发送接收的权重信息。另外,内核生成器1570可以基于接收的权重信息生成与确定的操作点对应的新的权重信息。
图16是用于描述基于被分类为多个类的权重信息执行人工智能分析的另一示例的示图。
参照图16,电子设备100可以包括操作控制模块1605、操作点确定模块1610、模式确定模块1615、内核生成器1620或存储器1630中的至少一个。这里,存储器1630可以是片上存储器或SRAM。
操作控制模块1605可以分析电子设备100的资源以确定电子设备100的当前资源是充足还是不足。如果电子设备100的资源不足,则操作控制模块1605可以使用操作点确定模块1610来寻找最优操作点。操作点确定模块1610可以通过将电子设备100中当前可用的资源与要求的资源进行比较来识别最优操作点。具体地,操作点确定模块1610可以确定使用多个类中的哪个来执行人工智能分析。当操作点确定模块1610确定使用哪个类来执行人工智能分析时,内核生成器1620可以接收对应于与由操作点确定模块1610确定的类对应的类的权重信息。另外,内核生成器1620可以基于接收的权重信息生成新的权重信息。此外,内核生成器1620可以向存储器1630发送生成的权重信息。
在识别了最优操作点之后,操作控制模块1605可以确定是添加与当前新类对应的权重信息还是从现有权重信息中擦除与特定类对应的权重信息。添加与当前新类对应的权重信息的示例可以类似于图5A和图9的示例,并且从现有权重信息中擦除与特定类相对应的权重信息的示例可以类似于图10A的示例。
模式确定模块1615可以基于电子设备100的当前资源状态接收用于当前是否要求插入(insertion)模式或擦除模式的控制信号。在添加与新类对应的权重信息的示例的情况下,模式确定模块1615可以确定插入模式。插入模式可以是指通过在现有索引中插入新的权重来生成新的权重信息。在从现有权重信息中擦除与特定类对应的权重信息的示例的情况下,模式确定模块1615可以确定擦除模式。擦除模式可以指将现有权重中的至少一个改变为0。模式确定模块1615可以根据确定的模式向内核生成器1620发送对应的控制信号。
这里,内核生成器1620可以用作解码器。解码器可以根据先前设置的操作点和当前设置的操作点之间的不同来配置类。此外,解码器可以对每个类的权重信息进行解码和组合。此外,解码器可以根据模式确定模块1615确定的模式向内核生成器1620发送数据。在插入模式的情况下,内核生成器1620可以向内核生成器1620发送索引和权重二者。另外,在擦除模式的情况下,内核生成器1620可以仅向内核生成器1620发送索引。在插入模式的情况下,由于需要执行插入权重的操作,因此要求权重,但是在擦除模式的情况下,因为特定位置的权重被擦除,所以可能只发送与特定位置对应的索引。
此外,内核生成器1620可以通过根据插入模式或擦除模式执行预定操作来生成新的权重信息。此外,内核生成器1620可以向存储器1630发送生成的权重信息。电子设备100可以基于向存储器1630发送的权重信息来执行人工智能分析。
图17是用于描述考虑资源信息来识别类的示例的示图。
参照图17,电子设备100可以基于内部存储器资源1710和特定于类的资源1720来识别用于人工智能分析的类。
假设电子设备100中包括的内部存储器的总资源为100。内部存储器资源1710可以包括使用的资源1711和可用资源1712。使用的资源1711可以指当前被内部存储器使用的资源,而可用资源1712可以指可以在当前内部存储器中可以被另外地处理的容量。
关于当前内部存储器,假设使用的资源1711为40并且可用资源1712为60。另外,特定于类的资源1720(或特定于类组合的资源)可以指根据多个类组合的资源信息。例如,电子设备100可以存储仅使用第一类执行人工智能分析所需的资源1721和使用第一类和第二类执行人工智能分析所需的资源1722。这里,假设仅使用第一类执行人工智能分析所需的资源1721是40,而使用第一类和第二类执行人工智能分析所需的资源1722是80。
因为可用资源1712是60,所以电子设备100可以确定不处理要求高于可用资源1712的资源的操作。此外,电子设备100可以处理要求小于可用资源1712的资源的操作。可以将与小于可用资源1712的资源对应的类组合确定为仅使用第一类的情况。因此,电子设备100可以仅使用第一类来执行人工智能分析。在这种情况下,要在内部存储器中另外地处理的处理资源1730可以是40。
电子设备100可以仅使用第一类来执行人工智能分析,并且在执行人工智能分析的同时,内部存储器的资源1740可以具有80的使用的资源1741和20的可用资源1742。
图18是用于描述考虑资源信息来识别类的另一示例的示图。
参照图18,因为内部存储器资源1810、特定于类的资源1820、处理资源1830、使用的资源1811、1861-1和1861-2以及可用资源1812、1862-1和1862-2可以对应于图17中的内部存储器资源1710、特定于类的资源1720、处理资源1730、使用的资源1711和1741以及可用资源1712和1742,因此省略了冗余的描述。
假设电子设备100包括的内部存储器的总资源为100。另外,关于当前的内部存储器,假设使用的资源1811为10,并且可用资源1812为90。此外,关于特定于类的资源1820,假设仅使用第一类执行人工智能分析所需的资源1821是40,并且使用第一类和第二类执行人工智能分析所需的资源1822是80。
电子设备100可以识别小于当前内部存储器的可用资源1812的类组合。小于可用资源1812的类组合可以是使用第一类的组合以及使用第一类和第二类两者的组合。由于内部存储器的可用资源1812是充足的,因此可能存在与类组合相关的多个组合可能全部被执行的情形。即,处理资源1830在仅使用第一类的人工智能分析的情况下可以是40,并且在使用第一类和第二类两者的人工智能分析的情况下可以是80。
因此,电子设备100可以基于预设准则识别多个组合当中的特定组合。预设准则可以与用户满意度相关,用户满意度可以是处理速度或处理结果的质量(准确度)中的至少一个。
作为示例,假设电子设备100执行(1840)处理速度很重要的人工智能分析。电子设备100可以在多个类组合当中识别具有低资源(仅使用第一类)的类组合。此外,在仅使用第一类执行人工智能分析时,内部存储器的资源1860-1可能具有50的使用的资源1861-1和50的可用资源1862-1。
作为另一示例,假设电子设备100执行(1850)处理结果的质量很重要的人工智能分析。电子设备100可以在多个类组合当中识别具有高资源的类组合(使用第一类和第二类两者)。此外,在使用第一类和第二类执行人工智能分析时,内部存储器的资源1860-2可能具有90的使用的资源1861-2和10的可用资源1862-2。
图19是用于描述考虑资源信息来识别类的又一示例的示图。
参照图19,因为内部存储器资源1910、特定于类的资源1920、处理资源1940、使用的资源1911和1951以及可用资源1912和1952可以对应于图17中的内部存储器资源1710、特定于类的资源1720、处理资源1730、使用的资源1711和1741以及可用资源1712和1742,因此省略了冗余的描述。
假设电子设备100中包括的内存的总资源为100。另外,关于当前的内部存储器,假设使用的资源1911为40,并且可用资源1912为60。另外,关于特定于类的资源1920,假设仅使用第一类执行人工智能分析所需的资源1921是40,并且使用第一类和第二类执行人工智能分析所需的资源1922是80。
当电子设备100执行人工智能分析时,除了根据类组合要求的资源以外,还可能存在人工智能分析期间特定操作所要求的要求的资源1930。例如,在人工智能分析期间执行的各种功能可能要求另外的资源。例如,假设在人工智能分析中执行的操作期间,第一功能的资源为20。
在图17和图18中,仅考虑根据特定于类的组合的资源,但是电子设备100可以另外考虑特定操作所要求的要求的资源1930。结果,仅使用第一类执行第一功能可能要求总共60个资源,并且使用第一类和第二类执行第一功能可能要求总共100个资源。
这里,电子设备100可以确定不能使用第一类和第二类执行第一功能,因为可用资源1912是90,而仅使用第一类执行第一功能。这里,与在内部存储器中另外地执行的操作相关的处理资源1940可以是60。
此外,在仅使用第一类的人工智能分析期间执行第一功能时,内部存储器的资源1950可能具有70的使用的资源1951和30的可用资源1952。
图20是用于描述设置操作点的操作的流程图。
参照图20,电子设备100可以检查电子设备100的资源状态(S2005)。电子设备100可以获得当前电子设备100的实时资源信息。
此外,电子设备100可以确定操作情形是否已经终止(S2010)。这里,操作情形可以指当前电子设备100使用资源执行特定操作的情形。例如,操作情形可以是电子设备100执行针对人工智能分析的数学计算的情形。
如果电子设备100的操作情形没有终止,则电子设备100可以确定是否需要改变操作点(S2015)。此外,如果电子设备100的操作情形终止,则电子设备100可能无法确定是否需要改变操作点。这里,操作点可以指当前电子设备100使用资源执行特定操作的数据处理方法或数据处理参考值。
例如,操作点的改变可以指数据处理方法或数据处理参考值改变。数据处理方法可以是快速的处理数据的方法或者是获得高质量(准确度)分析结果的处理数据的方法。一般来说,快速或高质量的数据处理方法可能要求大量资源,而慢速或低质量的数据处理方法可能要求较少的资源。
电子设备100可以将在步骤S2005中获得的电子设备100的资源与当前要执行的特定操作的资源要求量进行比较。如果当前要执行的特定操作的资源要求量小于电子设备100的资源,则电子设备100可以执行特定操作并继续检查电子设备100的资源状态(S2016)。
如果当前要执行的特定操作的资源需求量大于电子设备100的资源,则电子设备100可以确定需要改变操作点。此外,电子设备100可以生成成本函数。成本函数可以指用于改变操作点的函数。电子设备100可以使用成本函数来识别最优操作点(S2025)。电子设备100可以识别最大化用户满意度的操作点,并且用户满意度可以是处理速度或处理结果的质量中的至少一个。每个用户可能重视处理速度或重视高质量。因此,用户满意度可能针对每个用户变化,并且可以通过设置来改变。因此,电子设备100可以基于预定义的用户满意度来识别最优操作点。此外,电子设备100可以通过设置识别的最优操作点来执行人工智能分析(S2030)。
作为示例,假设电子设备100执行的人工智能分析为面部识别操作。电子设备100可以检测包括在输入数据中的人的面部并且获得关于检测的面部的详细信息(指示检测的面部是谁的信息)。假设基于在电子设备100中执行的人工智能模块的资源,当前仅可以分析7个面部。然而,假设在输入数据中检测了15个面部。电子设备100仅分析7个人的面部,并且需要在7个人的面部已经被分析后对8个人的面部执行分析操作。这里,假设用户考虑处理速度比处理结果的质量更重要。电子设备100可以识别最优操作点并改变现有操作点,从而可以同时分析尽可能多的面部。具体地,为了提高处理速度,电子设备100可以仅使用与最小类对应的权重信息来执行人工智能分析。如果仅使用与最小类对应的权重信息来执行人工智能分析,则准确度可能降低,但处理速度可能提高,结果,可以实现根据用户的意图操作的电子设备100。
作为另一示例,假设由电子设备100执行的人工智能分析是执行与功耗相关的低功率模式的操作。电子设备100可以基于功耗和处理结果的质量来识别最优操作点。同时,电子设备100可以基于根据操作频率的降低和功率切断而改变的功率使用量中的至少一个来识别最优操作点。
作为又一示例,可以基于准确度、延迟和持续时间中的至少一个来确定操作点。实时概念对于与自主驾驶或视频回放相关的任务可能是重要的。因此,当任务与自主驾驶或视频播放相关时,电子设备100可以最大考虑延迟且随后为准确度来识别操作点。这里,延迟越低,则可以确定用户满意度高,并且准确度越高,可以确定用户满意度高。此外,电子设备100可通过设置最小延迟或最小准确度来识别操作点。例如,电子设备100可以考虑延迟至少为33ms或更短的事实来识别操作点。
同时,对于与面部识别、虹膜识别和指纹识别相关的任务,准确度可能很重要。因此,当任务与面部识别、虹膜识别和指纹识别相关时,电子设备100可以最大考虑准确度且随后为持续时间来识别操作点。这里,准确度越高,可以确定用户满意度越高。这里,电子设备100可以通过设置最小准确度来识别操作点。例如,电子设备100可以考虑最小准确度为95%或更高的事实来识别操作点。
图21是用于描述根据本公开的实施例的电子设备的控制方法的示图。
同时,在电子设备100的控制方法中,可以存储包括与第一权重矩阵相关的权重和与该权重对应的第一索引的第一信息,以及包括用于获得第二权重矩阵的附加权重和与附加权重对应的第二索引的第二信息(S2105)。此外,在控制方法中,基于电子设备100的资源信息,通过加载第一信息获得第一权重矩阵,或者通过加载第一信息和第二信息获得第二权重矩阵(S2110)。
这里,控制方法还可以包括通过将输入数据输入到使用第一权重矩阵或第二权重矩阵的人工智能模型来获得输出数据,以及在电子设备100的资源信息被改变的基础上,基于第一权重矩阵获得第二权重矩阵或者基于第二权重矩阵获得第一权重矩阵。
同时,可以基于包括在第一信息中的权重和第一索引、附加权重和第二索引来获得第二权重矩阵。
同时,电子设备100可以获得与第二类对应的第二权重信息(或第二信息),并且第二权重信息可以包括被包括在第二类中的权重和与被包括在第二类中的权重对应的第二索引。
根据实施例的电子设备100可以基于第一权重信息获得第一权重矩阵。这里,第一权重矩阵是仅使用第一类获得的,并且可以是反映相对高的权重的矩阵。
根据另一实施例的电子设备100可以基于第一权重信息和第二权重信息来获得第二权重矩阵。这里,可以使用第一类和第二类来获得第二权重矩阵。
可以基于包括在第一权重信息中的权重、第一索引、附加权重和第二索引来获得第二权重矩阵。
这里,包括在第一权重信息中的权重可以指包括在第一类中的权重,并且第一索引可以指与包括在第一类中的权重对应的索引。另外,附加权重可以指第二类中包括的权重,并且第二索引可以指与第二类中包括的权重对应的索引。
这里,在获取第二权重矩阵时,可以通过基于第一索引和第二索引将附加权重与第一权重信息中包括的权重组合来获得第二权重矩阵。
第一权重信息中包括的第一索引和权重可以是与第一类相关的信息,并且第二索引和附加权重可以与第二类相关。结果,电子设备100可以通过组合第一权重信息和第二权重信息来生成新的权重信息,并且基于新生成的权重信息生成新的权重矩阵。
这里,在获得第二权重矩阵时,可以基于第一索引确定与第一索引对应的权重在第二权重矩阵中的位置,可以基于第二索引确定与第二索引对应的附加权重在第二权重矩阵中的位置,第一索引或第二索引中的至少一个可以基于与第一索引对应的权重的位置和与第二索引对应的权重的位置而改变,并且第二权重矩阵可以基于权重的位置、附加权重的位置和改变的索引得到。
资源信息可以指与电子设备100的资源和执行特定模块(或特定操作)所要求的资源相关的信息。
这里,资源信息可以包括电子设备100的内部存储器容量(总容量、使用的容量、可用容量)、电子设备100的功率状态、在电子设备100中执行的应用的资源或在电子设备100中执行的人工智能模型的资源中的至少一个。
作为示例,资源信息可以包括与电子设备100的功率状态对应的要求的资源。当电子设备100的功率状态处于高性能模式时,要求的资源可能大。然而,当电子设备100的功率状态处于功率节省模式时,要求的资源可能小。因为要求的资源可能会根据电子设备100的功率状态而变化,所以电子设备100可以基于与电子设备100的功率状态对应的资源信息来确定是加载第一信息还是加载第一信息和第二信息二者。
作为另一示例,资源信息可以包括根据在电子设备100中执行的应用所要求的资源。当在电子设备100中执行的应用分析人工智能模块时,要求的资源可能大。然而,当在电子设备100中执行的应用是与警报功能相关的程序时,要求的资源可能小。因为要求的资源可能根据在电子设备100中执行的应用的资源而变化,所以电子设备100可以基于与在电子设备100中执行的应用对应的资源信息来确定是加载第一信息还是加载第一信息和第二信息两者。
作为又一示例,在资源信息中,与在电子设备100中执行的人工智能模型的资源对应的要求的资源可以变化。人工智能模型的资源的变化可以指分析操作的变化。在与图像识别相关的人工智能模型的情况下,要求的资源可能大。但是,在与文本识别相关的人工智能模型的情况下,要求的资源可能小。因为要求的资源可能根据在电子设备100中执行的人工智能模型的资源而变化,所以电子设备100可以基于与电子设备100中执行的人工智能模型的资源对应的资源信息来确定是加载第一信息还是加载第一信息和第二信息二者。
同时,电子设备100可以基于资源信息来确定是使用与第一类对应的权重信息(第一信息),还是使用与第一类和第二类对应的权重信息(第二信息)。
电子设备100可能已经存储了关于当使用对应于第一类的权重信息时的必要资源的信息以及关于当使用对应于第一类和第二类的权重信息时的必要资源的信息。因此,电子设备100可以基于执行特定操作要求的资源来确定是否使用与第一类对应的权重信息或者是否使用与第一类和第二类对应的权重信息。
作为示例,假设有两个类。假设仅使用第一类时的资源为40,并且使用第一类和第二类两者时的资源为80。另外,假设当前内部存储器的可用资源为60。电子设备100可以确定使用具有小于当前内部存储器的可用资源(60)的资源的特定类组合(当仅使用第一类时)。可用资源可以指当前内部存储器中可以另外地处理的容量,并且特定于类的资源(或特定于类组合的资源)可以指根据多个类组合的资源信息。
与资源信息相关的各种示例在图17至图19中描述。
同时,电子设备100还可以实现仅使用与第二类对应的权重信息的实施例。然而,仅使用低权重执行人工智能分析的实施例可能不常见,因为第一类是包括相对高的权重的权重组,而第二类是包括相对低的权重的权重组。这是因为如果需要以不足的资源执行人工智能分析,那么只有在使用包括高权重的类时才能提高分析准确度。因此,本公开详细描述了仅使用与第一类对应的权重信息的实施例,其中,第一类是相对高的权重组。
改变资源信息的示例可以包括资源信息的增加和减少。在这两种情况当中,实际的问题可能是资源增加的情况。因为资源信息的减少是现有内部存储器的可用资源的增加,所以处理操作没有问题,但是因为资源信息的增加是可用资源的减少,所以当执行大于可用资源的资源操作时可能出现关于处理能力的问题。
因此,电子设备100可以实时确定内部存储器的可用资源和人工智能分析要求的资源。当人工智能分析要求的资源大于内部存储器的可用资源时,电子设备100可以获得新的权重矩阵。为了获得新的权重矩阵,电子设备100可以考虑特定于类的资源和可用资源。也就是说,电子设备100可以通过识别可以以可用资源执行的人工智能分析的类组合来获得基于识别的类组合的权重矩阵。
同时,资源信息增加的示例可以包括人工智能分析的目标突然增加而资源增加的情况,以及用户想要从具有高处理速度的人工智能模块改变到高质量人工智能模块的情况。另外,资源信息减少的示例可以包括人工智能分析的目标减少而资源减少的情况,以及用户想要从高质量人工智能模块改变到具有高处理速度的人工智能模块的情况。已经在图6A中描述了资源被改变的示例的详细描述。
同时,第一信息可以包括通过修剪权重信息中小于第一阈值的权重而获得的信息中的第二阈值或更大的权重以及与第二阈值或更大的权重对应的索引,并且第二信息可以包括通过修剪获得的信息中小于第二阈值的权重以及与小于第二阈值的权重对应的索引。
这里,第一信息可以包括通过对通过修剪获得的信息中的第二阈值或更大的权重执行第一训练而获得的权重和与通过执行第一训练获得的权重对应的索引,第二信息可以包括通过对通过修剪获得的信息中的第二阈值或更大的权重和小于第二阈值的权重执行第二训练而获得的权重,以及与通过执行第二训练获得的权重对应的索引,并且第二阈值或更大的权重在第二训练期间可以固定。此外,该控制方法还可以包括:通过基于第一信息执行第一训练来改变第一信息,通过基于第一信息和第二信息执行第二训练来改变第二信息,以及通过加载改变的第一信息获得第一权重矩阵或通过加载改变的第一信息和改变的第二信息获得第二权重矩阵。另外,控制方法还可以包括通过对通过修剪获得的信息中的第二阈值或更大的权重执行第一训练而获得权重,获得与通过执行第一训练获得的权重对应的索引,将第一信息中包括的权重和索引改变为通过执行第一训练获得的权重和与通过执行第一训练获得的权重对应的索引,通过对通过执行第一训练获得的权重和通过修剪获得的信息中的小于第二阈值的权重执行第二训练来获得权重中小于第二阈值的权重,获得与通过执行第二训练获得的权重中的小于第二阈值的权重对应的索引,将第二信息中包括的权重和索引改变为通过执行第二训练获得的权重中的小于第二阈值的权重以及与通过执行第二训练获得的权重中的小于第二阈值的权重对应的索引,通过加载改变的第一信息获得第一权重矩阵或者通过加载改变的第一信息和改变的第二信息获得第二权重矩阵。此外,在第二训练期间,第二阈值或更大的权重是固定的。
同时,控制方法还可以包括通过基于与第二权重矩阵对应的第三信息中包括的权重、与权重对应的第三索引、以及第二索引来从第三信息中擦除与第二索引对应的附加权重,获得第一权重矩阵。
这里,在获取第一权重矩阵中,可以基于第二索引和第三索引确定附加权重在第二权重矩阵中的位置,可以基于附加权重的位置从第三信息中擦除附加权重,并且可以通过修改与擦除的附加权重在第三信息中的位置邻近的权重的索引来获得第一权重矩阵。
同时,如图21中所示的电子设备的控制方法可以在具有图1和图2的配置的电子设备上执行,并且还可以在具有其他配置的电子设备上执行。
图22是根据本公开的实施例的、根据操作点的改变来比较延迟的改变的示图。
参照图22,电子设备100可以根据各种示例执行卷积操作。示例(a)在表格2205中描述,示例(b)在表格2210中描述,示例(c)在表格2215中描述,并且示例(d)在表格2220中描述。
电子设备100可以执行从DMA向片上存储器(SRAM)发送与卷积层对应的参数的操作2207。此外,电子设备100可以通过包括在NPU中的内核生成器使用与卷积层对应的参数来执行卷积操作(2206)。同时,NPU可以包括内核生成器和片上存储器(SRAM)。片上存储器(SRAM)可以存储与特定层对应的参数信息,并且内核生成器可以使用存储在片上存储器(SRAM)中的参数信息来执行卷积操作。
同时,由区域2206和2207指示的操作同样适用于表格2205以及剩余的表格2210、2215和2220,并且因此省略了冗余的描述。
同时,图22的表格2205至表格2220可以被分类成规则的时间间隔(部分T01、部分T12、部分T23、部分T34、部分T45和部分T56)。例如,T01部分可以指从0到时间点t1的时间段。参照表格2205,电子设备100可以在部分T01中从DMA向包括在NPU中的片上存储器(SRAM)发送与基础层对应的参数信息(param0)。
此外,电子设备100可以在部分T12中通过NPU中包括的内核生成器,使用与基础层对应的参数信息(param0)来执行卷积操作。
此外,电子设备100可以在部分T23中从DMA向包括在NPU中的片上存储器(SRAM)发送与第一层对应的参数信息(param1)。
此外,电子设备100可以在部分T34中通过NPU中包括的内核生成器使用与第一层对应的参数信息(param1)执行卷积操作。
因为对于部分T45和部分T56的操作与先前的操作重复,所以省略了冗余的描述。
与根据表格2205的示例(a)对应的总操作时间可以是t6。在表格2205中描述的示例(a)中,从DMA接收参数信息的操作和在NPU中包括的内核生成器中执行卷积操作的操作在单独的时间部分中执行,因此处理时间可能很长。
同时,在根据表格2210的示例(b)中,电子设备100可以在同一时间部分执行卷积操作和发送参数信息的操作。具体地,电子设备100可以在部分T01中使用与基本层对应的参数信息(param0)通过包括在NPU中的内核生成器来执行卷积操作。此外,电子设备100可以在部分T01中从DMA向包括在NPU中的片上存储器(SRAM)发送与第一层对应的参数信息(param1)。
此外,电子设备100可以在部分T12中通过包括在NPU中的内核生成器,使用与第一层对应的参数信息(param1)来执行卷积操作。此外,电子设备100可以在部分T12中从DMA向包括在NPU中的片上存储器(SRAM)发送与第二层对应的参数信息(param2)。
此外,电子设备100可以在部分T23中通过包括在NPU中的内核生成器使用与第二层对应的参数信息(param2)执行卷积操作。
与根据表格2210的示例(b)对应的总操作时间可以是t3。这可以是小于表格2205的示例(a)的时间的大小的操作时间。
另一方面,根据表格2215的示例(c)是用于描述改变操作点的情况的示例。电子设备100可以在部分T01中通过包括在NPU中的内核生成器使用与基础层对应的参数信息(param0)来执行卷积操作。此外,电子设备100可以在部分T01中从DMA向包括在NPU中的片上存储器(SRAM)发送与第一层对应的参数信息(param1)。这里,假设在时间点t1处存在第一操作点改变2215-1。
如果识别了存在第一操作点改变2215-1,则电子设备100可以在部分T12中从DMA向包括在NPU中的片上存储器(SRAM)发送与改变的第一层对应的参数信息(param1’)。
此外,电子设备100可以在部分T23中通过包括在NPU中的内核生成器使用与改变的第一层对应的参数信息(param1’)来执行卷积操作。此外,电子设备100可以在部分T23中从DMA向包括在NPU中的片上存储器(SRAM)发送与改变的第二层对应的参数信息(param2’)。这里,假设在时间点t3存在第二操作点改变2215-2。
如果识别了存在第二操作点改变2215-2,则电子设备100可以在部分T34中从DMA向包括在NPU中的片上存储器(SRAM)发送与再改变的第二层对应的参数信息(param2”)。
此外,电子设备100可以在部分T45中通过包括在NPU中的内核生成器使用与再改变的第二层对应的参数信息(param2”)来执行卷积操作。
与根据表格2215的示例(c)对应的总操作时间可以是t5。在根据表格2215的示例(c)中,每当操作点改变时,都可以从DMA接收新的参数信息。在这种情况下,接收新参数信息的过程可能花费时间。
另一方面,根据表格2220的示例(d)是用于描述当存在操作点改变时不从DMA接收新的参数信息而执行卷积操作的过程的示例。
电子设备100可以通过包括在部分T01中的NPU中的内核生成器使用与基础层对应的参数信息(param0)来执行卷积操作。此外,电子设备100可以在部分T01中从DMA向包括在NPU中的片上存储器(SRAM)发送与第一层对应的参数信息(param1)。这里,假设在时间点t1处存在第一操作点改变2220-1。
如果识别了存在第一操作点改变2220-1,则电子设备100可以在部分T12中基于与第一层对应的参数信息(param1)通过包括在NPU中的内核生成器来获得与改变的第一层对应的参数信息(param1’)。此外,电子设备100可以在部分T12中通过包括在NPU中的内核生成器使用与改变的第一层对应的参数信息(param1’)来执行卷积操作。此外,电子设备100可以在部分T12中从DMA向包括在NPU中的片上存储器(SRAM)发送与改变的第二层对应的参数信息(param2’)。这里,假设在时间点t2处存在第二操作点改变2220-2。
如果识别了存在第二操作点改变2220-2,则电子设备100可以在部分T23中基于与改变的第二层对应的参数信息(param2’)通过包括在NPU中的内核生成器来获得与再改变的第二层对应的参数信息(param2”)。另外,电子设备100可以在部分T23中通过包括在NPU中的内核生成器使用与再改变的第二层对应的参数信息(param2”)来执行卷积操作。
与根据表格2220的示例(d)对应的总操作时间可以是t3。与根据表格2215的示例(c)不同,在示例(d)中,可能不从DMA接收到新的参数信息。在示例(d)中,可以通过使用先前接收的参数信息新生成新的参数信息来减少延迟。
另一方面,根据上述公开的各种实施例的方法可以以可安装在现有电子设备上的应用的形式实现。
此外,根据上述公开的各种实施例的方法可以仅通过升级现有电子设备的软件或硬件来实现。
此外,还可以通过包括在电子设备中的嵌入式服务器,或者电子设备或显示设备中的至少一个的外部服务器来执行上述公开的各种实施例。
同时,根据本公开的实施例,上文描述的各种实施例可以通过包括存储在机器(例如,计算机)可读存储介质中的指令的软件来实现。机器是从存储介质调用存储的指令并根据调用的指令可操作的设备,并且可以包括根据所公开的实施例的电子设备(例如,电子设备A)。当处理器执行指令时,处理器可以直接、或者在处理器控制下使用其他组件执行与指令对应的功能。指令可以包括由编译器或解释器生成或执行的代码。机器可读存储介质可以以非暂时性存储介质的形式提供。这里,术语“非暂时性”意味着存储介质不包括信号并且是有形的,但不区分数据是半永久地还是临时地存储在存储介质中。
此外,根据本公开的实施例,根据上述各种实施例的方法可以被包括并提供在计算机程序产品中。计算机程序产品可以作为产品在卖家和买家之间进行交易。计算机程序产品可以以设备可以读取的存储介质(例如,光盘只读存储器(CD-ROM))的形式分发,或者通过应用商店(例如,PlayStoreTM)在线分发。在在线分发的情况下,计算机程序产品的至少一部分可以至少临时被存储在诸如制造商的服务器的存储器、应用商店的服务器或中继服务器的存储介质中,或被临时生成。
此外,根据上述各种实施例的每个组件(例如,模块或程序)可以包括单个实体或多个实体,并且可以省略上述子组件中的一些子组件,或者其他子组件还可以被包括在各种实施例中。可替代地或附加地,一些组件(例如,模块或程序)可以被集成到一个实体中以执行由相应组件在集成之前执行的相同或相似的功能。由根据各种实施例的模块、程序或其他组件执行的操作可以以顺序、并行、迭代或启发式方式执行,或者至少一些操作可以以不同的顺序执行或被省略,或者可以添加其他操作。
尽管上文已经说明和描述了本公开的实施例,但是本公开不限于上述具体实施例,而是可以由本公开所属领域的技术人员在不背离如所附权利要求中所公开的本公开的主旨的情况下进行各种修改。这样的修改不应从本公开的技术精神或前景独自地理解。
尽管已经使用了各种实施例描述了本公开,但是可以向本领域技术人员建议各种改变和修改。本公开旨在涵盖落入所附权利要求的范围内的这样的变化和修改。
Claims (15)
1.一种电子设备,包括:
存储器,被配置为存储第一信息和第二信息;以及
处理器,被配置为基于电子设备的资源信息,通过加载第一信息获得第一权重矩阵,或者通过加载第一信息和第二信息获得第二权重矩阵,
其中,第一信息包括与第一权重矩阵相关的权重和与所述权重对应的第一索引,并且
其中,第二信息包括用于获得第二权重矩阵的附加权重和与附加权重对应的第二索引。
2.如权利要求1所述的电子设备,其中,所述处理器被配置为:
通过将输入数据输入到使用第一权重矩阵或第二权重矩阵的人工智能模型来获得输出数据,并且
在电子设备的资源信息被改变的基础上,基于第一权重矩阵获得第二权重矩阵或者基于第二权重矩阵获得第一权重矩阵。
3.如权利要求1所述的电子设备,其中,基于包括在第一信息中的权重和第一索引、附加权重和第二索引来获得第二权重矩阵。
4.如权利要求3所述的电子设备,其中,所述处理器被配置为通过基于第一索引和第二索引将附加权重与包括在第一信息中的权重组合来获得第二权重矩阵。
5.如权利要求4所述的电子设备,其中,所述处理器被配置为:
基于第一索引确定与第一索引对应的权重在第二权重矩阵中的位置,
基于第二索引确定与第二索引对应的附加权重在第二权重矩阵中的位置,
基于与第一索引对应的权重的位置和与第二索引对应的权重的位置,改变第一索引或第二索引中的至少一个,并且
基于权重的位置、附加权重的位置和改变的索引获得第二权重矩阵。
6.如权利要求1所述的电子设备,其中,所述资源信息包括电子设备的内部存储器的可用容量、电子设备的功率状态、在电子设备中执行的应用的资源或在电子设备中执行的人工智能模型的资源中的至少一个。
7.如权利要求1所述的电子设备,其中,第一信息包括通过修剪权重信息中小于第一阈值的权重获得的信息中的第二阈值或更大的权重以及与第二阈值或更大的权重对应的索引,并且
第二信息包括通过修剪获得的信息中小于第二阈值的权重和与小于第二阈值的权重对应的索引。
8.如权利要求7所述的电子设备,其中,所述处理器被配置为:
通过基于第一信息执行第一训练来改变第一信息,
通过基于第一信息和第二信息执行第二训练来改变第二信息,并且
通过加载改变的第一信息获得第一权重矩阵或通过加载改变的第一信息和改变的第二信息获得第二权重矩阵。
9.如权利要求1所述的电子设备,其中,所述处理器被配置为通过基于包括在与第二权重矩阵对应的第三信息中的权重、与所述权重对应的第三索引以及第二索引,从第三信息中擦除与第二索引对应的附加权重,来获得第一权重矩阵。
10.如权利要求9所述的电子设备,其中,所述处理器被配置为:
基于第二索引和第三索引确定附加权重在第二权重矩阵中的位置,
基于附加权重的位置从第三信息中擦除附加权重,并且
通过修改与擦除的附加权重在第三权重信息中的位置邻近的权重的索引来获得第一权重矩阵。
11.一种其中存储第一信息和第二信息的电子设备的控制方法,所述控制方法包括:
基于电子设备的资源信息,通过加载第一信息获得第一权重矩阵,或者通过加载第一信息和第二信息获得第二权重矩阵,
其中,第一信息包括与第一权重矩阵相关的权重和与所述权重对应的第一索引,并且
第二信息包括用于获得第二权重矩阵的附加权重和与附加权重对应的第二索引。
12.如权利要求11所述的控制方法,还包括:
通过将输入数据输入到使用第一权重矩阵或第二权重矩阵的人工智能模型来获得输出数据,并且
在电子设备的资源信息被改变的基础上,基于第一权重矩阵获得第二权重矩阵或者基于第二权重矩阵获得第一权重矩阵。
13.如权利要求11所述的控制方法,其中,基于包括在第一信息中的权重和第一索引、附加权重和第二索引来获得第二权重矩阵。
14.如权利要求13所述的控制方法,其中,在获得第二权重矩阵中,通过基于第一索引和第二索引将附加权重与包括在第一信息中的权重组合来获得第二权重矩阵。
15.如权利要求14所述的控制方法,其中,在获得第二权重矩阵中,基于第一索引确定与第一索引对应的权重在第二权重矩阵中的位置,
基于第二索引确定与第二索引对应的附加权重在第二权重矩阵中的位置,
基于与第一索引对应的权重的位置和与第二索引对应的权重的位置,改变第一索引或第二索引中的至少一个,并且
基于权重的位置、附加权重的位置和改变的索引,获得第二权重矩阵。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190177115A KR20210084123A (ko) | 2019-12-27 | 2019-12-27 | 전자 장치 및 그 제어 방법 |
KR10-2019-0177115 | 2019-12-27 | ||
PCT/KR2020/016160 WO2021132889A1 (en) | 2019-12-27 | 2020-11-17 | Electronic device and control method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114902243A true CN114902243A (zh) | 2022-08-12 |
Family
ID=76546350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080090736.6A Pending CN114902243A (zh) | 2019-12-27 | 2020-11-17 | 电子设备及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210201142A1 (zh) |
EP (1) | EP3997623A4 (zh) |
KR (1) | KR20210084123A (zh) |
CN (1) | CN114902243A (zh) |
WO (1) | WO2021132889A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI843676B (zh) | 2022-11-07 | 2024-05-21 | 聯發科技股份有限公司 | 降低功耗的方法及系統 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5369851B2 (ja) * | 2008-09-16 | 2013-12-18 | 株式会社リコー | 画像処理装置、画像処理方法、コンピュータが実行可能なプログラム、およびコンピュータが読み取り可能な記録媒体 |
CN106413114B (zh) * | 2013-05-22 | 2019-11-26 | 华为技术有限公司 | 异构网络中的控制设备 |
US9674863B2 (en) * | 2013-09-27 | 2017-06-06 | Alcatel Lucent | Methods and systems for distributed coordination |
US20160328644A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Adaptive selection of artificial neural networks |
US10706348B2 (en) * | 2016-07-13 | 2020-07-07 | Google Llc | Superpixel methods for convolutional neural networks |
US20180096249A1 (en) * | 2016-10-04 | 2018-04-05 | Electronics And Telecommunications Research Institute | Convolutional neural network system using adaptive pruning and weight sharing and operation method thereof |
CN111126590B (zh) * | 2016-12-23 | 2023-09-29 | 中科寒武纪科技股份有限公司 | 一种人工神经网络运算的装置及方法 |
KR102499396B1 (ko) * | 2017-03-03 | 2023-02-13 | 삼성전자 주식회사 | 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법 |
US11275996B2 (en) * | 2017-06-21 | 2022-03-15 | Arm Ltd. | Systems and devices for formatting neural network parameters |
EP3648017A4 (en) * | 2017-06-29 | 2021-08-04 | Preferred Networks, Inc. | DATA DISCRIMINATOR LEARNING PROCESS, DATA DISCRIMINATOR LEARNING DEVICE, PROGRAM, AND LEARNING PROCESS |
CN114819119A (zh) * | 2017-06-30 | 2022-07-29 | 华为技术有限公司 | 信号处理的系统和方法 |
GB2566257A (en) * | 2017-08-29 | 2019-03-13 | Sky Cp Ltd | System and method for content discovery |
US11341400B1 (en) * | 2017-08-30 | 2022-05-24 | Marvell Asia Pte, Ltd. | Systems and methods for high-throughput computations in a deep neural network |
US10366322B2 (en) * | 2017-10-06 | 2019-07-30 | DeepCube LTD. | System and method for compact and efficient sparse neural networks |
US11416742B2 (en) * | 2017-11-24 | 2022-08-16 | Electronics And Telecommunications Research Institute | Audio signal encoding method and apparatus and audio signal decoding method and apparatus using psychoacoustic-based weighted error function |
CN109902814B (zh) * | 2017-12-11 | 2020-01-17 | 中科寒武纪科技股份有限公司 | 神经网络运算模块和方法 |
US10657426B2 (en) * | 2018-01-25 | 2020-05-19 | Samsung Electronics Co., Ltd. | Accelerating long short-term memory networks via selective pruning |
US10572568B2 (en) * | 2018-03-28 | 2020-02-25 | Intel Corporation | Accelerator for sparse-dense matrix multiplication |
KR102543091B1 (ko) * | 2018-06-15 | 2023-06-14 | 삼성전자주식회사 | 무선 통신 시스템에서 통합형 빔포밍을 위한 장치 및 방법 |
KR102133825B1 (ko) * | 2018-06-22 | 2020-07-16 | 서강대학교 산학협력단 | 단어자질을 강화한 음성 대화 방법 및 시스템 |
US10628515B2 (en) * | 2018-08-22 | 2020-04-21 | KaiKuTek Inc. | Method for compressing initial weight matrix capable of reducing memory space |
US11829888B2 (en) * | 2019-03-27 | 2023-11-28 | International Business Machines Corporation | Modifying artificial intelligence models using model fragments |
-
2019
- 2019-12-27 KR KR1020190177115A patent/KR20210084123A/ko active Search and Examination
-
2020
- 2020-11-12 US US17/096,748 patent/US20210201142A1/en active Pending
- 2020-11-17 EP EP20907224.8A patent/EP3997623A4/en active Pending
- 2020-11-17 WO PCT/KR2020/016160 patent/WO2021132889A1/en unknown
- 2020-11-17 CN CN202080090736.6A patent/CN114902243A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI843676B (zh) | 2022-11-07 | 2024-05-21 | 聯發科技股份有限公司 | 降低功耗的方法及系統 |
Also Published As
Publication number | Publication date |
---|---|
EP3997623A4 (en) | 2022-11-02 |
US20210201142A1 (en) | 2021-07-01 |
KR20210084123A (ko) | 2021-07-07 |
EP3997623A1 (en) | 2022-05-18 |
WO2021132889A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11398223B2 (en) | Electronic device for modulating user voice using artificial intelligence model and control method thereof | |
KR102299764B1 (ko) | 전자장치, 서버 및 음성출력 방법 | |
US11900722B2 (en) | Electronic apparatus and control method thereof | |
KR20190099914A (ko) | 전자 장치, 이의 영상 처리 방법 및 컴퓨터 판독가능 기록 매체 | |
KR102517228B1 (ko) | 사용자의 입력에 대한 외부 전자 장치의 응답 시간에 기반하여 지정된 기능을 제어하는 전자 장치 및 그의 방법 | |
US11568254B2 (en) | Electronic apparatus and control method thereof | |
US20210279589A1 (en) | Electronic device and control method thereof | |
US11961013B2 (en) | Method and apparatus for artificial intelligence model personalization | |
KR20210062477A (ko) | 전자 장치 및 그 제어 방법 | |
KR20200008845A (ko) | 전자 장치, 영상 처리 방법 및 컴퓨터 판독가능 기록 매체 | |
US11538278B2 (en) | Electronic apparatus and control method thereof | |
KR102396794B1 (ko) | 전자 장치 및 이의 제어 방법 | |
US20200210754A1 (en) | Cloud device, terminal device, and method for classifyiing images | |
US10346749B2 (en) | System and method for providing interaction between a user and an embodied conversational agent | |
CN114902243A (zh) | 电子设备及其控制方法 | |
US20240212309A1 (en) | Electronic apparatus, controlling method of electronic apparatus, and computer readable medium | |
KR102455264B1 (ko) | 치매를 식별하는 기법 | |
KR20240009108A (ko) | 화질 개선을 수행하는 신경망 모델을 학습시키는 전자 장치 및 그 제어 방법 | |
US20220164923A1 (en) | Electronic apparatus and controlling method thereof | |
EP3980874B1 (en) | Electronic apparatus and control method thereof | |
US20220214677A1 (en) | Detecting anomalous events using a microcontroller | |
KR20210156470A (ko) | 전자 장치 및 이의 제어 방법 | |
KR102669617B1 (ko) | 실시간 자동 비디오 프로토콜 변환 장치 및 방법 | |
KR102161690B1 (ko) | 전자 장치 및 그 제어 방법 | |
EP4210042A1 (en) | Electronic device and method for controlling electronic device |
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 |