CN109146060A - 一种基于卷积神经网络处理数据的方法及装置 - Google Patents
一种基于卷积神经网络处理数据的方法及装置 Download PDFInfo
- Publication number
- CN109146060A CN109146060A CN201810903817.8A CN201810903817A CN109146060A CN 109146060 A CN109146060 A CN 109146060A CN 201810903817 A CN201810903817 A CN 201810903817A CN 109146060 A CN109146060 A CN 109146060A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- convolutional neural
- neural networks
- computation layer
- 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
Links
Classifications
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于卷积神经网络处理数据的方法,应用于FPGA平台,包括:将待处理的目标数据输入卷积神经网络后,根据目标数据的类型、卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定目标数据的中间结果在各个目标计算层的截取位宽;利用卷积神经网络处理目标数据时,按照各个目标计算层的截取位宽截取目标数据的中间结果,并输出目标数据的最终处理结果。其中,截取位宽是基于目标数据的类型、各个目标计算层的计算量和INT数据类型即时确定的,从而提高了数据处理效率和准确率。相应地,本发明公开的一种基于卷积神经网络处理数据的装置、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本发明涉及神经网络算法技术领域,更具体地说,涉及一种基于卷积神经网络处理数据的方法、装置、设备及可读存储介质。
背景技术
卷积神经网络算法是根据逻辑规则进行推理的过程。当将训练完成的卷积神经网络算法应用于硬件平台时,CPU计算效率较为缓慢,GPU计算效率较快,但功耗有所增加。因此,为了兼容计算效率和功耗,可将训练完成的卷积神经网络算法应用于FPGA(Field-Programmable Gate Array)平台,如此既可以提高计算效率,功耗也相对较低。其中,FPGA即现场可编程门阵列,其为专用集成电路(ASIC)领域中的可编程器件。
为了进一步提高卷积神经网络算法在FPGA平台上的数据处理效率,需要对卷积神经网络算法产生的中间结果的位宽进行截取。现有的位宽截取方式为:按照固定的位宽截取数据在卷积神经网络算法的各个计算层产生的每个中间结果,即每个计算层的截取位宽是相同的,直至输出最终处理结果,此种方式虽然可提高数据处理效率,但无法保障输出的最终处理结果的准确性和精度。其中,计算层泛指卷积神经网络的卷积层、池化层和全连接层等。
需要说明的是,当截取位宽较大时,卷积神经网络算法在FPGA平台上的数据处理效率会相应降低,最终处理结果的精度会相应提高;当截取位宽较小时,卷积神经网络算法在FPGA平台上的数据处理效率会相应提高,最终处理结果的精度会相应降低。其中,截取位宽表示截取后保留的位宽位数。
因此,当将卷积神经网络算法应用于FPGA平台时,如何在保证最终处理结果的精度的同时,提高数据处理效率,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于卷积神经网络处理数据的方法、装置、设备及可读存储介质,以提高卷积神经网络算法应用于FPGA平台时的数据处理效率。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于卷积神经网络处理数据的方法,应用于FPGA平台,包括:
获取待处理的目标数据,并将所述目标数据输入卷积神经网络;
根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽;
利用所述卷积神经网络处理所述目标数据时,按照各个所述目标计算层的截取位宽截取所述目标数据的中间结果,并输出所述目标数据的最终处理结果。
其中,所述根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽,包括:
查询所述卷积神经网络的各个目标计算层的计算量和所述目标数据的类型;
根据所述FPGA平台使用的INT数据类型、预设的关联数据表、查询到的各个目标计算层的计算量和所述目标数据的类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽。
其中,所述关联数据表的生成步骤包括:
获取多种类型的测试数据和多个卷积神经网络;
将所述多种类型的测试数据和多个卷积神经网络两两组合,形成多个测试组;其中,每个测试组包括:一种类型的测试数据和一个卷积神经网络;
确定每个测试组中的测试数据的类型和卷积神经网络的各个目标计算层的计算量,并确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽;
将每个测试组中的测试数据的类型和卷积神经网络的各个目标计算层的计算量,以及所述最优截取位宽写入预设的关联模板,生成所述关联数据表。
其中,所述确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽,包括:
针对每个测试组,分别执行下述步骤确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽,具体为:
根据目标测试组中的目标测试数据的类型和目标卷积神经网络的各个目标计算层的计算量,以及当前使用的INT数据类型为目标卷积神经网络的各个目标计算层取不同的截取位宽;
利用所述目标卷积神经网络处理所述目标测试数据时,按照不同截取位宽截取所述目标测试数据的中间结果,并输出多个最终结果;
按照预设的精度从所述多个最终结果中筛选出可用最终结果,并确定精度最小的可用最终结果;
将所述精度最小的可用最终结果对应的所述目标卷积神经网络的各个目标计算层的截取位宽,确定为所述目标卷积神经网络的各个目标计算层的最优截取位宽。
其中,还包括:
利用所述目标卷积神经网络处理所述目标测试数据时,通过RTL逻辑检测加减法是否溢出。
其中,所述将所述目标数据输入卷积神经网络之前,还包括:
将所述目标数据进行归一化处理,并根据所述FPGA平台使用的INT数据类型调整所述目标数据对应的数据区间。
其中,还包括:
根据所述FPGA平台使用的INT数据类型调整所述目标数据的中间结果对应的数据区间。
一种基于卷积神经网络处理数据的装置,应用于FPGA平台,包括:
获取模块,用于获取待处理的目标数据,并将所述目标数据输入卷积神经网络;
确定模块,用于根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽;
处理模块,用于利用所述卷积神经网络处理所述目标数据时,按照各个所述目标计算层的截取位宽截取所述目标数据的中间结果,并输出所述目标数据的最终处理结果。
一种基于卷积神经网络处理数据的设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任意一项所述的基于卷积神经网络处理数据的方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的基于卷积神经网络处理数据的方法的步骤。
通过以上方案可知,本发明实施例提供的一种基于卷积神经网络处理数据的方法,应用于FPGA平台,包括:获取待处理的目标数据,并将所述目标数据输入卷积神经网络;根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽;利用所述卷积神经网络处理所述目标数据时,按照各个所述目标计算层的截取位宽截取所述目标数据的中间结果,并输出所述目标数据的最终处理结果。
可见,采用上述方法在处理目标数据时,首先根据目标数据的类型、卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定目标数据的中间结果在各个目标计算层的截取位宽,即中间结果在卷积神经网络的各个目标计算层的截取位宽是基于当前要处理的数据的类型、各个目标计算层的计算量以及当前FPGA平台使用的INT数据类型即时确定的,而非固定不变的;并且由于各个目标计算层的计算量可能不同,其各自对应的截取位宽也可能不同;在确定目标数据的中间结果在各个所述目标计算层的截取位宽后,按照各个目标计算层的截取位宽截取目标数据的中间结果,并输出目标数据的最终处理结果,从而基于即时确定的截取位宽计算出了目标数据的最终处理结果,提高了卷积神经网络算法应用于FPGA平台时的数据处理效率和准确率;同时FPGA平台系统的处理性能也得到了相应提高。
相应地,本发明实施例提供的一种基于卷积神经网络处理数据的装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于卷积神经网络处理数据的方法流程图;
图2为本发明实施例公开的另一种基于卷积神经网络处理数据的方法流程图;
图3为本发明实施例公开的一种基于卷积神经网络处理数据的装置示意图;
图4为本发明实施例公开的一种基于卷积神经网络处理数据的设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于卷积神经网络处理数据的方法、装置、设备及可读存储介质,以提高卷积神经网络算法应用于FPGA平台时的数据处理效率。
参见图1,本发明实施例提供的一种基于卷积神经网络处理数据的方法,应用于FPGA平台,包括:
S101、获取待处理的目标数据,并将目标数据输入卷积神经网络;
S102、根据目标数据的类型、卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定目标数据的中间结果在各个目标计算层的截取位宽;
需要说明的是,卷积神经网络的目标计算层一般包括:卷积层、池化层和全连接层。每个卷积神经网络的目标计算层的数量和类型均基于实际应用情况设定,因此不同卷积神经网络具有不同的结构。并且,同一卷积神经网络的不同卷积层的计算量可能不同,不同卷积神经网络的卷积层的计算量可能相同。即每个目标计算层的计算量基于卷积神经网络的实际应用确定。
因此,当需要确定目标数据的中间结果在各个目标计算层的截取位宽时,首先需要确定当前卷积神经网络具有的目标计算层,每个目标计算层的计算量,当前目标数据的类型,以及FPGA平台使用的INT数据类型。其中,目标数据的类型一般为图像数据、声音数据和文本数据中的任意一种或组合;INT数据的具体类型本实施例在此不做具体限定。
S103、利用卷积神经网络处理目标数据时,按照各个目标计算层的截取位宽截取目标数据的中间结果,并输出目标数据的最终处理结果。
在本实施例中,中间结果在卷积神经网络的各个目标计算层的截取位宽是基于当前要处理的数据的类型、各个目标计算层的计算量以及当前FPGA平台使用的INT数据类型即时确定的,而非固定不变的,从而提高了卷积神经网络算法应用于FPGA平台时的数据处理效率和准确率。其中,截取位宽表示中间结果被截取后剩余的位宽位数。例如:中间结果的总位宽为16位,将其低8位舍弃,那么剩余的高8位即为该中间结果的截取位宽,即该中间结果用剩余的高8位表示。
可见,本实施例提供了一种基于卷积神经网络处理数据的方法,采用上述方法在处理目标数据时,首先根据目标数据的类型、卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定目标数据的中间结果在各个目标计算层的截取位宽,即中间结果在卷积神经网络的各个目标计算层的截取位宽是基于当前要处理的数据的类型、各个目标计算层的计算量以及当前FPGA平台使用的INT数据类型即时确定的,而非固定不变的;并且由于各个目标计算层的计算量可能不同,其各自对应的截取位宽也可能不同;在确定目标数据的中间结果在各个所述目标计算层的截取位宽后,按照各个目标计算层的截取位宽截取目标数据的中间结果,并输出目标数据的最终处理结果,从而基于即时确定的截取位宽计算出了目标数据的最终处理结果,提高了卷积神经网络算法应用于FPGA平台时的数据处理效率和准确率。
本发明实施例公开了另一种基于卷积神经网络处理数据的方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
参见图2,本发明实施例提供的另一种基于卷积神经网络处理数据的方法,应用于FPGA平台,包括:
S201、获取待处理的目标数据,并将目标数据输入卷积神经网络;
S202、查询卷积神经网络的各个目标计算层的计算量和目标数据的类型;
S203、根据FPGA平台使用的INT数据类型、预设关联数据表、查询到的各个目标计算层的计算量和目标数据的类型,确定目标数据的中间结果在各个目标计算层的截取位宽;
S204、利用卷积神经网络处理目标数据时,按照各个目标计算层的截取位宽截取目标数据的中间结果,并输出目标数据的最终处理结果。
在本实施例中,预先建立了关联数据表,以明确截取位宽与数据的类型、各个目标计算层的计算量以及INT数据类型的对应关系。即关联数据表中存储了截取位宽与数据的类型、各个目标计算层的计算量以及INT数据类型的对应关系。
具体的,所述关联数据表的生成步骤包括:
获取多种类型的测试数据和多个卷积神经网络;
将所述多种类型的测试数据和多个卷积神经网络两两组合,形成多个测试组;其中,每个测试组包括:一种类型的测试数据和一个卷积神经网络;
确定每个测试组中的测试数据的类型和卷积神经网络的各个目标计算层的计算量,并确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽;
将每个测试组中的测试数据的类型和卷积神经网络的各个目标计算层的计算量,以及所述最优截取位宽写入预设的关联模板,生成所述关联数据表。
具体的,针对某一测试组,关联数据表中存储的截取位宽与数据的类型、各个目标计算层的计算量以及INT数据类型的对应关系可以为:
若数据类型为图像数据,卷积神经网络具有卷积层、池化层和全连接层,这三个计算层的计算量分别为100、80、80,FPGA平台使用的INT数据类型为8时,那么当前情况下的卷积层、池化层和全连接层分别对应的舍弃位宽数可以为7、6、6,那么各层分别保留的截取位宽为9、10、10。当然,具体的截取位宽还需要多次试验得到,此处仅是为了说明上述因素之间的对应关系,以及关联数据表中存储的数据。
其中,所述确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽,包括:
针对每个测试组,分别执行下述步骤确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽,具体为:
根据目标测试组中的目标测试数据的类型和目标卷积神经网络的各个目标计算层的计算量,以及当前使用的INT数据类型为目标卷积神经网络的各个目标计算层取不同的截取位宽;
利用所述目标卷积神经网络处理所述目标测试数据时,按照不同截取位宽截取所述目标测试数据的中间结果,并输出多个最终结果;
按照预设的精度从所述多个最终结果中筛选出可用最终结果,并确定精度最小的可用最终结果;
将所述精度最小的可用最终结果对应的所述目标卷积神经网络的各个目标计算层的截取位宽,确定为所述目标卷积神经网络的各个目标计算层的最优截取位宽。
具体的,为了确定截取位宽与数据的类型、各个目标计算层的计算量以及INT数据类型的对应关系,本实施例以多次试验的方法为截取位宽取不同值,并计算不同截取位宽下的最终结果,进而依照预设的精度确定出可用的最终结果,并将精度最小的可用最终结果对应的目标卷积神经网络的各个目标计算层的截取位宽,确定为目标卷积神经网络的各个目标计算层的最优截取位宽。
其中,为截取位宽取不同值时,可采用依次递减的方式进行。例如:当FPGA平台使用的INT数据类型为INT8,且在进行卷积层的加法时,其中间结果为16位;此时若不截取中间结果,那么每个目标计算层对应的截取位宽均为16位,此时得到的最终结果为精度最高的最终结果,即准确性最高,那么可以以此时的最终结果为判别标准,以辨别其他截取位宽下的最终结果的精度大小。
例如:当精度最高的最终结果为100时,其他截取位宽下的最终结果分别为99、98、95、96、89、88、89,且当其他最终结果与精度最高的最终结果的差值超过10时,视为无效结果,那么其中的可用最终结果为:99、98、95、96,精度最小的可用最终结果为95,那么95对应的截取位宽即为最优截取位宽,此时不仅保证了最终结果的精度,还提高了数据处理效率。
其中,还包括:
利用所述目标卷积神经网络处理所述目标测试数据时,通过RTL逻辑检测加减法是否溢出。当加减法溢出时,可适当调大截取位宽,以避免溢出。调大位宽时,可采用依次递增的方式进行调整。
可见,本实施例提供了另一种基于卷积神经网络处理数据的方法,采用上述方法在处理目标数据时,首先根据目标数据的类型、卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定目标数据的中间结果在各个目标计算层的截取位宽,即中间结果在卷积神经网络的各个目标计算层的截取位宽是基于当前要处理的数据的类型、各个目标计算层的计算量以及当前FPGA平台使用的INT数据类型即时确定的,而非固定不变的;并且由于各个目标计算层的计算量可能不同,其各自对应的截取位宽也可能不同;在确定目标数据的中间结果在各个所述目标计算层的截取位宽后,按照各个目标计算层的截取位宽截取目标数据的中间结果,并输出目标数据的最终处理结果,从而基于即时确定的截取位宽计算出了目标数据的最终处理结果,提高了卷积神经网络算法应用于FPGA平台时的数据处理效率和准确率。
基于上述任意实施例,需要说明的是,所述将所述目标数据输入卷积神经网络之前,还包括:
将所述目标数据进行归一化处理,并根据所述FPGA平台使用的INT数据类型调整所述目标数据对应的数据区间。
其中,还包括:
根据所述FPGA平台使用的INT数据类型调整所述目标数据的中间结果对应的数据区间。
具体的,根据本说明书提供的方法可实施下述步骤,以确定最优截取位宽。下述过程以INT8数据类型为例,并采用RTL语言进行。
将初始数据和各级系数进行归一化,INT8数据类型下的数据范围均为0.x,为了均匀分布在INT8的范围,初始数据和各级系数均乘以128,增大数据量程和分辨率;卷积操作中乘法均采用8位有符号数乘8位有符号数进行,其产生的中间结果为16位;在上述中间结果进入加法树前,为该计算层设置截取位宽,比如截取位宽为12,即舍弃4位,取12位代表上述中间结果;当中间结果进入加法树、非线性运算、池化层和全连接层时,其各自对应的截取位宽需适当取值。其中,由于INT8数据类型下的产生的中间结果的范围为1.x,所以中间结果需乘以64,以增大数据量程和分辨率。
在依据上述截取位宽计算完成后,对比最终结果与标准结果(截取位宽为16时的最终结果),当二者的差异在预设范围内时,表明此最终结果可用。其中,为了便于调整位宽位数,可以将截取位宽用统一的标识进行表示,并依据该标识为截取位宽取值。
下面对本发明实施例提供的一种基于卷积神经网络处理数据的装置进行介绍,下文描述的一种基于卷积神经网络处理数据的装置与上文描述的一种基于卷积神经网络处理数据的方法可以相互参照。
参见图3,本发明实施例提供的一种基于卷积神经网络处理数据的装置,应用于FPGA平台,包括:
获取模块301,用于获取待处理的目标数据,并将所述目标数据输入卷积神经网络;
确定模块302,用于根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽;
处理模块303,用于利用所述卷积神经网络处理所述目标数据时,按照各个所述目标计算层的截取位宽截取所述目标数据的中间结果,并输出所述目标数据的最终处理结果。
其中,所述确定模块包括:
查询单元,用于查询所述卷积神经网络的各个目标计算层的计算量和所述目标数据的类型;
确定单元,用于根据所述FPGA平台使用的INT数据类型、预设的关联数据表、查询到的各个目标计算层的计算量和所述目标数据的类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽。
其中,还包括:关联数据表生成模块,所述关联数据表生成模块包括:
获取单元,用于获取多种类型的测试数据和多个卷积神经网络;
组合单元,用于将所述多种类型的测试数据和多个卷积神经网络两两组合,形成多个测试组;其中,每个测试组包括:一种类型的测试数据和一个卷积神经网络;
确定单元,用于确定每个测试组中的测试数据的类型和卷积神经网络的各个目标计算层的计算量,并确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽;
生成单元,用于将每个测试组中的测试数据的类型和卷积神经网络的各个目标计算层的计算量,以及所述最优截取位宽写入预设的关联模板,生成所述关联数据表。
其中,所述确定单元包括:
位宽取值子单元,用于针对每个测试组,根据目标测试组中的目标测试数据的类型和目标卷积神经网络的各个目标计算层的计算量,以及当前使用的INT数据类型为目标卷积神经网络的各个目标计算层取不同的截取位宽;
输出子单元,用于利用所述目标卷积神经网络处理所述目标测试数据时,按照不同截取位宽截取所述目标测试数据的中间结果,并输出多个最终结果;
筛选子单元,用于按照预设的精度从所述多个最终结果中筛选出可用最终结果,并确定精度最小的可用最终结果;
确定子单元,用于将所述精度最小的可用最终结果对应的所述目标卷积神经网络的各个目标计算层的截取位宽,确定为所述目标卷积神经网络的各个目标计算层的最优截取位宽。
其中,所述确定单元还包括:
检测子单元,用于利用所述目标卷积神经网络处理所述目标测试数据时,通过RTL逻辑检测加减法是否溢出。
其中,还包括:
第一调整模块,用于将所述目标数据进行归一化处理,并根据所述FPGA平台使用的INT数据类型调整所述目标数据对应的数据区间。
其中,还包括:
第二调整模块,用于根据所述FPGA平台使用的INT数据类型调整所述目标数据的中间结果对应的数据区间。
可见,本实施例提供了一种基于卷积神经网络处理数据的装置,包括:获取模块、确定模块以及处理模块。首先由获取模块获取待处理的目标数据,并将所述目标数据输入卷积神经网络;然后确定模块根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽;进而处理模块利用所述卷积神经网络处理所述目标数据时,按照各个所述目标计算层的截取位宽截取所述目标数据的中间结果,并输出所述目标数据的最终处理结果。如此各个模块之间分工合作,各司其职,从而基于即时确定的截取位宽计算出了目标数据的最终处理结果,提高了卷积神经网络算法应用于FPGA平台时的数据处理效率和准确率。
下面对本发明实施例提供的一种基于卷积神经网络处理数据的设备进行介绍,下文描述的一种基于卷积神经网络处理数据的设备与上文描述的一种基于卷积神经网络处理数据的方法及装置可以相互参照。
参见图4,本发明实施例提供的一种基于卷积神经网络处理数据的设备,包括:
存储器401,用于存储计算机程序;
处理器402,用于执行所述计算机程序时实现上述任意实施例所述的基于卷积神经网络处理数据的方法的步骤。
下面对本发明实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种基于卷积神经网络处理数据的方法、装置及设备可以相互参照。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意实施例所述的基于卷积神经网络处理数据的方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于卷积神经网络处理数据的方法,其特征在于,应用于FPGA平台,包括:
获取待处理的目标数据,并将所述目标数据输入卷积神经网络;
根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽;
利用所述卷积神经网络处理所述目标数据时,按照各个所述目标计算层的截取位宽截取所述目标数据的中间结果,并输出所述目标数据的最终处理结果。
2.根据权利要求1所述的基于卷积神经网络处理数据的方法,其特征在于,所述根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽,包括:
查询所述卷积神经网络的各个目标计算层的计算量和所述目标数据的类型;
根据所述FPGA平台使用的INT数据类型、预设的关联数据表、查询到的各个目标计算层的计算量和所述目标数据的类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽。
3.根据权利要求2所述的基于卷积神经网络处理数据的方法,其特征在于,所述关联数据表的生成步骤包括:
获取多种类型的测试数据和多个卷积神经网络;
将所述多种类型的测试数据和多个卷积神经网络两两组合,形成多个测试组;其中,每个测试组包括:一种类型的测试数据和一个卷积神经网络;
确定每个测试组中的测试数据的类型和卷积神经网络的各个目标计算层的计算量,并确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽;
将每个测试组中的测试数据的类型和卷积神经网络的各个目标计算层的计算量,以及所述最优截取位宽写入预设的关联模板,生成所述关联数据表。
4.根据权利要求3所述的基于卷积神经网络处理数据的方法,其特征在于,所述确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽,包括:
针对每个测试组,分别执行下述步骤确定每个测试组中的卷积神经网络的各个目标计算层的最优截取位宽,具体为:
根据目标测试组中的目标测试数据的类型和目标卷积神经网络的各个目标计算层的计算量,以及当前使用的INT数据类型为目标卷积神经网络的各个目标计算层取不同的截取位宽;
利用所述目标卷积神经网络处理所述目标测试数据时,按照不同截取位宽截取所述目标测试数据的中间结果,并输出多个最终结果;
按照预设的精度从所述多个最终结果中筛选出可用最终结果,并确定精度最小的可用最终结果;
将所述精度最小的可用最终结果对应的所述目标卷积神经网络的各个目标计算层的截取位宽,确定为所述目标卷积神经网络的各个目标计算层的最优截取位宽。
5.根据权利要求4所述的基于卷积神经网络处理数据的方法,其特征在于,还包括:
利用所述目标卷积神经网络处理所述目标测试数据时,通过RTL逻辑检测加减法是否溢出。
6.根据权利要求1所述的基于卷积神经网络处理数据的方法,其特征在于,所述将所述目标数据输入卷积神经网络之前,还包括:
将所述目标数据进行归一化处理,并根据所述FPGA平台使用的INT数据类型调整所述目标数据对应的数据区间。
7.根据权利要求6所述的基于卷积神经网络处理数据的方法,其特征在于,还包括:
根据所述FPGA平台使用的INT数据类型调整所述目标数据的中间结果对应的数据区间。
8.一种基于卷积神经网络处理数据的装置,其特征在于,应用于FPGA平台,包括:
获取模块,用于获取待处理的目标数据,并将所述目标数据输入卷积神经网络;
确定模块,用于根据所述目标数据的类型、所述卷积神经网络的各个目标计算层的计算量和FPGA平台使用的INT数据类型,确定所述目标数据的中间结果在各个所述目标计算层的截取位宽;
处理模块,用于利用所述卷积神经网络处理所述目标数据时,按照各个所述目标计算层的截取位宽截取所述目标数据的中间结果,并输出所述目标数据的最终处理结果。
9.一种基于卷积神经网络处理数据的设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1-7任意一项所述的基于卷积神经网络处理数据的方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的基于卷积神经网络处理数据的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810903817.8A CN109146060B (zh) | 2018-08-09 | 2018-08-09 | 一种基于卷积神经网络处理数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810903817.8A CN109146060B (zh) | 2018-08-09 | 2018-08-09 | 一种基于卷积神经网络处理数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109146060A true CN109146060A (zh) | 2019-01-04 |
CN109146060B CN109146060B (zh) | 2022-04-22 |
Family
ID=64792351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810903817.8A Active CN109146060B (zh) | 2018-08-09 | 2018-08-09 | 一种基于卷积神经网络处理数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109146060B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059808A (zh) * | 2019-06-24 | 2019-07-26 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种卷积神经网络的数据读取方法及数据读取装置 |
CN111563593A (zh) * | 2020-05-08 | 2020-08-21 | 北京百度网讯科技有限公司 | 神经网络模型的训练方法和装置 |
CN112766462A (zh) * | 2021-01-18 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125458A (zh) * | 2013-04-27 | 2014-10-29 | 展讯通信(上海)有限公司 | 内存数据无损压缩方法及装置 |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN106570559A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
CN107423816A (zh) * | 2017-03-24 | 2017-12-01 | 中国科学院计算技术研究所 | 一种多计算精度神经网络处理方法和系统 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107646116A (zh) * | 2015-05-08 | 2018-01-30 | 高通股份有限公司 | 用于定点神经网络的位宽选择 |
US9916531B1 (en) * | 2017-06-22 | 2018-03-13 | Intel Corporation | Accumulator constrained quantization of convolutional neural networks |
-
2018
- 2018-08-09 CN CN201810903817.8A patent/CN109146060B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125458A (zh) * | 2013-04-27 | 2014-10-29 | 展讯通信(上海)有限公司 | 内存数据无损压缩方法及装置 |
CN107646116A (zh) * | 2015-05-08 | 2018-01-30 | 高通股份有限公司 | 用于定点神经网络的位宽选择 |
CN106570559A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN107423816A (zh) * | 2017-03-24 | 2017-12-01 | 中国科学院计算技术研究所 | 一种多计算精度神经网络处理方法和系统 |
US9916531B1 (en) * | 2017-06-22 | 2018-03-13 | Intel Corporation | Accumulator constrained quantization of convolutional neural networks |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
Non-Patent Citations (1)
Title |
---|
蔡瑞初 等: "面向"边缘"应用的卷积神经网络量化与压缩方法", 《计算机应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059808A (zh) * | 2019-06-24 | 2019-07-26 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种卷积神经网络的数据读取方法及数据读取装置 |
CN111563593A (zh) * | 2020-05-08 | 2020-08-21 | 北京百度网讯科技有限公司 | 神经网络模型的训练方法和装置 |
CN111563593B (zh) * | 2020-05-08 | 2023-09-15 | 北京百度网讯科技有限公司 | 神经网络模型的训练方法和装置 |
CN112766462A (zh) * | 2021-01-18 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109146060B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104408179B (zh) | 数据表中数据处理方法和装置 | |
Stidham Jr | Optimal design of queueing systems | |
WO2018227800A1 (zh) | 一种神经网络训练方法及装置 | |
CN109146060A (zh) | 一种基于卷积神经网络处理数据的方法及装置 | |
CN109102065A (zh) | 一种基于PSoC的卷积神经网络加速器 | |
CN108416436A (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
CN108701250A (zh) | 数据定点化方法和装置 | |
CN109213805A (zh) | 一种实现模型优化的方法及装置 | |
CN106327340B (zh) | 一种金融网络的异常节点集合侦测方法及装置 | |
CN107330641A (zh) | 一种基于Storm流处理框架和规则引擎的金融衍生品实时风险控制系统及方法 | |
CN104484398B (zh) | 数据表中的数据聚合方法和装置 | |
CN114092336B (zh) | 基于双线性插值算法的图像缩放方法、装置、设备及介质 | |
CN108182469A (zh) | 一种神经网络模型训练方法、系统、装置及存储介质 | |
CN108777612A (zh) | 一种工作量证明运算芯片核心计算部件的优化方法和电路 | |
US20210209690A1 (en) | Order matching | |
US11115188B2 (en) | Blockchain-based data processing method, apparatus, and blockchain node | |
US10789331B2 (en) | Systems and methods for converting discrete wavelets to tensor fields and using neural networks to process tensor fields | |
CN105677645B (zh) | 一种数据表比对方法和装置 | |
CN117788158A (zh) | 一种虚拟货币地址分析方法及系统 | |
CN109492759A (zh) | 神经网络模型预测方法、装置和终端 | |
CN106780080A (zh) | 植物种植进度的计算方法、计算装置和服务器 | |
CN114138452B (zh) | 一种边缘计算中高能效的计算节点选择方法及装置 | |
Ankirchner et al. | Optimal trade execution under price-sensitive risk preferences | |
CN108122171A (zh) | 一种电力需求侧竞价策略确定方法及系统 | |
US20200134105A1 (en) | Method to Map Convolutional Layers of Deep Neural Network on a Plurality of Processing Elements with SIMD Execution Units, Private Memories, and Connected as a 2D Systolic Processor Array |
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 |