System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及人工智能深度学习,尤其是神经网络前处理的方法、装置及系统。
技术介绍
1、在近几年,深度神经网络的发展迅猛,cnn(feed forward neural networks,前馈神经网络)神经网络也已经广泛应用于图像识别等领域。然而cnn神经网络涉及的计算往往需要大量的计算资源和时间,使得cnn加速器设计受限于硬件资源,并且神经网络的使用也会受到计算速度的限制。在目前神经网络的应用中,大部分还是基于计算机平台,利用大型的计算机服务器或者高端的电脑来完成神经网络的训练及推断,还有部分的应用是将训练的过程放在计算机平台,把推断的过程放在移动平台上。在降低成本缩小体积的要求下,使用嵌入式开发将成为首选。
2、近年来,针对深度神经网络嵌入式开发的研究有了一些进展:使用dsp(digitalsignal processing,数字信号处理)和arm(acorn risc machine,进阶精简指令集机器)来计算神经网络庞大的数据量,但效率低下的同时散热问题也不容易解决;制作专用的asic(application-specific integrated circuit,应用型专用集成电路)芯片则需要比较长的时间周期和较高的产品成本;故利用fpga(field programmable gate array,现场可编程门阵列)设计cnn神经网络卷积硬件加速器的研究成为热门方向,fpga的特性是可编程,在发展如此迅速的人工智能领域下很容易适应新的算子。神经网络运行前一般需要对输入的数据做前处理,使得第一层神经网络的输
3、现有技术的做法是是使用cpu做神经网络数据的前处理运算,嵌入式设备的cpu大多是arm cpu,其运行浮点运算的速度很慢,故而整体的前处理运算会耗费大量的时间,进一步影响神经网络的运行性能。
技术实现思路
1、本专利技术提供了神经网络前处理的方法、装置及系统,通过神经网络的前处理运算,降低设备耗费的资源,提高神经网络的运行性能。
2、为了解决上述技术问题,本专利技术提供了神经网络前处理方法,包括:
3、接收待处理的原始输入数据,并对所述原始输入数据进行数据提取,获得所述原始输入数据对应的第一浮点系数;
4、根据当前的移位参数,对所述第一浮点系数进行移位迭代处理,直到移位后的第一浮点系数大于预设阈值,获得迭代后的第一浮点系数和当前迭代对应的移位参数;其中,每次移位迭代处理后,将当前的移位参数增加第一数值,获得下次移位迭代处理对应的移位参数;第一次迭代的移位参数为预设值;
5、根据所述当前迭代对应的移位参数,对所述原始输入数据进行移位处理,获得定点参数,完成神经网络前处理方法。
6、本专利技术提供了神经网络前处理方法,由于fpga只能处理定点数据,故而本专利技术通过将浮点系数进行参数计算,迭代对比并移位处理,以获得所需要的定点参数,以便fpga后续配置使用。
7、作为优选例子,所述对所述第一浮点系数进行移位迭代处理,具体为:
8、判断当前第一浮点系数与所述预设阈值的大小关系;
9、若当前第一浮点系数小于等于所述预设阈值,则比较当前移位参数和最大移位参数;
10、若所述当前移位参数小于最大移位参数,则将当前的移位参数增加第一数值,获得下次移位迭代处理对应的移位参数。
11、本优选例子通过对原始数据进行移位迭代处理,并获得对应的当前迭代的移位参数,获得定点数据即当前迭代的移位参数,也会相应的减少定点化计算的精度损失,对数据进行优化处理。
12、作为优选例子,所述最大移位参数为:
13、预设定点参数位宽为第一位宽,确定最大移位参数的数值为第一位宽。
14、本优选例子通过设置位宽,根据位宽才可以计算得到损失最少精度的替换运算定点系数,同时位宽也决定了最大能表示的数值。
15、作为优选例子,所述则进一步比较当前移位参数和最大移位参数,还包括:
16、若确定若当前移位参数等于最大移位参数,则将获得当前第一浮点系数和当前迭代对应的移位参数。
17、本优选例子通过当前移位参数和最大移位参数进行比较来判断,进一步地确定当前第一浮点系数和当前迭代对应的移位参数。
18、作为优选例子,所述对所述原始输入数据进行移位处理,具体为:
19、确定当前迭代的移位参数,将原始数据左移当前迭代的移位参数,获得定点参数。
20、本优选例子通过对原始数据进行左移当前迭代的移位参数的方式获得定点系数,可以降低定点化的精度损失。
21、本专利技术提供了神经网络前处理装置,包括接收模块、迭代模块、数值增加模块和移位模块;
22、其中,所述接收模块用于接收待处理的原始输入数据,并对所述原始输入数据进行数据提取,获得所述原始输入数据对应的第一浮点系数;
23、所述迭代模块用于根据当前的移位参数,对所述第一浮点系数进行移位迭代处理,直到移位后的第一浮点系数大于预设阈值;
24、所述数值增加模块用于每次移位迭代处理后,将当前的移位参数增加第一数值,获得下次移位迭代处理对应的移位参数;第一次迭代的移位参数为预设值;
25、所述移位模块用于根据所述当前迭代对应的移位参数,对所述原始输入数据进行移位处理,获得定点参数,完成神经网络前处理方法。
26、本专利技术通过运用各模块将浮点系数转换为定点系数以便fpga可以使用定点数计算完成神经网络的前处理浮点运算,降低定点化方法的精度损失,在提升计算速度的同时为处理器减少计算资源,进一步降低开发人员的时间成本,减少整体的项目周期。
27、作为优选例子,所述迭代模块还用于判断当前第一浮点系数与所述预设阈值的大小关系;
28、若当前第一浮点系数小于等于所述预设阈值,则进一步比较当前移位参数和最大移位参数;
29、若所述当前移位参数小于最大移位参数,则将当前的移位参数增加第一数值,获得下次移位迭代处理对应的移位参数;
30、若确定若当前移位参数等于最大移位参数,则将获得当前第一浮点系数和当前迭代对应的移位参数。
31、本优选例子通过进一步比较当前第一浮点系数与所述预设阈值的大小关系,降低定点化的精度损失。
32、本专利技术还提供了神经网络前处理系统,包括配置模块、计算模块和前处理模块;其中,所述前处理模块用于执行本专利技术实施例的神经网络前处理方法;
33、所述配置模块用于通过配置总线接收外部配置参数,将配置参数传递至计算模块;
34、所述计算模块包括触发器、移动模块和运算模块;
35、所述计算模块用于接收本文档来自技高网...
【技术保护点】
1.神经网络前处理方法,其特征在于,包括:
2.根据权利要求1所述的神经网络前处理方法,其特征在于,所述对所述第一浮点系数进行移位迭代处理,具体为:
3.根据权利要求2所述的神经网络前处理方法,其特征在于,所述最大移位参数为:
4.根据权利要求2所述的神经网络前处理方法,其特征在于,所述比较当前移位参数和最大移位参数,还包括:
5.根据权利要求4所述的神经网络前处理方法,其特征在于,所述对所述原始输入数据进行移位处理,具体为:
6.神经网络前处理装置,其特征在于,包括接收模块、迭代模块、数值增加模块和移位模块;
7.根据权利要求6所述的神经网络前处理装置,其特征在于,所述迭代模块还用于判断当前第一浮点系数与所述预设阈值的大小关系;
8.神经网络前处理系统,其特征在于,包括配置模块、计算模块和前处理模块;其中,所述前处理模块用于执行如权利要求1至5的神经网络前处理方法;
9.根据权利要求8所述的神经网络前处理系统,其特征在于,所述移动模块包括左移模块和右移模块;
10.根据权
...【技术特征摘要】
1.神经网络前处理方法,其特征在于,包括:
2.根据权利要求1所述的神经网络前处理方法,其特征在于,所述对所述第一浮点系数进行移位迭代处理,具体为:
3.根据权利要求2所述的神经网络前处理方法,其特征在于,所述最大移位参数为:
4.根据权利要求2所述的神经网络前处理方法,其特征在于,所述比较当前移位参数和最大移位参数,还包括:
5.根据权利要求4所述的神经网络前处理方法,其特征在于,所述对所述原始输入数据进行移位处理,具体为:
6.神经网络前处理装置,其特征在于,包括接收模块...
【专利技术属性】
技术研发人员:马成森,
申请(专利权)人:上海安路信息科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。