CN112052916B - 基于神经网络的数据处理方法、装置以及可读存储介质 - Google Patents
基于神经网络的数据处理方法、装置以及可读存储介质 Download PDFInfo
- Publication number
- CN112052916B CN112052916B CN202011077861.1A CN202011077861A CN112052916B CN 112052916 B CN112052916 B CN 112052916B CN 202011077861 A CN202011077861 A CN 202011077861A CN 112052916 B CN112052916 B CN 112052916B
- Authority
- CN
- China
- Prior art keywords
- data
- floating point
- data set
- precision
- sample data
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 40
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 33
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000012549 training Methods 0.000 claims abstract description 201
- 238000013500 data storage Methods 0.000 claims abstract description 124
- 238000000034 method Methods 0.000 claims abstract description 74
- 238000003062 neural network model Methods 0.000 claims abstract description 49
- 238000007781 pre-processing Methods 0.000 claims abstract description 32
- 238000007667 floating Methods 0.000 claims description 151
- 238000012545 processing Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 41
- 230000006835 compression Effects 0.000 claims description 40
- 238000007906 compression Methods 0.000 claims description 40
- 238000010606 normalization Methods 0.000 claims description 34
- 238000013139 quantization Methods 0.000 claims description 29
- 230000006854 communication Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 description 25
- 238000013473 artificial intelligence Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medical Informatics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例公开了一种基于深度神经网络的数据处理方法、装置以及可读存储介质,方法包括:获取初始数据集;初始数据集中的训练样本数据具备第一数据存储格式精度;对初始数据集中的训练样本数据进行归一化处理,得到归一化数据集;将归一化数据集中的归一化后的训练样本数据,从第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集;第二数据存储格式精度对应的数据存储量低于第一数据存储格式精度;压缩量化数据集,得到压缩数据包;压缩数据包用于经过数据预处理后进行神经网络模型训练。采用本申请,可以降低存储成本,加速神经网络模型训练。
Description
技术领域
本申请涉及机器学习领域,尤其涉及一种基于神经网络的数据处理方法、装置以及可读存储介质。
背景技术
人工神经网络,简称神经网络,是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,广泛应用于模式识别、自动控制、信号处理、辅助决策、人工智能等众多领域。
现代神经网络训练,会对样本数据集做数据预处理后再传入神经网络模型中计算并输出训练好的模型。数据预处理包括解压数据包后对数据进行清理、集成等操作。需求的增加使得样本数据量增加,不仅存储量增大,而且整个数据预处理过程的时间也增加,导致整个神经网络训练过程花费时间变长,限制了神经网络的进一步发展。随着图像处理器(GPU)硬件技术的演进和对神经网络模型的优化,神经网络的计算时间得到压缩。很多场景中,数据预处理时间甚至超过了神经网络的计算时间,因此在现代神经网络训练中,数据预处理越来越成为整个流程的瓶颈所在。
发明内容
本申请实施例提供一种基于神经网络的数据处理方法、装置以及可读存储介质,可以降低存储成本,加速神经网络模型训练。
本申请实施例一方面提供了一种基于神经网络的数据处理方法,包括:
获取初始数据集;初始数据集中的训练样本数据具备第一数据存储格式精度;
对初始数据集中的训练样本数据进行归一化处理,得到归一化数据集;
将归一化数据集中的归一化后的训练样本数据,从第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集;第二数据存储格式精度对应的数据存储量低于第一数据存储格式精度;
压缩量化数据集,得到压缩数据包;压缩数据包用于经过数据预处理后进行神经网络模型训练;数据预处理是指在接收到模型训练指令时对压缩数据包进行解压以得到量化数据集的处理过程。
本申请实施例一方面提供了一种基于神经网络的数据处理装置,包括:
第一获取模块,用于获取初始数据集;
归一化模块,用于对初始数据集中的训练样本数据进行归一化处理,得到归一化数据集;
第一量化模块,用于将归一化数据集中的归一化后的训练样本数据,从第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集;
压缩模块,用于压缩量化数据集得到压缩数据包;压缩数据包用于经过数据预处理后进行神经网络模型训练;数据预处理是指在接收到模型训练指令时对压缩数据包进行解压以得到量化数据集的处理过程。
其中,归一化模块包括:
浮点数据获取单元,用于获取初始数据集中第一数据存储格式精度为第一浮点精度的训练样本数据,作为浮点样本数据;
参数获取单元,用于从浮点样本数据中获取最大值浮点样本数据和最小值浮点样本数据;
归一化处理单元,用于根据最大值浮点样本数据和最小值浮点样本数据,对浮点样本数据进行归一化处理,得到归一化数据集。
其中,归一化处理单元包括:
运算处理子单元,用于将最大值浮点样本数据和最小值浮点样本数据进行相减处理,得到归一化分母;
运算处理子单元,还用于将浮点样本数据和最小值浮点样本数据进行相减处理,得到归一化分子;
运算处理子单元,还用于将归一化分子和归一化分母进行相除处理,得到归一化后的训练样本数据;
归一生成子单元,用于生成包含归一化后的训练样本数据的归一化数据集。
其中,第一量化模块包括:
第一精度确定单元,确定归一化数据集中的归一化后的训练样本数据具备的第一数据存储格式精度;
第一精度转换单元,用于将归一化数据集中的归一化后的训练样本数据,从第一数据存储格式精度转换为第二数据存储格式精度,得到具有第二数据存储格式精度的量化训练样本数据;
第一量化生成单元,用于生成包含量化训练样本数据的量化数据集。
其中,第一数据存储格式精度包括第一浮点精度,第二数据存储格式精度包括第二浮点精度;
第一精度转换单元包括:
量化获取子单元,用于在归一化数据集中获取第一浮点精度的归一化后的训练样本数据的第一浮点指数、第一浮点尾数和数据符号;
量化获取子单元,还用于获取第一浮点精度的第一指数偏移量和第二浮点精度的第二指数偏移量;
量化获取子单元,还用于获取第二浮点精度的指数数据存储长度和尾数数据存储长度;
计算子单元,用于将第一浮点指数与第一指数偏移量进行相减处理,得到指数参数;
计算子单元,还用于将指数参数与第二指数偏移量进行相加处理,得到第二浮点指数;
浮点精度转换子单元,用于根据第二浮点精度的尾数数据存储长度与第一浮点尾数,获取第二浮点尾数;
数据生成子单元,用于根据归一化后的训练样本数据的数据符号、第二浮点指数以及第二浮点尾数,生成具有第二浮点精度的量化训练样本数据。
压缩模块包括:
字符串获取单元,用于根据量化数据集中的量化训练样本数据,获得待压缩字符串;
滑动获取单元,用于将压缩窗口在待压缩字符串上滑动,并获取压缩窗口所覆盖的字符串,将压缩窗口中匹配区的字符组成匹配字符串,将压缩窗口中待编码缓冲区的字符作为待编码字符串;
匹配单元,用于确定匹配字符串与待编码字符串中的最长字符串;
编码输出单元,用于根据最长字符串确定编码结果,匹配出最长字符串,则输出字符标记编码;没匹配出最长字符串,则输出普通字符编码;
压缩包生成单元,用于当待压缩字符串中的末尾字符被匹配区覆盖时,根据输出的字符标记编码和普通字符编码,生成所述量化数据集对应的压缩数据包。
其中,装置还包括:
第二获取模块,用于获取模型训练指令;
数据预处理模块,用于对压缩数据包进行解压以得到所述量化数据集;
第二量化模块,用于将量化数据集中的量化训练样本数据,从第二数据存储格式精度反转换为第一数据存储格式精度,得到目标训练样本数据集;
训练模块,用于对目标训练样本数据集进行训练;
输出模块,用于输出训练好的神经网络模型。
其中,第二量化模块包括:
第二精度确定单元,确定归一化数据集中的归一化后的训练样本数据具备的第二数据存储格式精度;
第二精度转换单元,用于将量化数据集中的量化训练样本数据,从第二数据存储格式精度转换为第一数据存储格式精度,得到具有第一数据存储格式精度的目标训练样本数据;
第二量化生成单元,用于生成包含目标训练样本数据的目标训练样本数据集。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的方法。
本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
在本申请实例中,通过对初始数据集中的训练样本数据做归一化处理后,从第一数据存储格式精度转换成第二数据存储格式精度得到量化数据集,再对量化数据集做压缩处理得到压缩数据包,从而在接收到模型训练指令时,将压缩数据包做数据预处理后传给神经网络模型训练。其中,第二数据存储格式精度对应的数据存储量低于第一数据存储格式精度。采用本申请实施提供的技术方案,通过预制量化数据集,将原有的初始数据集压缩,不仅降低了存储成本,还可以加快数据集读取和解压速度,达到加速神经网络训练的效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种场景示意图;
图3是本申请实施例提供的一种基于神经网络的数据处理方法的流程示意图;
图4是本申请实施例提供的一种浮点型数据的存储结构示意图;
图5是本申请实施例提供的一种归一化处理数据集的流程示意图;
图6是本申请实施例提供的一种数据精度转换过程示意图;
图7是本申请实施例提供的一种压缩字符串的过程示意图;
图8是本申请实施例提供的一种神经网络模型训练的流程图;
图9是本申请实施例提供的一种基于神经网络的数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施例
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。以下介绍本申请基于神经网络的数据处理方法,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的方案属于人工智能领域下属的机器学习((MachineLearning,ML)。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
图1是本申请实施例提供的一种网络架构图。如图1所示,该网络架构可以包括业务服务器1000以及后台服务器集群,其中,上述后台服务器集群可以包括多个每个后台服务器,如图1所示,具体可以包括后台服务器100a、后台服务器100b、后台服务器100c、…、后台服务器100n。如图1所示,后台服务器100a、后台服务器100b、后台服务器100c、…、后台服务器100n可以分别与上述业务服务器1000进行网络连接,以便于每个后台服务器可以通过该网络连接与业务服务器1000进行数据交互。
如图1所示,业务服务器1000可以接收来自每个后台服务器的业务数据,对业务数据进行离线压制处理后得到压缩数据包存储。其中,业务数据可以是每个后台服务器对应的用户终端传来的用于神经网络模型训练的样本数据。本申请中每个后台服务器均与用户终端相对应,可以用于存储对应用户终端的神经网络模型。每个后台服务器均可以发起向业务服务器1000发起神经网络训练的请求,当业务服务器1000接收到后台服务器的业务请求,会将用于该后台服务器中存储的神经网络模型训练的压缩数据包传回后台服务器。每个后台服务器在接收到业务服务器1000的压缩数据包以后,都可以对压缩数据包做数据预处理后对存储的神经网络模型进行训练,然后,存储训练好的神经网络模型。
可以理解的是,本申请实施例提供的方法可以由计算机设备执行,计算机设备可以为上述的业务服务器1000。其中,业务服务器1000可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,后台服务器以及业务服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
为便于理解,请参见图2,图2是本申请实施例提供的一种场景示意图。其中,如图2所示的业务服务器可以为上述业务服务器1000,且如图2所示的后台服务器可以为上述后台服务器集群中的任意一个后台服务器,比如,该后台服务器可以为上述后台服务器100b。
如图2所示,初始数据集是包含神经网络模型训练所需的训练样本数据的数据集合。业务服务器在获取到初始数据集后,会对其进行归一化处理,得到归一化数据集。其中,归一化处理可以是将初始数据集中的浮点型数据映射到标准化区间。标准化区间内的不同的浮点型数据无明显的数据差异,比如32位浮点型数据和16位浮点型数据。随后,业务服务器会对归一化数据集中的归一化后的训练样本数据做精度转换,得到量化数据集。其中,精度转换可以是存储量较低的精度类型的数据去代替存储量较高的精度类型的数据。例如,可以用将32位的浮点型数据转换成16位的浮点型数据。随后,业务服务器会将量化数据集压缩成压缩数据包存储。
如图2所示,该压缩数据包会存储在业务服务器中。当后台服务器向业务服务器发起神经网络模型训练的请求,获取业务服务器中存储的压缩数据包,随后,后台服务器会对压缩数据包进行数据预处理,得到训练样本数据,然后将其传入神经网络模型中训练,得到训练好的神经网络模型。后台服务器会存储训练好的神经网络模型,当其对应的用户终端传来业务数据时,后台服务器会调用训练好的神经网络模型处理业务数据,并将输出结果返回到用户终端。
进一步地,为便于理解,请参见图3,图3是本申请实施例提供的一种基于神经网络的数据处理方法的流程示意图。该方法可以由业务服务器(如上述图1所对应实施例中的业务服务器1000)执行,本实施例以该方法由上述业务服务器执行为例进行说明。如图3所示,该流程可以包括:
S101:获取初始数据集;所述初始数据集中的训练样本数据具备第一数据存储格式精度。
本申请中,业务服务器获取到的初始数据集中的训练样本数据是神经网络模型训练中需要用到的数据,神经网络模型可以基于这些训练样本数据进行多次迭代训练,使得神经网络模型收敛,以得到训练好的神经网络模型输出的预测结果可以越来越准确。第一数据存储格式精度可以指采用较多比特位进行存储的数据格式,例如32位的浮点型数据,32位的布尔类型数据。
S102:对所述初始数据集中的所述训练样本数据进行归一化处理,得到归一化数据集;
本申请中,对于训练样本数据中第一数据存储格式精度为浮点型的数据,如果其在标准区间【0,1】中,不同位数的浮点型数据没有明显的精度差异。也就是说,在对浮点型的训练样本数据做了归一化处理后再进行精度转换,能够降低精度损失带来的影响。因此,归一化处理便是先获取训练样本数据中的浮点型训练样本数据,找出浮点型训练样本数据的最大值和最小值,然后根据最大值和最小值对所有浮点型训练样本进行数据处理,将其映射到【0,1】区间内。
S103:将所述归一化数据集中的归一化后的训练样本数据,从所述第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集。
本申请中,第一数据存储格式精度对应的数据存储量应该高于第二数据存储格式精度,也就是说,第一数据存储格式精度对应的数据存储时所使用的比特位数量,会多于第二数据存储格式精度对应的数据存储时所使用的比特位数量。例如,第一数据存储格式精度的数据可以是64位的浮点型数据,此时第二数据存储格式精度的数据存储时占用的比特位应该低于64位,可以是32位的浮点型数据,也可以是16位的浮点型数据。
为了便于理解,请一并参见图4,图4是本申请实施例提供的一种浮点型数据的存储结构示意图。由于计算机中只能存储二进制数据,所以浮点型数据存储时也是转换成二进制数据的形式来存储。如图4所示,浮点型数据可以包括符号位、指数位和尾数位。浮点型数据被表示为尾数乘以底数的指数次方再带上符号。符号位占1位,可以是0表示正数,可以是1表示负数。指数位存储的并不是实际的指数,而是实际指数与偏移量的和,也就是说,指数位减去偏移量,才是浮点型数据的实际指数。由于规范浮点型数据的小数点左侧必须为1,所以在保存尾数时,可以省略小数点前面这个1,从而腾出一个二进制位来保存更多的尾数。
对于不同位数的浮点型数据,指数位和尾数位的位数都有所不同,偏移量也不一样。例如32位浮点型数据,指数位有8位,尾数位有23位,偏移量为127;16位浮点型数据,指数位有5位,尾数位有10位。
S104:压缩所述量化数据集,得到压缩数据包;所述压缩数据包用于经过数据预处理后进行神经网络模型训练。
具体的,压缩上述量化数据集可以是根据量化数据集中的量化训练样本数据的概率分布,将出现概率最高的部分替换成更短的形式。用压缩数据包代替量化数据集存储,可以节省磁盘空间。
后台服务器(如上述图1所对应实施例中的后台服务器100c)获取上述压缩数据包所花费的时间远小于获取上述初始数据集的时间。神经网络模型训练时所需要的训练样本数据的数量随着神经网络模型的复杂度而增加,后台服务器与业务服务器(如上述图1所对应实施例中的业务服务器1000)之间通信的时间也会增加。通过将初始数据集离线压制成压缩数据包,使得网络传输的数据量减半,减少了后台服务器与业务服务器通信过程的耗时。同时,后台服务器对压缩数据包做数据预处理的时间也会减少,从而使得整个神经网络训练的时候减少。
通过本申请实施例提供的一种基于神经网络的数据处理方法,可以将包含用于神经网络模型训练的训练样本数据的初始数据集经过归一化处理后,转换精度再压缩成压缩数据包进行存储。该方法可以在离线情况下进行处理,也就是在开始神经网络模型训练之前,可以离线压制好压缩数据包,不会占用训练时间,减少训练等待时间。压缩数据包相对于初始数据集来说,所需要的存储空间大大减少,同时,数据预处理的时间也将减少,从而使得整个神经网络模型训练的时间减少,达到加速神经网络模型训练的效果。其中,数据预处理过程可以是解压压缩数据包得到上述量化数据集,再对上述量化数据集中的量化训练样本做数据清洗、数据集成、数据变化和数据规约的过程。
为更加清楚的说明归一化处理的过程,请参见图5,图5是本申请实施例提供的一种归一化处理数据集的流程示意图,图5对应实施例为上述图3对应实施例中的S102的具体描述过程,该流程可以包括:
S201:获取所述初始数据集中所述第一数据存储格式精度为第一浮点精度的训练样本数据,作为浮点样本数据。
初始数据集中的训练样本数据具备的第一数据存储格式精度有多种,当训练样本数据的第一数据存储格式为第一浮点精度时,做归一化处理能够降低精度损失带来的影响。因此需要先从初始数据集中选出所述第一数据存储格式精度为第一浮点精度的训练样本数据,作为浮点样本数据。其中,第一浮点精度数据包括32位的浮点型数据。
S202:从所述浮点样本数据中获取最大值浮点样本数据和最小值浮点样本数据。
S203:根据所述最大值浮点样本数据和所述最小值浮点样本数据,对所述浮点样本数据进行归一化处理,得到归一化数据集。
本申请中,获取到最大值浮点样本数据和最小值浮点样本数据后,便可以对浮点样本数据进行归一化处理。
可以理解的是,对于归一化处理的具体实现方式,可以如公式(1)所示:
其中,x可以用于表征浮点样本数据,min(x)可以用于表征最小值浮点样本数据,max(x)可以用于表征最大值浮点样本数据,y可以用于表征归一化后的浮点样本数据。通过公式(1),可以实现对浮点样本数据的归一化处理。然后根据归一化后的浮点样本数据和非浮点样本数据,生成包含归一化后的训练样本数据的归一化数据集。
为进一步说明如何将第一数据存储格式的归一化后的训练样本数据转换成第二数据存储格式的归一化后的训练样本数据,请参见图6,图6是本申请实施例提供的一种数据精度转换过程示意图。该精度转换过程可以用于将第一浮点精度的训练样本数据转换成第二浮点精度的训练样本数据,第一浮点精度的训练样本数据的存储量要高于第二浮点精度的训练样本数据。为便于理解,本实施例中以训练样本数据的第一浮点精度为32位的浮点型精度、第二浮点精度为16位的浮点型精度为例来进行说明。
如图6所示,训练样本数据60包括符号位601、指数位602和尾数位603。业务服务器60在对训练样本数据做精度转换时,会先获取相关参数。具体地,相关参数可以包括第一浮点精度的第一指数偏移量,第二浮点精度的第二指数偏移量,第二浮点精度的指数数据存储长度和尾数数据存储长度。然后业务服务器会根据相关参数对训练样本数据60的指数位602进行转换。具体地,指数位602的转换,可以是,获取指数位602的数据“01111110”,作为第一浮点指数,将第一浮点指数与所述第一指数偏移量之差,作为指数参数,随后,根据第二浮点精度的指数数据存储长度将指数参数与第二指数偏移量之和转换,作为第二浮点指数,也就是转换后的指数位602中的数据“01101”。最后业务服务器会根据相关参数对训练样本数据60的尾数位603进行转换。具体地,尾数位603的转换,可以为,获取尾数位603中的数据“01010101010000000000000”,保留前第二浮点精度的尾数数据存储长度的数据作为第二浮点尾数,也就是“0101010101”,剩余的数据舍弃。符号位601代表的是数据的正负,更改前后应该保持一致,因此符号位601保持不变。在对训练样本数据60做了指数位602与尾数位603的处理后,训练样本数据60的存储格式精度由第一浮点精度变成了第二浮点精度。
在对所有的归一化后的训练样本数据做了精度转换处理得到量化训练样本数据后,再生成包含该量化训练样本数据的量化数据集。如图6所示的精度转换过程可以由计算机设备执行。其中计算机设备可以是上述提到的后台服务器,也可以是上述提供的业务服务器。对于计算机设备实现如图6所示的精度转换过程,可以通过算法1实现。
为了进一步理解上述压缩量化数据集,请参见图7,图7是本申请实施例提供的一种压缩字符串的过程示意图,具体给出了本申请实施例的一种压缩方法压缩某一待压缩字符串的实现过程。该实现过程可由计算机设备(如上述图1所示的业务服务器1000)完成,本实施例以上述过程由上述业务服务器执行为例进行说明。
首先根据上述量化数据集中的量化训练样本数据,获得待压缩字符串;创建压缩窗口,压缩窗口包括匹配区和待编码缓冲区。如图7所示,压缩窗口70包括匹配区701和待编码缓冲区702。其中,压缩窗口70可以在待压缩字符串80上滑动,其长度可以是指定大小,也可以根据压缩字符串长度进行调节。匹配区701可以是覆盖已经编码过的字符的区域。待编码缓冲区702可以是覆盖未编码的字符的区域。随着压缩窗口70的滑动,匹配区701和待编码缓冲区702中覆盖的字符序列也会随之改变。匹配区701中的匹配位置7011的索引值是0,匹配位置7011往后的匹配位置的索引值依次增加。一个匹配位置可用来存储一个字符,待编码缓冲区702中包括待编码位置7021。待压缩字符串80是根据上述量化数据集中的量化训练样本数据生成的。压缩数据包90用来存储输出的字符编码。
在开始匹配前,根据待编码缓冲区的长度和编码遍历方向,将压缩窗口在待压缩字符串上滑动。如图7所示,将压缩窗口70从按照编码遍历方向往待压缩字符串80中移动待编码缓冲区长度单位,使得待编码缓冲区702中所有待编码位置覆盖有字符。其中编码遍历方向可以是从匹配区701到待编码缓冲区702的方向。
在滑动后的压缩窗口中,获取待编码缓冲区所覆盖的字符,组成待编码字符串,获取匹配区所覆盖的字符,组成匹配字符串,将匹配字符串与待编码字符串进行匹配。具体的,上述待编码缓冲区所覆盖的字符组成的待编码字符串,也就是本次匹配过程中需要编码的字符串。未在待编码缓冲区的待压缩字符串,不会被用来参与本次匹配过程。匹配区中的字符序列可以组成不同的字符串,这些不同的字符串组成上述匹配字符串。例如字符串(A,B,D),可以组成的匹配字符串有{(A),(A,B),(A,B,D),(B),(B,D),(D)}。匹配字符串将用来与待编码缓冲区中的字符进行匹配。将上述匹配字符串与上述待编码字符串进行匹配就是找出匹配字符串中与待编码字符串一样的最长字符串,具体的,匹配就是规定匹配长度为1,选择待编码字符串的第一个字符开始长度为匹配长度的字符串,没有找到一样的字符串就结束匹配;找到一样的字符串则将该字符串记为匹配成功字符串,匹配长度加1,若匹配长度不超过待编码缓冲区的长度,选择待编码字符串的第一个字符开始长度为匹配长度的字符串,开始匹配过程。也就是说,匹配过程可以是一个循环过程,当没有找到匹配的字符串或者当匹配长度超过待编码缓冲区的长度时,停止匹配过程。
若在匹配字符串与待编码字符串中未匹配出最长字符串,则输出普通字符编码,将压缩窗口沿编码遍历方向滑动单位长度。若在匹配字符串与待编码字符串中匹配出最长字符串,则输出字符标记编码,根据最长字符串的字符长度将压缩窗口沿所述编码遍历方向继续滑动。如图7所示,开始匹配,匹配区701中没有字符,所以匹配不到短语,输出普通字符编码,也就是待编码缓冲区中的第一个字符A。然后将压缩窗口10沿上述编码遍历方向滑动单位长度,待压缩字符串80最后一个字符没有进入匹配区701,继续匹配。获取匹配区701中的字符A,组成待编码字符串A,规定匹配长度为1,选择待编码缓冲区702中的待编码字符串的从第一个字符开始长度为匹配长度的字符串A,匹配成功,记为匹配成功字符串。匹配长度加一,选择待编码缓冲区702中的待编码字符串的从第一个字符开始长度为匹配长度的字符串AB,没有匹配找到一样的字符串,结束匹配过程。选取匹配成功字符串中长度最长的字符串作为最长字符串,也就是A。输出字符标记编码(4,1,A),其中4是最长字符串A的第一个字符所在匹配位置的索引值,1是最长字符串的长度,A是待编码缓冲区702中的第一个字符。然后将压缩窗口70沿上述编码遍历方向滑动最长字符串长度,待压缩字符串80最后一个字符没有进入匹配区701,继续匹配。
当待压缩字符串中的末尾字符被所述匹配区覆盖时,根据输出的字符标记编码和普通字符编码,生成量化数据集对应的压缩数据包。如图7所示,当待压缩字符串80最后一个字符进入匹配区701,也就是待编码缓冲区702中没有字符了,输出压缩数据包90。
为便于理解,请参见图8,图8是本申请实施例提供的一种神经网络模型训练的流程图。如图8所示,神经网络模型训练包括:离线压制和在线模型训练。其中,神经网络模型可以是深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)等常用模型。
离线压制可以是上述将初始数据集归一化处理后转换精度再压缩,得到压缩数据包。
在线模型训练是在获取到神经网络模型训练指令时开始的过程,具体包括:获取上述压缩数据包;对上述压缩数据包做上述数据预处理,得到上述量化数据集;将所述量化数据集中的量化训练样本数据,从上述第二数据存储格式精度反转换为上述第一数据存储格式精度,得到目标训练样本数据集;将所述目标训练样本数据集传给上述神经网络模型进行训练,输出训练好的神经网络模型。
具体的,将所述量化数据集中的量化训练样本数据从上述第二数据存储格式精度反转换为上述第一数据存储格式精度得到目标训练样本数据集,即将量化训练样本数据由低比特位数据转换成高比特位数据。该步骤中的精度转换可以由硬件指令集支持;也可以使用软件,借助于深度学习训练框架提供的API实现。两种方式的耗时都很短,可以忽略不计。
因为神经网络训练的输入与权重初始化类型相关,一般情况下量化训练样本数据的精度会低于待训练网络参数的精度。如果待训练网络参数的精度与量化训练样本数据的精度一致,可以不用对量化数据集中的量化训练样本数据做精度转换。
在本申请实例中,通过对初始数据集中的训练样本数据做归一化处理后,从第一数据存储格式精度转换成第二数据存储格式精度得到量化数据集,再对量化数据集做压缩处理得到压缩数据包,从而在接收到模型训练指令时,将压缩数据包做数据预处理后传给神经网络模型训练。其中,第二数据存储格式精度对应的数据存储量低于第一数据存储格式精度。采用本申请实施提供的技术方案,通过预制量化数据集,将原有的初始数据集压缩,不仅降低了存储成本,还可以加快数据集读取和解压速度,达到加速神经网络训练的效果。同时在某些场景下,神经网络模型训练队精度要求不敏感,量化数据集并不会降低训练好的模型在验证集上的精度。
进一步地,请参见图9,图9是本申请实施例提供的一种基于神经网络的数据处理装置的结构示意图。上述数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图9所示,该数据处理装置2可以包括:第一获取模块21、归一化模块22、第一量化模块23、压缩模块24。
第一获取模块21,用于获取初始数据集;
归一化模块22,用于对初始数据集中的训练样本数据进行归一化处理,得到归一化数据集;
第一量化模块23,用于将归一化数据集中的归一化后的训练样本数据,从第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集;
压缩模块24,用于压缩量化数据集得到压缩数据包。压缩数据包用于经过数据预处理后进行神经网络模型训练;数据预处理是指在接收到模型训练指令时对压缩数据包进行解压以得到量化数据集的处理过程。
其中,第一获取模块21、归一化模块22、第一量化模块23以及压缩模块24的具体实现方式,可以参见上述图3所对应实施例中步骤S101-S104的描述,这里将不再进行赘述。
请参见图9,归一化模块22可以包括:浮点数据获取单元221,参数获取单元222以及归一化处理单元223。
浮点数据获取单元221,用于获取初始数据集中第一数据存储格式精度为第一浮点精度的训练样本数据,作为浮点样本数据;
参数获取单元222,用于从浮点样本数据中获取最大值浮点样本数据和最小值浮点样本数据;
归一化处理单元223,用于根据最大值浮点样本数据和最小值浮点样本数据,对浮点样本数据进行归一化处理,得到归一化数据集。
其中,浮点数据获取单元221,参数获取单元222以及归一化处理单元223的具体实现方式,可以参见上述图5所对应实施例中步骤S201-S203的描述,这里将不再进行赘述。
请参见图9,归一化处理单元223可以包括:运算处理子单元2231和归一生成子单元2232。
运算处理子单元2231,用于将最大值浮点样本数据和最小值浮点样本数据进行相减处理,得到归一化分母;
运算处理子单元2231,还用于将浮点样本数据和最小值浮点样本数据进行相减处理,得到归一化分子;
运算处理子单元2231,还用于将归一化分子和归一化分母进行相除处理,得到归一化后的训练样本数据;
归一生成子单元2232,用于生成包含归一化后的训练样本数据的归一化数据集。
其中,运算处理子单元2231和归一生成子单元2232的具体实现方式,可以参见上述图5所对应实施例中步骤S203的描述,这里将不再进行赘述。
请参见图9,第一量化模块23可以包括:第一精度确定单元231、第一精度转换单元232、第一量化生成单元233。
第一精度确定单元231,确定归一化数据集中的归一化后的训练样本数据具备的第一数据存储格式精度;
第一精度转换单元232,用于将归一化数据集中的归一化后的训练样本数据,从第一数据存储格式精度转换为第二数据存储格式精度,得到具有第二数据存储格式精度的量化训练样本数据;
第一量化生成单元233,用于生成包含量化训练样本数据的量化数据集。
其中,第一精度确定单元231、第一精度转换单元232、第一量化生成单元233的具体实现方式,可以参见上述图3所对应实施例中步骤S103的描述,这里将不再进行赘述。
其中,第一数据存储格式精度包括第一浮点精度,第二数据存储格式精度包括第二浮点精度;
请参见图9,第一精度转换单元232可以包括:量化获取子单元2331、计算子单元2332、浮点精度转换子单元2333以及数据生成子单元2334。
量化获取子单元2331,用于在归一化数据集中获取第一浮点精度的归一化后的训练样本数据的第一浮点指数、第一浮点尾数和数据符号;
量化获取子单元2331,还用于获取第一浮点精度的第一指数偏移量和第二浮点精度的第二指数偏移量;
量化获取子单元2331,还用于获取第二浮点精度的指数数据存储长度和尾数数据存储长度;
计算子单元2332,用于将第一浮点指数与第一指数偏移量进行相减处理,得到指数参数;
计算子单元2332,还用于将指数参数与第二指数偏移量进行相加处理,得到第二浮点指数;
浮点精度转换子单元2333,用于根据第二浮点精度的尾数数据存储长度与第一浮点尾数,获取第二浮点尾数;
数据生成子单元2334,用于根据归一化后的训练样本数据的数据符号、第二浮点指数以及第二浮点尾数,生成具有第二浮点精度的量化训练样本数据。
其中,量化获取子单元2331、计算子单元2332、浮点精度转换子单元2333以及数据生成子单元2334的具体实现方式,可以参见上述图6所对应实施例中数据精度转换过程的描述,这里将不再进行赘述。
请参见图9,压缩模块24可以包括:字符串获取单元241、滑动获取单元242、匹配单元243、编码输出单元244以及压缩包生成单元245。
字符串获取单元241,用于根据量化数据集中的量化训练样本数据,获得待压缩字符串;
滑动获取单元242,用于将压缩窗口在待压缩字符串上滑动,并获取压缩窗口所覆盖的字符串,将压缩窗口中匹配区的字符组成匹配字符串,将压缩窗口中待编码缓冲区的字符作为待编码字符串;
匹配单元243,用于确定匹配字符串与待编码字符串中的最长字符串;
编码输出单元244,用于根据最长字符串确定编码结果,匹配出最长字符串,则输出字符标记编码;没匹配出最长字符串,则输出普通字符编码;
压缩包生成单元245,用于当待压缩字符串中的末尾字符被匹配区覆盖时,根据输出的字符标记编码和普通字符编码,生成所述量化数据集对应的压缩数据包。
其中,字符串获取单元241、滑动获取单元242、匹配单元243、编码输出单元244以及压缩包生成单元245的具体实现方式,可以参见上述图7所对应实施例中压缩字符串的过程的描述,这里将不再进行赘述。
请参见图9,该数据处理装置2还可以包括:第二获取模块31、数据预处理模块32、第二量化模块33、训练模块34以及输出模块35。
第二获取模块31,用于获取模型训练指令;
数据预处理模块32,用于对压缩数据包进行解压以得到所述量化数据集;
第二量化模块33,用于将量化数据集中的量化训练样本数据,从第二数据存储格式精度反转换为第一数据存储格式精度,得到目标训练样本数据集;
训练模块34,用于对目标训练样本数据集进行训练;
输出模35,用于输出训练好的神经网络模型。
其中,第二获取模块31、数据预处理模块32、第二量化模块33、训练模块34以及输出模块35的具体实现方式,可以参见上述图8所对应实施例中的训练流程的描述,这里将不再进行赘述。
请参见图9,第二量化模块33可以包括:第二精度确定单元331、第二精度转换单元332、第二量化生成单元333。
第二精度确定单元331,确定归一化数据集中的归一化后的训练样本数据具备的第二数据存储格式精度;
第二精度转换单元332,用于将量化数据集中的量化训练样本数据,从第二数据存储格式精度转换为第一数据存储格式精度,得到具有第一数据存储格式精度的目标训练样本数据;
第二量化生成单元333,用于生成包含目标训练样本数据的目标训练样本数据集。
其中,第二精度确定单元331、第二精度转换单元332、第二量化生成单元333的具体实现方式,可以参见上述图9所对应实施例中的训练流程的描述,这里将不再进行赘述。
在本申请实例中,通过对初始数据集中的训练样本数据做归一化处理后,从第一数据存储格式精度转换成第二数据存储格式精度得到量化数据集,再对量化数据集做压缩处理得到压缩数据包,从而在接收到模型训练指令时,将压缩数据包做数据预处理后传给神经网络模型训练。其中,第二数据存储格式精度对应的数据存储量低于第一数据存储格式精度。采用本申请实施提供的技术方案,通过预制量化数据集,将原有的初始数据集压缩,不仅降低了存储成本,还可以加快数据集读取和解压速度,达到加速神经网络训练的效果。同时在某些场景下,神经网络模型训练队精度要求不敏感,量化数据集并不会降低训练好的模型在验证集上的精度。
进一步地,请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,上述图9所对应实施例中的装置2可以应用于上述计算机设备8000,上述计算机设备8000可以包括:处理器8001,网络接口8004和存储器8005,此外,上述计算机设备8000还包括:用户接口8003,和至少一个通信总线8002。其中,通信总线8002用于实现这些组件之间的连接通信。网络接口8004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器8005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器8005可选的还可以是至少一个位于远离前述处理器8001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器8005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的计算机设备8000中,网络接口8004可提供网络通讯功能;而用户接口8003主要用于为用户提供输入的接口;而处理器8001可以用于调用存储器8005中存储的设备控制应用程序,以实现:
获取初始数据集;初始数据集中的训练样本数据具备第一数据存储格式精度;
对初始数据集中的训练样本数据进行归一化处理,得到归一化数据集;
将归一化数据集中的归一化后的训练样本数据,从第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集;第二数据存储格式精度对应的数据存储量低于第一数据存储格式精度;
压缩量化数据集,得到压缩数据包;压缩数据包用于经过数据预处理后进行神经网络模型训练;数据预处理是指在接收到模型训练指令时对压缩数据包进行解压以得到量化数据集的处理过程。
应当理解,本申请实施例中所描述的计算机设备8000可执行前文图3所对应实施例中对该数据处理方法的描述,也可执行前文图9所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理的计算机设备8000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3所对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种基于神经网络的数据处理方法,其特征在于,包括:
获取初始数据集;所述初始数据集中的训练样本数据具备第一数据存储格式精度;
对所述初始数据集中的所述训练样本数据进行归一化处理,得到归一化数据集;
将所述归一化数据集中的归一化后的训练样本数据,从所述第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集;所述第二数据存储格式精度对应的数据存储量低于所述第一数据存储格式精度;所述第一数据存储格式精度所指示的浮点型数据的位数,大于所述第二数据存储格式精度所指示的浮点型数据的位数;所述位数是指浮点型数据在存储时所占用的比特位的数量;
压缩所述量化数据集,得到压缩数据包;所述压缩数据包用于经过数据预处理后进行神经网络模型训练;所述数据预处理是指在接收到模型训练指令时对所述压缩数据包进行解压以得到所述量化数据集的处理过程。
2.根据权利要求1所述的方法,其特征在于,所述对所述初始数据集中的所述训练样本数据进行归一化处理,得到归一化数据集,包括:
获取所述初始数据集中所述第一数据存储格式精度为第一浮点精度的训练样本数据,作为浮点样本数据;
从所述浮点样本数据中获取最大值浮点样本数据和最小值浮点样本数据;
根据所述最大值浮点样本数据和所述最小值浮点样本数据,对所述浮点样本数据进行归一化处理,得到归一化数据集。
3.根据权利要求2所述的方法,其特征在于,所述根据所述最大值浮点样本数据和所述最小值浮点样本数据,对所述浮点样本数据进行归一化处理,得到归一化数据集,包括:
获取所述最大值浮点样本数据和所述最小值浮点样本数据的差值,作为归一化分母;
获取所述浮点样本数据与所述最小值浮点样本数据的差值,作为归一化分子;
获取所述归一化分子与所述归一化分母的比值,作为归一化后的训练样本数据,生成包含所述归一化后的训练样本数据的归一化数据集。
4.根据权利要求1所述的方法,其特征在于,所述将所述归一化数据集中的归一化后的训练样本数据,从所述第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集,包括:
当所述第一数据存储格式精度为第一浮点精度时,获取所述第一浮点精度的第一指数偏移量;
获取所述归一化数据集中的归一化后的训练样本数据的第一浮点指数;
将所述第一浮点指数与所述第一指数偏移量之差,作为指数参数;
获取第二浮点精度的第二指数偏移量;
将所述指数参数与所述第二指数偏移量之和,作为第二浮点指数;
获取所述归一化数据集中的归一化后的训练样本数据的第一浮点尾数;
获取所述第二浮点精度的指数数据存储长度和尾数数据存储长度;
根据所述第二浮点精度的尾数数据存储长度与所述第一浮点尾数,获取第二浮点尾数;所述第二浮点尾数的数据长度等于所述第二浮点精度的尾数数据存储长度;
根据所述归一化后的训练样本数据的数据符号、所述第二浮点指数以及所述第二浮点尾数,生成具有所述第二浮点精度的量化训练样本数据,得到量化数据集。
5.根据权利要求1所述的方法,其特征在于,压缩所述量化数据集得到压缩数据包,包括:
根据所述量化数据集中的量化训练样本数据,获得待压缩字符串;
创建压缩窗口;所述压缩窗口包括匹配区和待编码缓冲区;
根据所述待编码缓冲区的长度和编码遍历方向,将所述压缩窗口在所述待压缩字符串上滑动;
在滑动后的所述压缩窗口中,获取所述待编码缓冲区所覆盖的字符,组成待编码字符串,获取所述匹配区所覆盖的字符,组成匹配字符串,将所述匹配字符串与所述待编码字符串进行匹配;
若在所述匹配字符串与所述待编码字符串中匹配出最长字符串,则输出字符标记编码,根据所述最长字符串的字符长度将所述压缩窗口沿所述编码遍历方向继续滑动;
若在所述匹配字符串与所述待编码字符串中未匹配出最长字符串,则输出普通字符编码,将所述压缩窗口沿所述编码遍历方向滑动单位长度;
当所述待压缩字符串中的末尾字符被所述匹配区覆盖时,根据输出的所述字符标记编码和所述普通字符编码,生成所述量化数据集对应的压缩数据包。
6.根据权利要求1所述的方法,其特征在于,还包括:
当获取模型训练指令时,对所述压缩数据包进行数据预处理后得到所述量化数据集,将所述量化数据集中的量化训练样本数据,从所述第二数据存储格式精度反转换为所述第一数据存储格式精度,得到目标训练样本数据集;
将所述目标训练样本数据集传给所述神经网络模型进行训练。
7.一种基于神经网络的数据处理装置,其特征在于,包括:
第一获取模块,用于获取初始数据集;所述初始数据集中的训练样本数据具备第一数据存储格式精度;
归一化模块,用于对所述初始数据集中的训练样本数据进行归一化处理,得到归一化数据集;
第一量化模块,用于将所述归一化数据集中的归一化后的训练样本数据,从第一数据存储格式精度转换为第二数据存储格式精度,得到量化数据集;所述第二数据存储格式精度对应的数据存储量低于所述第一数据存储格式精度;所述第一数据存储格式精度所指示的浮点型数据的位数,大于所述第二数据存储格式精度所指示的浮点型数据的位数;所述位数是指浮点型数据在存储时所占用的比特位的数量;
压缩模块,用于压缩所述量化数据集得到压缩数据包;所述压缩数据包用于经过数据预处理后进行神经网络模型训练;所述数据预处理是指在接收到模型训练指令时对所述压缩数据包进行解压以得到所述量化数据集的处理过程。
8.根据权利要求7所述的装置,其特征在于,还包括:
第二获取模块,用于获取模型训练指令;
数据预处理模块,用于对所述压缩数据包进行解压以得到所述量化数据集;
第二量化模块,用于将所述量化数据集中的量化训练样本数据,从所述第二数据存储格式精度反转换为所述第一数据存储格式精度,得到目标训练样本数据集;
训练模块,用于对所述目标训练样本数据集进行神经网络模型训练。
9.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供网络通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077861.1A CN112052916B (zh) | 2020-10-10 | 2020-10-10 | 基于神经网络的数据处理方法、装置以及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077861.1A CN112052916B (zh) | 2020-10-10 | 2020-10-10 | 基于神经网络的数据处理方法、装置以及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052916A CN112052916A (zh) | 2020-12-08 |
CN112052916B true CN112052916B (zh) | 2024-03-01 |
Family
ID=73605455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011077861.1A Active CN112052916B (zh) | 2020-10-10 | 2020-10-10 | 基于神经网络的数据处理方法、装置以及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052916B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112862073B (zh) * | 2021-02-03 | 2022-11-18 | 北京大学 | 一种压缩数据分析方法、装置、存储介质及终端 |
CN118244993A (zh) * | 2024-05-22 | 2024-06-25 | 北京灵汐科技有限公司 | 数据存储方法、数据处理方法及装置、电子设备、介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717585A (zh) * | 2019-09-30 | 2020-01-21 | 上海寒武纪信息科技有限公司 | 神经网络模型的训练方法、数据处理方法和相关产品 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5895545B2 (ja) * | 2012-01-17 | 2016-03-30 | 富士通株式会社 | プログラム、圧縮ファイル生成方法、圧縮符号伸張方法、情報処理装置、および記録媒体 |
US9104473B2 (en) * | 2012-03-30 | 2015-08-11 | Altera Corporation | Conversion and compression of floating-point and integer data |
US10997492B2 (en) * | 2017-01-20 | 2021-05-04 | Nvidia Corporation | Automated methods for conversions to a lower precision data format |
-
2020
- 2020-10-10 CN CN202011077861.1A patent/CN112052916B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717585A (zh) * | 2019-09-30 | 2020-01-21 | 上海寒武纪信息科技有限公司 | 神经网络模型的训练方法、数据处理方法和相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN112052916A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200302276A1 (en) | Artificial intelligence semiconductor chip having weights of variable compression ratio | |
JP2020173782A (ja) | 画像エンコーディング方法及び装置並びに画像デコーディング方法及び装置 | |
CN110175641B (zh) | 图像识别方法、装置、设备和存储介质 | |
CN112052916B (zh) | 基于神经网络的数据处理方法、装置以及可读存储介质 | |
CN113132723B (zh) | 一种图像压缩方法及装置 | |
CN110704597B (zh) | 对话***可靠性校验方法、模型生成方法及装置 | |
CN116361256B (zh) | 基于日志解析的数据同步方法及*** | |
CN112786003A (zh) | 语音合成模型训练方法、装置、终端设备及存储介质 | |
CN111767697B (zh) | 文本处理方法、装置、计算机设备以及存储介质 | |
CN114896067A (zh) | 任务请求信息的自动生成方法、装置、计算机设备及介质 | |
WO2022246986A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN114154392A (zh) | 基于区块链和联邦学习的模型共建方法、装置及设备 | |
CN112652299B (zh) | 时间序列语音识别深度学习模型的量化方法及装置 | |
CN116614637B (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN117634459A (zh) | 目标内容生成及模型训练方法、装置、***、设备及介质 | |
CN113554719B (zh) | 一种图像编码方法、解码方法、存储介质及终端设备 | |
CN114913871A (zh) | 目标对象分类方法、***、电子设备及存储介质 | |
CN114501011A (zh) | 图像压缩方法、图像解压缩方法及装置 | |
EP3683733A1 (en) | A method, an apparatus and a computer program product for neural networks | |
CN110868615B (zh) | 一种视频处理方法、装置、电子设备以及存储介质 | |
CN116778264B (zh) | 基于类增学习的对象分类方法、图像分类方法及相关设备 | |
CN117371433B (zh) | 一种标题预测模型的处理方法和装置 | |
CN116719424B (zh) | 一种类型识别模型的确定方法及相关装置 | |
CN114302425B (zh) | 设备配网方法、装置、存储介质及电子设备 | |
CN114492457B (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 |