CN111598227B - 数据处理方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据处理方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN111598227B
CN111598227B CN202010432336.0A CN202010432336A CN111598227B CN 111598227 B CN111598227 B CN 111598227B CN 202010432336 A CN202010432336 A CN 202010432336A CN 111598227 B CN111598227 B CN 111598227B
Authority
CN
China
Prior art keywords
bit number
quantization bit
weight
input
matrix
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
Application number
CN202010432336.0A
Other languages
English (en)
Other versions
CN111598227A (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.)
ByteDance Inc
Original Assignee
ByteDance Inc
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 ByteDance Inc filed Critical ByteDance Inc
Priority to CN202010432336.0A priority Critical patent/CN111598227B/zh
Publication of CN111598227A publication Critical patent/CN111598227A/zh
Application granted granted Critical
Publication of CN111598227B publication Critical patent/CN111598227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开提供了一种数据处理方法、装置、电子设备及计算机可读存储介质,涉及数据处理领域。该方法包括:将待检测数据输入训练后的计算模型;训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数;确定出每层神经网络中第一输入量化比特数对应的量化输入矩阵,以及,确定出第一权值量化比特数对应的量化权值矩阵;基于量化输入矩阵和量化权值矩阵对待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为待检测数据的目标标注值。本公开大幅提高了计算速度、减少了内存占用、时间和功耗。

Description

