数据处理方法、装置及计算机可读存储介质
文献发布时间:2023-06-19 09:23:00
技术领域
本说明书属于人工智能领域,特别是涉及一种数据处理方法、装置及计算机可读存储介质。
背景技术
目前,为了提高神经网络的计算效率,经常会在利用神经网络对待处理数据进行处理时,对处理过程中涉及到的数据,例如,待处理数据及神经网络中的参数,进行定点化处理。进一步地,为了实现定点化处理,一般会预先设定数据的表达范围,如果数据超过该范围,就对数据进行截断处理。
现有技术中,为了进一步对神经网络的处理过程进行优化,往往会引入数据转换算法,具体的,是在利用神经网络对待处理数据进行处理时,利用指定数据转换算法,对待处理数据及参数进行数据转换,以此优化处理过程中涉及到的计算操作。
但是,基于指定数据转换算法对参数进行数据转换处理的操作,可能会导致参数超过该数据表达范围,进而会导致参数被截断,使得神经网络的处理精度降低,降低利用该神经网络对待处理数据的处理效果。
发明内容
本说明书提供一种数据处理方法、装置及计算机可读存储介质,以便解决由于引入指定数据转换算法导致的神经网络对待处理数据的处理效果被降低的问题。
为了解决上述技术问题,本说明书是这样实现的:
第一方面,本说明书实施例提供了一种数据处理方法,该方法包括:
基于目标训练数据、所述目标训练数据对应的真实值,确定初始神经网络的误差程度;
若所述误差程度不在预设范围内,则基于所述误差程度对所述初始神经网络中的参数进行调整;
基于指定数据转换算法,对调整后的所述参数进行数据转换处理;
在完成所述数据转换处理之后,基于所述目标训练数据、所述目标训练数据对应的真实值,继续对所述初始神经网络进行训练,直至所述损失程度在所述预设范围内;
将损失程度在所述预设范围内的初始神经网络确定为目标神经网络。
第二方面,本说明书实施例提供了一种数据处理方法,该方法包括:
对待处理数据进行定点化处理,得到定点化处理数据;
基于指定数据转换算法,对所述定点化处理数据进行数据转换处理,得到转换后的数据;
基于目标神经网络中的预训练参数,对所述转换后的数据进行处理,得到处理结果;其中,所述目标神经网络是利用第一方面中的方法生成的。
第三方面,本说明书实施例提供了一种数据处理装置,该装置包括:
第一确定模块,用于基于目标训练数据、所述目标训练数据对应的真实值,确定初始神经网络的误差程度;
调整模块,用于若所述误差程度不在预设范围内,则基于所述误差程度对所述初始神经网络中的参数进行调整;
转换模块,用于基于指定数据转换算法,对调整后的所述参数进行数据转换处理;
训练模块,用于在完成所述数据转换处理之后,基于所述目标训练数据、所述目标训练数据对应的真实值,继续对所述初始神经网络进行训练,直至所述损失程度在所述预设范围内;
第二确定模块,用于将损失程度在所述预设范围内的初始神经网络确定为目标神经网络。
第四方面,本说明书实施例提供了一种数据处理装置,该装置包括:
第一处理模块,用于对待处理数据进行定点化处理,得到定点化处理数据;
转换模块,用于基于指定数据转换算法,对所述定点化处理数据进行数据转换处理,得到转换后的数据;
第二处理模块,用于基于目标神经网络中的预训练参数,对所述转换后的数据进行处理,得到处理结果;其中,所述目标神经网络是利用第三方面中的装置生成的。
第五方面,本说明书实施例提供了一种计算机可读存储介质,其所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面中的数据处理方法的步骤。
第六方面,本说明书实施例提供了一种可移动平台,该可移动平台具有有限算力,该可移动平台用于实现第一方面或第二方面中的数据处理方法的步骤。
第七方面,本说明书实施例提供了一种图像获取装置,包括处理器,所述图像获取装置用于实现第一方面或第二方面中的数据处理方法的步骤。
第八方面,本说明书实施例提供了一种无人飞行器,所述无人飞行器用于实现第一方面或第二方面中的数据处理方法的步骤。
第九方面,本说明书实施例提供了一种手持稳定云台,所述手持稳定云台用于实现第一方面或第二方面中的数据处理方法的步骤。
在本说明书实施例中,可以基于目标训练数据、目标训练数据对应的真实值,确定初始神经网络的误差程度,然后,若误差程度不在预设范围内,则基于误差程度对初始神经网络中的参数进行调整,接着,基于指定数据转换算法,对调整后的参数进行数据转换处理,在完成数据转换处理之后,基于目标训练数据、目标训练数据对应的真实值,继续对初始神经网络进行训练,直至损失程度在预设范围内,最后,将损失程度在预设范围内的初始神经网络确定为目标神经网络。本说明书实施例中,通过在目标神经网络的生成过程中,预先模拟对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,这样,使得后续的应用过程中,仅需对待处理数据进行数据转换处理,而无需对参数进行数据转换处理,进而可以避免由于参数被截断所导致精度降低的问题,进而实现在引入指定数据转换算法的同时,确保神经网络对待处理数据的处理效果。
附图说明
图1是本说明书实施例提供的一种数据处理方法;
图2是本说明书实施例提供的另一种数据处理方法;
图3是本说明书实施例提供的一种数据处理方法的步骤流程图;
图4是本说明书实施例提供的另一种数据处理方法的步骤流程图;
图5是本说明书实施例提供的一种数据处理装置的框图;
图6是本说明书实施例提供的一种数据处理装置的框图;
图7为实现本说明书各个实施例的一种终端的硬件结构示意图;
图8为本说明书实施例提供的一种计算处理设备的框图;
图9为本说明书实施例提供的一种便携式或者固定存储单元的框图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
图1是本说明书实施例提供的一种数据处理方法,如图1所示,该方法可以包括:
步骤101、基于目标训练数据、所述目标训练数据对应的真实值,确定初始神经网络的误差程度。
本说明书实施例中,该初始神经网络可以是基于所需进行的数据处理搭建的,所需进行的数据处理不同,该初始神经网络的构成可以不同,相应地,目标训练数据及目标训练数据对应的真实值可以不同,示例的,以初始神经网络是用于对图像进行清晰度增强处理的神经网络为例,该目标训练数据可以是样本图像,目标训练数据对应的真实值可以是与样本图像的图像内容且清晰度大于该样本图像的真实图像。以初始神经网络是用于对图像进行分类处理的神经网络为例,该目标训练数据可以是样本图像,目标训练数据对应的真实值可以是该样本图像的真实类别。进一步地,该初始神经网络可以包含多个层级,不同的层级中可以定义有不用的参数,每个层级中的参数可以为随机设置的初始参数,每个层级可以执行不同的操作,示例的,该初始神经网络可以包括输入层,特征提取层,全连接层,输出层等等。进一步地,该初始神经网络可以为卷积神经网络,其中,卷积神经网络是一种深度前馈人工神经网络,主要应用于图像处理领域,卷积神经网络的人工神经元可以响应一部分覆盖范围内的周围单元,其进行对图像进行处理时,内部包含了大量的卷积操作。
进一步地,在基于目标训练数据、目标训练数据对应的真实值确定初始误差程度时,可以先将目标训练数据输入初始神经网络中,相应地,该初始神经网络中的各个层级会依次对该目标训练数据进行处理,最终会输出一个预测值。示例的,以层级为卷积层为例,该层级可以是对前一层级输出的对目标训练数据的处理结果进行卷积处理,以层级为输出层为例,该层级可以是将对目标训练数据的最终处理结果,即,预测值,输出。
接着,可以基于预设的损失函数、该预测值及目标训练数据对应的真实值,计算该初始神经网络的误差程度,具体的,可以是将预测值及目标训练数据对应的真实值输入该预设的损失函数,然后对损失函数做梯度运算,计算损失函数的梯度值,得到该初始神经网络的误差程度,其中,该梯度值可以是采用反向传播算法进行计算得到的,该误差程度可以表示初始神经网络生存的预测值与该目标样本数据对应的真实值之间的偏差程度。
步骤102、若所述误差程度不在预设范围内,则基于所述误差程度对所述初始神经网络中的参数进行调整。
本说明书实施例中,该预设范围可以根据实际应用场景和实际需求设定,本说明书实施例对其不加以限制。进一步地,如果误差程度在预设范围内,则可以认为预测值与目标样本数据对应的真实值之间的偏差程度足够小,此时,可以认为初始神经网络的处理能力能够满足需求,该初始神经网络能够正确对数据进行相应的处理,相反的,如果误差程度不在预设范围内,则可以认为预测值与目标样本数据对应的真实值之间的偏差程度较大,此时,可以认为初始神经网络的处理能力还不能够满足需求,该初始神经网络还不能正确对数据进行相应的处理,因此,可以基于误差程度对初始神经网络中的参数进行调整。进一步地,可以基于随机梯度下降法进行调整,具体的,可以先计算梯度值与预设步长的乘积,接着计算参数与该乘积之差,进而得到调整后的参数。这样,基于随机梯度下降法对参数进行调整的方式,可以使得神经网络的误差程度朝着收敛程度最大的方向下降,进而可以提高神经网络模型的收敛速度,进而提高生成神经网络的效率。
当然,也可以采用其他的参数调节方式对参数进行调整,例如,直接计算参数与预设固定值的差值,以作为调整后的参数,本说明书实施例对此不作限定。
步骤103、基于指定数据转换算法,对调整后的所述参数进行数据转换处理。
本说明书实施例中,该指定数据转换算法可以是需要在应用过程中引入的算法,该指定数据转换算法可以是能够提高计算效果的算法,示例的,该指定数据转换算法可以是基于余数定理的数据转换算法,或者,该指定数据转换算法也可以是基于拉格朗日插值定理的数据转换算法,或者,该指定数据转换算法也可以是基于余数定理的数据转换算法以及基于拉格朗日插值定理的数据转换算法。
进一步地,由于生成目标神经网络的过程中,往往会对目标神经网络中的参数不断进行调整,因此,本步骤中可以在生成过程中对参数预先进行数据转换处理,这样,即使出现参数被截断的问题,也不会影响到最终的神经网络模型的精度,同时,通过在目标神经网络的生成过程中,预先对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,这样,在后续的应用过程中,就无需对参数进行数据转换处理,进而可以避免应用过程中由于参数被截断所导致精度降低的问题。
步骤104、在完成所述数据转换处理之后,基于所述目标训练数据、所述目标训练数据对应的真实值,继续对所述初始神经网络进行训练,直至所述损失程度在所述预设范围内。
本说明书实施例中,由于前述步骤中已经对初始神经网络中的参数进行了更新,因此,可以基于目标训练数据、目标训练数据对应的真实值,继续对初始神经网络进行训练,其中,该继续训练的流程可以从确定初始神经网络的误差程度开始,重新执行上述处理流程。这样,在重复训练的过程中不断调整初始神经网络中的参数,以提高初始神经网络的处理能力,直到某一轮训练过程中,该初始神经网络的损失程度落入预设范围内,此时,可以停止训练。
步骤105、将损失程度在所述预设范围内的初始神经网络确定为目标神经网络。
本说明书实施例中,通过不断训练,来降低初始神经网络的误差程度,进一步地,如果损失程度在预设范围内,则可以认为初始神经网络的处理能力能够满足需求,该初始神经网络能够正确对数据进行相应的处理,因此,可以将该初始神经网络确定为目标神经网络。进一步地,生成的目标神经网络可以部署至常用的平台上进行应用,示例的,该平台可以为精简指令集计算机微处理器(Advanced RISC Machines,ARM)、数字信号处理器(Digital Signal Processing,DSP)、现场可编程门阵列处理器(Field-ProgrammableGate Array,FPGA)、图形处理器(Graphics Processing Unit,GPU)等等。
综上所述,本说明书实施例提供的数据处理方法,可以基于目标训练数据、目标训练数据对应的真实值,确定初始神经网络的误差程度,然后,若误差程度不在预设范围内,则基于误差程度对初始神经网络中的参数进行调整,接着,基于指定数据转换算法,对调整后的参数进行数据转换处理,在完成数据转换处理之后,基于目标训练数据、目标训练数据对应的真实值,继续对初始神经网络进行训练,直至损失程度在预设范围内,最后,将损失程度在预设范围内的初始神经网络确定为目标神经网络。本说明书实施例中,通过在目标神经网络的生成过程中,预先模拟对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,这样,使得后续的应用过程中,仅需对待处理数据进行数据转换处理,而无需对参数进行数据转换处理,进而可以避免由于参数被截断所导致精度降低的问题,进而实现在引入指定数据转换算法的同时,确保神经网络对待处理数据的处理效果。
图2是本说明书实施例提供的另一种数据处理方法,如图2所示,该方法可以包括:
步骤201、对初始训练数据进行定点化处理,得到定点化训练数据。
本步骤中,该定点化处理指的是将浮点数按定点化规则转换为定点表示的定点数,这样,通过对初始训练数据进行定点化处理,可以将初始训练数据中的浮点数转换为定点数,其中,浮点数指的是小数点的位置会发生浮动,其整数位和小数位会发生变化的数,定点数指的是整数位和小数位确定的数。
具体的,进行转换时,可以先对初始训练数据中的每个浮点数进行估值,然后基于预设的定点数的数据表达范围进行定标,确定定标值,其中,定标值表示的是小数点后的位数,定标值越大,数据的精度越大但所需的表达范围也会越大,对终端的硬件要求也越高,反之,定标值越小,数据的精度越小但所需的表达范围也会越小,对终端的硬件要求也越低,相应地,在确定定标值时,可以在确保不会超出预设数据表达范围的同时,尽量选取较大的值作为定标值,以确保数据精度。最后,基于定标值对浮点数的小数位进行截断,示例的,假设浮点数为3.1415926,定标值为4,那么可以将该浮点数转换为3.1415,当然,也可以基于被截断的小数位的值,对截断后的最后一个小数位进行四舍五入,例如,可以将该浮点数转换为3.1416。
步骤202、对所述定点化训练数据进行逆定点化处理,得到所述目标训练数据。
本步骤中,该逆定点化处理指的是将定点数按逆定点化规则转换为浮点数,具体的,在进行转换时,可以按照该定点数在被转换为定点数之前的小数位的位数,对该定点数的小数位进行补齐,以使小数位的位数与被转换之前位数相同,进而实现转换,其中,补齐的数值,可以是利用随机生成算法生成的。本步骤中,以逆定点化处理之后的浮点数作为目标训练数据,可以使得后续生成目标神经网络的过程中,能够使用浮点数进行训练,而浮点数的表达范围较大,因此,一定程度上可以减少训练过程中各个计算操作出现数据溢出的概率。同时,受到精确度的影响,补齐之后的浮点数会存在精度损失,而实际应用场景中,在后续的应用阶段中,利用训练好的目标神经网络对真实的待处理数据进行处理时,往往会对待处理数据先进行定点化处理,这样,就会带来一定的数据精度损失,因此,本说明书实施例中,通过在训练阶段进行定点化处理及逆定点化处理,可以预先模拟定点化处理带来的数据损失,进而可以提高后续应用阶段中,利用训练好的目标神经网络对待处理数据进行处理时的处理精度。
步骤203、基于目标训练数据、所述目标训练数据对应的真实值,确定初始神经网络的误差程度。
具体的,本步骤的具体实现方式可以参照前述步骤102,本说明书实施例在此不做赘述。
步骤204、若所述误差程度不在预设范围内,则基于所述误差程度对所述初始神经网络中的参数进行调整。
具体的,本步骤的具体实现方式可以参照前述步骤102,本说明书实施例在此不做赘述。
步骤205、基于指定数据转换算法,对调整后的所述参数进行数据转换处理。
本步骤中,以该指定数据转换算法为基于余数定理的数据转换算法为例,该基于余数定理的数据转换算法能够针对参与计算的各个项进行线性分解以及线性组合,用非耗时运算操作,即加法操作,替代耗时运算操作,即乘法操作,以达到减少算法时间度。
具体的,本步骤可以通过下述子步骤(1)~子步骤(2)实现:
子步骤(1):基于所指定数据转换算法中定义的变换矩阵及所述变换矩阵的转置矩阵,对调整后的所述权重矩阵进行卷积处理。
本步骤中,假设进行卷积处理后的权重矩阵为C,那么C可以表示为:
C=[GgG
其中,⊙表示数组元素依次相乘,g表示预设的卷积核,G表示用于对卷积核进行转换的变化矩阵,G
进一步地,在进行卷积处理之后,还可以对卷积处理后的权重矩阵进行定点化处理,接着,在完成定点化处理之后,对所述卷积处理后的权重矩阵进行逆定点化处理。具体的,定点化处理的实现方式可以参照上述步骤201中的描述,逆定点化处理的实现方式可以参照上述步骤202中的描述,本说明书实施例在此不做赘述。由于浮点数的表达范围较大,因此,本说明书实施例中,将参数定点化之后,再逆定点化为浮点数,一定程度上可以减少训练过程中各个计算操作出现数据溢出的概率。同时,受到精确度的影响,逆定点化之后得到的浮点数会存在精度损失,而实际应用场景中,在后续的应用阶段中,利用训练好的目标神经网络对真实的待处理数据进行处理时,可能会对参数也进行定点化处理,这样,就会带来一定的数据精度损失,因此,本说明书实施例中,通过在训练阶段对参数进行定点化处理及逆定点化处理,可以预先模拟定点化处理带来的数据损失,进而可以提高后续应用阶段中,利用训练好的目标神经网络对待处理数据进行处理时的处理精度。
本说明书实施例中,通过对参数进行
子步骤(2):基于所述指定数据转换算法中定义的反变换矩阵及所述反变换矩阵的转置矩阵,对卷积处理后的所述权重矩阵进行转换。
具体的,假设完成数据转换处理后的权重矩阵为Y,那么Y可以表示为:Y=A
其中,A表示用于对卷积处理后的权重矩阵C进行转换的逆变化矩阵,A
步骤206、在完成所述数据转换处理之后,基于所述目标训练数据、所述目标训练数据对应的真实值,继续对所述初始神经网络进行训练,直至所述损失程度在所述预设范围内。
具体的,本步骤的具体实现方式可以参照前述步骤102,本说明书实施例在此不做赘述。
步骤207、将损失程度在所述预设范围内的初始神经网络确定为目标神经网络。
具体的,本步骤的具体实现方式可以参照前述步骤102,本说明书实施例在此不做赘述。
综上所述,本说明书实施例提供的数据处理方法,会对初始训练数据进行定点化处理及逆定点化处理,以生成目标训练数据,这样,可以预先模拟定点化处理带来的数据损失,进而可以提高后续应用阶段中,利用训练好的目标神经网络对待处理数据进行处理时的处理精度。接着,会基于目标训练数据、目标训练数据对应的真实值,确定初始神经网络的误差程度,接着,若误差程度不在预设范围内,则基于误差程度对初始神经网络中的参数进行调整,接着,基于指定数据转换算法,对调整后的参数进行数据转换处理,在完成数据转换处理之后,基于目标训练数据、目标训练数据对应的真实值,继续对初始神经网络进行训练,直至损失程度在预设范围内,最后,将损失程度在预设范围内的初始神经网络确定为目标神经网络。本说明书实施例中,通过在目标神经网络的生成过程中,预先模拟对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,这样,使得后续的应用过程中,仅需对待处理数据进行数据转换处理,而无需对参数进行数据转换处理,进而可以避免由于参数被截断所导致精度降低的问题,进而实现在引入指定数据转换算法的同时,确保神经网络对待处理数据的处理效果。
图3是本说明书实施例提供的一种数据处理方法的步骤流程图,如图3所示,该方法可以包括:
步骤301、对待处理数据进行定点化处理,得到定点化处理数据。
示例的,以目标神经网络是用于对图像进行处理的卷积神经网络,待处理数据为待处理图像为例,本步骤中,可以将该待处理图像对应的图像矩阵中,每个元素的值转换为定点数,进而得到定点化处理数据。其中,该图像矩阵中的元素即为该待处理图像中的像素,元素的值即为该像素的像素值。具体的,将浮点数转换为定点数的实现方式可以参照前述步骤201中的内容,本说明书实施例对此不作限定。
由于定点数的整数位及小数位是确定,而浮点数的整数位及小数位会发生浮动,因此,在基于浮点数进行计算的计算结果的位数的增多程度往往会大于基于定点数进行计算的计算结果的位数,这样,就需要终端提供位数较多的寄存器以支持计算操作。本说明书实施例中,通过待处理数据进行定点化处理,得到定点化处理数据,可以使得后续生成过程中的能够以定点化的数据进行计算,这样,就无需提供位数较多的寄存器,进而可以节省终端的成本,同时,由于定点数的位数固定,相对于位数会浮动的浮点数而言,其计算量往往也会较小,因此,本步骤中,通过先对待处理数据进行定点化处理,可以使得该方法能够适用于更多计算能力有限的终端。
步骤302、基于指定数据转换算法,对所述定点化处理数据进行数据转换处理,得到转换后的数据。
本说明书实施例中,该指定数据转换算法可以是能够提高计算效果的算法,示例的,该指定数据转换算法可以是基于余数定理的数据转换算法,或者,该指定数据转换算法也可以是基于拉格朗日插值定理的数据转换算法,这两个算法能够针对参与计算的各个项进行线性分解以及线性组合,用非耗时运算操作,即加法操作,替代耗时运算操作,即乘法操作,进而可以减少算法时间度,提高处理效率。需要说明的是,基于拉格朗日插值定理的数据转换算法卷积核较大时,增加的加法数量会以远超卷积核大小的速度增长,最终会导致增加的加法操作所耗费的时间甚至超过节省下来的乘法操作所耗费的时间,因此,在选择指定数据转换算法时,可以基于所使用的卷积核的大小进行选择,以确保所引入的指定数据转换算法,能够起到提高处理效率的效果。需要说明是,对定点化处理数据进行数据转换处理之后,可能会导致数据溢出,因此,本说明书实施例可以为转换后的数据提供较多存储位进行存储,这样,以避免数据溢出,确保后续的处理过程能够正常进行。
步骤303、基于目标神经网络中的预训练参数,对所述转换后的数据进行处理,得到处理结果。
本步骤中,该目标神经网络可以是前述神经网络生成方法实施例中所示的方法生成的。具体的,可以将转换后的数据输入目标神经网络中,然后基于该目标神经网络中的预训练参数及转换后的数据,进行点乘运算,具体的,该目标神经网络的各个层级可以基于该层级中的参数与该转换后的数据进行点乘,然后将结果输出给下一层级,以基于下一层级继续进行处理,最后,可以该目标神经网络的最后一层的结果,作为点乘结果,进一步地,可以对点乘运算的结果进行数据转换逆处理,得到处理结果,示例的,以指定数据转换算法为基于余数定理的数据转换算法,那么对点乘运算的结果进行数据转换逆处理的过程可以是基于余数定理的数据转换算法中定义的反变换矩阵及反变换矩阵的转置矩阵,进行转换的,具体的转换方式可以参照前述步骤205中的相关描述,本说明书实施例在此不做赘述。
进一步地,现有技术在应用阶段引入指定数据转换算法时,为了避免对参数做指定数据转换算法处理之后,参数超过数据表达范围截断,往往需要为参数提供较多存储位进行存储,这样,就需要应用该目标神经网络的终端配置存储位数较大的寄存器,进而会导致应用成本较大。而本说明书实施例中,由于应用阶段中,无需再对参数做指定数据转换处理,相应地,就无需为参数提供较多存储位,进而可以降低应用成本。
综上所述,本说明书实施例提供的数据处理方法,可以对待处理数据进行定点化处理,得到定点化处理数据,然后基于指定数据转换算法,对定点化处理数据进行数据转换处理,得到转换后的数据,接着,将转换后的数据输入目标神经网络,基于目标神经网络中的预训练参数,对转换后的数据进行处理,得到处理结果。其中,该目标神经网络的生成过程中,预先模拟了对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,因此,本说明书实施例中仅需对待处理数据进行数据转换处理,而无需对参数进行数据转换处理,进而可以避免由于参数被截断所导致精度降低的问题,进而实现在引入指定数据转换算法的同时,确保神经网络对待处理数据的处理效果。
图4是本说明书实施例提供的另一种数据处理方法的步骤流程图,如图4所示,该方法可以包括:
步骤401、基于目标训练数据、所述目标训练数据对应的真实值,确定初始神经网络的误差程度。
具体的,本步骤的实现方式可以参照上述步骤101,本说明书实施例对此不作限定。
步骤402、若所述误差程度不在预设范围内,则基于所述误差程度对所述初始神经网络中的参数进行调整。
具体的,本步骤的实现方式可以参照上述步骤102,本说明书实施例对此不作限定。
步骤403、基于指定数据转换算法,对调整后的所述参数进行数据转换处理。
具体的,本步骤的实现方式可以参照上述步骤103,本说明书实施例对此不作限定。
步骤404、在完成所述数据转换处理之后,基于所述目标训练数据、所述目标训练数据对应的真实值,继续对所述初始神经网络进行训练,直至所述损失程度在所述预设范围内。
具体的,本步骤的实现方式可以参照上述步骤104,本说明书实施例对此不作限定。
步骤405、将损失程度在所述预设范围内的初始神经网络确定为目标神经网络。
具体的,本步骤的实现方式可以参照上述步骤105,本说明书实施例对此不作限定。
步骤406、对待处理数据进行定点化处理,得到定点化处理数据。
具体的,本步骤的实现方式可以参照上述步骤201,本说明书实施例对此不作限定。
步骤407、基于指定数据转换算法,对所述定点化处理数据进行数据转换处理,得到转换后的数据。
具体的,本步骤的实现方式可以参照上述步骤202,本说明书实施例对此不作限定。
步骤408、基于目标神经网络中的预训练参数,对所述转换后的数据进行处理,得到处理结果。
具体的,本步骤的实现方式可以参照上述步骤203,本说明书实施例对此不作限定。
综上所述,本说明书实施例提供的数据处理方法,可以基于目标训练数据、目标训练数据对应的真实值,确定初始神经网络的误差程度,然后,若误差程度不在预设范围内,则基于误差程度对初始神经网络中的参数进行调整,接着,基于指定数据转换算法,对调整后的参数进行数据转换处理,在完成数据转换处理之后,基于目标训练数据、目标训练数据对应的真实值,继续对初始神经网络进行训练,直至损失程度在预设范围内,将损失程度在预设范围内的初始神经网络确定为目标神经网络,接着,可以对待处理数据进行定点化处理,得到定点化处理数据,然后基于指定数据转换算法,对定点化处理数据进行数据转换处理,得到转换后的数据,接着,将转换后的数据输入目标神经网络,基于目标神经网络中的预训练参数,对转换后的数据进行处理,得到处理结果。其中,该目标神经网络的生成过程中,预先模拟了对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,因此,本说明书实施例中仅需对待处理数据进行数据转换处理,而无需对参数进行数据转换处理,进而可以避免由于参数被截断所导致精度降低的问题,进而实现在引入指定数据转换算法的同时,确保神经网络对待处理数据的处理效果。
图5是本说明书实施例提供的一种数据处理装置的框图,如图5所示,该数据处理装置50可以包括:
第一确定模块501,用于基于目标训练数据、所述目标训练数据对应的真实值,确定初始神经网络的误差程度。
调整模块502,用于若所述误差程度不在预设范围内,则基于所述误差程度对所述初始神经网络中的参数进行调整。
转换模块503,用于基于指定数据转换算法,对调整后的所述参数进行数据转换处理。
训练模块504,用于在完成所述数据转换处理之后,基于所述目标训练数据、所述目标训练数据对应的真实值,继续对所述初始神经网络进行训练,直至所述损失程度在所述预设范围内。
第二确定模块505,用于将损失程度在所述预设范围内的初始神经网络确定为目标神经网络。
综上所述,本说明书实施例提供的数据处理装置,可以基于目标训练数据、目标训练数据对应的真实值,确定初始神经网络的误差程度,然后,若误差程度不在预设范围内,则基于误差程度对初始神经网络中的参数进行调整,接着,基于指定数据转换算法,对调整后的参数进行数据转换处理,在完成数据转换处理之后,基于目标训练数据、目标训练数据对应的真实值,继续对初始神经网络进行训练,直至损失程度在预设范围内,最后,将损失程度在预设范围内的初始神经网络确定为目标神经网络。本说明书实施例中,通过在目标神经网络的生成过程中,预先模拟对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,这样,使得后续的应用过程中,仅需对待处理数据进行数据转换处理,而无需对参数进行数据转换处理,进而可以避免由于参数被截断所导致精度降低的问题,进而实现在引入指定数据转换算法的同时,确保神经网络对待处理数据的处理效果。
可选的,所述装置50还包括:
第一处理模块,用于对初始训练数据进行定点化处理,得到定点化训练数据;
第二处理模块,用于对所述定点化训练数据进行逆定点化处理,得到所述目标训练数据。
可选的,所述指定数据转换算法为基于余数定理的数据转换算法;
可选的,所述指定数据转换算法为基于拉格朗日插值定理的数据转换算法。
可选的,所述指定数据转换算法为基于余数定理的数据转换算法及基于拉格朗日插值定理的数据转换算法。
可选的,所述参数为权重矩阵;
所述转换模块503,用于:
基于所述指定数据转换算法中定义的变换矩阵及所述变换矩阵的转置矩阵,对调整后的所述权重矩阵进行卷积处理;
基于所述指定数据转换算法中定义的反变换矩阵及所述反变换矩阵的转置矩阵,对卷积处理后的所述权重矩阵进行转换。
可选的,所述转换模块503,还用于:
对卷积处理后的所述权重矩阵进行定点化处理;
在完成所述定点化处理之后,对卷积处理后的所述权重矩阵进行逆定点化处理。
可选的,所述目标神经网络为卷积神经网络,所述目标训练数据为图像。
综上所述,本说明书实施例提供的数据处理装置,会对初始训练数据进行定点化处理及逆定点化处理,以生成目标训练数据,这样,可以预先模拟定点化处理带来的数据损失,进而可以提高后续应用阶段中,利用训练好的目标神经网络对待处理数据进行处理时的处理精度。接着,会基于目标训练数据、目标训练数据对应的真实值,确定初始神经网络的误差程度,接着,若误差程度不在预设范围内,则基于误差程度对初始神经网络中的参数进行调整,接着,基于指定数据转换算法,对调整后的参数进行数据转换处理,在完成数据转换处理之后,基于目标训练数据、目标训练数据对应的真实值,继续对初始神经网络进行训练,直至损失程度在预设范围内,最后,将损失程度在预设范围内的初始神经网络确定为目标神经网络。本说明书实施例中,通过在目标神经网络的生成过程中,预先模拟对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,这样,使得后续的应用过程中,仅需对待处理数据进行数据转换处理,而无需对参数进行数据转换处理,进而可以避免由于参数被截断所导致精度降低的问题,进而实现在引入指定数据转换算法的同时,确保神经网络对待处理数据的处理效果。
图6是本说明书实施例提供的一种数据处理装置的框图,如图6所示,该数据处理装置60可以包括:
第一处理模块601,用于对待处理数据进行定点化处理,得到定点化处理数据;
转换模块602,用于基于指定数据转换算法,对所述定点化处理数据进行数据转换处理,得到转换后的数据;
第二处理模块603,用于基于目标神经网络中的预训练参数,对所述转换后的数据进行处理,得到处理结果;其中,所述目标神经网络是利用前述实施例中的数据处理装置生成的。
可选的,所述第二处理模块603,用于:
基于所述预训练参数及所述转换后的数据,进行点乘运算;
对所述点乘运算的结果进行数据转换逆处理,得到所述处理结果。
可选的,所述待处理数据为图像。
综上所述,本说明书实施例提供的数据处理装置,可以对待处理数据进行定点化处理,得到定点化处理数据,然后基于指定数据转换算法,对定点化处理数据进行数据转换处理,得到转换后的数据,接着,将转换后的数据输入目标神经网络,基于目标神经网络中的预训练参数,对转换后的数据进行处理,得到处理结果。其中,该目标神经网络的生成过程中,预先模拟了对参数的数据转换处理,以使最终生成的目标神经网络中的参数,达到进行数据转换处理之后的效果,因此,本说明书实施例中仅需对待处理数据进行数据转换处理,而无需对参数进行数据转换处理,进而可以避免由于参数被截断所导致精度降低的问题,进而实现在引入指定数据转换算法的同时,确保神经网络对待处理数据的处理效果。
图7为实现本说明书各个实施例的一种终端的硬件结构示意图,该终端700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、处理器710、以及电源711等部件。本领域技术人员可以理解,图12中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本说明书实施例中,终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本说明书实施例中,射频单元701可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器710处理;另外,将上行的数据发送给基站。通常,射频单元701包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元701还可以通过无线通信系统与网络和其他设备通信。
终端通过网络模块702为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元703可以将射频单元701或网络模块702接收的或者在存储器709中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元703还可以提供与终端700执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元703包括扬声器、蜂鸣器以及受话器等。
输入单元704用于接收音频或视频信号。输入单元704可以包括图形处理器(Graphics Processing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获终端(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元706上。经图形处理器7041处理后的图像帧可以存储在存储器709(或其它存储介质)中或者经由射频单元701或网络模块702进行发送。麦克风7042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元701发送到移动通信基站的格式输出。
终端700还包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板7061的亮度,接近传感器可在终端700移动到耳边时,关闭显示面板7061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器705还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元706用于显示由用户输入的信息或提供给用户的信息。显示单元706可包括显示面板7061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板7061。
用户输入单元707可用于接收输入的数字或字符信息,以及产生与终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板7071上或在触控面板7071附近的操作)。触控面板7071可包括触摸检测终端和触摸控制器两个部分。其中,触摸检测终端检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测终端上接收触摸信息,并将它转换成触点坐标,再送给处理器710,接收处理器710发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7071。除了触控面板7071,用户输入单元707还可以包括其他输入设备7072。具体地,其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板7071可覆盖在显示面板7061上,当触控面板7071检测到在其上或附近的触摸操作后,传送给处理器710以确定触摸事件的类型,随后处理器710根据触摸事件的类型在显示面板7061上提供相应的视觉输出。虽然触控面板7071与显示面板7061是作为两个独立的部件来实现终端的输入和输出功能,但是在某些实施例中,可以将触控面板7071与显示面板7061集成而实现终端的输入和输出功能,具体此处不做限定。
接口单元708为外部终端与终端700连接的接口。例如,外部终端可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的终端的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元708可以用于接收来自外部终端的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端700内的一个或多个元件或者可以用于在终端700和外部终端之间传输数据。
存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器709可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器710是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器709内的软件程序和/或模块,以及调用存储在存储器709内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器710可包括一个或多个处理单元;优选的,处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
终端700还可以包括给各个部件供电的电源711(比如电池),优选的,电源711可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,终端700包括一些未示出的功能模块,在此不再赘述。
可选的,本说明书实施例还提供一种终端,包括处理器710,存储器709,存储在存储器709上并可在所述处理器710上运行的计算机程序,该计算机程序被处理器710执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本说明书的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器来实现根据本说明书实施例的计算处理设备中的一些或者全部部件的一些或者全部功能。本说明书还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本说明书的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
相应地,本说明书实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现所述的数据处理方法的步骤,或者数据处理方法的步骤。
进一步地,本说明书实施例还提供一种可移动平台,该可移动平台具有有限算力,该可移动平台用于实现上述数据处理方法的步骤。进一步地,本说明书实施例还提供一种图像获取装置,该图像获取装置包括处理器,该图像获取装置用于实现上述数据处理方法的步骤。有限算力是指移动平台由于多并发任务或者硬件限制导致分配给数据处理的带宽和/或运算资源有限。例如,可移动平台所具有的处理器处理能力为800M,而运算过程需要1G以上的运算资源。基于本说明书实施例提供的方法,可以极大地减小系统的运算量,从而使有限算力平台的运用成为可能。进一步地,本说明书实施例还提供一种无人飞行器,该无人飞行器用于实现上述数据处理方法的步骤。所述无人机包括动力部、飞行控制部、图像获取部。本说明书实施例可以对图像处理部获取的图像数据,进行处理,通过数据处理方法简化图像处理部的运算复杂度和运算量,从而减少无人机处理器的运算负荷。数据处理结果可以被发送至飞行控制部以控制动力部的运行。
进一步地,本说明书实施例还提供一种手持稳定云台,该手持稳定云台用于实现上述数据处理方法的步骤。手持稳定云台包括控制部、控制电机以及云台轴臂,手持稳定云台还可以带有摄像装置或者通过通信接口外接图像获取装置。本说明书实施例可以对图像处理部获取的图像数据,进行处理,通过数据处理方法简化图像处理部的运算复杂度和运算量,从而减少手持稳定云台的运算负荷。数据处理结果可以被发送至控制部以控制电机的运行。
进一步地,图8为本说明书实施例提供的一种计算处理设备的框图,如图8所示,图8示出了可以实现根据本说明书的方法的计算处理设备。该计算处理设备传统上包括处理器810和以存储器820形式的计算机程序产品或者计算机可读介质。存储器820可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器820具有用于执行上述方法中的任何方法步骤的程序代码的存储空间830。例如,用于程序代码的存储空间830可以包括分别用于实现上面的方法中的各种步骤的各个程序代码。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图9所述的便携式或者固定存储单元。该存储单元可以具有与图8的计算处理设备中的存储器820类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码,即可以由例如诸如810之类的处理器读取的代码,这些代码当由计算处理设备运行时,导致该计算处理设备执行上面所描述的方法中的各个步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本说明书的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本说明书的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本说明书可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上实施例仅用以说明本说明书的技术方案,而非对其限制;尽管参照前述实施例对本说明书进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本说明书各实施例技术方案的精神和范围。
- PET 数据处理方法、PET 数据处理装置、计算机可读的存储介质、以及数据处理方法
- 一种数据处理方法、装置、计算机设备和计算机可读存储介质