本发明涉及计算机学习领域,特别涉及一种基于卷积神经网络的数据处理方法、装置、设备及介质。
背景技术:
1、目前cnn(convolutional neural networks,卷积神经网络)由于具有良好的容错能力、并行处理能力和自学习能力,可处理一些复杂环境下的问题,运行速度快,适应性能好,具有较高的分辨率,广泛用于图像识别、智能驾驶、图像分割等领域。但是在深度学习的训练阶段由于使用了大量的数据集,增加了参数、实现的复杂度,以及对于人员和设备也提出了一部分要求,因此需要使用一些高性能的平台,其中fpga(field programmable gatearray,现场可编程门阵列)由于作为加速平台具有能耗小、通用性强、并行的计算方式能极大的提升其加速性能得到广泛采用。
2、尽管当前对于fpga平台的加速器设计众多,相关科研人员也投入了相当多的精力去研究此类加速器,并取得了一定的成效,但加速器的研究有待深入,此外,快速发展的cnn已经使加速器的更新变得尤为重要。但是,由于一般的加速器采用的为流式结构,为目标模型的计算流程中的每个计算部分(每一层)实现不同的硬件单元,并分别对其进行优化,但由于前后数据流相关联,计算单元的分配灵活性较低,对于不同结构的cnn需要重新设计其架构。此外,在cnn加速中,硬件架构设计固然重要,但对于算法模型本身的加速也不可忽略,大多相关技术只考虑了单个方面的加速却未考虑对于算法模型本身的处理。因此,如何设计一种更有效地方法对cnn的处理进行加速是本领域有待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种基于卷积神经网络的数据处理方法、装置、设备及介质,通过交替使用两个缓存模块,实现数据流的连续处理,同时根据不同的计算任务分配处理单元,可以根据任务需求动态调整资源分配,结合软件算法处理和硬件结构优化,提升数据计算效率。其具体方案如下:
2、第一方面,本申请提供了一种基于卷积神经网络的数据处理方法,包括:
3、获取预设存储器中的待处理数据,并根据预设数据缓存规则将所述待处理数据交替缓存至预设缓存块中;
4、确定所述待处理数据对应的处理任务,并根据所述处理任务为所述待处理数据分配相应的处理单元;
5、基于所述处理单元根据预设神经网络模型对所述待处理数据进行处理,得到对应的处理单元输出数据;所述预设神经网络模型为基于深度可分离卷积得到的神经网络模型。
6、可选的,所述根据预设数据缓存规则将所述待处理数据交替缓存至预设缓存块中,包括:
7、根据预设时间周期划分规则划分所述待处理数据的缓存周期;
8、判断当前时间对应的所述缓存周期;
9、若所述当前时间为第一缓存周期,则将当前进行缓存的待处理数据缓存至所述预设缓存块中的第一缓存块中,并在所述预设缓存块中的第二缓存块中存在所述待处理数据时,将所述第二缓存块中缓存的所述待处理数据输出至对应的所述处理单元;
10、若所述当前时间为第二缓存周期,则将当前进行缓存的待处理数据缓存至所述第二缓存块中,并将所述第一缓存块中缓存的所述待处理数据输出至对应的所述处理单元。
11、可选的,所述根据所述处理任务为所述待处理数据分配相应的处理单元,包括:
12、根据所述处理任务确定所述待处理数据对应的计算类型,并根据所述计算类型为所述待处理数据分配相应的所述处理单元。
13、可选的,所述根据所述处理任务确定所述待处理数据对应的计算类型,包括:
14、确定所述处理任务的任务需求,并根据所述任务需求和所述处理单元对应的系统资源为所述待处理数据分配相应的所述计算类型;所述任务需求包括处理资源需求和处理时间需求。
15、可选的,所述根据所述计算类型为所述待处理数据分配相应的所述处理单元,包括:
16、若所述计算类型为计算密集型计算,则根据预设处理单元分配规则为所述待处理数据分配第一数量个的所述处理单元;
17、若所述计算类型为i/o密集型计算,则根据所述预设处理单元分配规则为所述待处理数据分配第二数量个的所述处理单元;所述第一数量大于所述第二数量。
18、可选的,所述基于所述处理单元根据预设神经网络模型对所述待处理数据进行处理,得到对应的处理单元输出数据之后,还包括:
19、将所述处理单元输出数据缓存至预设内部缓存块,以便接收到目标处理任务时,直接读取所述预设内部缓存块中的所述处理单元输出数据。
20、可选的,所述基于所述处理单元根据预设神经网络模型对所述待处理数据进行处理之前,还包括:
21、将初始神经网络模型中的若干网络层进行层融合,以得到所述预设神经网络模型。
22、第二方面,本申请提供了一种基于卷积神经网络的数据处理装置,包括:
23、数据缓存模块,用于获取预设存储器中的待处理数据,并根据预设数据缓存规则将所述待处理数据交替缓存至预设缓存块中;
24、资源分配模块,用于确定所述待处理数据对应的处理任务,并根据所述处理任务为所述待处理数据分配相应的处理单元;
25、数据处理模块,用于基于所述处理单元根据预设神经网络模型对所述待处理数据进行处理,得到对应的处理单元输出数据;所述预设神经网络模型为基于深度可分离卷积得到的神经网络模型。
26、第三方面,本申请提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述的基于卷积神经网络的数据处理方法。
27、第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的基于卷积神经网络的数据处理方法。
28、本申请首先获取预设存储器中的待处理数据,并根据预设数据缓存规则将待处理数据交替缓存至预设缓存块中,然后确定待处理数据对应的处理任务,并根据处理任务为待处理数据分配相应的处理单元,以及基于处理单元根据预设神经网络模型对待处理数据进行处理,得到对应的处理单元输出数据;其中所述预设神经网络模型基于深度可分离卷积得到的神经网络模型。本申请中,将待处理数据交替缓存至缓存块中,有助于确保数据流的连续性,并通过交替使用两个缓存模块,实现数据流的连续处理,提高处理速度。同时根据不同的计算任务合理分配处理单元,有助于根据任务需求动态调整计算资源分配,实现资源的灵活利用,提升本申请的通用性能,并且对算法模型进行了预处理,引入了深度可分离卷积显著降低了模型的参数量和计算量,使其更适用于资源受限的环境。这样一来,不仅通过软件算法的处理加速整体的性能,并且结合软件算法处理和硬件结构优化,相比于目前仅侧重于单方面优化的问题,不再仅仅关注于硬件性能的优化,提升了整体的计算效率。
1.一种基于卷积神经网络的数据处理方法,其特征在于,包括:
2.根据权利要求1所述的基于卷积神经网络的数据处理方法,其特征在于,所述根据预设数据缓存规则将所述待处理数据交替缓存至预设缓存块中,包括:
3.根据权利要求1所述的基于卷积神经网络的数据处理方法,其特征在于,所述根据所述处理任务为所述待处理数据分配相应的处理单元,包括:
4.根据权利要求3所述的基于卷积神经网络的数据处理方法,其特征在于,所述根据所述处理任务确定所述待处理数据对应的计算类型,包括:
5.根据权利要求3所述的基于卷积神经网络的数据处理方法,其特征在于,所述根据所述计算类型为所述待处理数据分配相应的所述处理单元,包括:
6.根据权利要求1所述的基于卷积神经网络的数据处理方法,其特征在于,所述基于所述处理单元根据预设神经网络模型对所述待处理数据进行处理,得到对应的处理单元输出数据之后,还包括:
7.根据权利要求1至6任一项所述的基于卷积神经网络的数据处理方法,其特征在于,所述基于所述处理单元根据预设神经网络模型对所述待处理数据进行处理之前,还包括:
8.一种基于卷积神经网络的数据处理装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的基于卷积神经网络的数据处理方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于卷积神经网络的数据处理方法。