首页 / 专利库 / 电脑图像 / 图形处理单元 / 基于卷积神经网络的数据分类方法、系统、介质及设备

基于卷积神经网络的数据分类方法、系统、介质及设备

阅读:35发布:2020-05-12

专利汇可以提供基于卷积神经网络的数据分类方法、系统、介质及设备专利检索,专利查询,专利分析的服务。并且本公开提供了一种基于 卷积神经网络 的数据分类方法、系统、介质及设备,对获取的分类数据进行预处理,构建数据集;构建卷积神经网络,所述卷积神经网络中至少包括一个卷积层,用于提取局部特征,所述卷积层对特征矩阵进行压缩,并对所生成的稀疏矩阵在 图形处理单元 上进行稀疏矩阵向量乘运算,利用数据集中的数据训练卷积神经网络;将待分类数据预处理后输入到已训练好的卷积神经网络模型,输出数据分类结果;本公开通过对卷积层的特征矩阵进行压缩处理,在GPU上并行计算,减少了在计算过程中内存消耗和对于零值的计算,进而减少了神经网络的训练时间和内存消耗。,下面是基于卷积神经网络的数据分类方法、系统、介质及设备专利的具体信息内容。

1.一种基于卷积神经网络的数据分类方法,其特征在于,步骤如下:
对获取的分类数据进行预处理,构建数据集;
构建卷积神经网络,并利用数据集中的数据训练卷积神经网络,所述卷积神经网络中至少包括一个卷积层,所述卷积层对特征矩阵进行压缩,并对所生成的稀疏矩阵在图形处理单元上进行稀疏矩阵向量乘运算,用于提取局部特征;
将待分类数据预处理后输入到已训练好的卷积神经网络模型,输出数据分类结果。
2.如权利要求1所述的基于卷积神经网络的数据分类方法,其特征在于,对获取的分类数据进行预处理,具体为:对数据集增广并进行归一化预处理,得到统一规格的特征图,所述特征图的特征矩阵维度一致;
进一步的,将特征矩阵和数据标签导入卷积神经网络进行训练,得到训练好的卷积神经网络模型。
3.如权利要求1所述的基于卷积神经网络的数据分类方法,其特征在于,所述卷积层的处理方法,具体为:
(3-1)分割压缩过程:根据滤波器的宽度和步长找到特征矩阵的子矩阵分割窗口,根据分割窗口对数据进行压缩处理,并将数据存放至共享内存;
(3-2)在图形处理单元上进行稀疏矩阵向量乘运算:将(3-1)所得到的压缩矩阵与向量化的滤波器进行稀疏矩阵向量乘运算得到卷积结果。
4.如权利要求3所述的基于卷积神经网络的数据分类方法,其特征在于,所述(3-1)中,将输入层输出的特征矩阵进行分割压缩处理,包括:确定子矩阵分割窗口,将每一组所属行内的所有子矩阵分配一个线程,在线程块中分配线程处理所属块内的子矩阵;
对每一个线程的子矩阵的零值进行压缩,将非零值和非零值索引所对应卷积核数值存储到共享内存,并记录窗口内非零值的个数到共享内存中。
5.如权利要求4所述的基于卷积神经网络的数据分类方法,其特征在于,所述(3-2)中,将(3-1)中的非零值与对应卷积核数值进行乘积运算,得到最终的卷积结果。
6.如权利要求4所述的基于卷积神经网络的数据分类方法,其特征在于,子矩阵分割窗口的长为滤波器的宽度,子矩阵分割窗口沿着特征矩阵的第一行从左到右移动,移动步长为滤波器的步长;
第一行分割后开始下一行分割,依然从左到右移动,在移动过程中,子矩阵分割窗口总处于特征矩阵内部,将分割的一行子矩阵用一个线程块表示,用线程块内的一个线程处理一个子矩阵,线程对每一个子矩阵使用新的格式进行存储。
7.如权利要求6所述的基于卷积神经网络的数据分类方法,其特征在于,采用新的格式进行存储,具体为:将矩阵的后续非零值放在连续的共享内存中,针对某一子矩阵,创建三个向量:第一向量用于存储此子矩阵内的非零值,第二向量用于存储非零值映射的卷积核数值,第三向量用于存储非零值的个数。
8.一种基于卷积神经网络的数据分类系统,其特征在于,包括:
预处理模块,被配置为:对获取的分类数据进行预处理,构建数据集;
模型构建模块,被配置为:构建卷积神经网络,所述卷积神经网络中至少包括一个卷积层,用于提取局部特征,所述卷积层对特征矩阵进行压缩,并对所生成的稀疏矩阵在图形处理单元上进行稀疏矩阵向量乘运算,利用数据集中的数据训练卷积神经网络;
数据分类模块,被配置为:将待分类数据预处理后输入到已训练好的卷积神经网络模型,输出数据分类结果。
9.一种可读存储介质,其上存储有程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的基于卷积神经网络的数据分类方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的基于卷积神经网络的数据分类方法中的步骤。

