CN113392954B - 终端网络模型的数据处理方法、装置、终端以及存储介质 - Google Patents
终端网络模型的数据处理方法、装置、终端以及存储介质 Download PDFInfo
- Publication number
- CN113392954B CN113392954B CN202010175997.XA CN202010175997A CN113392954B CN 113392954 B CN113392954 B CN 113392954B CN 202010175997 A CN202010175997 A CN 202010175997A CN 113392954 B CN113392954 B CN 113392954B
- Authority
- CN
- China
- Prior art keywords
- data
- quantization
- network
- precision
- network model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000013139 quantization Methods 0.000 claims abstract description 295
- 238000007781 pre-processing Methods 0.000 claims abstract description 101
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 71
- 230000006870 function Effects 0.000 claims description 175
- 238000004590 computer program Methods 0.000 claims description 22
- 229910052731 fluorine Inorganic materials 0.000 claims description 2
- 125000001153 fluoro group Chemical group F* 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 abstract description 50
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 51
- 238000004364 calculation method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 238000012549 training Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 238000006243 chemical reaction Methods 0.000 description 12
- 230000006399 behavior Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- 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
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)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请适用于人工智能技术领域,提供了一种终端网络模型的数据处理方法、装置、终端以及存储介质,该方法包括:获取待处理的数据;将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果,其中所述目标网络模型中的至少一个网络层级配置有预处理函数,所述预处理函数用于在对应网络层级的输入数据的数据格式与该网络层级的量化精度不匹配时,对所述输入数据进行预处理。本申请提供的技术方案实现了在同一目标网络模型内处理不同精度的数据,解决了混合精度的神经网络的兼容性问题,提高了运算效率。
Description
技术领域
本发明属于人工智能技术领域,尤其涉及终端网络模型的数据处理方法、装置、终端以及存储介质。
背景技术
随着人工智能技术的不断发展,神经网络被广泛应用于各大领域,为了应对不同的数据处理场景,神经网络中不同层级可以根据场景需求配置对应的量化精度,生成混合精度的神经网络。然而现有的混合精度的神经网络,无法处理不同网络层级量化精度不同而带来的兼容性问题,从而降低了神经网络的运算效率。
发明内容
本申请实施例提供了一种终端网络模型的数据处理方法、装置、终端以及存储介质,可以解决现有的人工智能技术,无法处理混合精度的神经网络中不同网络层级量化精度不同而带来的兼容性问题,从而降低了神经网络的运算效率的问题。
第一方面,本申请实施例提供了一种终端网络模型的数据处理方法,包括:
获取待处理的数据;
将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果,其中所述目标网络模型中的至少一个网络层级配置有预处理函数,所述预处理函数用于在对应网络层级的输入数据的数据格式与该网络层级的量化精度不匹配时,对所述输入数据进行预处理。
在第一方面的一种可能的实现方式中,所述将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果包括:
将所述待处理的数据输入至所述目标网络模型,并针对所述目标网络模型中的各个网络层级做如下处理:
判断所述目标网络模型中当前网络层级的输入数据的数据格式是否与该网络层级的量化精度相匹配,其中所述输入数据包括所述待处理的数据或者所述待处理数据在相应网络层级处理后的数据;
若不匹配,则为所述当前网络层级配置预处理函数,并通过所述预处理函数对所述当前网络层级的输入数据进行预处理,获得预处理数据;
基于所述当前网络层级内与所述量化精度对应的网络权重以及所述预处理数据,输出所述当前网络层级的运算结果;
在所述目标网络模型中所有网络层级都处理完后,将最后一层网络层级的运算结果作为所述待处理数据的处理结果。
在第一方面的一种可能的实现方式中,若所述目标网络模型中当前网络层级的输入数据的数据格式与该网络层级的量化精度不匹配,则为所述当前网络层级配置预处理函数,包括:
若所述数据格式的数据精度大于所述量化精度,则根据所述数据精度与所述量化精度之间的比值,确定划分所述输入数据得到的数据块个数;
获取与所述量化精度对应的低比特量化函数,并根据所述数据块个数确定所述低比特量化函数的执行次数;
根据所述执行次数以及所述低比特量化函数生成所述预处理函数。
在第一方面的一种可能的实现方式中,若所述量化精度为1比特量化,所述低比特量化函数具体为:
在第一方面的一种可能的实现方式中,若所述量化精度为2比特量化,所述低比特量化函数具体为:
在第一方面的一种可能的实现方式中,若所述目标网络模型中当前网络层级的输入数据的数据格式与该网络层级的量化精度不匹配,则为所述当前网络层级配置预处理函数,包括:
若所述数据格式的数据精度小于所述量化精度,则在所述输入数据与所述目标网络模型的学习权重之间配置异或模块;
以所述异或模块的输出端作为计数Popcount模块的输入端,串联所述异或模块以及所述Popcount模块,并将所述串联的异或模块以及所述Popcount模块作为所述预处理函数。
在第一方面的一种可能的实现方式中,所述根据所述网络层级对应的所述预处理函数以及所述网络信息,生成所述目标网络模型,包括:
根据所述量化精度,为各个所述网络层级配置关联的初始权重;
根据各个所述初始权重以及所述预处理函数,生成所述目标网络模型。
第二方面,本申请实施例提供了一种终端网络模型的数据处理装置,包括:
数据获取单元,用于获取待处理的数据;
数据处理单元,用于将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果,其中所述目标网络模型中的至少一个网络层级配置有预处理函数,所述预处理函数用于在对应网络层级的输入数据的数据格式与该网络层级的量化精度不匹配时,对所述输入数据进行预处理。
第三方面,本申请实施例提供了一种终端设备,存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述终端网络模型的数据处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述第一方面中任一项所述终端网络模型的数据处理方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述终端网络模型的数据处理方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例在生成目标网络模型之前,通过获取目标网络模型的网络信息,确定不同网络层级对应的量化精度,并基于当前层级的量化精度与上一层级的量化精度,配置用于转换不同精度之间数据格式的预处理函数,并根据预处理函数生成目标网络模型,在实际进行数据处理的过程中,能够通过预处理函数实现不同量化精度之间的转换,从而实现了在同一目标网络模型内处理不同精度的数据,解决了混合精度的神经网络的兼容性问题,提高了运算效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的手机的部分结构的框图;
图2是本申请实施例的手机的软件结构示意图;
图3是本申请第一实施例提供的一种终端网络模型的数据处理方法的实现流程图;
图4是本申请一实施例提供的网络层级的示意图;
图5是本申请另一实施例提供的网络层级的示意图;
图6是本申请一实施例提供的对权重值进行量化的神经网络的示意图;
图7是本申请一实施例提供的定点量化的神经网络的示意图;
图8是本申请第二实施例提供的一种终端网络模型的数据处理方法S302的具体实现流程图;
图9是本申请一实施例提供的对输入数据进行划分的示意图;
图10是本申请一实施例对输入数据进行划分的示意图;
图11是本申请第四实施例提供的一种终端网络模型的数据处理方法S802的具体实现流程图;
图12是本申请一实施例提供的混合精度的数据转换的示意图;
图13是本申请第五实施例提供的一种终端网络模型的数据处理方法在所述将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果之前的具体实现流程图;
图14是本申请一实施例提供的一种终端网络模型的数据处理设备的结构框图;
图15本申请另一实施例提供的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的终端网络模型的数据处理方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,还可以应用于数据库、服务器以及基于终端人工智能的服务响应系统,本申请实施例对终端设备的具体类型不作任何限制。
例如,所述终端设备可以是WLAN中的站点(STAION,ST),可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(WirelessLocal Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、电脑、膝上型计算机、手持式通信设备、手持式计算设备、和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G网络中的移动终端或者未来演进的公共陆地移动网络(PublicLand Mobile Network,PLMN)网络中的移动终端等。
作为示例而非限定,当所述终端设备为可穿戴设备时,该可穿戴设备还可以是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如配置有自适应学习算法的眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备,通过附着与用户身上,用于记录用户行进过程中的行为数据,并根据行为数据以及预设的混合精度的神经网络,输出相应的处理结果。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,如智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行具有显示屏的智能手表、智能手环等。
以所述终端设备为手机为例。图1示出的是与本申请实施例提供的手机的部分结构的框图。参考图1,手机包括:射频(Radio Frequency,RF)电路110、存储器120、输入单元130、显示单元140、传感器150、音频电路160、近场通信模块170、处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对手机的各个构成部件进行具体的介绍:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理,例如将目标网络模型存储于存储器120的缓存区域内,并根据手机使用过程中产生的数据,通过目标网络模型输出处理结果,还可以根据用户对于处理结果的响应操作,识别处理结果的准确率,基于上述准确率对目标网络模型内的权重进行调整。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元130可用于接收输入的数字或字符信息,以及产生与手机100的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触控面板131以及其他输入设备132。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131附近的操作),并根据预先设定的程式驱动相应的连接装置。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单,例如输出调整后的校正图像。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)等形式来配置显示面板141。进一步的,触控面板131可覆盖显示面板141,当触控面板131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图1中,触控面板131与显示面板141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板131与显示面板141集成而实现手机的输入和输出功能。
手机100还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
手机100还可以包括摄像头160。可选地,摄像头在手机100的上的位置可以为前置的,也可以为后置的,本申请实施例对此不作限定。
可选地,手机100可以包括单摄像头、双摄像头或三摄像头等,本申请实施例对此不作限定。
例如,手机100可以包括三摄像头,其中,一个为主摄像头、一个为广角摄像头、一个为长焦摄像头。
可选地,当手机100包括多个摄像头时,这多个摄像头可以全部前置,或者全部后置,或者一部分前置、另一部分后置,本申请实施例对此不作限定。
终端设备可以通过近场通信模块170可以接收其他设备发送的通信数据,例如该近场通信模块170集成有蓝牙通信模块,通过蓝牙通信模块与其他手机建立通信连接,并接收其他手机反馈的设备信息,生成与该其他手机对应的设备信息页面。虽然图1示出了近场通信模块170,但是可以理解的是,其并不属于手机100的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。
处理器180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
手机100还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
手机100还包括音频电路、扬声器,传声器可提供用户与手机之间的音频接口。音频电路可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一手机,或者将音频数据输出至存储器120以便进一步处理。
图2是本申请实施例的手机100的软件结构示意图。以手机100操作系统为Android系统为例,在一些实施例中,将Android系统分为四层,分别为应用程序层、应用程序框架层(framework,FWK)、系统层以及硬件抽象层,层与层之间通过软件接口通信。
如图2所示,所述应用程序层可以一系列应用程序包,应用程序包可以包括短信息,日历,相机,视频,导航,图库,通话等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数,例如用于接收应用程序框架层所发送的事件的函数。具体地,本实施例生成的神经网络可以部署于应用程序框架层,并通过对应的变成语言,生成与神经网络对应的编程框架。
如图2所示,应用程序框架层可以包括窗口管理器、资源管理器以及通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
应用程序框架层还可以包括:
视图系统,所述视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。本申请实施例可以运行与应用程序框架层中,通过文字控件对于目标页面内的文字类型的对象进行调整,并且通过显示图片的控件,对目标页面内的背景图像进行调整,并将调整后的所有页面数据进行封装,生成目标页面。
电话管理器用于提供手机100的通信功能。例如通话状态的管理(包括接通,挂断等)。
系统层可以包括多个功能模块。例如:传感器服务模块,物理状态识别模块,三维图形处理库(例如:OpenGL ES)等。
传感器服务模块,用于对硬件层各类传感器上传的传感器数据进行监测,确定手机100的物理状态;
物理状态识别模块,用于对用户手势、人脸等进行分析和识别;
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
系统层还可以包括:
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的静态图像文件,视频格式回放和录制,以及音频等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
硬件抽象层是硬件和软件之间的层。硬件抽象层可以包括显示驱动、摄像头驱动、传感器驱动、麦克风驱动等,用于驱动硬件层的相关硬件,如显示屏、摄像头、传感器以及麦克风等。
在本申请实施例中,流程的执行主体为配置有神经网络的设备。作为示例而非限定,上述配置有神经网络的设备具体可以为终端设备,该终端设备可以为用户使用的智能手机、平板电脑、笔记本电。图3示出了本申请第一实施例提供的终端网络模型的数据处理方法的实现流程图,详述如下:
在S301中,获取待处理的数据。
在本实施例中,对数据处理的过程可以包括有训练过程以及训练完成后的实际应用过程。因此,上述待处理的数据可以为预先配置有训练数据,或者在终端设备在使用过程中采集得的用户数据。
在本实施例中,终端设备可以从数据库处获取得到待处理的数据,也可以通过终端运行过程中通过传感器或采集模块的运行参数等多种方式,获取得到待处理的数据。
在S302中,将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果,其中所述目标网络模型中的至少一个网络层级配置有预处理函数,所述预处理函数用于在对应网络层级的输入数据的数据格式与该网络层级的量化精度不匹配时,对所述输入数据进行预处理。
在对待处理的数据进行处理之前,终端设备可以预先生成目标网络模型。在该情况下,终端设备可以获取待生成的目标网络模型的网络信息;所述网络信息包含所述目标网络模型内各个网络层级的量化精度。
在本实施例中,需要配置目标网络模型的终端设备可以为一服务器,在该情况下,服务器具有较强的运算能力以及数据读写I/O能力,该目标网络模型的各个网络层级的量化精度可以较大,即降采样的比例较低,例如采用8比特(bit)采样、16bit采样等量化精度,当然,部分层级还可以采用全精度;上述终端设备还可以为一边缘设备,例如用户使用的移动终端,举例性地,用户使用的手机、可穿戴设备等,由于兼顾性价比以及设备的便携性等情况,上述边缘设备的设备尺寸较小,因而相关的数据处理模块的运算能力会远低于服务器,在该情况下,上述边缘设备内的目标网络模型所采用的量化精度较低,部分层级可以采用超低bit量化,例如采用1bit量化以及2bit量化对应的层级模型。
高比特的量化模式相对于低比特量化模式而言,具有通用能力强,算法简单,训练简单等优点,由于每个输入数据以及当前层级内权重值所表达的信息内容较大,因而在训练过程以及实际使用过程中能够提取的信息量则更多,因此在进行训练时所使用的训练算法较为简单以及通用性强,能够适用于多个不同的应用场景,但同时也由于量化精度较高,因此每个数据所需分配的存储空间较大,因此在存储器ROM上的占用率较大,ROM收益较小,另一方面,在进行高量化精度的计算操作时,计算机在处理高精度数据之间的运算时耗时更长,例如在计算两个64进制的数之间的乘积,或者计算两个基于16进制的矩阵之间的卷积时的耗时会较长,从而运算速率较低且占用的运算资源较多。而边缘设备由于存储空间以及运算能力有限,因此,较难支持高精度量化的目标网络模型。
低比特的量化模式相对于高比特量化模式而言,具有运算速度高以及存储器ROM的占用率低的优点,低比特量化模式下,终端设备会将每个数据转换为比特模式,例如若该低比特量化模式为2比特量化,则一个数据的数值为“8”,会将其转换为[1000],在执行后续计算时,则可以[1000]的模式与权重进行和或、异或等逻辑运算,计算机在执行逻辑运算的耗时会远远低于执行数学运算的耗时,从而提高了运算的效率。而且,低比特量化的数据的数据量也会小于高比特量化的数据的数据量,从而会大大降低了ROM空间的占用率,从而在ROM上具有较大的收益。但正因为每个数据的数据量较小,因此所包含的信息量也相对较少,因此为了克服信息量缺失的问题,所采用的算法较为复杂并且训练过程较长。
不同的量化精度有不同的优缺点,因此,为了提高神经网络与实际场景的适用性的同时,能够尽量减少终端设备的运算压力以及数据存储压力,可以根据各个网络层级对应的数据处理目标,为不同的网络层级配置对应的量化精度,从而最后生成的目标网络模型具体为一混合精度的神经网络。举例性地,目标网络模型是一异常账户识别的神经网络,可以根据多个已标记的历史用户的历史行为,识别出异常用户的行为特征,并基于上述行为特征配置对应的神经网络,通过导入待识别的用户的行为数据,确定用户是否为异常用户。在该情况下,某一网络层级需要提取用户行为的行为特征,而由于用户的行为特征的特征个数以及每个特征的类型数量较多,即行为特征所需表达的信息量较大,此时将该网络层级可以采用高比特量化,以使该网络层级与其所需执行的数据处理任务相匹配;另一网络层级是比对用户的用户类型序列与异常类型序列之间的相似度,输出的结果为是异常用户或是合法用户,此时,只需比对两个序列之间的相似度,输出结果的信息量相对较少,此时可以将该网络层级可以采用低比特量化。
在本实施例中,用户在需要创建一个目标网络模型之前,可以根据该目标网络模型的应用场景,确定每个网络层级的数据处理目标,并基于上述数据处理目标为各个网络层级配置对应的量化精度,根据各个网络层级的量化精度生成关于目标网络模型的网络信息。
在一种可能的实现方式中,不同的量化精度可以配置有对应的层级模型,该层级模型具体用于限定该网络层级所执行的运算操作,例如池化降维、矩阵卷积、向量相乘或者逻辑运算等。终端设备在确定了网络层级的量化精度后,可以从该量化精度关联的层级模型中,选取一个作为该网络层级所使用的层级模型,并根据各个网络层级的层级模型以及量化精度生成上述的网络信息。
需要说明的是,上述网络信息可以用于构建目标网络模型的大体框架,例如各个网络层级之间的连接次序、输入输出的关系等,但各个网络层级内的权重值以及运算因子可以设置为默认值,即在训练之前预配置的初始值,也可以从云端服务器处下载已训练的权重值以及运算因子。
在一种可能的实现方式中,云端服务器可以通过大量的历史数据对与目标网络模型对应的全精度网络进行训练,对全精度网络内的各个权重值以及运算因子进行调整,得到训练好的全精度网络。在该情况下,由于全精度网络与所需创建的混合精度的神经网络之间各个网络层级的量化精度不同,因此云端服务器内存储的全精度网络的权重值以及运算因子无法直接导入到当前所需生成的目标网络模型内,终端设备可以通过各个网络层级的量化精度,将上述权重值以及运算因子转换为与上述量化精度对应的量化权重以及量化因子,将量化权重以及量化因子导入到该网络层级对应的层级模型内,根据各个网络层级的层级模型以及量化精度,生成网络信息。
在本实施例中,上述目标网络模型可以是基于卷积神经网络构建的神经网络,也可以基于循环神经网络、长短期神经网络等不同网络构架构建的神经网络,在此不对目标网络模型的网络框架进行限定,当该神经网络包含两层及以上的神经网络时,即采用本实施例提供的方法构建混合精度的神经网络。
在本实施例中,每个网络层级可以将上一层级的输出数据作为当前网络层级的输入数据,即不同网络层级之间具有一定的级联关系。在该情况下,终端设备可以识别上一网络层级的量化精度,根据上一网络层级的量化精度作为输出数据的量化精度,基于输出数据的量化精度,确定当前网络层级的输入数据的数据格式。特别地,若当前的网络层级为目标网络模型的首层网络层,即不存在上一级联的网络层级,在该情况下,终端设备可以根据所需数据的目标数据的数据格式作为该网络层级的输入数据的数据格式,举例性地,若目标数据为一图像数据,则对应的数据格式为图像格式;若该目标数据的用户的行为信息,该行为信息通过中文文本进行存储,则目标数据的数据格式可以为文本格式;若该目标数据为一函数计算得到的数值,则目标数据的格式可以为整型数,具体地,上述整型数根据所占字节数以及取值范围,可以分别为int8、uint8、int16、uint16、int32、uint32等不同的数据格式,若计算得到的数值为一浮点数,则还可以为float16、float32等不同的数据格式。
在一种可能的实现方式中,若网络层级的输入数据的数据格式与该网络层次的量化精度匹配,即表示网络层级的输入数据与当前网络层级的运算因子以及权重值所使用的数据格式一致,可以直接进行运算,在该情况下,则无需为网络层级配置预处理函数。
示例性地,若该网络层级的量化精度为8bit,而输入数据的数据格式也为8bit,则可以直接通过网络层级内的运算因子以及权重值对输入数据执行对应的8bit运算。同样地,若输入数据的数据格式为Nbit,该网络层级的量化精度也为Nbit,也可以参照上述过程进行计算。
示例性地,若该网络层级的量化精度为8bit,而输入数据的数据格式为4bit,此时识别输入数据的数据格式与网络层级的量化精度匹配,由于4bit的整型数与8bit的整型数在神经网络中进行运算时,是将输入数据转换为对应的数值,进行数值的乘除、加减等数学运算,而并非进行逻辑运算,上述两个量化精度之间只是取值范围之间的差异,无需通过预处理函数进行格式转换。同样地,若该网络层级的量化精度为4bit,而输入数据的数据格式为4bit,同样也可以识别上述输入数据的数据格式与网络层级的量化精度匹配。
作为示例而非限定,图4示出了本申请一实施例提供的网络层级的示意图。参见图4所示,该网络层级的输入数据X的数据格式可以为4bit或8bit量化后得到的输入数据,上述两个量化后的数据可以但不限于采用unit8的数据格式进行存储(当然,如上所述,该数据格式还可以为int8、int16或其他高比特量化格式),该网络层级内的权重值W以及B的数据格式的量化精度可以为4bit或8bit,上述量化后的权重值也可以但不限于采用uint8的格式进行存储。该卷积层内可以包含有两个运算模块,分别为乘积运算以及叠加运算,在此,以两个数据为unit8格式的数据进行说明,由于两个uint8的数据进行乘积运算时,其数据大小会在[0,216-1]范围内,而通过uint8存储乘积结果,则必然会导致数据越界的情况,并且在乘积的基础上在进行数值叠加,其结果会超出216,因此整个运算过程中,可以通过int32来对数据进行存储,最后通过串联一个激活函数,将以int32格式存储的中间运算结果转换为以uint8进行存储的输出结果,从而保证了该网络层级的输出结果与该网络层级的量化精度保持一致的情况。在整个过程中,输入数据以及权重值之间可以之间进行乘加运算,而无需进行格式转换,从而减少了因格式转换而带来的运算量增加,且整个计算过程均处于高精度的运算过程,不需要进行反量化操作,从而进一步减少了I/O压力以及数据运算量。
示例性地,若该网络层级的量化精度为1bit,而输入数据的数据格式为2bit,此时识别输入数据的数据格式与网络层级的量化精度匹配,由于1bit数据与2bit数据在神经网络内进行运算的过程时,并非执行数值计算,而是进行逻辑运算,即将1bit量化数据与2bit数据进行和运算、或运算、异或运算以及非运算等操作,即执行的是比特运算,而并非数值运算。在该情况下,1bit数据与2bit数据之间进行运算可以将其统一转换为2bit的数据,并基于2bit的数据进行比特运算。具体地,转换的过程可以为:00可以通过-1表示、01可以通过1表示,而11则可以通过0进行表示。其中,对于2bit的数据,可以识别2个bit的数据,其中一个存数值(A),另一个则存是否为0的标识(B),低位同1bit,高位用于进行标识,如果是1则无论低位是1还是0,整个数表示为0。A计算采用XNOR运算,同1bit数据格式的运算过程相同。而在B中用1标识0,采用AND运算模块。如果在B中用0标识1,则可以需要采用OR运算模块,对应地,在Popcount时则需要统计0的个数。同样地,若该网络层级的量化精度为2bit,而输入数据的数据格式为1bit,同样也可以识别上述输入数据的数据格式与网络层级的量化精度匹配。
作为示例而非限定,图5示出了本申请另一实施例提供的网络层级的示意图。参见图5所示,该网络层级的输入数据X’的数据格式为1bit或2bit量化后得到的输入数据,上述网络层级内的权重值W也可以采用1bit或2bit的量化精度,该网络层级内包含有异或门XNOR模块以及计算Popcount模块等运算模块,需要强调的是,在其他实施例中,该网络层级还可以包括AND运算模块或者OR运算模块。其中,Popcount模块可以用于统计输入的数据内包含的“1”的个数。其中,XNOR模块在比特运算中的作用可以相当于数值运算中的乘积运算,而Popcount模块在比特运算中的作用也可以相当于数值运算中的和运算,因此在低比特的网络层级中同样可以是实现高比特的运算效果,只是采用的函数不同,并且在执行训练学习以及运算过程中所采用的算法需要根据量化精度进行调整。由于通过Popcount模块运算后得到的数据必然是一个数值,即无法通过比特形式进行数据表达,例如XNOR的输出数据为[01101101],则通过Popcount模块后的输出数据为5,而无法用[00000101]的形式进行数据表达,因此,为了保持输出数据也是以比特的方式进行数据输出,可以在Popcount模块后串联一个低比特激活函数,将上述的输出结果直接输出为对应低比特的表示形式。
在一种可能的实现方式中,为了减少目标网络模型的计算量,上述低比特激活函数具体为可以为一阈值函数f(xi),其中,该阈值函数具体可以为f(xi):
f(xi)=α·Sign(zi)
其中,f(xi)为上述阈值函数对于第i输入数据的转换结果;zi为经过XNOR模块以及Popcount模块运算后的第i个输出数据;α为预设的调整参数。若该网络层级内存在归一化BN操作,即上述导入到阈值函数内的zi可以为归一化后的数据,即其中,BN(zi)为批量归一函数,即Batch normalization。
在本实施例中,若检测到网络层级的输入数据与该网络层级的量化精度不匹配,则表示需要对输入数据进行转换后,才能够直接与该网络层级内的算子以及权重值进行对应的运算,以兼容两个不同量化精度层级之间的运算差异。举例性,若上一网络层级的输出数据为高比特量化数据,即进行的是数值运算,输出的为数值运算的运算结果。而当前的网络层级的量化精度为低比特量化精度,执行的逻辑运算,而数值运算得到的数值结果无法直接进行逻辑运算,则需要将上述计算的数值转换为能够逻辑运算的数据格式,因此需要配置由高比特量化精度转换至低比特量化精度的预处理函数。
相对地,若上一网络层级的输出数据为低比特量化数据,即进行的是逻辑运算,例如采用与或运算、或运算以及和与运算等,并通过popcount函数统计对应字符的个数,输出预设格式的整数数据,虽然输出的依然是整数,但所执行的是逻辑运算,并不涉及数字的数值运算,运算效率较高,而当前的网络层级的量化精度为高比特量化精度,需要执行的是数值运算,而基于比特表示的运算结果无法执行进行数值计算,则需要将一比特标识的数据转换为对应的数值,因此需要配置由高比特量化转换至低比特量化的预处理函数。
在一种可能的实现方式中,若输入数据的数据格式的量化精度高于网络层级的量化精度,则可以根据该与网络层级的量化精度对应的量化函数作为预处理函数,其中,上述量化函数可以为:
其中,为数据x通过上述量化函数处理后输出的量化数值;X为输入数据的取值范围;K为网络层级的量化精度,ξ为预设的偏移量。需要说明的是,上述的min(X)具体为0点偏移补偿或称为offset,在部分场景下,若不存在0点偏移,则无需进行修正,即min(X)为0,此时,上述式子可以修改为:
例如,对于权重进行量化的过程中,各个权重值已经与0点对称,在该情况下,采用int8数据结构进行权重存储时,可以将min(X)置零,直接保留原始0点。
可选地,若上述网络层级的量化精度具体为2bit量化,则上述预处理函数可以转换为:
其中,α为缩放比例。需要说明的是,由于上述量化操作的数据丢失量较大,通过上述预处理函数进行处理后的比特,无法通过反量化公式还原得到量化前的数据。
可选地,若上述网络层级的量化精度为1bit量化,则上述预处理函数可以转换为:
其中,α为缩放比例。需要说明的是,由于上述量化操作的数据丢失量较大,通过上述预处理函数进行处理后的比特,无法通过反量化公式还原得到量化前的数据。
在一种可能的实现方式中,若输入数据的数据格式的量化精度低于网络层级的量化精度,则可以根据该网路层级的量化精度以及数据格式的量化精度,配置对应的反量化函数,其中,反量化函数可以为:
需要说明的是,上述反量化函数与量化函数相一致,若上述反量化函数中考虑了零点偏移,则在上述反量化过程中,也可以对零点进行还原处理,即添加min(X)的补正量;反之,若上述量化过程中原本的参数已经与0点对齐,则上述函数中可以省去min(X)的补正量,即min(X)=0。
在本实施例中,终端设备可以在确定了与输入数据的数据格式与量化精度不匹配的网络层级对应的预处理函数后,可以根据上述网络层级的预处理函数与层级模型,以及网络信息内其他量化精度与输入数据的数据格式匹配的网络层级的层级模型,构建目标网络模型。具体地,上述预处理函数可以部署于该网络层级的输入端以及层级模型之间的数据传输通路内,即由输入端输入的数据首先经过预处理函数进行格式转换后,再通过该网络层级内的层级模型进行对应的运算操作,得到该网络层级对应的运算结果。
需要说明的是,上述预处理函数内可以配置有对应的运算因子,终端设备可以在训练学习的过程中,对上述预处理函数中的运算因子进行调整,以使该预处理函数与该网络层级对应的运算任务相匹配。举例性地,对于上述2bit量化函数,则可以调整上述的缩放比例,以及Sign函数内的判定阈值,通过调整上述运算因子,使得预处理函数与网络层级相匹配。
在现有的人工智能技术中,可以对神经网络内的权重值进行量化,而不对输入数据进行量化,但是上述实现方式在运算的过程中,对每一个网络层级均需要执行量化调整操作,且实际运行过程中,均是以同一量化精度进行运算,例如均是通过数值运算计算输出结果,或者均是通过逻辑运算计算输出结果,实际上只是改变了神经网络在终端设备内所占的存储空间大小,并没有提高运算效率,并且并不支持混合精度的运算场景,限制了神经网络的构建灵活性。
作为示例性地,图6示出了本申请一实施例对权重值进行量化的神经网络的示意图。参见图6可见,该神经网络中的权重值可以通过对应的量化精度进行量化后存储,而在实际计算时,需要通过反量化算法,将量化的权重值转换为全精度数值,再与输入数据进行后续的计算,整个运算过程依然是建立于全精度的运算,从而计算量较大,并没有提高整体神经网络的运算效果,而只是减少目标网络模型所占的存储空间大小。
作为示例性地,图7示出了本申请一实施例进行定点量化的神经网络的示意图。参见图7可见,该神经网络中的权重值以及输入数据均通过对应量化精度进行量化处理。以通用CPU为例,包括该CPU可以以x86和ARM框架,最小的数据结构可以为8bit,例如uint8或int8数据格式,因此,所有低于8bit的数据结构均需要转换成8bit数据结构后才能计算。在整个推理过程中,主要的算子输出保持int32数据结构。uint8数据结构值域为[0,28-1],卷积为乘加操作,2个uint8数据相乘值域为[0,216-1],再相加后的值域可能超出216。同时,真实权重均值为0,对于uint8数据格式而言在计算前需要将权重根据0位进行偏移后计算,而对于int8数据格式而言,由于大多数情况下权重0点是对称的,因此不一定需要进行偏移。所以,整个计算过程中保持int32数据结构(值域[-216,216-1])。需要说明的是,权重值以及输入数据的数据格式可以采用同一种数据结构,也可以采用位数相同的两种数据结构进行计算,例如权重值采用int8数据格式,而输入数据的数据格式可以采用uint8的数据格式。
在本实施例中,终端设备在生成了目标网络模型后,可以通过预设的训练数据或采集到的实际数据,对目标网络模型内的运算因子以及权重值进行调整,以使运算结果收敛。而在整个训练以及运算的过程中,由于配置有预处理函数,该目标网络模型在训练的过程中,数据在不同量化精度中转换时,可以通过预处理函数使得输入数据与当前网络的运算精度相匹配,从而实现了解决了混合精度的神经网络的兼容性问题,能够保留低精度量化层级运算效率高的同时,也能够使用高量化精度的训练过程简单,收敛快的优点,能够使得边缘设备也能够适配对应的目标网络模型,减少了终端设备的运算量以及存储空间的占用率。
以上可以看出,本申请实施例提供的一种终端网络模型的数据处理方法在生成目标网络模型之前,通过获取目标网络模型的网络信息,确定不同网络层级对应的量化精度,并基于当前层级的量化精度与上一层级的量化精度,配置用于转换不同精度之间数据格式的预处理函数,并根据预处理函数生成目标网络模型,从而实现了在同一目标网络模型内处理不同精度的数据,解决了混合精度的神经网络的兼容性问题,提高了运算效率。
图8示出了本申请第二实施例提供的一种终端网络模型的数据处理方法S302的具体实现流程图。参见图8,相对于图3所述实施例,本实施例提供的一种终端网络模型的数据处理方法中S302包括:S801~S804,具体详述如下:
进一步地,所述将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果包括:将所述待处理的数据输入至所述目标网络模型,并针对所述目标网络模型中的各个网络层级做如下处理:
在S801中,判断所述目标网络模型中当前网络层级的输入数据的数据格式是否与该网络层级的量化精度相匹配,其中所述输入数据包括所述待处理的数据或者所述待处理数据在相应网络层级处理后的数据。
在本实施例中,终端设备可以将目标数据导入到目标网络模型内,通过目标神经网络内的各个网络层级,对目标数据进行响应的运算,从而输出目标数据对应的处理结果。需要说明的是,不同网络层级之间是存在级联关系,即某一网络层级的输入数据为上一级联的网络层级的输出数据,而该网络层级的输出数据为下一级联的网络层级的输入数据,依次类推,其中,目标网络层级的首层网络的输入数据即为待处理的数据。
在S802中,若不匹配,则为所述当前网络层级配置预处理函数,并通过所述预处理函数对所述当前网络层级的输入数据进行预处理,获得预处理数据。
在本实施例中,若检测到目标网络模型中当前网络层级的输入数据的数据格式与该网络层级的量化精度不匹配,则需要为当前网络层级配置预处理函数,并通过预处理函数输出待处理的数据对应的预处理数据。
举例性地,若预处理函数为低比特量化函数,则可以将以高比特量化表示的输入数据,即以数值形式进行存储的数据,转换为以低比特表示的预处理数据,例如以比特表示的预处理数据,进行逻辑运算。
举例性地,若预处理函数为高比特量化函数,则可以将以低比特量化表示的输入数据,即以比特形式进行存储的数据,转换为以高比特表示的预处理数据,例如以数值表示的预处理数据,进行数值运算。
在S803中,基于所述当前网络层级内与所述量化精度对应的网络权重以及所述预处理数据,输出所述当前网络层级的运算结果。
在本实施例中,在对输入数据进行预处理操作得到预处理数据后,可以根据预处理数据与当前网络层级的网络权重执行对应的运算操作,例如卷积、池化、乘积、叠加等运算,得到对应的运算结果,并将该运算结果作为下一级联的网络层级的输入数据,依次类推,直到最后一层网络层级运算完毕。
在S804中,在所述目标网络模型中所有网络层级都处理完后,将最后一层网络层级的运算结果作为所述待处理数据的处理结果。
在本实施例中,终端设备可以将最后一层的网络层的运算结果作为目标数据对应的处理结果。若上述操作为训练学习过程,则可以将处理结果与标准结果进行比对,识别本次运算的预测是否准确,并计算目标网络模型的损失值,并继续对网络权重进行调整;若上述操作为实际应用过程,则可以将处理结果进行输出,例如通过终端设备的显示器进行结果显示或生成对应的信息。
在本申请实施例中,在生成了目标网络模型后,可以将目标数据导入到目标网络模型内,以计算得到目标数据的处理结果,由于该神经网络是一混合精度的神经网络,不同网络层级之间的量化精度不同,能够应对不同的使用场景,并且能够最大化降低神经网络的资源占用率,并兼顾运算速度。
图9示出了本申请第三实施例提供的一种终端网络模型的数据处理方法S802的具体实现流程图。参见图9,相对于图8所述实施例,本实施例提供的一种终端网络模型的数据处理方法中S802包括:S901~S903,具体详述如下:
进一步地,若所述目标网络模型中当前网络层级的输入数据的数据格式与该网络层级的量化精度不匹配,则为所述当前网络层级配置预处理函数,包括:
在S901中,若所述数据格式的数据精度大于所述量化精度,则根据所述数据精度与所述量化精度之间的比值,确定划分所述输入数据得到的数据块个数。
在本实施例中,网络层级的输入数据的数据格式与网络层级的量化精度不匹配的情况具体有两个类型,分别为数据格式的数据精度大于网络层级的量化精度,以及数据格式的数据精度小于网络层级的量化精度。
其中,数据格式的数据精度大于网络层级的量化精度具体可以为:该网络层级的输入数据的数据格式为8bit,而该网络层级的量化精度为2bit或1bit,又或者网络层级的输入数据的数据格式为4bit,而该网络层级的量化精度为2bit或1bit,其中,网络层级的输入数据的数据格式为8bit或4bit时,运算过程是基于数值进行运算,而网络层级的量化精度为2bit或1bit时,运算过程是基于比特进行运算,上述两个量化精度的运算逻辑不一致,此时,则识别上述两个精度不匹配,且数据格式的数据精度大于网络层级的量化精度,此时,执行S901的操作。
在本实施例中,终端设备在检测上一网络层级的输出数据的数据精度大于当前的网络层级的量化精度时,则需要将高精度的上一网络层级的输出数据,即当前的网络层级的数据数据进行量化操作,在该情况下,终端设备可以根据数据精度以及量化精度之间的比值,确定数据输入的数据库个数,在保留输入数据的数据量的同时,能够使得转换后的数据与当前网络层级的运算精度相匹配。举例性地,该输入数据的数据格式为int8数据,而网络层级的量化精度为1bit精度,可以将输入数据划分为8个1bit数字,若该网络层级的量化精度分为2bit或4bit,则可以将输入数据划分为4个2bit数字以及2个4bit数字;同样地,若输入数据的数据格式为int16,则可以采用16个1bit数字、8个2bit数字、4个4bit数字以及2个8bit数字进行存储,依次类推。
在S902中,获取与所述量化精度对应的低比特量化函数,并根据所述数据块个数确定所述低比特量化函数的执行次数。
在本实施例中,终端设备可以根据量化精度,获取对应的低比特量化函数。并根据数据库的个数,确定该低比特量化函数所需执行的执行次数。例如,划分得到的数据块为4个,则一个输入数据需要进行四次输入,分别将各个数据库导入到上述的低比特量化函数内,转换为与当前的网络层级相匹配的数据格式,即上述的低比特量化函数需要执行4次操作,即上述的执行次数为4。
示例性地,图10示出了本申请一实施例对输入数据进行划分的示意图。参见图10,该输入数据的数据格式为int8数据,即数据精度为8bit,而网络层级的量化精度分为1bit、2bit以及4bit,根据数据精度与量化精度之间的比值,可以确定数据块个数分比为8、4以及2。其中,该8int数据具体为[01110001],因此划分为8个1bit的数据块后,分比为0、1、1、1、0、0、0、1,通过1bit的低比特量化函数,得到的输出结果则为[-1,1,1,1,-1,-1,-1,1]。同样地,对于2bit对应的输出结果为[1,-1,0,1],而4bit对应的输出结果为[7,1]。
在S903中,根据所述执行次数以及所述低比特量化函数生成所述预处理函数。
在本实施例中,终端设备可以根据上述的执行次数以及对应的低比特量化函数,生成预处理函数,从而能够确定在接收到上一网络层级输出的数据后,能够首先对目标数据进行换分,并分别对各个数据块通过上述的低比特量化函数进行转换后,将各个转换后得到的数据进行封装,生成了与当前网络层级的量化精度相匹配的输入数据。例如,一个8int数据的数值为113,对应的比特表示为[01110001],则将其划分为2个4bit数据块,则为[[0111]以及[0001],通过4bit量化函数生成的数据分比为7和1,因此可以将[01110001]转换为[7,1]进行存储,并将[7,1]作为输入数据,执行后续的运算。
具体地,终端设备在通过低比特量化函数对输入数据对应的数据块进行运算之前,可以将各个数据块转换为与该低比特量化函数对应的输入模式,例如该低比特量化函数是基于比特进行转换运算的,则将数据块以比特表示,而该低比特量化函数是基于数值进行转换运算的,则将数据块以数值形式表示。
在一种可能的实现方式中,若所述网络层级的输入数据的数据格式的数据精度大于该网络层级的量化精度,例如输入数据的数据格式为4bit或8bit量化的输入数据,甚至有16bit以及全精度的输入数据,并且该量化精度为1比特量化时,该低比特量化函数具体为:
在一种可能的实现方式中,若所述网络层级的输入数据的数据格式的数据精度大于该网络层级的量化精度,例如输入数据的数据格式为4bit或8bit量化的输入数据,甚至有16bit以及全精度的输入数据,并且该量化精度为2比特量化时,该低比特量化函数具体为:
在本实施例中,上述阈值T可以根据神经网络在训练过程中进行动态调整,从而能够使得上述低比特量化函数与该网络层级的数据处理目标相匹配。需要说明的是,上述对目标数据进行数据块划分时,划分的数据块个数可以与数据精度与量化精度之间的比值相同,例如目标数据的数据格式为8bit量化,而网络层级的量化精度为2bit,则上述两个参量之间的比值为4,则终端设备可以将目标数据划分为4个数据块,在该情况下,上述预设阈值可以为默认值,例如2bit量化时该T的数值可以为0,由于2bit量化可取的数值个数为3个,即为1,0以及-1,因此上述的T阈值有且只有0这一选项;同样地,上述数据块的个数可以小于上述比值,例如,目标数据的数据格式为8bit量化,而网络层级的量化精度为2bit,则上述两个参量之间的比值为4,则数据块的划分个数可以配置为2,则终端设备可以将目标数据划分为2个数据块,每个数据块可以用4bit的数据来表示,此时一个数据块的取值范围可以为0-15,在该情况下,上述阈值T可以根据实际神经网络的运算情况,选取对应的参数值。
在本申请实施例中,通过检测到网络层级的输入数据的数据格式大于网络层级的量化精度时,可以通过对输入数据划分为多个数据块,并将各个数据块导入到预设的低比特量化函数,执行多次量化处理,从而得到有高比特数据转换到低比特数据的预处理函数,提高了目标网络模型的兼容性。
图11示出了本申请第四实施例提供的一种终端网络模型的数据处理方法S802的具体实现流程图。参见图11,相对于图8所述实施例,本实施例提供的一种终端网络模型的数据处理方法中S802包括:S1101~S1102,具体详述如下:
进一步地,若所述目标网络模型中当前网络层级的输入数据的数据格式与该网络层级的量化精度不匹配,则为所述当前网络层级配置预处理函数,包括:
在S1101中,若所述数据格式的数据精度小于所述量化精度,则在所述输入数据与所述目标网络模型的学习权重之间配置异或模块。
在本实施例中,若检测到该网路层级的输入数据的数据精度属于低比特量化,而网络层级的量化精度为高比特量化,则识别上述网络层级的量化精度与输入数据的数据格式不匹配。其中,数据格式的数据精度小于网络层级的量化精度具体可以为:该网络层级的输入数据的数据格式为1bit,而该网络层级的量化精度为4bit或8bit,又或者网络层级的输入数据的数据格式为2bit,而该网络层级的量化精度为4bit或8bit,其中,网络层级的量化精度为8bit或4bit时,运算过程是基于数值进行运算,而网络层级的输入数据的数据格式为2bit或1bit时,运算过程是基于比特进行运算,上述两个量化精度的运算逻辑不一致,此时,则识别上述两个精度不匹配,且数据格式的数据精度小于网络层级的量化精度,此时,执行S1101的操作。
在本实施例中,终端设备在将低比特的输入数据转换至与高比特的网络层级的权重因子匹配的过程中,并不适用反量化计算,由于反量化计算涉及到数值的乘法运算,计算机在处理数据的乘法运算时耗时较长,即反量化会降低神经网络的训练时长以及运算时长,并且会大大增加终端设备的运算压力,特别边缘设备的运算能力有限的情况下,进行反量化操作会大大增加运算资源的占用,甚至影响终端设备的正常运作。为了解决上述问题,终端设备在将低比特数据转换为高比特数据的过程中,使用的依然是比特之间的逻辑运算。
在本实施例中,该网络层级内可以配置有对应的学习权重,终端设备可以在学习权重与输入数据之间的配置异或模块,即以学习权重以及输入数据作为异或模块的输入,对上述两个参量进行异或运算。其中,该神经网络内可以配置有基于低比特表示的学习权重。
在S1102中,以所述异或模块的输出端作为计数Popcount模块的输入端,串联所述异或模块以及所述Popcount模块,并将所述串联的异或模块以及所述Popcount模块作为所述预处理函数。
在本实施例中,由于上述异或运算在神经网络内相当于乘积运算,且异或运算后得到的数据依然是基于比特进行表示的,在该情况下,终端设备可以在异或模块的输出端口串联一个计数Popcount模块,统计异或运算后的运算结果内包含的“1”的个数。示例性地,该异或运算后的运算结果可以为[10001101],将该运算结果导入到Popcount模块内,对应的输出结果即为4,是一个以数值表示的数据,即为以高比特数据,通过上述处理后,则可以将Popcount模块输出的数据,直接通过该网络层级内的高精度量化的权重值以及运算因子执行相应的运算。
在一种可能的实现方式中,终端设备可以异或运算后的运算结果,根据网络层级的量化精度,划分为多个数据块,并分别对各个数据块进行Popcount运算,将各个数据块对应的运算结果,根据在运算结果内的次序进行封装,作为该Popcount运算的运算结果。举例性地,网络层级的量化精度为4bit,而上述异或运算后的输出结果为[10001101],是通过8个1bit数据表示的int8数据,因此,可以将上述运算结果划分为两个数据块,分比为[1000]以及[1101],并分别统计上述两个数据块内“1”字符的个数,分别为1和3,则可以将上述两个Popcount运算的结果根据在异或运算对应的运算结果中的次序进行封装,即为13,将13作为Popcount运算的运算结果。
在本申请实施例中,在检测到输入数据的数据精度低于网络层级所需的量化精度时,通过建立异或XNOR模块与Popcount模块,通过比特运算将低精度数据转换为高比特数据,从而无需进行反量化操作,减少了终端设备在训练以及运算过程中的数据处理压力,并提高了运算速率。
示例性地,图12示出了本申请一实施例提供的混合精度的数据转换的示意图。参见图12,若网络层级的输入数据的数据格式与该网络层级的量化精度一致,则可以在同一层级之间进行运算,而无需通过预处理函数进行转换。其中,运算过程存在以下四种情况下:
1,网络层级的输入数据X的数据格式为8bit数据,而该网络层级的量化精度也8bit,即采用的权重值的数据格式也为8bit,在该情况下,则可以直接计算两个数据之间的乘积,以及与另一权重值进行叠加,得到对应的输出结果Y。
2,网络层级的输入数据X’的数据格式为2bit,且该网络层级的量化精度也为2bit,即采用的权重值的数据格式也为2bit,在该情况下,则可以直接对两个参量进行比特运算,并在比特运算后串联一个Popcount模块,并对Popcount模块进行低比特激活,得到对应的输出结果Y’。
3,当输入数据X的数据格式为4bit或8bit时,且网络层级的量化精度为1bit或2bit时,输入数据的数据格式的量化精度大于网络层级的量化精度,此时需要将输入数据划分为多个数据块,并将各个数据块导入到低比特激活函数,将高比特表示的输入数据X转换为低比特表示的输入数据X’,并与网络层级内以低比特表示的权重值进行比特运算,得到以低比特表示的输出结果Y’。
4,当输入数据X’的数据格式为1bit或2bit时,且网络层级的量化精度为4bit或8bit时,输入数据的数据格式的量化精度小于网络层级的量化精度,此时需要通过XNOR模块了以及Popcount模块将低比特表示的输入数据X’转换为高比特表示的数据形式,即X”,并将转换为高比特标识的X”与网络层级内的权重值进行对应的数值运算,得到以高比特标识的输出结果Y。
图13示出了本申请第五实施例提供的一种终端网络模型的数据处理方法的具体实现流程图。参见图13,相对于图3、图8、图9以及图11任一所述实施例,本实施例提供的一种终端网络模型的数据处理方法中在所述将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果之前,还包括:S1301~S1302,具体详述如下:
进一步地,在所述将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果之前,还包括:
在S1301中,根据所述量化精度,为各个所述网络层级配置关联的初始权重。
在本实施例中,终端设备可以根据该网络层级对应的量化精度,为该网络层级的网络权重配置初始值,即设置初始权重,其中,该初始权重的数据格式与该网络层级的量化精度相匹配。例如,该网络层级的量化精度为8bit,则可以为该网络层级配置一8bit的网络权重,并为该网络权重配置初始值,得到上述的初始权重。
在S1302中,根据各个所述初始权重以及所述预处理函数,生成所述目标网络模型。
在本实施例中,若预处理函数的输入包含初始权重,则可以建立上述预处理函数与初始权重之间的输入关系;若预处理函数的输入不包含初始权重,则可以将预处理函数的输出数据以及初始权重作为该网络层级内预设的运算模块的输入,从而构建得到该网络层级对应的层级模型,根据各个网络层级的层级模型以及网络层级的层级次序,建立不同网络层级的层级模型之间的输入、输出关系,从而生成目标网络模型。
在本申请实施例中,通过为不同的网络层级配置初始权重,根据初始权重以及预处理函数,生成目标网络模型,实现了自动创建混合量化精度的目标网络模型的目的,提高了自动化程度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的终端网络模型的数据处理方法,图14示出了本申请实施例提供的终端网络模型的数据处理装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图14,该终端网络模型的数据处理装置包括:
数据获取单元141,用于获取待处理的数据;
数据处理单元142,用于将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果,其中所述目标网络模型中的至少一个网络层级配置有预处理函数,所述预处理函数用于在对应网络层级的输入数据的数据格式与该网络层级的量化精度不匹配时,对所述输入数据进行预处理。
可选地,所述数据处理单元142具体用于:将所述待处理的数据输入至所述目标网络模型,并针对所述目标网络模型中的各个网络层级做如下处理:
判断所述目标网络模型中当前网络层级的输入数据的数据格式是否与该网络层级的量化精度相匹配,其中所述输入数据包括所述待处理的数据或者所述待处理数据在相应网络层级处理后的数据;
若不匹配,则为所述当前网络层级配置预处理函数,并通过所述预处理函数对所述当前网络层级的输入数据进行预处理,获得预处理数据;
基于所述当前网络层级内与所述量化精度对应的网络权重以及所述预处理数据,输出所述当前网络层级的运算结果;
在所述目标网络模型中所有网络层级都处理完后,将最后一层网络层级的运算结果作为所述待处理数据的处理结果。
可选地,所述数据处理单元142还包括:
数据块划分单元,用于若所述数据格式的数据精度大于所述量化精度,则根据所述数据精度与所述量化精度之间的比值,确定划分所述输入数据得到的数据块个数;
执行次数确定单元,用于获取与所述量化精度对应的低比特量化函数,并根据所述数据块个数确定所述低比特量化函数的执行次数;
第一预处理函数生成单元,用于根据所述执行次数以及所述低比特量化函数生成所述预处理函数。
可选地,若所述量化精度为1比特量化,所述低比特量化函数具体为:
可选地,若所述量化精度为2比特量化,所述低比特量化函数具体为:
可选地,所述数据处理单元142还包括:
异或模块配置单元,用于若所述数据格式的数据精度小于所述量化精度,则在所述输入数据与所述目标网络模型的学习权重之间配置异或模块;
第二预处理函数生成单元,用于以所述异或模块的输出端作为计数Popcount模块的输入端,串联所述异或模块以及所述Popcount模块,并将所述串联的异或模块以及所述Popcount模块作为所述预处理函数。
可选地,所述终端网络模型的数据处理装置还包括:
初始权重配置单元,用于根据所述量化精度,为各个所述网络层级配置关联的初始权重;
初始权重封装单元,用于根据各个所述初始权重以及所述预处理函数,生成所述目标网络模型。
因此,本申请实施例提供的终端网络模型的数据处理装置同样可以在生成目标网络模型之前,通过获取目标网络模型的网络信息,确定不同网络层级对应的量化精度,并基于当前层级的量化精度与上一层级的量化精度,配置用于转换不同精度之间数据格式的预处理函数,并根据预处理函数生成目标网络模型,从而实现了在同一目标网络模型内处理不同精度的数据,解决了混合精度的神经网络的兼容性问题,提高了运算效率。
图15为本申请一实施例提供的终端设备的结构示意图。如图15所示,该实施例的终端设备15包括:至少一个处理器150(图15中仅示出一个)处理器、存储器151以及存储在所述存储器151中并可在所述至少一个处理器150上运行的计算机程序152,所述处理器150执行所述计算机程序152时实现上述任意各个终端网络模型的数据处理方法实施例中的步骤。
所述终端设备15可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器150、存储器151。本领域技术人员可以理解,图15仅仅是终端设备15的举例,并不构成对终端设备15的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器150可以是中央处理单元(Central Processing Unit,CPU),该处理器150还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器151在一些实施例中可以是所述终端设备15的内部存储单元,例如终端设备15的硬盘或内存。所述存储器151在另一些实施例中也可以是所述终端设备15的外部存储设备,例如所述终端设备15上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器151还可以既包括所述终端设备15的内部存储单元也包括外部存储设备。所述存储器151用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器151还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种网络设备,该网络设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (8)
1.一种终端网络模型的数据处理方法,其特征在于,包括:
获取待处理的数据;
将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果,其中所述目标网络模型中的至少一个网络层级配置有预处理函数,所述预处理函数用于在对应网络层级的输入数据的数据格式与该网络层级的量化精度不匹配时,对所述输入数据进行预处理;
所述将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果包括:
将所述待处理的数据输入至所述目标网络模型,并针对所述目标网络模型中的各个网络层级做如下处理:
判断所述目标网络模型中当前网络层级的输入数据的数据格式是否与该网络层级的量化精度相匹配,其中所述输入数据包括所述待处理的数据或者所述待处理数据在相应网络层级处理后的数据;
若不匹配,则为所述当前网络层级配置预处理函数,并通过所述预处理函数对所述当前网络层级的输入数据进行预处理,获得预处理数据;所述目标网络模型中当前网络层级的输入数据的数据格式是否与该网络层级的量化精度不匹配包括:所述数据格式的数据精度大于所述量化精度,以及所述数据格式的数据精度小于所述量化精度;
基于所述当前网络层级内与所述量化精度对应的网络权重以及所述预处理数据,输出所述当前网络层级的运算结果;
在所述目标网络模型中所有网络层级都处理完后,将最后一层网络层级的运算结果作为所述待处理数据的处理结果;
若所述目标网络模型中当前网络层级的输入数据的数据格式与该网络层级的量化精度不匹配,则为所述当前网络层级配置预处理函数,包括:
若所述数据格式的数据精度大于所述量化精度,则根据所述数据精度与所述量化精度之间的比值,确定划分所述输入数据得到的数据块个数;
获取与所述量化精度对应的低比特量化函数,并根据所述数据块个数确定所述低比特量化函数的执行次数;
根据所述执行次数以及所述低比特量化函数生成所述预处理函数。
4.根据权利要求1所述的数据处理方法,若所述目标网络模型中当前网络层级的输入数据的数据格式与该网络层级的量化精度不匹配,则为所述当前网络层级配置预处理函数,还包括:
若所述数据格式的数据精度小于所述量化精度,则在所述输入数据与所述目标网络模型的学习权重之间配置异或模块;
以所述异或模块的输出端作为计数Popcount模块的输入端,串联所述异或模块以及所述Popcount模块,并将所述串联的异或模块以及所述Popcount模块作为所述预处理函数。
5.根据权利要求1-4任一所述的数据处理方法,其特征在于,在所述将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果之前,还包括:
根据所述量化精度,为各个所述网络层级配置关联的初始权重;
根据各个所述初始权重以及所述预处理函数,生成所述目标网络模型。
6.一种终端网络模型的数据处理装置,其特征在于,包括:
数据获取单元,用于获取待处理的数据;
数据处理单元,用于将所述待处理的数据输入至目标网络模型中进行处理,获得处理结果,其中所述目标网络模型中的至少一个网络层级配置有预处理函数,所述预处理函数用于在对应网络层级的输入数据的数据格式与该网络层级的量化精度不匹配时,对所述输入数据进行预处理;
所述数据处理单元具体用于:将所述待处理的数据输入至所述目标网络模型,并针对所述目标网络模型中的各个网络层级做如下处理:
判断所述目标网络模型中当前网络层级的输入数据的数据格式是否与该网络层级的量化精度相匹配,其中所述输入数据包括所述待处理的数据或者所述待处理数据在相应网络层级处理后的数据;
若不匹配,则为所述当前网络层级配置预处理函数,并通过所述预处理函数对所述当前网络层级的输入数据进行预处理,获得预处理数据;所述目标网络模型中当前网络层级的输入数据的数据格式是否与该网络层级的量化精度不匹配包括:所述数据格式的数据精度大于所述量化精度,以及所述数据格式的数据精度小于所述量化精度;
基于所述当前网络层级内与所述量化精度对应的网络权重以及所述预处理数据,输出所述当前网络层级的运算结果;
在所述目标网络模型中所有网络层级都处理完后,将最后一层网络层级的运算结果作为所述待处理数据的处理结果;
若所述目标网络模型中当前网络层级的输入数据的数据格式与该网络层级的量化精度不匹配,则为所述当前网络层级配置预处理函数,包括:
若所述数据格式的数据精度大于所述量化精度,则根据所述数据精度与所述量化精度之间的比值,确定划分所述输入数据得到的数据块个数;
获取与所述量化精度对应的低比特量化函数,并根据所述数据块个数确定所述低比特量化函数的执行次数;
根据所述执行次数以及所述低比特量化函数生成所述预处理函数。
7.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010175997.XA CN113392954B (zh) | 2020-03-13 | 2020-03-13 | 终端网络模型的数据处理方法、装置、终端以及存储介质 |
PCT/CN2021/080453 WO2021180201A1 (zh) | 2020-03-13 | 2021-03-12 | 终端网络模型的数据处理方法、装置、终端以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010175997.XA CN113392954B (zh) | 2020-03-13 | 2020-03-13 | 终端网络模型的数据处理方法、装置、终端以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113392954A CN113392954A (zh) | 2021-09-14 |
CN113392954B true CN113392954B (zh) | 2023-01-24 |
Family
ID=77616071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010175997.XA Active CN113392954B (zh) | 2020-03-13 | 2020-03-13 | 终端网络模型的数据处理方法、装置、终端以及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113392954B (zh) |
WO (1) | WO2021180201A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114896950B (zh) * | 2022-07-11 | 2022-10-28 | 浙江大华技术股份有限公司 | 模型转换方法以及模型转换设备、存储介质 |
CN115017377B (zh) * | 2022-08-05 | 2022-11-08 | 深圳比特微电子科技有限公司 | 用于搜索目标模型的方法、装置和计算设备 |
CN115577701B (zh) * | 2022-09-23 | 2023-09-19 | 刘娇平 | 针对大数据安全的风险行为识别方法、装置、设备及介质 |
WO2024130560A1 (zh) * | 2022-12-20 | 2024-06-27 | 北京小米移动软件有限公司 | 信息处理方法及装置、通信设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200097799A1 (en) * | 2017-06-30 | 2020-03-26 | Intel Corporation | Heterogeneous multiplier |
US11270187B2 (en) * | 2017-11-07 | 2022-03-08 | Samsung Electronics Co., Ltd | Method and apparatus for learning low-precision neural network that combines weight quantization and activation quantization |
CN108345938A (zh) * | 2018-03-01 | 2018-07-31 | 中国科学院计算技术研究所 | 一种包括比特转换装置的神经网络处理器及其方法 |
US11875251B2 (en) * | 2018-05-03 | 2024-01-16 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
CN110728350B (zh) * | 2018-06-29 | 2024-07-26 | 微软技术许可有限责任公司 | 用于机器学习模型的量化 |
CN109190754A (zh) * | 2018-08-30 | 2019-01-11 | 北京地平线机器人技术研发有限公司 | 量化模型生成方法、装置和电子设备 |
CN109325590B (zh) * | 2018-09-14 | 2020-11-03 | 中国科学院计算技术研究所 | 用于实现计算精度可变的神经网络处理器的装置 |
CN110046705B (zh) * | 2019-04-15 | 2022-03-22 | 广州异构智能科技有限公司 | 用于卷积神经网络的装置 |
CN110751278A (zh) * | 2019-08-28 | 2020-02-04 | 云知声智能科技股份有限公司 | 一种神经网络比特量化方法和系统 |
CN110738313B (zh) * | 2019-10-15 | 2022-05-31 | 阿波罗智能技术(北京)有限公司 | 用于评估量化操作的方法、装置、设备和介质 |
-
2020
- 2020-03-13 CN CN202010175997.XA patent/CN113392954B/zh active Active
-
2021
- 2021-03-12 WO PCT/CN2021/080453 patent/WO2021180201A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021180201A1 (zh) | 2021-09-16 |
CN113392954A (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113392954B (zh) | 终端网络模型的数据处理方法、装置、终端以及存储介质 | |
CN109800877B (zh) | 神经网络的参数调整方法、装置及设备 | |
CN115473957B (zh) | 一种图像处理方法和电子设备 | |
CN112950525B (zh) | 图像检测方法、装置及电子设备 | |
CN110795007B (zh) | 一种获取截图信息的方法及装置 | |
CN110852951B (zh) | 图像处理方法、装置、终端设备及计算机可读存储介质 | |
CN113157357B (zh) | 一种页面显示的方法、装置、终端以及存储介质 | |
CN113220848B (zh) | 用于人机交互的自动问答方法、装置和智能设备 | |
CN110430022B (zh) | 数据传输方法及装置 | |
CN113822322B (zh) | 图像处理模型训练方法及文本处理模型训练方法 | |
CN116703693A (zh) | 一种图像渲染方法及电子设备 | |
CN113518243A (zh) | 一种图像处理方法及装置 | |
CN110971822A (zh) | 图片处理方法、装置、终端设备及计算机可读存储介质 | |
CN111241815A (zh) | 文本增量方法、装置及终端设备 | |
CN113409041B (zh) | 一种电子卡的选取方法、装置、终端以及存储介质 | |
CN113763931B (zh) | 波形特征提取方法、装置、计算机设备及存储介质 | |
CN118153110B (zh) | 一种数据处理方法及相关装置 | |
CN113010066B (zh) | 显示参数确定方法及装置 | |
CN114691860A (zh) | 文本分类模型的训练方法、装置、电子设备及存储介质 | |
CN113486364A (zh) | 一种终端、服务器以及数据处理方法 | |
CN113031838A (zh) | 屏幕录制方法、装置及电子设备 | |
CN115840918A (zh) | 一种异常日生产数据确定方法、装置及存储介质 | |
CN110096707B (zh) | 生成自然语言的方法、装置、设备及可读存储介质 | |
CN111722896B (zh) | 动画播放方法、装置、终端以及计算机可读存储介质 | |
CN112054804A (zh) | 压缩数据、解压数据的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |