CN109542512A - 一种数据处理方法、装置和存储介质 - Google Patents

一种数据处理方法、装置和存储介质 Download PDF

Info

Publication number
CN109542512A
CN109542512A CN201811313447.9A CN201811313447A CN109542512A CN 109542512 A CN109542512 A CN 109542512A CN 201811313447 A CN201811313447 A CN 201811313447A CN 109542512 A CN109542512 A CN 109542512A
Authority
CN
China
Prior art keywords
value
convolutional layer
current
current convolutional
bit port
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.)
Granted
Application number
CN201811313447.9A
Other languages
English (en)
Other versions
CN109542512B (zh
Inventor
戴彦
蔡林金
丁缙
姚达
吴永坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811313447.9A priority Critical patent/CN109542512B/zh
Publication of CN109542512A publication Critical patent/CN109542512A/zh
Application granted granted Critical
Publication of CN109542512B publication Critical patent/CN109542512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Abstract

本发明实施例公开了一种数据处理方法、装置和存储介质;本发明实施例在获取到预设卷积神经网络后,可以确定当前卷积层,并获取该当前卷积层的扩位通道值,然后,在利用该当前卷积层对输入数据进行特征提取和特征累加的过程中,对累加的通道数进行统计,并在累加的通道数达到该扩位通道值的整数倍时,对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;该方案可以在避免溢出的同时,降低指令的数量和卷积运算复杂度,实现性能加速及计算资源消耗的减少。

Description

一种数据处理方法、装置和存储介质
技术领域
本发明涉及通信技术领域,具体涉及一种数据处理方法、装置和存储介质。
背景技术
随着卷积神经网络(CNN,Convolutional Neural Network)在数据处理(如图像处理)领域中的广泛应用,以及移动终端的普及,量化卷积神经网络也越来越受关注。所谓量化,指的是对模型进行压缩,即利用更少的运算位数表示权重值和特征值。通过量化,可以使得卷积神经网络更为轻型,进而可以部署在移动终端等硬件资源较为受限的平台中。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于卷积运算主要是基于乘法和加法运算,因此,量化后随着运算位数的减少,多次乘法和累加操作极易导致产生溢出(即运算结果超过当前运算位数所能表示的范围)。为了避免溢出,往往需要频繁地将其在寄存器中的运算位数扩展为更高的位数,这不仅操作复杂,而且将增大量化后卷积运算的复杂度,产生更多额外的开销,加重了计算资源的消耗。
发明内容
本发明实施例提供一种数据处理方法、装置和存储介质;可以灵活简便地对运算位数进行扩位,在避免溢出的同时,降低量化后卷积运算的复杂度,减少计算资源的消耗。
本发明实施例提供一种数据处理方法,其特征在于,包括:
获取预设卷积神经网络,所述卷积神经网络包括多层卷积层;
确定当前卷积层,并获取所述当前卷积层的输入数据和扩位通道值;
采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息;
对所述多个通道对应的特征信息进行累加,并对累加的通道数进行统计;
若累加的通道数达到所述扩位通道值的整数倍,则对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;
在所述多个通道对应的特征信息累加完毕后,返回执行确定当前卷积层的步骤,直至所有卷积层处理完毕。
相应的,本发明实施例提供一种数据处理装置,包括获取单元、确定单元、提取单元、累加单元和扩展单元,如下:
获取单元,用于获取预设卷积神经网络,所述卷积神经网络包括多层卷积层;
确定单元,用于确定当前卷积层,并获取所述当前卷积层的输入数据和扩位通道值;
提取单元,用于采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息;
累加单元,用于对所述多个通道对应的特征信息进行累加,并对累加的通道数进行统计,在所述多个通道对应的特征信息累加完毕后,触发确定单元执行确定当前卷积层的操作,直至所有卷积层处理完毕;
扩展单元,用于在累加的通道数达到所述扩位通道值的整数倍时,对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
可选的,在一些实施例中,所述扩展单元可以包括调用子单元和扩展子单元,如下:
所述调用子单元,用于在累加的通道数达到所述扩位通道值的整数倍时,调用扩位指令;
所述扩展子单元,用于根据所述扩位指令对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
可选的,在一些实施例中,所述扩位指令为带扩位功能的乘加指令,所述扩展子单元,具体用于确定当前卷积层在寄存器中的运算位数、以及允许扩展的目标运算位数,采用所述带扩位功能的乘加指令将当前卷积层在寄存器中的运算位数扩展至所述目标运算位数。
可选的,在一些实施例中,所述确定单元包括第一确定子单元、输入子单元和第二确定子单元,如下:
所述第一确定子单元,用于确定当前卷积层;
所述输入子单元,用于获取所述当前卷积层的输入数据;
所述第二确定子单元,用于确定所述当前卷积层的卷积核的权重值、以及输入数据的特征值取值范围,并根据所述权重值和特征值取值范围确定所述当前卷积层的扩位通道值。
可选的,在一些实施例中,所述第二确定子单元,具体用于根据所述权重值和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到所述当前卷积层的扩位通道值;
或者,所述第二确定子单元,具体用于从预设静态代码库中,获取与所述权重值和特征值取值范围对应的扩位通道值,得到所述当前卷积层的扩位通道值。
可选的,在一些实施例中,所述数据处理装置还可以包括建立单元,如下:
所述建立单元,用于获取多组样本的权重值和特征值取值范围,根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数,得到每一组样本对应的扩位通道值,建立每一组样本的权重值、特征值取值范围和扩位通道值的对应关系,并将所述对应关系保存至静态代码库中。
可选的,在一些实施例中,所述第二确定子单元,具体可以用于计算当前运算位数能表示的最大数值范围,根据特征值取值范围确定最大特征值,对所述最大特征值和权重值进行卷积运算,得到当前卷积层中每一通道的最大值,根据所述每一通道的最大值,计算在所述最大数值范围内所能容纳的最大通道数,根据计算得到的最大通道数确定所述当前卷积层的扩位通道值。
可选的,在一些实施例中,所述第二确定子单元,具体可以用于将计算得到的最大通道数作为所述当前卷积层的扩位通道值。
可选的,在一些实施例中,所述第二确定子单元,具体可以用于按照预测策略对计算得到的最大通道数进行细粒度调整,得到所述当前卷积层的扩位通道值。
此外,本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例提供的任一种数据处理方法中的步骤。
本发明实施例在获取到预设卷积神经网络后,可以确定当前卷积层,并获取该当前卷积层的扩位通道值,然后,在利用该当前卷积层对输入数据进行特征提取和特征累加的过程中,对累加的通道数进行统计,在累加的通道数达到该扩位通道值的整数倍时,对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;由于该方案可以根据当前运算环境的实际情况,灵活地确定扩位时机,以对寄存器中的运算位数自动进行扩展,因此,相对于现有只能频繁地进行扩位的方案而言,可以在避免溢出的同时,降低指令的数量,实现性能加速;此外,由于指令数量的下降,所以,量化后卷积运算的复杂度也会降低,进而可以减少计算资源的消耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的数据处理方法的场景示意图;
图1b是本发明实施例提供的数据处理方法的流程图;
图1c是本发明实施例提供的数据处理方法中一次卷积运算过程的示意图;
图2a是本发明实施例提供的扩位通道值的计算流程图;
图2b是本发明实施例提供的数据处理方法的另一流程图;
图3a是本发明实施例提供的数据处理装置的结构示意图;
图3b是本发明实施例提供的数据处理装置的另一结构示意图;
图4是本发明实施例提供的网络设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理方法、装置和存储介质。其中,数据处理装置具体可以集成在网络设备如服务器或移动终端等设备中。
以该数据处理装置集成在网络设备中为例,当网络设备获取到预设的卷积神经网络(该卷积神经网络包括多层卷积层)后,可以确定当前卷积层,并获取该当前卷积层的输入数据和扩位通道值,比如参见图1a,若当前卷积层为卷积层1,则此时,可以获取卷积层1的输入数据——输入数据1,以及获取卷积层1的扩位通道值——m1;又比如,若当前卷积层为卷积层2,则此时可以获取卷积层2的输入数据——输入数据2,以及获取卷积层2的扩位通道值——m2,以此类推,等等。然后,采用当前卷积层对输入数据进行特征提取,比如采用卷积层1对输入数据1进行特征提取,或采用卷积层2对输入数据2进行特征提取,等等,得到当前卷积层中多个通道对应的特征信息;此后,可以对该多个通道对应的特征信息进行累加,并且,每累加“扩位通道值”个通道,则扩位(即对当前卷积层在寄存器中的运算位数进行扩展)一次,比如,将原有的8位(bit)扩展为16位,或将16位扩展为32位,等等,以对累加过程产生的数据进行存储。在该多个通道对应的特征信息累加完毕后,将累加结果作为下一卷积层的输入数据,以及将下一卷积层作为新的“当前卷积层”,并执行上述操作,直至所有卷积层处理完毕,进而实现防止溢出、以及自动扩位的目的。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
实施例一、
本实施例将从数据处理装置的角度进行描述,该数据处理装置具体可以继承在网络设备,比如服务器或移动终端等设备中,该移动终端可以包括手机、平板电脑、笔记本电脑、或个人计算机(PC,Personal Computer)等。
一种数据处理方法,包括:获取预设卷积神经网络,该卷积神经网络包括多层卷积层,确定当前卷积层,并获取该当前卷积层的输入数据和扩位通道值,采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息,对该多个通道对应的特征信息进行累加,并对累加的通道数进行统计,若累加的通道数达到该扩位通道值的整数倍,则对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储,在该多个通道对应的特征信息累加完毕后,返回执行确定当前卷积层的步骤,直至所有卷积层处理完毕。
如图1b所示,该数据处理方法的具体流程可以如下:
101、获取预设卷积神经网络。
其中,该卷积神经网络的网络结构可以根据实际应用的需求而定,比如,可以包括多层卷积层,此外,还可以包括激活层、池化层、以及全连接层等结构。网络结构中各层的参数,比如卷积层的卷积核(Convolution Kernel)大小、卷积核的权重、以及步长的大小,等等,也可以根据具体的应用场景或需求进行设置,在此不再赘述。
该卷积神经网络可以通过代码来实现,比如,可以编写一套模板代码,然后,根据各网络结构、以及各层的参数,利用即时编译编译器(JIT,Just-In-Time Compiler)基于该模板代码动态生成不同的卷积核心代码。
具体的,可以预先将预设的多个卷积神经网络的代码存储在代码库,比如静态代码库中,然后,在接收到卷积神经网络的获取请求时,根据该获取请求中携带的卷积神经网络标识从代码库中获取相应的代码,即可得到相应的卷积神经网络;也就是说,具体实现时,步骤“获取预设卷积神经网络”可以包括:
接收卷积神经网络的获取请求,该获取请求中携带的卷积神经网络标识,根据该卷积神经网络标识从代码库中获取相应的代码,得到卷积神经网络。
当然,也可以将卷积神经网络的代码以其他的形式存储在本地(即该数据处理装置)或其他的设备中,在此不再列举。
102、确定当前卷积层,并获取该当前卷积层的输入数据和扩位通道值。
例如,以卷积神经网络包括卷积层1、卷积层2和卷积层3为例,则若当前卷积层为卷积层1,则此时可以获取卷积层1的输入数据和扩位通道值;若当前卷积层为卷积层2,则此时可以获取卷积层2的输入数据和扩位通道值;若当前卷积层为卷积层3,则此时可以获取卷积层3的输入数据和扩位通道值,以此类推,等等。
其中,扩位通道值指的是扩位(即对在寄存器中的运算位数进行扩展)周期,该周期以累加的通道数量来体现;比如,若某卷积层的扩位通道值为m,则在对该卷积层的多个通道的特征信息进行累加时,每累加m个通道,则需要扩位一次。
其中,各卷积层的扩位通道值取决于其所属卷积层的卷积核的权重值、以及输入数据的特征值取值范围,即步骤“获取该当前卷积层的扩位通道值”可以包括:
确定该当前卷积层的卷积核的权重值、以及输入数据的特征值取值范围,根据该权重值和特征值取值范围确定该当前卷积层的扩位通道值。
其中,“根据该权重值和特征值取值范围确定该当前卷积层的扩位通道值”的方式可以有多种,例如,可以直接根据该权重值和特征值取值范围计算得到,或者,也可以通过查询来得到,具体如下:
(1)方式一:
根据该权重值(即当前卷积层的卷积核的权重值)和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到该当前卷积层的扩位通道值;例如,具体可以如下:
S1、计算当前运算位数能表示的最大数值范围。
比如,若当前运算位数为8位(bit),除去一位符号位(即“+”号或“-”号),则其能表示的最大数值范围为“27-1”,用二进制表示即为“111 1111”;若当前运算位数为16位(bit),除去一位符号位,则其能表示的最大数值范围为“215-1”,用二进制表示即为二进制数“111 1111 1111 1111”,以此类推,等等。
S2、根据特征值取值范围确定最大特征值。
这是因为,当每个特征值都取最大值时,其运算结果的值最大,如若在这种最坏的情况下,运算位数仍然能保证不溢出的话,则在其他情况下,也不会产生溢出。
例如,若输入数据的特征值取值范围为(-2r~2r),则此时,最大特征值为“2r”,其中,r的取值范围可以根据实际应用的需求而定,比如,若用于存储输入数据的寄存器位数为8位(其中有一位为符号位),则r的取值范围为(0~7),又比如,若用于存储输入数据的寄存器位数为16位(其中有一位为符号位),则r的取值范围为(0~15),以此类推,等等。
S3、对该最大特征值和权重值进行卷积运算,得到当前卷积层中每一通道的最大值,用公式表示即为:
其中,Fmax为当前卷积层中每一通道的最大值,wi为当前卷积层的卷积核的权重值,dimax为最大特征值。
其中,权重值(即当前卷积层的卷积核的权重值)可以根据实际应用的需求进行设置,其取值范围可以为(-2t~2t),其中,t的取值范围也可以根据实际应用的需求而定,比如,若用于存储该权重值的寄存器位数为8位(其中有一位为符号位),则t的取值范围为(0~7),又比如,若用于存储该权重值的寄存器位数为16位(其中有一位为符号位),则t的取值范围为(0~15),以此类推,等等。
S4、根据该每一通道的最大值,计算在该最大数值范围内所能容纳的最大通道数。
例如,以当前运算位数为16位(bit)为例,若不允许产生溢出,则当前卷积层的卷积运算结果需要满足如下条件:
其中,djjmax为在计算“第j通道的最大值”时所采用的最大特征值,则在第j通道的最大值Fjmax,即已知的情况下,可以计算出m值,即在该最大数值范围内所能容纳的最大通道数。
又例如,以当前运算位数为32位(bit)为例,若不允许产生溢出,则当前卷积层的卷积运算结果需要满足如下条件:
其中,djimax为在计算“第j通道的最大值”时所采用的最大特征值,则同理,在第j通道的最大值Fjmax,即已知的情况下,可以计算出m值,即在该最大数值范围内所能容纳的最大通道数。
S5、根据计算得到的最大通道数确定该当前卷积层的扩位通道值。
例如,具体可以将计算得到的最大通道数作为该当前卷积层的扩位通道值。
可选了,由于该最大通道数是以“每个特征值都是取最大特征值”为基础计算得到的,而在一般情况下,每个特征值不一定都是“最大特征值”,因此,为了进一步减少卷积运算过程中的乘加指令数量(扩位通道值越大,能减少的乘加指令数量越多),也可以对该计算得到的最大通道数进行细粒度(fine-grain)调整,并将调整后的最大通道数作为当前卷积层的扩位通道值,即步骤“根据计算得到的最大通道数确定该当前卷积层的扩位通道值”也可以包括:
按照预测策略对计算得到的最大通道数进行细粒度调整,得到该当前卷积层的扩位通道值。
其中,该预测策略可以根据实际应用的需求进行设置,比如,可以逐步增大“最大通道数(即m值)”大小,对于相同的输入特征图和卷积核,测试采用不同的m值是否会产生溢出,并从中筛选出不会产生溢出的最大的m值,比如m’值,即可将该m’值作为该当前卷积层的扩位通道值。
(2)方式二:
从预设静态代码库中,获取与该权重值和特征值取值范围对应的扩位通道值,得到该当前卷积层的扩位通道值。
例如,具体可以针对某些应用场景,分析将会使用到的权重值和特征值的取值范围,进而计算得到相应的扩位通道值,然后,将该权重值、特征值取值范围和扩位通道值的对应关系保存在静态代码库中,以供后续调用;即步骤“从预设静态代码库中,获取与该权重值和特征值取值范围对应的扩位通道值,得到该当前卷积层的扩位通道值”之前,该数据处理方法还可以包括:
获取多组样本的权重值和特征值取值范围,根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数,得到每一组样本对应的扩位通道值,建立每一组样本的权重值、特征值取值范围和扩位通道值的对应关系,并将该对应关系保存至静态代码库中。
其中,“根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数”与“方式一”类似,比如,可以计算当前运算位数能表示的最大数值范围,以及根据特征值取值范围确定最大特征值,然后,对该最大特征值和权重值进行卷积运算,得到当前样本中每一通道的最大值,再然后,根据该每一通道的最大值,计算在该最大数值范围内所能容纳的最大通道数,并根据计算得到的最大通道数确定该样本的扩位通道值,等等,详见前面实施例,在此不作赘述。
需说明的是,该对应关系可以保存在独立于“卷积神经网络”代码的代码库中,也可以保存在用于保存“卷积神经网络”代码的代码库中。可选的,具体实现时,还可以分别基于不同的扩位通道值生成相应的卷积运算代码,并保存在代码库中,这样,在使用卷积神经网络时,便可直接从该代码库中调用相应的卷积运算代码进行执行,而无需再单独获取扩位通道值。
可选的,该静态代码库中还可以保存一通用函数,用于处理非常用的扩位通道值,比如,可以采用该通用函数,根据该权重值(即当前卷积层的卷积核的权重值)和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到该当前卷积层的扩位通道值,等等,其中,具体的计算方式可参见“方式一”,在此不作赘述。
103、采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息。
例如,具体可以确定当前需要处理的通道,然后,获取当前卷积层的输入数据在该当前需要处理的通道上的特征值,以及卷积核的权重值,然后,将该特征值和权重值分别进行相乘后进行累加,即可得到该当前需要处理的通道对应的特征信息,然后,返回执行确定当前需要处理的通道步骤(即处理另一条通道),直至所有通道处理完毕,即可得到该当前卷积层的多个通道对应的特征信息。
比如,参见图1c,以通道X,且3×3的卷积核为例,若当前卷积层的输入数据(即输入特征图)在该通道X上的特征值为“d1、d2、d3、d4、d5、d6、d7、d8、d9、……di”,且卷积核的权重值为“w1、w2、w3、w4、w5、w6、w7、w8、w9、……wi”,则经过一次卷积运算后,可得到的运算结果(即图1c中的灰色方格部分)如下:
由于输入特征图上有n个点,所以,需要对n个点都做卷积运算,因此,对于整一张输入特征图而言,在通道X上,最终每一次卷积的运算结果F可记为:
其中,F可以看作输出特征图(即输出数据)在通道X上的特征值,为了描述方便,在本发明实施例中,也称为当前卷积层的通道X对应的特征信息。
类似的,可以对其他的通道进行上述处理,便可得到该当前卷积层的所有通道对应的特征信息。
104、对该多个通道对应的特征信息进行累加,并对累加的通道数进行统计。
由于输入数据(输入特征图)一般包括多个通道,当卷积神经网络对某输入数据图进行处理时,需要对输入数据中对应位置多个通道的值进行卷积运算,若将通道数记为M,则多个通道卷积运算的结果S(即多个通道对应的特征信息进行累加后的结果)可以表示为:
其中,dji当前卷积层的输入数据(即输入特征图)在该第j通道上的特征值,wi为当前卷积层的卷积核的权重值。
105、若累加的通道数达到该扩位通道值的整数倍,则对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;例如,具体看可以如下:
(1)若累加的通道数达到该扩位通道值的整数倍,则调用扩位指令。
其中,该扩位指令可以根据实际应用的需求进行设置,比如,具体可以为带扩位功能的乘加指令,等等。
例如,若扩位通道值为m,则当累加的通道数达到m、2m、以及3m等时,需要调用扩位指令,也就是说,每累加m个通道,则需要调用一次扩位指令,以对当前卷积层在寄存器中的运算位数进行扩展。
(2)根据该扩位指令对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
例如,以该扩位指令为带扩位功能的乘加指令为例,则步骤“根据该扩位指令对当前卷积层在寄存器中的运算位数进行扩展”可以包括:
确定当前卷积层在寄存器中的运算位数、以及允许扩展的目标运算位数,采用该带扩位功能的乘加指令将当前卷积层在寄存器中的运算位数扩展至该目标运算位数。
比如,若当前卷积层在寄存器中的运算位数为16位,而允许扩展的目标运算位数为32位,则此时,可以采用该带扩位功能的乘加指令将当前卷积层在寄存器中的运算位数扩展至32位,以此类推。
106、在该多个通道对应的特征信息累加完毕后,返回执行确定当前卷积层的步骤,直至所有卷积层处理完毕。
例如,以M个通道为例,若已经将M个通道对应的特征信息累加完毕,则表明当前卷积层对其输入数据(即输入特征图)已完成卷积处理,因此,此时可以将该当前卷积层的输出数据(即输出特征图)作为下一个卷积层的输入数据,并将当前卷积层更新为下一个卷积层,并获取该下一个卷积层的扩位通道值(即返回执行步骤102),然后执行步骤103~106的操作,以此类推,直至所有卷积层处理完毕。
由上可知,本实施例在获取到预设卷积神经网络后,可以确定当前卷积层,并获取该当前卷积层的扩位通道值,然后,在利用该当前卷积层对输入数据进行特征提取和特征累加的过程中,对累加的通道数进行统计,在累加的通道数达到该扩位通道值的整数倍时,对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;由于该方案可以根据当前运算环境的实际情况,灵活地确定扩位时机,以对寄存器中的运算位数自动进行扩展,因此,相对于现有只能频繁地进行扩位的方案而言,可以在避免溢出的同时,降低指令的数量,实现性能加速;此外,由于指令数量的下降,所以,量化后卷积运算的复杂度也会降低,进而可以减少计算资源的消耗。
实施例二、
为了更好地实施以上方法,以下将举例作进一步详细说明。在本实施例中,将以该数据处理装置具体集成在网络设备,且从静态代码库中获取中扩位通道值为例进行说明。
(一)扩位通道值的设置。
首先,可以针对某些应用场景,分析将会使用到的权重值和特征值的取值范围,其次,将每一权重值和特征值的取值范围作为一组样本,然后,由网络设备根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数,得到每一组样本对应的扩位通道值。
例如,如图2a所示,以某组样本为例,则该组样本对应的扩位通道值可以采用如下方法计算得到:
A201、网络设备计算预设运算位数能表示的最大数值范围。
比如,若预设运算位数为8位(bit),除去一位符号位(即“+”号或“-”号),则其能表示的最大数值范围为“27-1”;若当前运算位数为16位(bit),除去一位符号位,则其能表示的最大数值范围为“215-1”;若预设运算位数为32位(bit),除去一位符号位(即“+”号或“-”号),则其能表示的最大数值范围为“231-1”以此类推,等等。
A202、网络设备根据该组样本的特征值取值范围确定最大特征值。
例如,若该组样本的特征值取值范围为(-2r~2r),则此时,最大特征值为“2r”。
其中,r的取值范围可以根据实际应用的需求而定,比如,若用于存储该特征值的寄存器位数为16位(其中有一位为符号位),则r的取值范围为(0~15),那么,此时该组样本的最大特征值为“215”。
又比如,若用于存储该特征值的寄存器位数为32位(其中有一位为符号位),则r的取值范围为(0~31),那么,此时该组样本的最大特征值为“231”以此类推,等等。
A203、网络设备对该最大特征值和该组样本的权重值进行卷积运算,得到每一通道的最大值,根据该每一通道的最大值,计算在该最大数值范围内所能容纳的最大通道数。
例如,以16位的运算位数为例,由于其最大数值范围为“215-1”,因此,可以得出以下公式:
其中,n为特征值的数量,djimax为在计算“第j通道的最大值”时所采用的最大特征值,则在第j通道的最大值已知的情况下,可以计算出m值,即在该最大数值范围内所能容纳的最大通道数。
A204、网络设备根据计算得到的最大通道数确定该组样本的扩位通道值。
例如,网络设备可以将计算得到的最大通道数直接作为该组样本对应的扩位通道值。
可选的,为了进一步减少卷积运算过程中的乘加指令数量,也可以对该计算得到的最大通道数进行细粒度调整,并将调整后的最大通道数作为该组样本对应的扩位通道值;比如,可以逐步增大“最大通道数(即m值)”大小,对于相同的输入特征图和卷积核,测试采用不同的m值是否会产生溢出,然后从中筛选出不会产生溢出的最大的m值,比如m’值,即可将该m’值作为该组样本对应的扩位通道值。
依次类推,可以得到多组样本对应的扩位通道值,此后,可以将每一组样本的权重值、特征值取值范围和扩位通道值的对应关系保存至静态代码库中,这样,后续便可以根据不同的权重值和特征值取值范围,来从该静态代码库中调用相应的扩位通道值。
可选的,该静态代码库中还可以保存一通用函数,用于处理非常用的扩位通道值,这样,后续若未能从静态库中直接调用到相应的扩位通道值,并可以采用该通用函数,根据当前卷积层的卷积核的权重值和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到该当前卷积层的扩位通道值,在此不作赘述。
(二)扩位通道值的使用。
如图2b所示,一种数据处理方法,具体流程可以如下:
B201、网络设备获取预设卷积神经网络。
其中,该卷积神经网络的网络结构可以根据实际应用的需求而定,比如,可以包括多层卷积层,此外,还可以包括激活层、池化层、以及全连接层等结构。网络结构中各层的参数,比如卷积层的卷积核大小、卷积核的权重、以及步长的大小等,也可以根据具体的应用场景或需求进行设置。
该卷积神经网络可以通过代码来实现,比如,可以编写一套模板代码,然后,根据各网络结构、以及各层的参数,利用JIT基于该模板代码动态生成不同的卷积核心代码。
具体的,可以预先将预设的多个卷积神经网络的代码存储在代码库,比如静态代码库中,然后,在接收到卷积神经网络的获取请求时,由网络设备根据该获取请求中携带的卷积神经网络标识从代码库中获取相应的代码,即可得到相应的卷积神经网络。
其中,该静态代码库可以存储在该网络设备或其他的设备中。当然,也可以将卷积神经网络的代码以其他的形式存储在本地或其他的设备中,在此不再列举。
B202、网络设备确定当前卷积层,并确定该当前卷积层的卷积核的权重值、以及输入数据的特征值取值范围。
例如,以卷积神经网络包括卷积层1、卷积层2和卷积层3为例,则若当前卷积层为卷积层1,则此时可以获取卷积层1的卷积核的权重值、以及输入数据的特征值取值范围;若当前卷积层为卷积层2,则此时可以获取卷积层2的卷积核的权重值、以及输入数据的特征值取值范围;若当前卷积层为卷积层3,则此时可以获取卷积层3的卷积核的权重值、以及输入数据的特征值取值范围,以此类推,等等。
B203、网络设备从预设静态代码库中,获取与步骤202中获取到的权重值和特征值取值范围对应的扩位通道值,得到该当前卷积层的扩位通道值。
由于静态代码库中保存有各组权重值、特征值取值范围与扩位通道值的对应关系,因此,只要根据权重值和特征值取值范围在该静态代码裤中进行调用,便可以得到该当前卷积层的扩位通道值。
可选的,若未在静态代码库中调用到与步骤202中获取到的权重值和特征值取值范围对应的扩位通道值,则可以从该静态代码库中调用预设的“用于理非常用的扩位通道值”的通用函数,然后,利用该通用函数,根据该权重值和特征值取值范围计算当前运算位数不产生溢出的最大通道数,便可得到该当前卷积层的扩位通道值,具体的计算方法可参见前面的实施例,在此不作赘述。
B204、网络设备采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息。
例如,网络设备可以确定当前需要处理的通道,并获取当前卷积层的输入数据在该当前需要处理的通道上的特征值,以及卷积核的权重值,然后,将该特征值和权重值分别进行相乘后进行累加,便可得到该当前需要处理的通道对应的特征信息,此后,可以返回执行确定当前需要处理的通道步骤(即处理另一条通道),直至所有通道处理完毕,便可得到该当前卷积层的多个通道对应的特征信息。
比如,以包括通道1、通道2和通道3为例,若当前卷积层的输入数据在通道1上的特征值为“d11、d12、d13、d14、d15、d16、d17、d18、d19、……d1i”,在通道2上的特征值为“d21、d22、d23、d24、d25、d26、d27、d28、d29、……d2i”,在通道2上的特征值为“d31、d32、d33、d34、d35、d36、d37、d38、d39、……d3i”且卷积核的权重值为“w1、w2、w3、w4、w5、w6、w7、w8、w9、……wi”,则:
在通道1上,卷积的运算结果F1可记为:
在通道2上,卷积的运算结果F2可记为:
在通道3上,卷积的运算结果F3可记为:
类似的,便可得到该当前卷积层的所有通道对应的特征信息。
B205、网络设备对该多个通道对应的特征信息进行累加,并对累加的通道数进行统计。
由于输入数据一般包括多个通道,当卷积神经网络对某输入数据图进行处理时,需要对输入数据中对应位置多个通道的值进行卷积运算,若将通道数记为M,则多个通道对应的特征信息进行累加后的结果S可以表示为:
其中,dji当前卷积层的输入数据在该第j通道上的特征值,wi为当前卷积层的卷积核的权重值。
B206、若累加的通道数达到该扩位通道值的整数倍,则网络设备调用扩位指令。
其中,该扩位指令可以根据实际应用的需求进行设置,比如,具体可以为带扩位功能的乘加指令,等等。
例如,若扩位通道值为3,则当累加的通道数达到3和6等数量时,需要调用扩位指令,也就是说,每累加3个通道,则需要调用一次扩位指令,以对当前卷积层在寄存器中的运算位数进行扩展。比如,具体的,可以通过计数器对累加的通道数进行统计,并在统计结果显示当前累加的通道数达到3的倍数(比如3、6和9等)时,调用一次扩位指令,以对当前卷积层在寄存器中的运算位数进行扩展;或者,也可以在每次扩位后,将计数器清零,然后再继续通过清零后的计数器对累加的通道数进行统计,当统计结果显示当前累加的通道数为3时,则调用一次扩位指令,以对当前卷积层在寄存器中的运算位数进行扩展,具体实现方式可以根据实际应用的需求而定,在此不作赘述。
可选的,由于总通道数M可能不是m值的整数倍,因此,根据实际需求还可以设置相应的边界条件m”,其中,该m”可以通过以下公式得到:
若当前剩余的通道数不足以被m整除,比如,若总通道数M为7,m为3,且当前的运算位数为16位,则当累加的通道数达到3和6时,均需要调用扩位指令,以对当前卷积层在寄存器中的运算位数进行扩展,譬如,可以如下:
第一次扩位:当累加的通道数达到3时,调用扩位指令,以将运算位数由16位扩展为32位;
第二次扩位:当累加的通道数达到6时,调用扩位指令,以将运算位数由32位扩展为64位。
由于总通道数7不能被扩位通道值3整除,因此,在第二次扩位之后,直到所有通道都累加完毕,并不会进行第三次扩位,所以,此时也可以设置在当前剩余通道数不足以被扩位通道值整除时,破例调用扩位指令以对运算位数进行扩展;当然,也可以设置不进行扩位,具体可根据实际应用的需求而定,在此不作赘述。
B207、网络设备根据该扩位指令对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
例如,以该扩位指令为带扩位功能的乘加指令为例,则此时,网络设备可以确定当前卷积层在寄存器中的运算位数、以及允许扩展的目标运算位数,然后,采用该带扩位功能的乘加指令将当前卷积层在寄存器中的运算位数扩展至该目标运算位数。
比如,若当前卷积层在寄存器中的运算位数为16位,而允许扩展的目标运算位数为32位,则此时,网络设备可以采用该带扩位功能的乘加指令将当前卷积层在寄存器中的运算位数扩展至32位,以此类推。
B208、在当前卷积层多个通道对应的特征信息累加完毕后,网络设备返回执行确定当前卷积层的步骤(步骤B202),直至所有卷积层处理完毕。
例如,网络设备具体可以确定当前卷积层多个通道对应的特征信息是否累加完毕,若累加完毕,则可以确定所有卷积层是否均处理完毕,若所有卷积层均处理完毕,则可以进行该卷积神经网络的其他处理,比如可以利用该卷积神经网络的其他层,如采用池化层进行池化处理,采用全连接层进行全连接处理,等等;若存在有尚未处理的卷积层,则返回执行确定当前卷积层的步骤(步骤B202);否则,若尚未累加完,则继续执行B205~B208,以对其他剩余的通道对应的特征信息进行累加。
比如,若当前的总通道数为M,则此时,可以确定当前是否将M个通道对应的特征信息累加完毕,若尚未累加完毕,则继续对该M个通道对应的特征信息进行累加,并对累加的通道数进行统计,并且,在累加的过程中,每累加m个通道,则扩位一次;否则,若累加完毕,则表明当前卷积层对其输入数据已完成卷积处理,因此,此时可以将该当前卷积层的输出数据作为下一个卷积层的输入数据,并将当前卷积层更新为下一个卷积层,以及获取该下一个卷积层的扩位通道值(即返回执行步骤B202),然后执行步骤B203~B208的操作,以此类推,直至所有卷积层处理完毕。
譬如,以该卷积神经网络的包括卷积层1、卷积层2和卷积层3,且当前的总通道数为7为例,若当前卷积层为卷积层1,则在将卷积层1的7个通道对应的特征信息累加完毕后,可以将卷积层1的输出数据作为卷积层2的输入数据,并将当前卷积层更新为卷积层2,然后获取卷积层2的扩位通道值,然后执行步骤B203~B208的操作,以此类推,在将卷积层2的7个通道对应的特征信息累加完毕后,再将卷积层2的输出数据作为卷积层3的输入数据,并将当前卷积层更新为卷积层3,然后获取卷积层3的扩位通道值,再继续执行步骤B203~B208的操作,直至将卷积层3的7个通道对应的特征信息累加完毕。
可选的,具体实现时,还可以分别基于不同的扩位通道值生成相应的卷积运算代码,并保存在静态代码库中,这样,在使用卷积神经网络时,便可直接从该代码库中调用相应的卷积运算代码进行执行,而无需再单独获取扩位通道值。
另外,具体实现时,还可以利用现场可编程门阵列(FPGA,Field-ProgrammableGate Array)将卷积运算代码映射到FPGA硬件来实现;或者,也可以将这些卷积运算代码映射至(ASIC,Application Specific Integrated Circuit)硬件上来实现,在此不作赘述。
由上可知,本实施例可以针对某些应用场景中常用的权重值和特征值的取值范围,预先在静态代码库中设置对应的扩位通道值,然后,在获取到预设卷积神经网络后,便可以根据当前卷积层的权重值和特征值的取值范围从静态代码库获取相应的扩位通道值,并基于该扩位通道值对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;由于该方案可以根据当前运算环境的实际情况,灵活动态地确定扩位时机,以对寄存器中的运算位数自动进行扩展,因此,相对于现有只能频繁地进行扩位的方案而言,可以在避免溢出的同时,降低指令的数量,实现性能加速;此外,由于指令数量的下降,所以,量化后卷积运算的复杂度也会降低,进而可以减少计算资源的消耗。
此外,由于该本实施例可以直接从静态代码库中直接调用相应的扩位通道值,而无需直接根据当前卷积层的权重值和特征值的取值范围对扩位通道值进行计算,因此,其处理效率也可以得到提高。
实施例三、
为了更好地实施以上方法,本发明实施例还提供一种数据处理装置,该数据处理装置具体可以集成在网络设备,比如服务器或移动终端等设备中。
例如,参见图3a,该数据处理装置可以包括获取单元301、确定单元302、提取单元303、累加单元304和扩展单元305,如下:
(1)获取单元301;
获取单元301,用于获取预设卷积神经网络。
其中,该卷积神经网络的网络结构可以根据实际应用的需求而定,比如,可以包括多层卷积层,此外,还可以包括激活层、池化层、以及全连接层等结构。网络结构中各层的参数,比如卷积层的卷积核大小、卷积核的权重、以及步长的大小,等等,也可以根据具体的应用场景或需求进行设置,在此不再赘述。
该卷积神经网络可以通过代码来实现,比如,可以编写一套模板代码,然后,根据各网络结构、以及各层的参数,利用JIT基于该模板代码动态生成不同的卷积核心代码。
具体的,可以预先将预设的多个卷积神经网络的代码存储在代码库,比如静态代码库中,然后,在获取单元301接收到卷积神经网络的获取请求时,根据该获取请求中携带的卷积神经网络标识从代码库中获取相应的代码,即:
获取单元301,具体可以用于接收卷积神经网络的获取请求,该获取请求中携带的卷积神经网络标识,根据该卷积神经网络标识从代码库中获取相应的代码,得到卷积神经网络。
当然,也可以将卷积神经网络的代码以其他的形式存储在本地或其他的设备中,在此不再列举。
(2)确定单元302;
确定单元302,用于确定当前卷积层,并获取该当前卷积层的输入数据和扩位通道值。
其中,各卷积层的扩位通道值取决于其所属卷积层的卷积核的权重值、以及输入数据的特征值取值范围,例如,该确定单元302可以包括第一确定子单元、输入子单元和第二确定子单元,如下:
该第一确定子单元,用于确定当前卷积层。
该输入子单元,用于获取该当前卷积层的输入数据。
该第二确定子单元,用于确定该当前卷积层的卷积核的权重值、以及输入数据的特征值取值范围,并根据该权重值和特征值取值范围确定该当前卷积层的扩位通道值。
其中,确定该当前卷积层的扩位通道值的方式可以有多种,例如,可以直接根据该权重值和特征值取值范围计算得到,或者,也可以通过查询来得到,即:
A、方式一:
该第二确定子单元,具体可以用于根据该权重值和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到该当前卷积层的扩位通道值。
比如,该第二确定子单元,具体可以用于计算当前运算位数能表示的最大数值范围,以及根据特征值取值范围确定最大特征值,然后,对该最大特征值和权重值进行卷积运算,得到当前卷积层中每一通道的最大值,再然后,根据该每一通道的最大值,计算在该最大数值范围内所能容纳的最大通道数,并根据计算得到的最大通道数确定该当前卷积层的扩位通道值;比如,可以直接将计算得到的最大通道数作为该当前卷积层的扩位通道值,即:
该第二确定子单元,具体可以用于将计算得到的最大通道数作为该当前卷积层的扩位通道值。
可选的,由于该最大通道数是以“每个特征值都是取最大特征值”为基础计算得到的,而在一般情况下,每个特征值不一定都是“最大特征值”,因此,为了进一步减少卷积运算过程中的乘加指令数量,也可以对该计算得到的最大通道数进行细粒度调整,并将调整后的最大通道数作为当前卷积层的扩位通道值,即:
该第二确定子单元,具体可以用于按照预测策略对计算得到的最大通道数进行细粒度调整,得到该当前卷积层的扩位通道值。
其中,该预测策略可以根据实际应用的需求进行设置,比如,可以逐步增大“最大通道数(即m值)”大小,对于相同的输入特征图和卷积核,测试采用不同的m值是否会产生溢出,并从中筛选出不会产生溢出的最大的m值,比如m’值,即可将该m’值作为该当前卷积层的扩位通道值。
B、方式二:
该第二确定子单元,具体可以用于从预设静态代码库中,获取与该权重值和特征值取值范围对应的扩位通道值,得到该当前卷积层的扩位通道值。
例如,具体可以针对某些应用场景,分析将会使用到的权重值和特征值的取值范围,进而计算得到相应的扩位通道值,然后,将该权重值、特征值取值范围和扩位通道值的对应关系保存在静态代码库中,以供后续调用;即如图3b所示,该数据处理装置还可以包括建立单元306,如下:
该建立单元306,可以用于获取多组样本的权重值和特征值取值范围,根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数,得到每一组样本对应的扩位通道值,建立每一组样本的权重值、特征值取值范围和扩位通道值的对应关系,并将该对应关系保存至静态代码库中。
其中,“根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数”与“方式一”类似。比如,可以计算当前运算位数能表示的最大数值范围,以及根据特征值取值范围确定最大特征值,然后,对该最大特征值和权重值进行卷积运算,得到当前样本中每一通道的最大值,再然后,根据该每一通道的最大值,计算在该最大数值范围内所能容纳的最大通道数,并根据计算得到的最大通道数确定该样本的扩位通道值,等等,详见前面实施例,在此不作赘述。
需说明的是,该对应关系可以保存在独立于“卷积神经网络”代码的代码库中,也可以保存在用于保存“卷积神经网络”代码的代码库中。
可选的,该静态代码库中还可以保存一通用函数,用于处理非常用的扩位通道值,比如,第二确定子单元,具体可以用于从预设静态代码库中调用该通用函数,然后采用该通用函数,根据该权重值和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到该当前卷积层的扩位通道值,等等,其中,具体的计算方式可参见“方式一”,在此不作赘述。
(3)提取单元303;
提取单元303,用于采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息。
例如,提取单元303,具体可以用于确定当前需要处理的通道,然后,获取当前卷积层的输入数据在该当前需要处理的通道上的特征值,以及卷积核的权重值,然后,将该特征值和权重值分别进行相乘后进行累加,即可得到该当前需要处理的通道对应的特征信息,然后,返回执行确定当前需要处理的通道操作(即处理另一条通道),直至所有通道处理完毕,即可得到该当前卷积层的多个通道对应的特征信息。
(4)累加单元304;
累加单元304,用于对该多个通道对应的特征信息进行累加,并对累加的通道数进行统计,在该多个通道对应的特征信息累加完毕后,触发确定单元302执行确定当前卷积层的操作,直至所有卷积层处理完毕。
例如,以M个通道为例,若累加单元304已经将M个通道对应的特征信息累加完毕,则表明当前卷积层对其输入数据已完成卷积处理,因此,此时可以将该当前卷积层的输出数据作为下一个卷积层的输入数据,并将当前卷积层更新为下一个卷积层,并获取该下一个卷积层的扩位通道值(即确定单元302执行确定当前卷积层的操作),以此类推,直至所有卷积层处理完毕。
(5)扩展单元305;
扩展单元,用于在累加的通道数达到该扩位通道值的整数倍时,对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
例如,该扩展单元305可以包括调用子单元和扩展子单元,如下:
该调用子单元,可以用于在累加的通道数达到该扩位通道值的整数倍时,调用扩位指令。
其中,该扩位指令可以根据实际应用的需求进行设置,比如,具体可以为带扩位功能的乘加指令,等等。
例如,若扩位通道值为m,则当累加的通道数达到m、2m、以及3m等时,调用子单元需要调用扩位指令,也就是说,每累加m个通道,则调用子单元需要调用一次扩位指令,以触发扩展子单元对当前卷积层在寄存器中的运算位数进行扩展。
该扩展子单元,可以用于根据该扩位指令对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
例如,以该扩位指令为带扩位功能的乘加指令为例,则该扩展子单元,具体可以用于确定当前卷积层在寄存器中的运算位数、以及允许扩展的目标运算位数,采用该带扩位功能的乘加指令将当前卷积层在寄存器中的运算位数扩展至该目标运算位数。
比如,若当前卷积层在寄存器中的运算位数为16位,而允许扩展的目标运算位数为32位,则此时,扩展子单元可以采用该带扩位功能的乘加指令将当前卷积层在寄存器中的运算位数扩展至32位,以此类推。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的数据处理装置在获取到预设卷积神经网络后,可以由确定单元302确定当前卷积层,并获取该当前卷积层的扩位通道值,然后,在提取单元303对输入数据进行特征提取和累加单元304对特征信息进行累加的过程中,由累加单元304对累加的通道数进行统计,在累加的通道数达到该扩位通道值的整数倍时,再由扩展单元305对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;由于该方案可以根据当前运算环境的实际情况,灵活地确定扩位时机,以对寄存器中的运算位数自动进行扩展,因此,相对于现有只能频繁地进行扩位的方案而言,可以在避免溢出的同时,降低指令的数量,实现性能加速;此外,由于指令数量的下降,所以,量化后卷积运算的复杂度也会降低,进而可以减少计算资源的消耗。
实施例四、
本发明实施例还提供一种网络设备,如图4所示,其示出了本发明实施例所涉及的网络设备的结构示意图,具体来讲:
该网络设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
网络设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该网络设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,网络设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,网络设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取预设卷积神经网络,该卷积神经网络包括多层卷积层,确定当前卷积层,并获取该当前卷积层的输入数据和扩位通道值,采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息,对该多个通道对应的特征信息进行累加,并对累加的通道数进行统计,若累加的通道数达到该扩位通道值的整数倍,则对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储,在该多个通道对应的特征信息累加完毕后,返回执行确定当前卷积层的步骤,直至所有卷积层处理完毕。
例如,具体可以确定该当前卷积层的卷积核的权重值、以及输入数据的特征值取值范围,根据该权重值和特征值取值范围确定该当前卷积层的扩位通道值,比如,可以根据该权重值(即当前卷积层的卷积核的权重值)和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到该当前卷积层的扩位通道值;或者,也可以从预设静态代码库中,获取与该权重值和特征值取值范围对应的扩位通道值,得到该当前卷积层的扩位通道值。
例如,具体可以针对某些应用场景,分析将会使用到的权重值和特征值的取值范围,进而计算得到相应的扩位通道值,然后,将该权重值、特征值取值范围和扩位通道值的对应关系保存在静态代码库中,以供后续调用;即处理器401还可以运行存储在存储器402中的应用程序,从而实现以下功能:
获取多组样本的权重值和特征值取值范围,根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数,得到每一组样本对应的扩位通道值,建立每一组样本的权重值、特征值取值范围和扩位通道值的对应关系,并将该对应关系保存至静态代码库中。
可选的,该静态代码库中还可以保存一通用函数,用于处理非常用的扩位通道值,具体可参见前面的实施例,在此不作赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的网络设备在获取到预设卷积神经网络后,可以确定当前卷积层,并获取该当前卷积层的扩位通道值,然后,在利用该当前卷积层对输入数据进行特征提取和特征累加的过程中,对累加的通道数进行统计,在累加的通道数达到该扩位通道值的整数倍时,对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;由于该方案可以根据当前运算环境的实际情况,灵活地确定扩位时机,以对寄存器中的运算位数自动进行扩展,因此,相对于现有只能频繁地进行扩位的方案而言,可以在避免溢出的同时,降低指令的数量,实现性能加速;此外,由于指令数量的下降,所以,量化后卷积运算的复杂度也会降低,进而可以减少计算资源的消耗。
实施例五、
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种数据处理方法的转移方法中的步骤。例如,该指令可以执行如下步骤:
获取预设卷积神经网络,该卷积神经网络包括多层卷积层,确定当前卷积层,并获取该当前卷积层的输入数据和扩位通道值,采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息,对该多个通道对应的特征信息进行累加,并对累加的通道数进行统计,若累加的通道数达到该扩位通道值的整数倍,则对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储,在该多个通道对应的特征信息累加完毕后,返回执行确定当前卷积层的步骤,直至所有卷积层处理完毕。
例如,具体可以确定该当前卷积层的卷积核的权重值、以及输入数据的特征值取值范围,根据该权重值和特征值取值范围确定该当前卷积层的扩位通道值,比如,可以根据该权重值(即当前卷积层的卷积核的权重值)和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到该当前卷积层的扩位通道值;或者,也可以从预设静态代码库中,获取与该权重值和特征值取值范围对应的扩位通道值,得到该当前卷积层的扩位通道值。
例如,具体可以针对某些应用场景,分析将会使用到的权重值和特征值的取值范围,进而计算得到相应的扩位通道值,然后,将该权重值、特征值取值范围和扩位通道值的对应关系保存在静态代码库中,以供后续调用;即该指令还可以执行如下步骤:
获取多组样本的权重值和特征值取值范围,根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数,得到每一组样本对应的扩位通道值,建立每一组样本的权重值、特征值取值范围和扩位通道值的对应关系,并将该对应关系保存至静态代码库中。
可选的,该静态代码库中还可以保存一通用函数,用于处理非常用的扩位通道值,具体可参见前面的实施例,在此不作赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种数据处理方法中的步骤,因此,可以实现本发明实施例所提供的任一种数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种数据处理方法、装置和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种数据处理方法,其特征在于,包括:
获取预设卷积神经网络,所述卷积神经网络包括多层卷积层;
确定当前卷积层,并获取所述当前卷积层的输入数据和扩位通道值;
采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息;
对所述多个通道对应的特征信息进行累加,并对累加的通道数进行统计;
若累加的通道数达到所述扩位通道值的整数倍,则对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储;
在所述多个通道对应的特征信息累加完毕后,返回执行确定当前卷积层的步骤,直至所有卷积层处理完毕。
2.根据权利要求1所述的方法,其特征在于,所述若累加的通道数达到所述扩位通道值的整数倍,则对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储,包括:
若累加的通道数达到所述扩位通道值的整数倍,则调用扩位指令;
根据所述扩位指令对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
3.根据权利要求2所述的方法,其特征在于,所述扩位指令为带扩位功能的乘加指令,所述根据所述扩位指令对当前卷积层在寄存器中的运算位数进行扩展,包括:
确定当前卷积层在寄存器中的运算位数、以及允许扩展的目标运算位数;
采用所述带扩位功能的乘加指令将当前卷积层在寄存器中的运算位数扩展至所述目标运算位数。
4.根据权利要求1至3任一项所述的方法,其特征在于,获取所述当前卷积层的扩位通道值,包括:
确定所述当前卷积层的卷积核的权重值、以及输入数据的特征值取值范围;
根据所述权重值和特征值取值范围确定所述当前卷积层的扩位通道值。
5.根据权利要求4所述的方法,其特征在于,根据所述权重值和特征值取值范围确定所述当前卷积层的扩位通道值,包括:
根据所述权重值和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到所述当前卷积层的扩位通道值;或者,
从预设静态代码库中,获取与所述权重值和特征值取值范围对应的扩位通道值,得到所述当前卷积层的扩位通道值。
6.根据权利要求5所述的方法,其特征在于,所述从预设静态代码库中,获取与所述权重值和特征值取值范围对应的扩位通道值,得到所述当前卷积层的扩位通道值之前,还包括:
获取多组样本的权重值和特征值取值范围;
根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数,得到每一组样本对应的扩位通道值;
建立每一组样本的权重值、特征值取值范围和扩位通道值的对应关系,并将所述对应关系保存至静态代码库中。
7.根据权利要求5所述的方法,其特征在于,所述根据所述权重值和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到所述当前卷积层的扩位通道值,包括:
计算当前运算位数能表示的最大数值范围;
根据特征值取值范围确定最大特征值;
对所述最大特征值和权重值进行卷积运算,得到当前卷积层中每一通道的最大值;
根据所述每一通道的最大值,计算在所述最大数值范围内所能容纳的最大通道数;
根据计算得到的最大通道数确定所述当前卷积层的扩位通道值。
8.根据权利要求7所述的方法,其特征在于,所述根据计算得到的最大通道数确定所述当前卷积层的扩位通道值,包括:
将计算得到的最大通道数作为所述当前卷积层的扩位通道值;或者,
按照预测策略对计算得到的最大通道数进行细粒度调整,得到所述当前卷积层的扩位通道值。
9.一种数据处理装置,其特征在于,包括:
获取单元,用于获取预设卷积神经网络,所述卷积神经网络包括多层卷积层;
确定单元,用于确定当前卷积层,并获取所述当前卷积层的输入数据和扩位通道值;
提取单元,用于采用当前卷积层对输入数据进行特征提取,得到多个通道对应的特征信息;
累加单元,用于对所述多个通道对应的特征信息进行累加,并对累加的通道数进行统计,在所述多个通道对应的特征信息累加完毕后,触发确定单元执行确定当前卷积层的操作,直至所有卷积层处理完毕;
扩展单元,用于在累加的通道数达到所述扩位通道值的整数倍时,对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
10.根据权利要求9所述的装置,其特征在于,所述扩展单元包括调用子单元和扩展子单元;
所述调用子单元,用于在累加的通道数达到所述扩位通道值的整数倍时,调用扩位指令;
所述扩展子单元,用于根据所述扩位指令对当前卷积层在寄存器中的运算位数进行扩展,以对累加过程产生的数据进行存储。
11.根据权利要求9或10所述的装置,其特征在于,所述确定单元包括第一确定子单元、输入子单元和第二确定子单元;
所述第一确定子单元,用于确定当前卷积层;
所述输入子单元,用于获取所述当前卷积层的输入数据;
所述第二确定子单元,用于确定所述当前卷积层的卷积核的权重值、以及输入数据的特征值取值范围,并根据所述权重值和特征值取值范围确定所述当前卷积层的扩位通道值。
12.根据权利要求11所述的装置,其特征在于,
所述第二确定子单元,具体用于根据所述权重值和特征值取值范围计算当前运算位数不产生溢出的最大通道数,得到所述当前卷积层的扩位通道值;或者,
所述第二确定子单元,具体用于从预设静态代码库中,获取与所述权重值和特征值取值范围对应的扩位通道值,得到所述当前卷积层的扩位通道值。
13.根据权利要求12所述的装置,其特征在于,还包括建立单元;
所述建立单元,用于获取多组样本的权重值和特征值取值范围,根据每一组样本的权重值和特征值取值范围计算预设运算位数不产生溢出的最大通道数,得到每一组样本对应的扩位通道值,建立每一组样本的权重值、特征值取值范围和扩位通道值的对应关系,并将所述对应关系保存至静态代码库中。
14.根据权利要求12所述的装置,其特征在于,
所述第二确定子单元,具体用于计算当前运算位数能表示的最大数值范围,根据特征值取值范围确定最大特征值,对所述最大特征值和权重值进行卷积运算,得到当前卷积层中每一通道的最大值,根据所述每一通道的最大值,计算在所述最大数值范围内所能容纳的最大通道数,根据计算得到的最大通道数确定所述当前卷积层的扩位通道值。
15.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8任一项所述的数据处理方法中的步骤。
CN201811313447.9A 2018-11-06 2018-11-06 一种数据处理方法、装置和存储介质 Active CN109542512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811313447.9A CN109542512B (zh) 2018-11-06 2018-11-06 一种数据处理方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811313447.9A CN109542512B (zh) 2018-11-06 2018-11-06 一种数据处理方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN109542512A true CN109542512A (zh) 2019-03-29
CN109542512B CN109542512B (zh) 2020-09-04

Family

ID=65844419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811313447.9A Active CN109542512B (zh) 2018-11-06 2018-11-06 一种数据处理方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN109542512B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502278A (zh) * 2019-07-24 2019-11-26 福州瑞芯微电子股份有限公司 基于RiscV扩展指令的神经网络协处理器及其协处理方法
CN111310115A (zh) * 2020-01-22 2020-06-19 深圳市商汤科技有限公司 数据处理方法、装置及芯片、电子设备、存储介质
CN111767204A (zh) * 2019-04-02 2020-10-13 杭州海康威视数字技术股份有限公司 溢出风险检测方法、装置及设备
CN111767980A (zh) * 2019-04-02 2020-10-13 杭州海康威视数字技术股份有限公司 模型优化方法、装置及设备
CN112215745A (zh) * 2020-09-30 2021-01-12 深圳云天励飞技术股份有限公司 图像处理方法、装置及电子设备
CN112766474A (zh) * 2019-11-04 2021-05-07 北京地平线机器人技术研发有限公司 用于实现卷积运算的方法、装置、介质以及电子设备
CN112817735A (zh) * 2021-03-08 2021-05-18 上海壁仞智能科技有限公司 计算装置、计算设备以及用于线程组累加的方法
WO2021174691A1 (zh) * 2020-03-03 2021-09-10 平安科技(深圳)有限公司 数据处理的优化方法及装置、存储介质、计算机设备
CN113673664A (zh) * 2020-05-14 2021-11-19 杭州海康威视数字技术股份有限公司 数据溢出检测方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320495A (zh) * 2014-07-22 2016-02-10 英特尔公司 用于卷积神经网络的权重移位机制
CN105760933A (zh) * 2016-02-18 2016-07-13 清华大学 卷积神经网络的逐层变精度定点化方法及装置
CN106909970A (zh) * 2017-01-12 2017-06-30 南京大学 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块
CN108009393A (zh) * 2017-10-31 2018-05-08 深圳市易成自动驾驶技术有限公司 数据处理方法、装置及计算机可读存储介质
CN108038860A (zh) * 2017-11-30 2018-05-15 杭州电子科技大学 基于3d全卷积神经网络的脊柱分割方法
US20180157966A1 (en) * 2016-12-01 2018-06-07 Via Alliance Semiconductor Co., Ltd. Neural network unit that performs efficient 3-dimensional convolutions
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
US20180285715A1 (en) * 2017-03-28 2018-10-04 Samsung Electronics Co., Ltd. Convolutional neural network (cnn) processing method and apparatus
AU2018101313A4 (en) * 2018-09-07 2018-10-11 Gao, Jiafan Mr Image recognition of dangerous tools based on deep learning

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320495A (zh) * 2014-07-22 2016-02-10 英特尔公司 用于卷积神经网络的权重移位机制
CN105760933A (zh) * 2016-02-18 2016-07-13 清华大学 卷积神经网络的逐层变精度定点化方法及装置
US20180157966A1 (en) * 2016-12-01 2018-06-07 Via Alliance Semiconductor Co., Ltd. Neural network unit that performs efficient 3-dimensional convolutions
CN106909970A (zh) * 2017-01-12 2017-06-30 南京大学 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块
US20180285715A1 (en) * 2017-03-28 2018-10-04 Samsung Electronics Co., Ltd. Convolutional neural network (cnn) processing method and apparatus
CN108009393A (zh) * 2017-10-31 2018-05-08 深圳市易成自动驾驶技术有限公司 数据处理方法、装置及计算机可读存储介质
CN108038860A (zh) * 2017-11-30 2018-05-15 杭州电子科技大学 基于3d全卷积神经网络的脊柱分割方法
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
AU2018101313A4 (en) * 2018-09-07 2018-10-11 Gao, Jiafan Mr Image recognition of dangerous tools based on deep learning

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767980B (zh) * 2019-04-02 2024-03-05 杭州海康威视数字技术股份有限公司 模型优化方法、装置及设备
CN111767204A (zh) * 2019-04-02 2020-10-13 杭州海康威视数字技术股份有限公司 溢出风险检测方法、装置及设备
CN111767980A (zh) * 2019-04-02 2020-10-13 杭州海康威视数字技术股份有限公司 模型优化方法、装置及设备
CN111767204B (zh) * 2019-04-02 2024-05-28 杭州海康威视数字技术股份有限公司 溢出风险检测方法、装置及设备
CN110502278B (zh) * 2019-07-24 2021-07-16 瑞芯微电子股份有限公司 基于RiscV扩展指令的神经网络协处理器及其协处理方法
CN110502278A (zh) * 2019-07-24 2019-11-26 福州瑞芯微电子股份有限公司 基于RiscV扩展指令的神经网络协处理器及其协处理方法
CN112766474A (zh) * 2019-11-04 2021-05-07 北京地平线机器人技术研发有限公司 用于实现卷积运算的方法、装置、介质以及电子设备
CN112766474B (zh) * 2019-11-04 2024-03-22 北京地平线机器人技术研发有限公司 用于实现卷积运算的方法、装置、介质以及电子设备
CN111310115A (zh) * 2020-01-22 2020-06-19 深圳市商汤科技有限公司 数据处理方法、装置及芯片、电子设备、存储介质
CN111310115B (zh) * 2020-01-22 2024-05-24 深圳市商汤科技有限公司 数据处理方法、装置及芯片、电子设备、存储介质
WO2021174691A1 (zh) * 2020-03-03 2021-09-10 平安科技(深圳)有限公司 数据处理的优化方法及装置、存储介质、计算机设备
CN113673664A (zh) * 2020-05-14 2021-11-19 杭州海康威视数字技术股份有限公司 数据溢出检测方法、装置、设备及存储介质
CN113673664B (zh) * 2020-05-14 2023-09-12 杭州海康威视数字技术股份有限公司 数据溢出检测方法、装置、设备及存储介质
CN112215745A (zh) * 2020-09-30 2021-01-12 深圳云天励飞技术股份有限公司 图像处理方法、装置及电子设备
CN112817735A (zh) * 2021-03-08 2021-05-18 上海壁仞智能科技有限公司 计算装置、计算设备以及用于线程组累加的方法

Also Published As

Publication number Publication date
CN109542512B (zh) 2020-09-04

Similar Documents

Publication Publication Date Title
CN109542512A (zh) 一种数据处理方法、装置和存储介质
Bahreini et al. Efficient placement of multi-component applications in edge computing systems
Rahman et al. Adaptive workflow scheduling for dynamic grid and cloud computing environment
CN102929783B (zh) 一种数据存储的方法、装置和***
CN106133696A (zh) 缩放云资源时动态标识目标容量
CN106339181B (zh) 存储***中数据处理方法和装置
CN108304265A (zh) 内存管理方法、装置及存储介质
WO2016123808A1 (zh) 数据处理***、计算节点和数据处理的方法
CN104503831B (zh) 设备优化方法及装置
CN107026877A (zh) 云平台中管理资源的方法和装置
CN106649482A (zh) 一种信息推送方法及装置
CN108121511A (zh) 一种分布式边缘存储***中的数据处理方法、装置及设备
CN109548031A (zh) 一种非平衡边缘云网络接入与资源分配机制
CN108540568A (zh) 计算能力共享方法及智能设备
CN103699534B (zh) ***目录中数据对象的显示方法及装置
CN107590144A (zh) 一种文件存储方法和终端
CN105786399B (zh) 一种数据转存方法、装置及***
Yin et al. Joint scheduling of data and computation in geo-distributed cloud systems
CN106227597A (zh) 任务优先级处理方法和装置
CN107391564A (zh) 数据转换方法、装置以及电子设备
CN107102799A (zh) 一种调整灭屏时间的方法及其智能终端
CN105049475B (zh) 大规模社区的数据高效存储优化方法及***
CN116955271A (zh) 一种数据副本存储的方法、装置、电子设备及存储介质
Li et al. A study on flat and hierarchical system deployment for edge computing
US10264061B2 (en) User service access allocation method and system

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