数据处理方法、装置、电子设备及计算机可读存储介质
技术领域
本公开涉及数据处理技术领域,具体而言,本公开涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。
背景技术
IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师协会)浮点算术标准是用来衡量计算机上以二进制所表示数字精度的通用约定。
全精度计算意味着在计算时能够以不同精度进行计算。比如,在需要使用高精度进行计算的部分使用双精度,而在不需要使用高精度进行计算的部分使用半精度或单精度进行计算。
混合精度计算则是在单个操作中使用不同的精度级别,从而在不牺牲精度的情况下保证计算效率。
混合精度量化是一种对每层/通道中具有不同位宽的神经网络进行量化,以在加快网络推理速度的同时仍然保持网络准确性的技术。现有的混合精度算法主要以基于增强学习的方法和基于采样的方法为主。
基于增强学习的方法每次训练一组位宽的模型并评估其性能,然后更新策略网络以在下一回合中选择更好的候选模型,因此需要训练不同的模型;而基于采样的方法在位宽搜索中共享所有模型权重,因此不需要训练不同的模型。但是他们采样的方法都需要对大量的候选模型进行采样,并在位宽搜索之后选择最好的候选模型,需要花费大量的时间,导致模型的计算速度较慢,而且,对大量的候选模型进行采样也会导致内存占用过多,功耗较高。
发明内容
提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开提供了一种数据处理方法、装置、电子设备及计算机可读存储介质,可以解决模型的计算速度较慢,内存占用过多,功耗较高的问题。所述技术方案如下:
第一方面,提供了一种数据处理方法,该方法包括:
将待检测数据输入训练后的计算模型;所述训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;所述第一输入量化比特数和所述第一权值量化比特数为浮点数;
确定出每层神经网络中所述第一输入量化比特数对应的量化输入矩阵,以及,确定出所述第一权值量化比特数对应的量化权值矩阵;
基于所述量化输入矩阵和所述量化权值矩阵对所述待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为所述待检测数据的目标标注值。
第二方面,提供了一种数据处理装置,该装置包括:
第一处理模块,用于将待检测数据输入训练后的计算模型;所述训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;所述第一输入量化比特数和所述第一权值量化比特数为浮点数;
第二处理模块,用于确定出每层神经网络中所述第一输入量化比特数对应的量化输入矩阵,以及,确定出所述第一权值量化比特数对应的量化权值矩阵;
第三处理模块,用于基于所述量化输入矩阵和所述量化权值矩阵对所述待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为所述待检测数据的目标标注值。
第三方面,提供了一种电子设备,该电子设备包括:
处理器、存储器和总线;
所述总线,用于连接所述处理器和所述存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,可执行指令使处理器执行如本公开的第一方面所示的数据处理方法对应的操作。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所示的数据处理方法。
本公开提供的技术方案带来的有益效果是:
在本公开实施例中,将待检测数据输入训练后的计算模型;所述训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;所述第一输入量化比特数和所述第一权值量化比特数为浮点数;确定出每层神经网络中所述第一输入量化比特数对应的量化输入矩阵,以及,确定出所述第一权值量化比特数对应的量化权值矩阵;基于所述量化输入矩阵和所述量化权值矩阵对所述待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为所述待检测数据的目标标注值。通过上述方法,可以针对浮点量化比特数的待检测数据进行计算,从而将量化比特数视为连续的值,使得相邻量化比特数之间产生平滑过渡,便于在每层神经网络的精度维度上进行可微搜索,不仅在计算的过程中大幅提高了计算速度、减少了运行所需的内存、时间和功耗,而且,在结束计算时,得到的结果不仅在准确度上可与使用双精度算法运算得到的结果相媲美。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开一个实施例提供的一种数据处理方法的流程示意图;
图2为本公开又一实施例提供的一种数据处理装置的结构示意图;
图3为本公开又一实施例提供的一种数据处理的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元一定为不同的装置、模块或单元,也并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
本公开提供的数据处理方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
在一个实施例中提供了一种数据处理方法,如图1所示,该方法包括:
步骤S101,将待检测数据输入训练后的计算模型;训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数;
具体而言,本公开实施例可以应用于推理计算的应用场景中,待检测数据可以是需要进行推理计算的数据,比如,科学模拟(比如地震模拟、天气模拟)、AI(ArtificialIntelligence,人工智能)、自然语言处理等等。
进一步,训练后的计算模型可以是混合精度模型。其中,精度可以理解为数字的位数。
在本公开实施例中,训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数、输入矩阵以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数。
因为量化比特数是一个可以优化的数值,所以量化比特数并不是整数,上述的整数比特量化的计算方法也就不适用。因此,本公开实施例设计了一个基于线性插值的前向传播算法,即,使用浮点数的量化比特数,输入矩阵对应的第一输入量化比特数记为\lambda_a,权值矩阵对应的第一权值量化比特数记为\lambda_w,\lambda_a和\lambda_w都是浮点数。
需要说明的是,在本公开实施例中,由于训练后的计算模型可以包括多层神经网络,那么每一层神经网络都有对应的第一输入量化比特数、第一权值量化比特数、输入矩阵以及权值矩阵。
步骤S102,确定出每层神经网络中第一输入量化比特数对应的量化输入矩阵,以及,确定出第一权值量化比特数对应的量化权值矩阵;
训练后的计算模型中,\lambda_a和\lambda_w是已经确定的,所以,可以对输入矩阵a做\lambda_a比特的量化操作得到量化输入矩阵,以及,对权值矩阵w做\lambda_w比特的量化操作得到量化权值矩阵。
步骤S103,基于量化输入矩阵和量化权值矩阵对待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为待检测数据的目标标注值。
在计算得到量化输入矩阵和量化权值矩阵后,将量化输入矩阵和量化输出矩阵进行卷积操作即可得到输出矩阵,比如,将a3.3和w4.7进行卷积操作得到输出矩阵;然后将输出矩阵作为待检测数据的目标标注值,也就是推理计算得到的结果。当然,训练后的计算模型包括多层神经网络,那么每层神经网络都会计算得到一个输出矩阵,将各个输出矩阵作为待检测数据的目标标注值即可。
在本公开实施例中,将待检测数据输入训练后的计算模型;训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数;确定出每层神经网络中第一输入量化比特数对应的量化输入矩阵,以及,确定出第一权值量化比特数对应的量化权值矩阵;基于量化输入矩阵和量化权值矩阵对待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为待检测数据的目标标注值。通过上述方法,可以针对浮点量化比特数的待检测数据进行计算,从而将量化比特数视为连续的值,使得相邻量化比特数之间产生平滑过渡,便于在每层神经网络的精度维度上进行可微搜索,不仅在计算的过程中大幅提高了计算速度、减少了运行所需的内存、时间和功耗,而且,在结束计算时,得到的结果不仅在准确度上可与使用双精度算法运算得到的结果相媲美。
在另一个实施例中继续对如图1所示的一种数据处理方法进行详细说明。
步骤S101,将待检测数据输入训练后的计算模型;训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数;
具体而言,本公开实施例可以应用于推理计算的应用场景中,待检测数据可以是需要进行推理计算的数据,比如,科学模拟(比如地震模拟、天气模拟)、AI、自然语言处理等等。
进一步,训练后的计算模型可以是混合精度模型。其中,精度可以理解为数字的位数。
比如,圆周率π有很多种表达方式,既可以用数学常数3.14159表示,也可以用一长串1和0的二进制长串表示。圆周率π是个无理数,既小数位无限且不循环。因此,在使用圆周率进行计算时,人和计算机都必须根据精度需要将小数点后的数字四舍五入。在小学的时候,小学生们可能只会用手算的方式计算数学题目,圆周率的数值也只能计算到小数点后两位-3.14;而高中生使用图形计算器可能会使圆周率数值排到小数点后10位,更加精确地表示圆周率。在计算机科学中,这被称为精度,它通常以二进制数字来衡量,而非小数。数字位数越高,或是小数点后位数越多,意味着可以在更大范围内的数值内体现两个数值的变化。
IEEE浮点算术标准是用来衡量计算机上以二进制所表示数字精度的通用约定。在双精度格式中,每个数字占用64位,单精度格式占用32位,而半精度仅16位。
以圆周率举例。在传统科学记数法中,圆周率表示为3.14×100。但是计算机将这些信息以二进制形式存储为浮点,即一系列的1和0,它们代表一个数字及其对应的指数,在这种情况下圆周率则表示为1.1001001×21。
在单精度32位格式中,1位为符号位,用于指示数字为正数还是负数。指数保留了8位,这是因为它为二进制,将2进到高位。其余23位用于表示组成该数字的数字,称为有效数字。单精度下的圆周率表示为:0(符号)10000000(指数)10010010000111111011011(有效数字)。
而在双精度下,1位为符号位,指数保留11位,有效位数为52位,从而极大地扩展了它可以表示的数字范围和大小。双精度下的圆周率表示为:0(符号)10000000000(指数)1001001000011111101101010100010001000010110100011000(有效数字)。
半精度则是表示范围更小,1位为符号位,其指数只有5位,有效位数只有10位。半精度下的圆周率表示为:0(符号)10000(指数)100100100(有效数字)。
全精度计算意味着在计算时能够以不同精度进行计算。比如,在需要使用高精度进行计算的部分使用双精度,而在不需要使用高精度进行计算的部分使用半精度或单精度进行计算。
混合精度计算则是在单个操作中使用不同的精度级别,从而在不牺牲精度的情况下保证计算效率。使用这种方法,在结束计算时,得到的结果不仅在准确度上可与使用双精度算法运算得到的结果相媲美,同时在计算的过程中大幅提高了计算速度(提高了数倍甚至数十倍速)、减少了运行所需的内存、时间和功耗。
应用于本公开实施例中,训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数、输入矩阵以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数。
为方便描述,本公开实施例以训练后的计算模型为一层神经网络为例举例说明。
假设有一个一层的神经网络,该神经网络设置有一个输入矩阵a,一个权值矩阵w,一个输出矩阵o。在没有对输入矩阵和权值矩阵进行量化的情形下,输入矩阵和权值矩阵做卷积操作得到输出矩阵。
现有技术中,在有整数比特量化的情形下,比如输入矩阵的量化比特数是b_a,权值矩阵的量化比特数是b_w,b_a和b_w都是整数,输入矩阵a会做b_a比特的量化操作得到新矩阵aq,权值矩阵w做b_w比特的量化操作得到新矩阵wq,aq和wq做卷积操作得到输出矩阵o。
在本公开实施例中,因为量化比特数是一个可以优化的数值,所以量化比特数并不是整数,上述的整数比特量化的计算方法也就不适用。因此,本公开实施例设计了一个基于线性插值的前向传播算法,即,使用浮点数的量化比特数,输入矩阵对应的第一输入量化比特数记为\lambda_a,权值矩阵对应的第一权值量化比特数记为\lambda_w,\lambda_a和\lambda_w都是浮点数,比如,\lambda_a=3.3,\lambda_w=4.7。
需要说明的是,在本公开实施例中,由于训练后的计算模型可以包括多层神经网络,那么每一层神经网络都有对应的第一输入量化比特数、第一权值量化比特数、输入矩阵以及权值矩阵。
步骤S102,确定出每层神经网络中第一输入量化比特数对应的量化输入矩阵,以及,确定出第一权值量化比特数对应的量化权值矩阵;
训练后的计算模型中,\lambda_a和\lambda_w是已经确定的,所以,可以对输入矩阵a做\lambda_a比特的量化操作得到量化输入矩阵,以及,对权值矩阵w做\lambda_w比特的量化操作得到量化权值矩阵。
具体地,假设\lambda_a=3.3,先确定出\lambda_a相邻的两个整数比特数,即3和4,然后对输入矩阵a进行比特数为3和4的量化操作得到两个矩阵a3和a4,再采用公式(1)对a3和a4进行线性插值得到一个新的输入矩阵a3.3=a3+(3.3-3)*(a4-a3);以及,假设\lambda_w=4.7,先确定出\lambda_w相邻的两个整数比特数,即4和5,然后对权值矩阵w进行比特数为4和5的量化操作得到两个矩阵w4和w5,再采用公式(1)对w4和w5进行线性插值得到一个新的权值矩阵w4.7=w4+(4.7-4)*(w5-w4)。其中,公式(1)如下:
其中,λ为需要线性插值的量化比特数(如上述的3.3和4.7),fλ(x)为λ对应的量化矩阵(如上述的a3.3和w4.7),为与λ相邻,且小于λ的整数量化比特数,/>为/>对应的量化矩阵(如上述的a3、和w4),/>为与λ相邻,且大于λ的整数量化比特数,/>为/>对应的量化矩阵(如上述的a4和w5);其中,初始量化比特数为浮点数。
步骤S103,基于量化输入矩阵和量化权值矩阵对待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为待检测数据的目标标注值。
在计算得到量化输入矩阵和量化权值矩阵后,将量化输入矩阵和量化输出矩阵进行卷积操作即可得到输出矩阵,比如,将a3.3和w4.7进行卷积操作得到输出矩阵;然后将输出矩阵作为待检测数据的目标标注值,也就是推理计算得到的结果。当然,训练后的计算模型包括多层神经网络,那么每层神经网络都会计算得到一个输出矩阵,将各个输出矩阵作为待检测数据的目标标注值即可。
在本公开一种优选实施例中,训练后的计算模型通过如下方式生成:
将预设的样本数据集输入预设的计算模型;计算模型包括多层神经网络,每层神经网络设置有初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵;初始输入量化比特数和初始权值量化比特数为浮点数;
确定出每层神经网络中初始输入量化比特数对应的量化输入矩阵,以及,确定出初始权值量化比特数对应的量化权值矩阵;
基于量化输入矩阵和量化权值矩阵对样本数据进行计算得到损失函数;
基于损失函数对每层神经网络中初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵进行迭代更新,直至样本数据集中每个样本数据均被计算完成,得到更新后的第二输入量化比特数、第二权值量化比特数,以及第二权值矩阵;第二输入量化比特数和第二权值量化比特数为浮点数;
将第二输入量化比特数、第二权值量化比特数进行取整,得到目标输入量化比特数和目标权值量化比特数;
基于目标输入量化比特数和目标权值量化比特数对对应层的神经网络中第二权值矩阵进行迭代更新,直至样本数据集中每个样本数据均被计算完成,得到每层神经网络对应的各个目标权值矩阵,以及包含各个目标权值矩阵的训练后的计算模型。
具体而言,预设的样本数据集包括至少一条样本数据,每条样本数据都具有原始标注值,然后将样本数据集输入预设的计算模型,其中,预设的计算模型可以是全精度模型,包括多层神经网络,每层神经网络设置有初始输入量化比特数、初始权值量化比特数、初始输入矩阵以及初始权值矩阵,初始输入量化比特数和初始权值量化比特数为浮点数。
在实际应用中,全精度模型具有预先设置好的初始输入量化比特数、初始权值量化比特数,以及资源约束;其中,资源约束为模型的计算量的大小和内存占用大小。也就是说,全精度模型初始化成功时,每层神经网络都具有对应的初始输入量化比特数和初始权值量化比特数,以及全精度模型在计算时的计算量大小和内存占用大小。
然后确定出每层神经网络中初始输入量化比特数对应的量化输入矩阵,以及,确定出初始权值量化比特数对应的量化权值矩阵,其中,确定出初始输入量化比特数对应的量化输入矩阵,以及,确定出初始权值量化比特数对应的量化权值矩阵,包括:
基于初始输入量化比特数相邻的第三输入量化比特数,采用预设算法确定出初始输入量化比特数对应的量化输入矩阵,以及,基于初始权值量化比特数相邻的第三权值量化比特数,采用预设算法确定出初始权值量化比特数对应的量化权值矩阵。
具体地,先确定出初始输入量化比特数相邻的两个整数比特数(即第三输入量化比特数),然后对输入矩阵进行相邻的两个整数比特数的量化操作得到两个量化输入矩阵,再采用预设的算法(即公式(1))对两个矩阵进行线性插值得到一个新的输入矩阵;以及,先确定出初始权值量化比特数相邻的两个整数比特数(即第三权值量化比特数),然后对权值矩阵进行相邻的两个整数比特数的量化操作得到两个量化权值矩阵,再采用预设的算法(即公式(1))对两个量化权值矩阵进行线性插值得到一个新的权值矩阵。
在本公开一种优选实施例中,预设算法为: 其中,λ为初始量化比特数,fλ(x)为初始量化比特数对应的量化矩阵,/>为与λ相邻,且小于λ的第三量化比特数,/>为/>对应的量化矩阵,/>为与λ相邻,且大于λ的第三量化比特数,/>为/>对应的量化矩阵;其中,初始量化比特数为浮点数,第三量化比特数为正整数。
比如,假设\lambda_a=3.3,先确定出\lambda_a相邻的两个整数比特数,即3和4,然后对输入矩阵a进行比特数为3和4的量化操作得到两个矩阵a3和a4,再采用公式(1)对a3和a4进行线性插值得到一个新的输入矩阵a3.3=a3+(3.3-3)*(a4-a3);以及,假设\lambda_w=4.7,先确定出\lambda_w相邻的两个整数比特数,即4和5,然后对权值矩阵w进行比特数为4和5的量化操作得到两个矩阵w4和w5,再采用公式(1)对w4和w5进行线性插值得到一个新的权值矩阵w4.7=w4+(4.7-4)*(w5-w4)。
在本公开一种优选实施例中,基于量化输入矩阵和量化权值矩阵对样本数据进行计算得到损失函数,包括:
基于量化输入矩阵和量化权值矩阵对每个样本数据进行计算,得到每层神经网络对应的各个输出矩阵,并基于各个输出矩阵和每个样本数据的原始标注值计算得到损失函数。
由于每个样本数据都具有原始标注值,所以,在得到每层神经网络对应的各个输出矩阵后,将各个输出矩阵与每个样本数据的原始标注值进行计算得到损失函数。其中,损失函数可以是交叉熵损失函数,当然,其它的损失函数也是适用于本公开实施例的,本公开实施例对此不作限制。
计算得到损失函数后,就可以基于损失函数对每层神经网络中初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵进行迭代更新,直至样本数据集中每个样本数据均被计算完成,得到更新后的第二输入量化比特数、第二权值量化比特数,以及第二权值矩阵;其中,第二输入量化比特数和第二权值量化比特数依然为浮点数,比如,迭代更新完成后,输入量化比特数由3.3更新为3.8,权值量化比特数由4.7更新为4.2;而且,在迭代的过程中,计算模型的计算量大小和内存占用大小不超过预设的资源约束。
其中,迭代的次数可以基于样本数据的数量和采样的大小确定。比如,样本数据的数量为1000,预先设定的采样的大小为10,也就是一次采用10条样本数据来训练计算模型,那么就需要100次迭代;或者,迭代的次数也可以是预先设置好的。比如,针对1000条样本数据,预设迭代100次,那么每次采用10条样本数据即可。
需要说明的是,因为在训练计算模型的过程是,每层神经网络需要做反向传播来更新参数,所以,在更新参数的时候,导数都是浮点数,参数更新的偏移量也是浮点数,也就是说,参数更新时,参数需要是浮点数。
进一步,由于在实际应用中,量化比特数需要使用整数,所以,在资源约束的情况下完成第一次的迭代训练后,需要将每层神经网络对应的第二输入量化比特数、第二权值量化比特数进行四舍五入取整,得到目标输入量化比特数和目标权值量化比特数。比如,将3.8取整为4,将4.2取整为4。
然后继续采用样本数据集重复上述训练过程对计算模型进行迭代训练,此次迭代训练不设置资源约束,且在不更新每层神经网络对应的目标输入量化比特数和目标权值量化比特数的情况下,迭代更新第二权值矩阵,直至样本数据集中每个样本数据均被计算完成,得到每层神经网络对应的各个目标权值矩阵,以及包含各个目标权值矩阵的训练后的计算模型,也就是混合精度模型。这样,在资源约束的情况下训练得到的目标输入量化比特数和目标权值量化比特数即可作为混合精度模型的参数值,使得混合精度模型在实际计算时依然不会超过资源约束,不仅在计算的过程中大幅提高了计算速度(提高了数倍甚至数十倍速)、减少了运行所需的内存、时间和功耗,而且,在结束计算时,得到的结果不仅在准确度上可与使用双精度算法运算得到的结果相媲美。
在本公开实施例中,将待检测数据输入训练后的计算模型;训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数;确定出每层神经网络中第一输入量化比特数对应的量化输入矩阵,以及,确定出第一权值量化比特数对应的量化权值矩阵;基于量化输入矩阵和量化权值矩阵对待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为待检测数据的目标标注值。通过上述方法,可以针对浮点量化比特数的待检测数据进行计算,从而将量化比特数视为连续的值,使得相邻量化比特数之间产生平滑过渡,便于在每层神经网络的精度维度上进行可微搜索,不仅在计算的过程中大幅提高了计算速度、减少了运行所需的内存、时间和功耗,而且,在结束计算时,得到的结果不仅在准确度上可与使用双精度算法运算得到的结果相媲美。
进一步,基于上述方式对全精度模型进行训练的过程中,通过设置资源约束训练得到模型中每层神经网络的目标输入量化比特数和目标权值量化比特数,再通过目标输入量化比特数和目标权值量化比特数来确定模型中每层神经网络的目标权值矩阵,这样,在资源约束的情况下训练得到的目标输入量化比特数和目标权值量化比特数即可作为混合精度模型的参数值,使得混合精度模型在实际计算时依然不会超过资源约束,不仅在计算的过程中大幅提高了计算速度、减少了运行所需的内存、时间和功耗,而且,在结束计算时,得到的结果不仅在准确度上可与使用双精度算法运算得到的结果相媲美。同时,由于采用样本数据集对每层神经网络进行一次训练即可,所以极大地降低了计算模型的训练成本。
图2为本公开又一实施例提供的一种数据处理装置的结构示意图,如图2所示,本实施例的装置可以包括:
第一处理模块201,用于将待检测数据输入训练后的计算模型;训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数;
第二处理模块202,用于确定出每层神经网络中第一输入量化比特数对应的量化输入矩阵,以及,确定出第一权值量化比特数对应的量化权值矩阵;
第三处理模块203,用于基于量化输入矩阵和量化权值矩阵对待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为待检测数据的目标标注值。
在本公开一种优选实施例中,数据处理装置还包括:
第一处理模块,还用于将预设的样本数据集输入预设的计算模型;计算模型包括多层神经网络,每层神经网络设置有初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵;初始输入量化比特数和初始权值量化比特数为浮点数;
第二处理模块,还用于确定出每层神经网络中初始输入量化比特数对应的量化输入矩阵,以及,确定出初始权值量化比特数对应的量化权值矩阵;
第四处理模块,用于基于量化输入矩阵和量化权值矩阵对样本数据进行计算得到损失函数;
第五处理模块,用于基于损失函数对每层神经网络中初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵进行迭代更新,直至样本数据集中每个样本数据均被计算完成,得到更新后的第二输入量化比特数、第二权值量化比特数,以及第二权值矩阵;第二输入量化比特数和第二权值量化比特数为浮点数;
第六处理模块,用于将第二输入量化比特数、第二权值量化比特数进行取整,得到目标输入量化比特数和目标权值量化比特数;
第七处理模块,用于基于目标输入量化比特数和目标权值量化比特数对对应层的神经网络中第二权值矩阵进行迭代更新,直至样本数据集中每个样本数据均被计算完成,得到每层神经网络对应的各个目标权值矩阵,以及包含各个目标权值矩阵的训练后的计算模型。
在本公开一种优选实施例中,第二处理模块具体用于:
基于初始输入量化比特数相邻的第三输入量化比特数,采用预设算法确定出初始输入量化比特数对应的量化输入矩阵,以及,基于初始权值量化比特数相邻的第三权值量化比特数,采用预设算法确定出初始权值量化比特数对应的量化权值矩阵。
在本公开一种优选实施例中,样本数据集包括多个样本数据,每个样本数据具有原始标注值;
第四处理模块具体用于:
基于量化输入矩阵和量化权值矩阵对每个样本数据进行计算,得到每层神经网络对应的各个输出矩阵,并基于各个输出矩阵和每个样本数据的原始标注值计算得到损失函数。
在本公开一种优选实施例中,预设算法为: 其中,λ为初始量化比特数,fλ(x)为初始量化比特数对应的量化矩阵,/>为与λ相邻,且小于λ的第三量化比特数,/>为/>对应的量化矩阵,/>为与λ相邻,且大于λ的第三量化比特数,/>为/>对应的量化矩阵;其中,初始量化比特数为浮点数,第三量化比特数为正整数。
在本公开一种优选实施例中,预设的计算模型为全精度模型,训练后的计算模型为混合精度模型。
本实施例的数据处理装置可执行本公开第一个实施例、第二个实施例所示的数据处理方法,其实现原理相类似,此处不再赘述。
在本公开实施例中,将待检测数据输入训练后的计算模型;训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;第一输入量化比特数和第一权值量化比特数为浮点数;确定出每层神经网络中第一输入量化比特数对应的量化输入矩阵,以及,确定出第一权值量化比特数对应的量化权值矩阵;基于量化输入矩阵和量化权值矩阵对待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为待检测数据的目标标注值。通过上述方法,可以针对浮点量化比特数的待检测数据进行计算,从而将量化比特数视为连续的值,使得相邻量化比特数之间产生平滑过渡,便于在每层神经网络的精度维度上进行可微搜索,不仅在计算的过程中大幅提高了计算速度、减少了运行所需的内存、时间和功耗,而且,在结束计算时,得到的结果不仅在准确度上可与使用双精度算法运算得到的结果相媲美。
下面参考图3,其示出了适于用来实现本公开实施例的电子设备300的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
电子设备包括:存储器以及处理器,其中,这里的处理器可以称为下文所述的处理装置301,存储器可以包括下文中的只读存储器(ROM)302、随机访问存储器(RAM)303以及存储装置308中的至少一项,具体如下所示:如图3所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读存储介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:将待检测数据输入训练后的计算模型;所述训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;所述第一输入量化比特数和所述第一权值量化比特数为浮点数;确定出每层神经网络中所述第一输入量化比特数对应的量化输入矩阵,以及,确定出所述第一权值量化比特数对应的量化权值矩阵;基于所述量化输入矩阵和所述量化权值矩阵对所述待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为所述待检测数据的目标标注值。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,【示例一】提供了一种数据处理方法,包括:
将待检测数据输入训练后的计算模型;所述训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;所述第一输入量化比特数和所述第一权值量化比特数为浮点数;
确定出每层神经网络中所述第一输入量化比特数对应的量化输入矩阵,以及,确定出所述第一权值量化比特数对应的量化权值矩阵;
基于所述量化输入矩阵和所述量化权值矩阵对所述待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为所述待检测数据的目标标注值。
在本公开的实施例中,所述训练后的计算模型通过如下方式生成:
将预设的样本数据集输入预设的计算模型;所述计算模型包括多层神经网络,每层神经网络设置有初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵;所述初始输入量化比特数和所述初始权值量化比特数为浮点数;
确定出每层神经网络中所述初始输入量化比特数对应的量化输入矩阵,以及,确定出所述初始权值量化比特数对应的量化权值矩阵;
基于所述量化输入矩阵和所述量化权值矩阵对样本数据进行计算得到损失函数;
基于所述损失函数对每层神经网络中所述初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵进行迭代更新,直至所述样本数据集中每个样本数据均被计算完成,得到更新后的第二输入量化比特数、第二权值量化比特数,以及第二权值矩阵;所述第二输入量化比特数和所述第二权值量化比特数为浮点数;
将所述第二输入量化比特数、第二权值量化比特数进行取整,得到目标输入量化比特数和目标权值量化比特数;
基于所述目标输入量化比特数和目标权值量化比特数对对应层的神经网络中所述第二权值矩阵进行迭代更新,直至所述样本数据集中每个样本数据均被计算完成,得到每层神经网络对应的各个目标权值矩阵,以及包含各个目标权值矩阵的训练后的计算模型。
在本公开的实施例中,所述确定出所述初始输入量化比特数对应的量化输入矩阵,以及,确定出所述初始权值量化比特数对应的量化权值矩阵,包括:
基于所述初始输入量化比特数相邻的第三输入量化比特数,采用预设算法确定出所述初始输入量化比特数对应的量化输入矩阵,以及,基于所述初始权值量化比特数相邻的第三权值量化比特数,采用预设算法确定出所述初始权值量化比特数对应的量化权值矩阵。
在本公开的实施例中,所述样本数据集包括多个样本数据,每个样本数据具有原始标注值;
所述基于所述量化输入矩阵和所述量化权值矩阵对样本数据进行计算得到损失函数,包括:
基于所述量化输入矩阵和所述量化权值矩阵对每个样本数据进行计算,得到每层神经网络对应的各个输出矩阵,并基于各个输出矩阵和每个样本数据的原始标注值计算得到损失函数。
在本公开的实施例中,所述预设算法为: 其中,λ为初始量化比特数,fλ(x)为初始量化比特数对应的量化矩阵,/>为与λ相邻,且小于λ的第三量化比特数,/>为/>对应的量化矩阵,/>为与λ相邻,且大于λ的第三量化比特数,/>为/>对应的量化矩阵;其中,初始量化比特数为浮点数,第三量化比特数为正整数。
在本公开的实施例中,所述预设的计算模型为全精度模型,所述训练后的计算模型为混合精度模型。
根据本公开的一个或多个实施例,【示例二】提供了示例一的装置,包括:
第一处理模块,用于将待检测数据输入训练后的计算模型;所述训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;所述第一输入量化比特数和所述第一权值量化比特数为浮点数;
第二处理模块,用于确定出每层神经网络中所述第一输入量化比特数对应的量化输入矩阵,以及,确定出所述第一权值量化比特数对应的量化权值矩阵;
第三处理模块,用于基于所述量化输入矩阵和所述量化权值矩阵对所述待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为所述待检测数据的目标标注值。
在本公开的实施例中,所述数据处理装置还包括:
所述第一处理模块,还用于将预设的样本数据集输入预设的计算模型;所述计算模型包括多层神经网络,每层神经网络设置有初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵;所述初始输入量化比特数和所述初始权值量化比特数为浮点数;
所述第二处理模块,还用于确定出每层神经网络中所述初始输入量化比特数对应的量化输入矩阵,以及,确定出所述初始权值量化比特数对应的量化权值矩阵;
第四处理模块,用于基于所述量化输入矩阵和所述量化权值矩阵对样本数据进行计算得到损失函数;
第五处理模块,用于基于所述损失函数对每层神经网络中所述初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵进行迭代更新,直至所述样本数据集中每个样本数据均被计算完成,得到更新后的第二输入量化比特数、第二权值量化比特数,以及第二权值矩阵;所述第二输入量化比特数和所述第二权值量化比特数为浮点数;
第六处理模块,用于将所述第二输入量化比特数、第二权值量化比特数进行取整,得到目标输入量化比特数和目标权值量化比特数;
第七处理模块,用于基于所述目标输入量化比特数和目标权值量化比特数对对应层的神经网络中所述第二权值矩阵进行迭代更新,直至所述样本数据集中每个样本数据均被计算完成,得到每层神经网络对应的各个目标权值矩阵,以及包含各个目标权值矩阵的训练后的计算模型。
在本公开的实施例中,所述第二处理模块具体用于:
基于所述初始输入量化比特数相邻的第三输入量化比特数,采用预设算法确定出所述初始输入量化比特数对应的量化输入矩阵,以及,基于所述初始权值量化比特数相邻的第三权值量化比特数,采用预设算法确定出所述初始权值量化比特数对应的量化权值矩阵。
在本公开的实施例中,所述样本数据集包括多个样本数据,每个样本数据具有原始标注值;
所述第四处理模块具体用于:
基于所述量化输入矩阵和所述量化权值矩阵对每个样本数据进行计算,得到每层神经网络对应的各个输出矩阵,并基于各个输出矩阵和每个样本数据的原始标注值计算得到损失函数。
在本公开的实施例中,所述预设算法为: 其中,λ为初始量化比特数,fλ(x)为初始量化比特数对应的量化矩阵,/>为与λ相邻,且小于λ的第三量化比特数,/>为/>对应的量化矩阵,/>为与λ相邻,且大于λ的第三量化比特数,/>为/>对应的量化矩阵;其中,初始量化比特数为浮点数,第三量化比特数为正整数。
在本公开的实施例中,所述预设的计算模型为全精度模型,所述训练后的计算模型为混合精度模型。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (8)

