数据压缩方法及相关装置制造方法及图纸

技术编号:21201112 阅读:42 留言:0更新日期:2019-05-25 01:36
本申请实施例公开了一种数据压缩方法及相关装置,方法应用于包括N层结构的神经网络模型,N为大于1的整数,方法包括:获取神经网络模型中的第i层结构的输出数据集合,输出数据集合包括至少一个m×n的矩阵,m和n均为大于1的整数,i为1至N中的任意一个;对至少一个m×n的矩阵进行数据包分割,得到分割后的M个第一数据包,M为大于或等于1的整数;对M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包。采用本申请实施例可提高神经网络模型中的数据的压缩效率。

Data Compression Method and Related Devices

The embodiment of this application discloses a data compression method and a related device. The method is applied to a neural network model with N layer structure. N is an integer greater than 1. The method includes: obtaining the output data set of layer I structure i n the neural network model, and the output data set includes at least one matrix of m*n. Both m and N are integers greater than 1, and I is any one of 1 to N. A matrix of M * n is used to segment the data packet, and the first M data packet is obtained. M is an integer greater than or equal to 1. The first M data packet is compressed and the second M data packet is obtained. The application embodiment can improve the data compression efficiency in the neural network model.

【技术实现步骤摘要】
数据压缩方法及相关装置
本申请涉及神经网络
,具体涉及一种数据压缩方法及相关装置。
技术介绍
随着人工智能的发展,神经网络扮演的角色越来越重,特别是卷积神经网络(ConvolutionalNeuralNetworks,CNN)。在神经网络模型的运算过程中,数据、权值对系统的带宽需求较大,降低神经网络模型对带宽的需求迫在眉睫。目前,采用列压缩(CompressedColumnStorage,CCS)和行压缩(CompressedRowStorage,CRS)对神经网络模型中的数据进行压缩,这两种压缩方式的压缩效率不高。
技术实现思路
本申请实施例提供一种数据压缩方法及相关装置,用于提高神经网络模型中的数据的压缩效率。第一方面,本申请实施例提供一种数据压缩方法,应用于包括N层结构的神经网络模型,所述N为大于1的整数,所述方法包括:获取所述神经网络模型中的第i层结构的输出数据集合,所述输出数据集合包括至少一个m×n的矩阵,所述m和所述n均为大于1的整数,所述i为1至所述N中的任意一个;对所述至少一个m×n的矩阵进行数据包分割,得到分割后的M个第一数据包,所述M为大于或等于1的整数;对所述M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包。在一个可能的示例中,所述获取所述神经网络模型中的第i层结构的输出数据集合,包括:当i=1时,获取所述神经网络模型中的第1层结构的输入数据集合,所述第1层结构的输入数据集合包括至少一个第一矩阵;获取所述第1层结构的权值数据集合,将所述第1层结构的权值数据集合进行解压缩,得到第二矩阵,所述第二矩阵为解压缩后的所述第1层结构的权值数据集合;基于所述至少一个第一矩阵和所述第二矩阵确定所述第1层结构的输出数据集合;当2≤i≤N时,获取所述神经网络模型中的第i-1层结构的输出数据集合,所述第i-1层结构的输出数据集合包括至少一个第三矩阵;获取所述第i层结构的权值数据集合,将所述第i层结构的权值数据集合进行解压缩,得到第四矩阵,所述第四矩阵为解压缩后的所述第i层结构的权值数据集合;基于所述至少一个第三矩阵和所述第四矩阵确定所述第i层结构的输出数据集合。在一个可能的示例中,所述对所述至少一个m×n的矩阵进行数据包分割,得到分割后的M个第一数据包,包括:将所述至少一个m×n的矩阵进行数组转换,得到一维数组,所述一维数组为数组转换后的所述至少一个m×n的矩阵;将所述一维数组进行数据包分割,得到分割后的所述M个第一数据包,第1个第一数据包至第M-1个第一数据包中的每个第一数据包均包括P个数据,第M个第一数据包包括Q个数据,所述P为大于或等于1的整数,所述Q为大于或等于1且小于或等于所述P的整数。在一个可能的示例中,所述对所述M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包,包括:获取第j个第一数据包的数据包信息,所述第j个第一数据包的数据包信息包括P个指示信号、第一数据集合和所述第j个第一数据包的长度,所述指示信号用于指示所述第j个第一数据包包括的P个数据中的每个数据是否为零,所述第一数据集合包括所述第j个第一数据包包括的P个数据中的至少一个非零数据,所述第j个第一数据包为所述第1个第一数据包至所述第M-1个第一数据包中的任意一个;对所述第1个第一数据包至所述第M-1个第一数据包中除所述第j个第一数据包之外的M-2个第一数据包执行相同的操作,得到所述M-2个第一数据包中的每个第一数据包的数据包信息;获取所述第M个第一数据包的数据包信息,所述第M个第一数据包的数据包信息包括Q个指示信号、第二数据集合和所述第M个第一数据包的长度,所述指示信号用于指示所述第M个第一数据包包括的Q个数据中的每个数据是否为零,所述第二数据集合包括所述第M个第一数据包包括的Q个数据中的至少一个非零数据;将所述第1个第一数据包至所述第M-1个第一数据包中的每个第一数据包包括的P个指示信号和第一数据集合组成第一子数据包,得到M-1个第一子数据包;将所述第M个第一数据包包括的Q个指示信号和第二数据集合组成第M个第一子数据包;基于所述M个第一数据包的排序将所述M-1个第一子数据包和所述第M个第一子数据包组成第1个第二数据包;基于所述M个第一数据包的排序将所述M个第一数据包的长度组成第2个第二数据包。在一个可能的示例中,所述对所述M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包之后,所述方法还包括:对所述N层结构中除所述第i层结构之外的N-1层结构执行相同的操作,得到所述N-1层结构中的每层结构对应的两个第二数据包;将所述N层结构对应的2N个第二数据包存储至双倍速率同步动态随机存储器DDR中。第二方面,本申请实施例提供一种数据压缩压缩装置,应用于包括N层结构的神经网络模型,所述N为大于1的整数,所述装置包括:获取单元,用于获取所述神经网络模型中的第i层结构的输出数据集合,所述输出数据集合包括至少一个m×n的矩阵,所述m和所述n均为大于1的整数,所述i为1至所述N中的任意一个;分割单元,用于对所述至少一个m×n的矩阵进行数据包分割,得到分割后的M个第一数据包,所述M为大于或等于1的整数;压缩单元,用于对所述M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包。在一个可能的示例中,在获取所述神经网络模型中的第i层结构的输出数据集合方面,所述获取单元具体用于:当i=1时,获取所述神经网络模型中的第1层结构的输入数据集合,所述第1层结构的输入数据集合包括至少一个第一矩阵;获取所述第1层结构的权值数据集合,将所述第1层结构的权值数据集合进行解压缩,得到第二矩阵,所述第二矩阵为解压缩后的所述第1层结构的权值数据集合;基于所述至少一个第一矩阵和所述第二矩阵确定所述第1层结构的输出数据集合;当2≤i≤N时,获取所述神经网络模型中的第i-1层结构的输出数据集合,所述第i-1层结构的输出数据集合包括至少一个第三矩阵;获取所述第i层结构的权值数据集合,将所述第i层结构的权值数据集合进行解压缩,得到第四矩阵,所述第四矩阵为解压缩后的所述第i层结构的权值数据集合;基于所述至少一个第三矩阵和所述第四矩阵确定所述第i层结构的输出数据集合。在一个可能的示例中,在对所述至少一个m×n的矩阵进行数据包分割,得到分割后的M个第一数据包方面,所述分割单元具体用于:将所述至少一个m×n的矩阵进行数组转换,得到一维数组,所述一维数组为数组转换后的所述至少一个m×n的矩阵;将所述一维数组进行数据包分割,得到分割后的所述M个第一数据包,第1个第一数据包至第M-1个第一数据包中的每个第一数据包均包括P个数据,第M个第一数据包包括Q个数据,所述P为大于或等于1的整数,所述Q为大于或等于1且小于或等于所述P的整数。在一个可能的示例中,在对所述M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包方面,所述压缩单元具体用于:获取第j个第一数据包的数据包信息,所述第j个第一数据包的数据包信息包括P个指示信号、第一数据集合和所述第j个第一数据包的长度,所述指示信号用于指示所述第j个第一数据包包括的P个数据中的每个数据是否为零,所述第一数据集合包括所述第j个第一数据包包括的P个数据中的至少一个非零数据,所述第j个第一数据包为所述第1个第一数本文档来自技高网...