说明书全文

基于卷积神经网络的数据分类方法、系统、介质及设备

技术领域

[0001] 本公开涉及数据分类技术领域,特别涉及一种基于卷积神经网络的数据分类方法、系统、介质及设备。

背景技术

[0002] 本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术
[0003] 卷积神经网络是深度学习计算机视觉领域的基石。同时也在自然语言处理、推荐系统和语音识别等领域取得成效。在卷积神经网络中,卷积层在所有层中比列最高。卷积层数目越多,获取信息越多,提取特征越多,模型效果越好,但计算时间和内存消耗比例增加。为了优化训练卷积网络模型的时间,优化卷积层是推动神经网络工业可用性的巨大推
[0004] 卷积是两个变量在某范围内相乘后求和的结果。如果卷积的变量是序列x(n)和h(n),则卷积的结果 其中星号*表示卷积。当时序n=0时,序列h(-i)是h(i)的时序i取反的结果;时序取反使得h(i)以纵轴为中心翻转180度,所以这种相乘后求和的计算法称为卷积和,简称卷积。在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动。当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按元素相乘并求和,得到输出数组中相应位置的元素。
[0005] 本公开发明人发现,为了进行数据分类,研究人员提出了多种卷积计算方案,如im2col(Image to Column)算法、FFT算法和Winograd算法等,但是上述卷积算法均采用了消耗内存和减少时间的方案,虽然提高了卷积的计算速度,但是增加了计算内存。

发明内容

[0006] 为了解决现有技术的不足,本公开提供了一种基于卷积神经网络的数据分类方法、系统、介质及设备,通过对卷积层的特征矩阵进行压缩处理,在GPU上并行计算,减少了在计算过程中内存消耗和对于零值的计算,进而减少了神经网络的训练时间和内存消耗。
[0007] 为了实现上述目的,本公开采用如下技术方案:
[0008] 本公开第一方面提供了一种基于卷积神经网络的数据分类方法。
[0009] 一种基于卷积神经网络的数据分类方法,步骤如下:
[0010] 对获取的分类数据进行预处理,构建数据集;
[0011] 构建卷积神经网络,所述卷积神经网络中至少包括一个卷积层,用于提取局部特征,所述卷积层对特征矩阵进行压缩,并对所生成的稀疏矩阵在图形处理单元上进行稀疏矩阵向量乘运算,利用数据集中的数据训练卷积神经网络;
[0012] 将待分类数据预处理后输入到已训练好的卷积神经网络模型,输出数据分类结果。
[0013] 作为可能的一些实现方式,对数据集增广并进行归一化预处理,得到统一规格的特征图,所述特征图的特征矩阵维度一致;
[0014] 进一步的,将特征矩阵和数据标签导入卷积神经网络进行训练,得到训练好的卷积神经网络模型。
[0015] 作为可能的一些实现方式,所述卷积层的处理方法,具体为:
[0016] (3-1)分割压缩过程:根据滤波器的宽度和步长找到特征矩阵的子矩阵分割窗口,根据分割窗口对数据进行压缩处理,并将数据存放至共享内存;
[0017] (3-2)在图形处理单元上进行稀疏矩阵向量乘运算:将(3-1)所得到的压缩矩阵与向量化的滤波器进行稀疏矩阵向量乘运算得到卷积结果。
[0018] 作为进一步的限定,所述(3-1)中,将输入层输出的特征矩阵进行分割压缩处理,包括:确定子矩阵分割窗口,将每一组所属行内的所有子矩阵分配一个线程,在线程块中分配线程处理所属块内的子矩阵;
[0019] 对每一个线程的子矩阵的零值进行压缩,将非零值和非零值索引所对应卷积核数值存储到共享内存,并记录窗口内非零值的个数到共享内存中。
[0020] 作为进一步的限定,在特征图分割的过程中,对于同一行分割的子特征图,分配到同一个线程块,在这个线程块内,对每一个特征图连续地分配线程,对于不同列的特征图分配到不同的线程块中。
[0021] 作为进一步的限定,所述(3-2)中,将(3-1)中的非零值与对应卷积核数值进行乘积运算,得到最终的卷积结果。
[0022] 作为进一步的限定,子矩阵分割窗口的长为滤波器的宽度,子矩阵分割窗口沿着特征矩阵的第一行从左到右移动,移动步长为滤波器的步长;
[0023] 第一行分割后开始下一行分割,依然从左到右移动,在移动过程中,子矩阵分割窗口总处于特征矩阵内部,将分割的一行子矩阵用一个线程块表示,用线程块内的一个线程处理一个子矩阵,线程对每一个子矩阵使用新的格式进行存储。
[0024] 作为更进一步的限定,采用新的格式进行存储,具体为:将矩阵的后续非零值放在连续的共享内存中,针对某一子矩阵,创建三个向量:第一向量用于存储此子矩阵内的非零值,第二向量用于存储非零值映射的卷积核数值,第三向量用于存储非零值的个数。
[0025] 本公开第二方面提供了一种基于卷积神经网络的数据分类系统。
[0026] 一种基于卷积神经网络的数据分类系统,包括:
[0027] 预处理模块,被配置为:对获取的分类数据进行预处理,构建数据集;
[0028] 模型构建模块,被配置为:构建卷积神经网络,所述卷积神经网络中至少包括一个卷积层,用于提取局部特征,所述卷积层对特征矩阵进行压缩,并对所生成的稀疏矩阵在图形处理单元上进行稀疏矩阵向量乘运算,利用数据集中的数据训练卷积神经网络;
[0029] 数据分类模块,被配置为:将待分类数据预处理后输入到已训练好的卷积神经网络模型,输出数据分类结果。
[0030] 本公开第三方面提供了一种可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开第一方面所述的基于卷积神经网络的数据分类方法中的步骤。
[0031] 本公开第四方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开第一方面所述的基于卷积神经网络的数据分类方法中的步骤。
[0032] 与现有技术相比,本公开的有益效果是:
[0033] 1、本公开所述的内容通过对卷积层的特征矩阵进行压缩处理,在GPU(Graphics Processing Unit,图形处理单元)上并行计算,减少了在计算过程中内存消耗和对于零值的计算,进而减少了神经网络的训练时间和内存消耗。
[0034] 2、本公开采用新格式存储,具体为将矩阵的后续非零值放在连续的共享内存中,新格式是一种稀疏矩阵存储格式,尚未被应用到卷积计算过程中,本公开所设计的新的卷积算法是基于块压缩和共享内存,极大的减少了非零值计算量,加速了矩阵乘法的计算速度。
[0035] 3、本公开基于卷积神经网络稀疏度较大的特点,通过减少零值的乘积运算,从而减少了卷积过程运算,节省了运行内存,相比于现有技术中的算法,本公开的算法实现过程更加简单,解决了在计算过程中对于零值计算,从而减少了计算过程的内存消耗并提高了卷积的计算速度。附图说明
[0036] 图1为本公开实施例1提供的LeNet卷积神经网络框架中的三个卷积层的稀疏度变化曲线。
[0037] 图2为本公开实施例1提供的传统方法在GPU上一个线程块内特征图卷积计算过程示意图。
[0038] 图3为本公开实施例1提供的改进方法在GPU上一个线程块内特征图卷积计算过程示意图。