1.一种数据处理方法,其特征在于,包括:
将待检测数据输入训练后的计算模型;所述训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;所述第一输入量化比特数和所述第一权值量化比特数为浮点数;
确定出每层神经网络中所述第一输入量化比特数对应的量化输入矩阵,以及,确定出所述第一权值量化比特数对应的量化权值矩阵;
基于所述量化输入矩阵和所述量化权值矩阵对所述待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为所述待检测数据的目标标注值;
所述训练后的计算模型通过如下方式生成:
将预设的样本数据集输入预设的计算模型;所述计算模型包括多层神经网络,每层神经网络设置有初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵;所述初始输入量化比特数和所述初始权值量化比特数为浮点数;所述预设的计算模型为全精度模型,所述全精度模型具有预先设置好的初始输入量化比特数、初始权值量化比特数,以及资源约束;其中,所述资源约束为模型的计算量的大小和内存占用大小;
确定出每层神经网络中所述初始输入量化比特数对应的量化输入矩阵,以及,确定出所述初始权值量化比特数对应的量化权值矩阵;
基于所述量化输入矩阵和所述量化权值矩阵对样本数据进行计算得到损失函数;
基于所述损失函数对每层神经网络中所述初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵进行迭代更新,直至所述样本数据集中每个样本数据均被计算完成,得到更新后的第二输入量化比特数、第二权值量化比特数,以及第二权值矩阵;所述第二输入量化比特数和所述第二权值量化比特数为浮点数;
将所述第二输入量化比特数、第二权值量化比特数进行取整,得到目标输入量化比特数和目标权值量化比特数;
基于所述目标输入量化比特数和目标权值量化比特数对对应层的神经网络中所述第二权值矩阵进行迭代更新,直至所述样本数据集中每个样本数据均被计算完成,得到每层神经网络对应的各个目标权值矩阵,以及包含各个目标权值矩阵的训练后的计算模型;在迭代的过程中,计算模型的计算量大小和内存占用大小不超过预设的所述资源约束。
2.根据权利要求1所述的数据处理方法,其特征在于,所述确定出所述初始输入量化比特数对应的量化输入矩阵,以及,确定出所述初始权值量化比特数对应的量化权值矩阵,包括:
基于所述初始输入量化比特数相邻的第三输入量化比特数,采用预设算法确定出所述初始输入量化比特数对应的量化输入矩阵,以及,基于所述初始权值量化比特数相邻的第三权值量化比特数,采用预设算法确定出所述初始权值量化比特数对应的量化权值矩阵。
3.根据权利要求1所述的数据处理方法,其特征在于,所述样本数据集包括多个样本数据,每个样本数据具有原始标注值;
所述基于所述量化输入矩阵和所述量化权值矩阵对样本数据进行计算得到损失函数,包括:
基于所述量化输入矩阵和所述量化权值矩阵对每个样本数据进行计算,得到每层神经网络对应的各个输出矩阵,并基于各个输出矩阵和每个样本数据的原始标注值计算得到损失函数。
4.根据权利要求2所述的数据处理方法,其特征在于,所述预设算法为:其中,λ为初始量化比特数,fλ(x)为初始量化比特数对应的量化矩阵,/>为与λ相邻,且小于λ的第三量化比特数,/>为/>对应的量化矩阵,/>为与λ相邻,且大于λ的第三量化比特数,/>为/>对应的量化矩阵;其中,初始量化比特数为浮点数,第三量化比特数为正整数。
5.根据权利要求1至4任一所述的数据处理方法,其特征在于,所述训练后的计算模型为混合精度模型。
6.一种数据处理装置,其特征在于,包括:
第一处理模块,用于将待检测数据输入训练后的计算模型;所述训练后的计算模型包括多层神经网络,每层神经网络设置有第一输入量化比特数、第一权值量化比特数,以及权值矩阵;所述第一输入量化比特数和所述第一权值量化比特数为浮点数;
第二处理模块,用于确定出每层神经网络中所述第一输入量化比特数对应的量化输入矩阵,以及,确定出所述第一权值量化比特数对应的量化权值矩阵;
第三处理模块,用于基于所述量化输入矩阵和所述量化权值矩阵对所述待检测数据进行计算,得到每层神经网络对应的各个输出矩阵,并将各个输出矩阵作为所述待检测数据的目标标注值;
所述数据处理装置还包括:
所述第一处理模块,还用于将预设的样本数据集输入预设的计算模型;所述计算模型包括多层神经网络,每层神经网络设置有初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵;所述初始输入量化比特数和所述初始权值量化比特数为浮点数;所述预设的计算模型为全精度模型,所述全精度模型具有预先设置好的初始输入量化比特数、初始权值量化比特数,以及资源约束;其中,所述资源约束为模型的计算量的大小和内存占用大小;
所述第二处理模块,还用于确定出每层神经网络中所述初始输入量化比特数对应的量化输入矩阵,以及,确定出所述初始权值量化比特数对应的量化权值矩阵;
第四处理模块,用于基于所述量化输入矩阵和所述量化权值矩阵对样本数据进行计算得到损失函数;
第五处理模块,用于基于所述损失函数对每层神经网络中所述初始输入量化比特数、初始权值量化比特数,以及初始权值矩阵进行迭代更新,直至所述样本数据集中每个样本数据均被计算完成,得到更新后的第二输入量化比特数、第二权值量化比特数,以及第二权值矩阵;所述第二输入量化比特数和所述第二权值量化比特数为浮点数;
第六处理模块,用于将所述第二输入量化比特数、第二权值量化比特数进行取整,得到目标输入量化比特数和目标权值量化比特数;
第七处理模块,用于基于所述目标输入量化比特数和目标权值量化比特数对对应层的神经网络中所述第二权值矩阵进行迭代更新,直至所述样本数据集中每个样本数据均被计算完成,得到每层神经网络对应的各个目标权值矩阵,以及包含各个目标权值矩阵的训练后的计算模型;在迭代的过程中,计算模型的计算量大小和内存占用大小不超过预设的所述资源约束。
7.一种电子设备,其特征在于,其包括:
处理器、存储器和总线;
所述总线,用于连接所述处理器和所述存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行上述权利要求1-5中任一项所述的数据处理方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机可以执行上述权利要求1-5中任一项所述的数据处理方法。
CN202010432336.0A 2020-05-20 2020-05-20 数据处理方法、装置、电子设备及计算机可读存储介质 Active CN111598227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010432336.0A CN111598227B (zh) 2020-05-20 2020-05-20 数据处理方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010432336.0A CN111598227B (zh) 2020-05-20 2020-05-20 数据处理方法、装置、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111598227A CN111598227A (zh) 2020-08-28
CN111598227B true CN111598227B (zh) 2023-11-03