【技术保护点】
1.一种数据压缩方法,其特征在于,应用于包括N层结构的神经网络模型,所述N为大于1的整数,所述方法包括:获取所述神经网络模型中的第i层结构的输出数据集合,所述输出数据集合包括至少一个m×n的矩阵,所述m和所述n均为大于1的整数,所述i为1至所述N中的任意一个;对所述至少一个m×n的矩阵进行数据包分割,得到分割后的M个第一数据包,所述M为大于或等于1的整数;对所述M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包。

【技术特征摘要】
1.一种数据压缩方法,其特征在于,应用于包括N层结构的神经网络模型,所述N为大于1的整数,所述方法包括:获取所述神经网络模型中的第i层结构的输出数据集合,所述输出数据集合包括至少一个m×n的矩阵,所述m和所述n均为大于1的整数,所述i为1至所述N中的任意一个;对所述至少一个m×n的矩阵进行数据包分割,得到分割后的M个第一数据包,所述M为大于或等于1的整数;对所述M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包。2.根据权利要求1所述的方法,其特征在于,所述获取所述神经网络模型中的第i层结构的输出数据集合,包括:当i=1时,获取所述神经网络模型中的第1层结构的输入数据集合,所述第1层结构的输入数据集合包括至少一个第一矩阵;获取所述第1层结构的权值数据集合,将所述第1层结构的权值数据集合进行解压缩,得到第二矩阵,所述第二矩阵为解压缩后的所述第1层结构的权值数据集合;基于所述至少一个第一矩阵和所述第二矩阵确定所述第1层结构的输出数据集合;当2≤i≤N时,获取所述神经网络模型中的第i-1层结构的输出数据集合,所述第i-1层结构的输出数据集合包括至少一个第三矩阵;获取所述第i层结构的权值数据集合,将所述第i层结构的权值数据集合进行解压缩,得到第四矩阵,所述第四矩阵为解压缩后的所述第i层结构的权值数据集合;基于所述至少一个第三矩阵和所述第四矩阵确定所述第i层结构的输出数据集合。3.根据权利要求1或2所述的方法,其特征在于,所述对所述至少一个m×n的矩阵进行数据包分割,得到分割后的M个第一数据包,包括:将所述至少一个m×n的矩阵进行数组转换,得到一维数组,所述一维数组为数组转换后的所述至少一个m×n的矩阵;将所述一维数组进行数据包分割,得到分割后的所述M个第一数据包,第1个第一数据包至第M-1个第一数据包中的每个第一数据包均包括P个数据,第M个第一数据包包括Q个数据,所述P为大于或等于1的整数,所述Q为大于或等于1且小于或等于所述P的整数。4.根据权利要求3所述的方法,其特征在于,所述对所述M个第一数据包进行数据压缩,得到数据压缩后的两个第二数据包,包括:获取第j个第一数据包的数据包信息,所述第j个第一数据包的数据包信息包括P个指示信号、第一数据集合和所述第j个第一数据包的长度,所述指示信号用于指示所述第j个第一数据包包括的P个数据中的每个数据是否为零,所述第一数据集合包括所述第j个第一数据包包括的P个数据中的至少一个非零数据,所述第j个第一数据包为所述第1个第一数据包至所述第M-1个第一数据包中的任意一个;对所述第1个第一数据包至所述第M-1个第一数据包中除所述第j个第一数据包之外的M-2个第一数据包执行相同的操作,得到所述M-2个第一数据包中的每个第一数据包的数据包信息;获取所述第M个第一数据包的数据包信息,所述第M个第一数据包的数据包信息包括Q个指示信号、第二数据集合和所述第M个第一数据包的长度,所述指示信号用于指示所述第M个第一数据包包括的Q个数据中的每个数据是否为零,所述第二数据集合包括所述第M个第一数据包包括的Q个数据中的至少一个非零数据;将所述第1个第一数据包至所述第M-1个第一数据包中的每个第一数据包包括的P个指示信号和第一数据集合组成第一子数据包,得到M-1个第一子数据包;将所述第M个第一数据包包括的Q个指示信号和第二数据集合组成第M个第一子数据包;基于所述M个第一数据包的排序将所述M-1个第一子数据包和所述第M个第一子数据包组成第1个第二数据包;基于所述M个第一数据包的排序将所述M个第一数据包的长度组成第2个第二数据包。...

【专利技术属性】
技术研发人员:王和国李爱军曹庆新李炜
申请(专利权)人:深圳云天励飞技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1