具体实施方式

[0039] 应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
[0040] 需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0041] 在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
[0042] 实施例1:
[0043] 本公开实施例1提供了一种基于卷积神经网络的数据分类方法,步骤如下:
[0044] 对获取的分类数据进行预处理,构建数据集;
[0045] 构建卷积神经网络,卷积神经网络包括依次连接的输入层、卷积层、全连接层和输出层,所述卷积神经网络中至少包括一个卷积层,用于提取局部特征,所述卷积层对特征矩阵进行压缩,并对所生成的稀疏矩阵在图形处理单元上进行稀疏矩阵向量乘运算;
[0046] 对训练集数据进行归一化处理,使所有样本数据形成维度一致的特征矩阵,将特征矩阵和数据分类标签导入卷积神经网络,对卷积神经网络进行训练,用于得到训练好的卷积神经网络;
[0047] 对待分类数据进行归一化处理,使所有样本数据形成维度一致的特征矩阵,便于网络进行数据处理,将特征矩阵和数据分类标签导入卷积神经网络中,输出待分类数据的分类结果。
[0048] 所述输入层的处理过程为:对输入数据进行预处理,将数据处理成同一维度并编码,用于得到更精准的数据。
[0049] 在二维互相关运算中,卷积窗口从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动,如图2所示。当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按元素相乘并求和,得到输出数组中相应位置的元素。随着层数的增加,特征矩阵的稀疏度迅速增加(如图1所示,其中1#和2#曲线为前层稀疏度变化曲线变化,3#曲线为深层卷积层稀疏度变化曲线横轴表示迭代次数,数轴表示稀疏度),同时矩阵乘法计算量也增加,因此对于零值的处理尤为重要。
[0050] 本实施例基于卷积神经网络稀疏度较大的特点,通过减少零值的乘积运算,从而减少了卷积过程运算,节省了运行内存,并用GPU进行多线程计算,因而大幅提高整个卷积层的运算。相比于现有技术中的算法,本发明的算法实现过程更加简单,解决了在计算过程中对于零值计算,从而减少了计算过程的内存消耗并提高了卷积的计算速度。
[0051] 本实施例所述的卷积层的处理过程,具体为:
[0052] (3-1)分割压缩过程:根据滤波器的宽度a和步长stride找到特征矩阵的子矩阵分割窗口,根据分割窗口对数据进行压缩处理,并将数据存放至共享内存;
[0053] (3-2)在图形处理单元上进行稀疏矩阵向量乘运算:将(3-1)所得到的压缩矩阵与向量化的滤波器进行稀疏矩阵向量乘运算得到卷积结果。
[0054] 所述(3-1)中,将输入层输出的特征矩阵进行分割压缩处理,包括:确定子矩阵分割窗口,将每一组所属行内的所有子矩阵分配一个线程块,在线程块中分配线程处理所属块内的子矩阵;
[0055] 对每一个线程的子矩阵的零值进行压缩,将非零值和非零值索引所对应卷积核数值存储到共享内存,并记录窗口内非零值的个数到共享内存中。
[0056] 所述(3-2)中,将(3-1)中的非零值与对应卷积核数值进行乘积运算,得到最终的卷积结果。
[0057] 子矩阵分割窗口的长为a,子矩阵分割窗口的宽为b,子矩阵分割窗口沿着特征矩阵的第一行从左到右移动,移动步长为stride;滤波器的宽度a通常设为特征矩阵宽度大小,高度b设为1。
[0058] 第一行分割后开始下一行分割,依然从左到右移动,在移动过程中,子矩阵分割窗口总处于特征矩阵内部,将分割的一行子矩阵用一个线程块表示,用线程块内的一个线程处理一个子矩阵,线程对每一个子矩阵使用新的格式进行存储。
[0059] 采用新的格式进行存储,具体为:将矩阵的后续非零值放在连续的共享内存中,针对某一子矩阵A,创建三个向量:第一向量用于存储子矩阵A内的非零值(F_data),第二向量用于存储非零值映射的卷积核数值(K_data),第三向量用于存储非零值的个数(Ptr)。
[0060] 所述全连接层处理过程为:全连接层对于整个网络计算的结果起到“分类器”的作用,将计算的结果进行分类。
[0061] 所述输出层过程为:利用分类器对于全连接层输出结果进行归一化得出每一类的结果的概率,并且根据此概率对数据进行分类。
[0062] 以ILSVRC-2010的ImageNet图像数据集为例进行分类介绍:
[0063] (1)首先下载ILSVRC-2010的ImageNet图像数据集;
[0064] (2)对图像信息进行预处理;
[0065] (3)将归一化后的数据输入到调参后的卷积神经网络;
[0066] (4)在卷积层进行卷积计算过程中,具体的计算过程如下(具体卷积层计算过程如图3所示):将输入的矩阵根据滤波器的宽度进行分割,为分割后的每一个子特征图分配一个线程,从而并行地将每一个子特征图进行压缩处理;
[0067] 在特征图分割的过程中,对于同一行分割的子特征图,分配到同一个线程块,在这个块内,对每一个特征图连续地分配线程;
[0068] 对于不同列的特征图分配到不同的线程块中,在线程对子特征图压缩过程中,将子特征图内的非零值存储到线程块内的共享内存,将非零值索引映射的卷积核内数值存储到共享内存,将子特征图非零值的个数存储到共享内存,然后进行稀疏矩阵向量乘运算运算得到最终的卷积计算结果。
[0069] (5)卷积运算结果再次传输到进行全连接层。
[0070] (6)在实现完成最后全连接层运算后,进行分类运算,分类运算用1000-waysoftmax运算完成数据分类计算。
[0071] (7)最后将分类运算的结果输出。
[0072] 实施例2:
[0073] 本公开实施例2提供了一种基于卷积神经网络的数据分类系统,包括:
[0074] 预处理模块,被配置为:对获取的分类数据进行预处理,构建数据集;
[0075] 模型构建模块,被配置为:构建卷积神经网络,所述卷积神经网络中至少包括一个卷积层,用于提取局部特征,所述卷积层对特征矩阵进行压缩,并对所生成的稀疏矩阵在图形处理单元上进行稀疏矩阵向量乘运算,利用数据集中的数据训练卷积神经网络;
[0076] 数据分类模块,被配置为:将待分类数据预处理后输入到已训练好的卷积神经网络模型,输出数据分类结果。
[0077] 实施例3:
[0078] 本公开实施例3提供了一种可读存储介质,其上存储有程序,该程序被处理器执行时实现如本公开实施例1所述的基于卷积神经网络的数据分类方法中的步骤。
[0079] 实施例4:
[0080] 本公开实施例4提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例1所述的基于卷积神经网络的数据分类方法中的步骤。
[0081] 以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