Family

ID=72190499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010432336.0A Active CN111598227B (zh) 2020-05-20 2020-05-20 数据处理方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111598227B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114239792B (zh) * 2021-11-01 2023-10-24 荣耀终端有限公司 利用量化模型进行图像处理的系统、装置及存储介质
CN114781650B (zh) * 2022-04-28 2024-02-27 北京百度网讯科技有限公司 一种数据处理方法、装置、设备以及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679618A (zh) * 2017-07-28 2018-02-09 北京深鉴科技有限公司 一种静态策略定点化训练方法及装置
CN108229681A (zh) * 2017-12-28 2018-06-29 郑州云海信息技术有限公司 一种神经网络模型压缩方法、系统、装置及可读存储介质
CN109214973A (zh) * 2018-08-24 2019-01-15 中国科学技术大学 针对隐写分析神经网络的对抗安全载体生成方法
CN109447146A (zh) * 2018-10-24 2019-03-08 厦门美图之家科技有限公司 分类优化方法及装置
WO2019085655A1 (zh) * 2017-10-30 2019-05-09 上海寒武纪信息科技有限公司 信息处理方法及终端设备
WO2019141193A1 (zh) * 2018-01-19 2019-07-25 杭州海康威视数字技术股份有限公司 对视频帧数据进行处理的方法和装置
CN110555450A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人脸识别神经网络调整方法和装置
CN110555508A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN110826567A (zh) * 2019-11-06 2020-02-21 北京字节跳动网络技术有限公司 光学字符识别方法、装置、设备及存储介质
CN111144560A (zh) * 2018-11-05 2020-05-12 杭州海康威视数字技术股份有限公司 一种深度神经网络运算方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679618A (zh) * 2017-07-28 2018-02-09 北京深鉴科技有限公司 一种静态策略定点化训练方法及装置
WO2019085655A1 (zh) * 2017-10-30 2019-05-09 上海寒武纪信息科技有限公司 信息处理方法及终端设备
CN108229681A (zh) * 2017-12-28 2018-06-29 郑州云海信息技术有限公司 一种神经网络模型压缩方法、系统、装置及可读存储介质
WO2019141193A1 (zh) * 2018-01-19 2019-07-25 杭州海康威视数字技术股份有限公司 对视频帧数据进行处理的方法和装置
CN110555450A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人脸识别神经网络调整方法和装置
CN110555508A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN109214973A (zh) * 2018-08-24 2019-01-15 中国科学技术大学 针对隐写分析神经网络的对抗安全载体生成方法
CN109447146A (zh) * 2018-10-24 2019-03-08 厦门美图之家科技有限公司 分类优化方法及装置
CN111144560A (zh) * 2018-11-05 2020-05-12 杭州海康威视数字技术股份有限公司 一种深度神经网络运算方法及装置
CN110826567A (zh) * 2019-11-06 2020-02-21 北京字节跳动网络技术有限公司 光学字符识别方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111598227A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
US10691410B2 (en) Neural network computing
CN108701250B (zh) 数据定点化方法和装置
US20200117981A1 (en) Data representation for dynamic precision in neural network cores
WO2018140294A1 (en) Neural network based on fixed-point operations
CN110008952B (zh) 一种目标识别方法及设备
EP2666067B1 (en) Device and method for computing a function value of a function
US20160260013A1 (en) Method and apparatus for optimization
US10699209B2 (en) Quantum circuit libraries for floating-point arithmetic
CN111598227B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN114341892A (zh) 具有用于高效参数更新的降低精度参数分量的机器学习硬件
CN112686031B (zh) 文本特征提取模型的量化方法、装置、设备及存储介质
CN111428188A (zh) 一种卷积运算的方法和装置
US20210294874A1 (en) Quantization method based on hardware of in-memory computing and system thereof
US20190026602A1 (en) Neural Network Processing Method, Apparatus, Device and Computer Readable Storage Media
CN113392018A (zh) 流量分发方法、装置、存储介质及电子设备
US11551087B2 (en) Information processor, information processing method, and storage medium
US20200242445A1 (en) Generic quantization of artificial neural networks
CN111653261A (zh) 语音合成方法、装置、可读存储介质及电子设备
CN115827705A (zh) 用于反事实解释的数据处理方法和装置
KR20230076641A (ko) 부동-소수점 연산을 위한 장치 및 방법
US10416960B2 (en) Check procedure for floating point operations
CN113361701A (zh) 神经网络模型的量化方法和装置
CN115565607B (zh) 确定蛋白质信息的方法、装置、可读介质及电子设备
CN114792258B (zh) 信息生成方法、装置、电子设备和计算机可读介质
CN114040014B (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