一种基于卷积神经网络的稀疏张量存储格式自动选择方法与流程

文档序号:24335769发布日期:2021-03-19 12:16阅读:246来源:国知局
一种基于卷积神经网络的稀疏张量存储格式自动选择方法与流程

本发明涉及卷积神经网络、稀疏张量存储格式和张量计算等领域,特别是设计一种基于卷积神经网络的稀疏张量存储格式自动选择方法。



背景技术:

张量一般表示超过二维的高维数据。多维张量被广泛应用于科学计算、数值分析和机器学习等领域。由于现实中的张量通常很大且非常稀疏,因此许多现有工作基于计算模式和操作依赖性优化张量计算的性能。尽管并行化可显著提升张量计算的性能,但其仍受到稀疏模式和硬件特征的限制。因此,现有工作已经提出多样的稀疏张量格式,从而通过与稀疏和硬件相适应的共同设计的存储和算法来提高计算性能。然而,由于复杂的稀疏模式和多样的硬件特性,张量计算的最佳稀疏存储格式差异很大。因此,确定多样硬件平台下不同稀疏张量对于张量计算的最佳存储格式具有挑战性。

稀疏张量的存储格式选择可以看作是分类问题。事实证明,此问题非常适合深度学习技术,而这些技术已证明它们在图像分类和目标检测中的有效性。具体而言,卷积神经网络(convolutionneuralnetwork,简称为cnn)由于无需人工就能捕获输入数据的基础特征的能力而在分类任务中获得了极大的普及。然而,由于要处理的数据的维度较高,此类方法无法直接应用于张量格式选择。尽管高维卷积被提出,但是其不适用于稀疏张量存储格式的自动选择,这主要有两个原因。其一,张量数据的不规则性降低了卷积运算的计算效率,这带来了不可接受的训练开销;其二,流行的深度学习框架最高只支持到三维卷积层,而无法满足对于更高维张量的需求。已有的解决方案只支持对于矩阵运算的最佳稀疏存储格式的自动选择,可概括为以下两个方面:

(1)传统的机器学习方法

这方面的研究是通过提取矩阵的稀疏特征作为输入参数,并训练分类器或回归模型以预测输入参数的最佳组合。常用的分类器包括决策树(decisiontree,简称为dt)、多类支持向量机(multi-classsupportvectormachine,简称为svm)、规则集(ruleset)等等。常用的回归模型包括线性回归模型和基于树的回归模型。该类方法提取到的矩阵稀疏特征较为粗糙,不能有效体现细粒度的稀疏空间分布,这限制了最佳稀疏张量格式的预测准确率。

(2)深度学习方法

这方面的研究是通过缩放方法将不规则的稀疏矩阵转换为固定大小的矩阵。固定大小的矩阵可以作为卷积神经网络的输入,多个矩阵可以看作图像的不同通道。另外,矩阵的稀疏特征也可接入神经网络的特征层,从而补充在缩放过程中丢失的矩阵的稀疏空间分布。该类方法目前只支持稀疏矩阵而不支持更高阶数据的最佳存储格式的预测。由于张量通常存储较高维度的数据,因而无法将其直接馈送到通常处理不超过三个维度(如图像数据的权重,高度和通道)的卷积神经网络。

综上所述,无论是基于传统的机器学习方法还是深度学习方法,已有的解决方案均只支持稀疏矩阵而不支持更高阶张量的存储格式的自动选择。稀疏张量的格式选择给卷积神经网络带来了特殊的挑战:1)为了与二维卷积神经网络适配,需将高维张量降低为矩阵;2)降低后生成的矩阵需要在尽量不丢失稀疏模式的情况下缩放为固定大小的网络输入;3)需要重新设计卷积神经网络以补充张量转换过程中丢失的稀疏特征。



技术实现要素:

本发明技术解决问题:克服现有技术的不足和缺陷,提供一种基于卷积神经网络的稀疏张量存储格式自动选择方法,并充分挖掘稀疏存储格式对张量计算的性能影响。具体来说,本发明将稀疏张量经过张量转换和特征提取,并将生成的稀疏矩阵和特征向量前馈到定制的卷积神经网络以预测得到其最佳存储格式。

本发明的技术解决方案,基于卷积神经网络的稀疏张量存储格式自动选择方法,包括如下步骤:

步骤1:首先收集物理实体生产和运行的稀疏矩阵数据集。然后,将稀疏矩阵在行和列的索引值合并为稀疏张量的高维或低维,最终生成预定阶的稀疏张量数据集;

步骤2:将稀疏张量数据集存储为多样的稀疏张量格式在预定硬件平台上执行张量计算,并得到其执行时间,再将执行时间转换为相应张量数据的标签;

步骤3:通过映射的方法将稀疏张量数据沿某一维度降低为若干个矩阵,该维度与步骤2中执行张量计算的维度相对应;

步骤4:通过展平的方法将稀疏张量数据沿某一维度降低为一个矩阵,该维度与步骤2中执行张量计算的维度相对应;

步骤5:将步骤3和步骤4中生成的不规则大小的矩阵通过密度表示或直方图表示缩放为固定大小的矩阵;

步骤6:通过除以矩阵中元素的最大值将固定大小的矩阵中所有元素的值归一化为[0,1]的范围;

步骤7:分析稀疏张量数据并获得张量的候选特征集,其中包括稀疏张量的全局特征和局部特征;

步骤8:每个稀疏张量经步骤6生成的归一化矩阵和步骤7生成的候选特征集组成了该张量的特征集合,将所有张量的特征集合和标签按编号索引排成列表,从而形成卷积神经网络(convolutionneuralnetwork,简称为cnn)的训练集;

步骤9:将训练集作为定制化的cnn的输入,经训练过程后生成训练后的网络模型;

步骤10:当选择新的输入稀疏张量数据的最佳存储格式时,则重新执行步骤3-7,再将稀疏张量的归一化矩阵和候选特征集组合为定制化的cnn的预测集;

步骤11:将预测集输入到训练后的网络模型,输出为每个稀疏张量存储格式取得最佳性能的概率,取得最大概率的稀疏格式被选择为该张量执行张量计算的存储格式;

步骤12:重复步骤10-11直到所有待预测的稀疏张量的存储格式被选择完成;

步骤13:若要在新的硬件平台实现稀疏张量格式的自动选择,有两种情况:一为硬件架构和软件系统相同,此时保留步骤9生成的训练后的模型,并重新执行步骤12;二为硬件架构和软件系统有多个差别,此时不保留步骤9生成的训练后的模型,并重新执行步骤2-12;

步骤14:若需更换矩阵缩放的方法,则重新执行步骤5并微调步骤9中定制化cnn的网络结构,再重新执行步骤8-12以自动选择所有待预测的稀疏张量的存储格式;

步骤15:若要基于其他张量计算实现稀疏张量格式的自动选择,则重新执行步骤2以获取相应张量数据的新标签,再重新执行步骤8-12;

步骤16:若要对其他阶的稀疏张量实现存储格式的自动选择,则微调步骤9中定制化cnn的网络结构,并重新执行步骤1-12。

所述步骤1中,将稀疏矩阵在行和列的索引值合并为稀疏张量的高维或低维,这样的原因是开源的真实稀疏张量数据太少,不足以支持cnn的训练。此外,现实世界可获得大量的真实稀疏矩阵数据,而随机选取两个或多个稀疏矩阵可合并得到数量足够的稀疏张量数据用于网络训练。

所述步骤2中,将执行时间转换为相应张量数据的标签,具体转换方法为将执行时间最短的稀疏存储格式标记为1,其他稀疏存储格式标记为0,从而得到相应张量的位(bit)标签。

所述步骤3中,通过映射的方法将稀疏张量数据沿某一维度降低为若干个矩阵,其中映射方法体现了非模态索引的垂直分布。具体方法如下:

(1)假设张量x为三阶,且沿第一个维度(mode-1)映射为矩阵a,具体来说,将张量沿mode-1的所有切片(slice)的非零值映射并累加到同一个切片上,累加时非零值都看作是1,定义x∈ri×j×k,a∈rj×k,其中i、j、k为张量x在三个方向的维度大小,则矩阵a的计算公式为张量x沿其他维度的映射矩阵同理类推;

(2)假设张量x为n阶,且沿mode-1映射为若干个矩阵,具体来说,每次在固定n-2个索引的情况下将非零值映射到同一个切片,最终生成个矩阵,定义其中in表示第n个维度的大小,则张量x沿mode-1映射到矩阵a的计算公式为张量x沿mode-1生成的其他矩阵同理类推。

所述步骤4中,通过展平的方法将稀疏张量数据沿某一维度降低为一个矩阵,其中展平方法体现了模态索引的水平分布。展平即用矩阵化的方法展开张量,具体方法如下:

(1)假设张量x为三阶,且x中的每个元素都展平到相应的矩阵。定义x∈ri×j×k,b∈ri×jk,则张量x沿mode-1展平到矩阵b的计算公式为b(i,k×j+j)=x(i,j,k)。张量x沿其他维度的展平矩阵可同理类推;

(2)假设张量x为n阶,且x中的每个元素都展平到相应的矩阵。定义则张量x沿mode-n展平为矩阵的计算公式为其中张量元素(i1,i2,...,in)映射为矩阵元素(in,j)。张量x沿其他维度的展平矩阵可同理类推。

所述步骤5中,将步骤3和步骤4中生成的不规则大小的矩阵通过密度表示或直方图表示缩放为固定大小的矩阵,其中两种方法都可以用可接受的矩阵大小表示原始矩阵的粗粒度特征。矩阵缩放方法具体如下:

(1)密度表示捕获了原始矩阵不同区域之间的详细密度差别。对于密度表示,计算原始矩阵中每个块中非零元素的个数,并填充到缩放后固定大小的矩阵中;

(2)直方图表示进一步捕获了原始矩阵中元素与对角线之间的距离,但会丢失部分的稀疏分布特征。对于直方图表示,计算原始矩阵中每个元素在行和列上相比对角线的距离信息,并填充到缩放后固定大小的行直方图和列直方图中。

所述步骤7中,分析稀疏张量数据并获得张量的候选特征集,其中包括稀疏张量的全局特征和局部特征。候选特征集补充了原始张量在张量转换过程中丢失的稀疏特征。此外,稀疏张量的特征集影响了特定稀疏格式下的内存布局和计算特性。候选特征集中的特征分类如下:

(1)全局特征包括张量的维度大小,非零值的数量(numberofnon-zeros,简称为nnz),稀疏度,和与沿某一维度每个索引下nnz相关的特征。例如,沿某一维度累加获得每个索引下的nnz,再进一步计算得到所有索引的nnz的平均值,最大值,最小值和平均邻值差。

(2)局部特征与切片和纤维(fiber)相关,包括切片和纤维的数量,切片和纤维的比例,每个切片和纤维下的nnz,和每个切片下纤维的数量。例如,沿某一维度累加获得每个切片下的nnz,再进一步计算得到所有切片的nnz的平均值,最大值,最小值和平均邻值差。

所述步骤9中,将训练集作为定制化的cnn的输入,定制化的神经网络(tnsnet)结合了cnn和前馈神经网络(feedforwardneuralnetwork,简称为ffnn)以更好地实现张量计算中最佳存储格式的预测。tnsnet的网络结构设计如下:

(1)tnsnet实现了网络嵌套,其中内层网络(basenet)包含了所有的卷积层和池化层。当适配其他的场景或更改矩阵缩放的方法时,basenet的网络结构和超参数无需变化,只需要更改basenet之外的全连接层;

(2)tnsnet应用了两种张量降低方法,经张量转换后生成的矩阵分别经basenet后输出为向量,再合并为张量的联合特征,并流入全连接层;

(3)tnsnet引入了特征层,稀疏张量的候选特征集作为特征层的输入,与(2)中的全连接层级联,并流入下一个全连接层。

所述步骤13中,若要在新的硬件平台实现稀疏张量格式的自动选择,两种情况应用不同的重训练方法,对于硬件架构和软件系统相同或类似的情况,采用继续训练的方法,即基于已训练好的模型继续训练;对于硬件架构和软件系统有多个差别的情况,采用从头训练的方法,即舍弃已训练好的模型,直接从头开始训练网络模型。

所述步骤14中,若需更换矩阵缩放的方法,则重新执行步骤5并微调步骤9中定制化cnn的网络结构。例如,当由密度表示更换为直方图表示,则每个输入矩阵被替换为行矩阵和列矩阵,这两个矩阵可以看作是图像的不同通道。另外,每个矩阵作为basenet的输入,输出的特征值合并到全连接层;行和列的特征合并后,tnsnet剩余的网络结构保持不变。

所述步骤16中,若要对其他阶的稀疏张量实现存储格式的自动选择,则微调步骤9中定制化cnn的网络结构。对于n阶张量基于某一维度的张量计算,经展平后总生成一个矩阵,而经映射后会生成个矩阵。对于映射后生成的若干个矩阵,将其分别作为basenet的输入,输出的特征值合并到全连接层。映射矩阵合并后,tnsnet剩余的网络结构保持不变。

有益效果:

本发明充分利用了cnn在分类问题下的优势,并结合前馈神经网络(feedforwardneuralnetwork,简称为ffnn)以适配最佳稀疏张量存储格式的预测。此外,本发明在充分保留张量特征的前提下,将稀疏张量有效地转换为固定大小的矩阵输入。本发明可适用于高阶张量在任意张量计算下的稀疏格式的自动选择。

附图说明

图1是实现本发明提出方法的设计概要;

图2(a)是本发明提出的对于三阶张量示意图;

图2(b)是张量在model-1下的切片;

图2(c)是张量在model-1下的映射;

图2(d)是张量在model-1下的展平;

图3是本发明提出的矩阵缩放方法的示意图;

图4是本发明提出的稀疏张量格式对比的示意图;

图5是本发明提出的定制卷积神经网络的结构示意图;

图6是本发明提出的应用直方图表示的定制卷积神经网络的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明的设计概要如图1所示,其中灰色部分是本发明除已有的数据集和稀疏张量存储格式外新增的模块,其中tnsnet为本发明实现的定制卷积神经网络(convolutionneuralnetwork,简称为cnn)。

如图1所示:本发明具体实施步骤如下:

步骤1:收集真实世界(如社交网络、图像位图等)的稀疏矩阵数据集,稀疏矩阵广泛地应用于数值分析(如求解偏微分方程)和实际问题(如社交网络、图像位图等)并随机选取两个或多个稀疏矩阵合并得到足够的稀疏张量数据用于网络训练。具体方法为将稀疏矩阵在行和列的索引值合并为稀疏张量的高维或低维,最终生成特定阶的稀疏张量数据集;

步骤2:将稀疏张量数据集存储为多样的稀疏张量格式在特定硬件平台上执行张量计算,并得到其执行时间,再将执行时间转换为相应张量数据的标签。具体转换方法为将执行时间最短的稀疏存储格式标记为1,其他稀疏存储格式标记为0,从而得到相应张量的位(bit)标签;

步骤3:通过映射的方法将稀疏张量数据沿某一维度降低为若干个矩阵,该维度与步骤2中执行张量计算的维度相对应。三阶张量沿第一个维度(mode-1)的映射如图2所示。具体方法如下:

(1)假设张量x为三阶,且沿第一个维度(mode-1)映射为矩阵a。具体来说,将张量沿mode-1的所有切片(slice)的非零值映射并累加到同一个切片上(累加时非零值都看作是1)。定义x∈ri×j×k,a∈rj×k,其中i、j、k为张量x在三个方向的维度大小,则矩阵a的计算公式为张量x沿其他维度的映射矩阵可同理类推;

(2)假设张量x为n阶,且沿mode-1映射为若干个矩阵。具体来说,每次在固定n-2个索引的情况下将非零值映射到同一个切片,最终生成个矩阵。定义其中in表示第n个维度的大小,则张量x沿mode-1映射到矩阵a的计算公式为张量x沿mode-1生成的其他矩阵可同理类推。

步骤4:通过展平的方法将稀疏张量数据沿某一维度降低为一个矩阵,该维度与步骤2中执行张量计算的维度相对应。三阶张量沿第一个维度(mode-1)的展平如图2所示。具体方法如下:

(1)假设张量x为三阶,且x中的每个元素都展平到相应的矩阵。定义x∈ri×j×k,b∈ri×jk,则张量x沿mode-1展平到矩阵b的计算公式为b(i,k×j+j)=x(i,j,k)。张量x沿其他维度的展平矩阵可同理类推;

(2)假设张量x为n阶,且x中的每个元素都展平到相应的矩阵。定义则张量x沿mode-n展平为矩阵的计算公式为其中张量元素(i1,i2,...,in)映射为矩阵元素(in,j)。张量x沿其他维度的展平矩阵可同理类推。

步骤5:将步骤3和步骤4中生成的不规则大小的矩阵通过密度表示或直方图表示缩放为固定大小的矩阵。图3显示了一个矩阵缩放的例子,其中8×8大小的矩阵缩放为若干个4×4大小的矩阵。具体方法如下:

(1)密度表示捕获了原始矩阵不同区域之间的详细密度差别。对于密度表示,计算原始矩阵中每个块中非零元素的个数,并填充到缩放后固定大小的矩阵中;

(2)直方图表示进一步捕获了原始矩阵中元素与对角线之间的距离,但会丢失部分的稀疏分布特征。对于直方图表示,计算原始矩阵中每个元素在行和列上相比对角线的距离信息,并填充到缩放后固定大小的行直方图和列直方图中。

步骤6:通过除以矩阵中元素的最大值将固定大小的矩阵中所有元素的值归一化为[0,1]的范围;

步骤7:分析稀疏张量数据并获得张量的候选特征集,其中包括稀疏张量的全局特征和局部特征。候选特征集补充了原始张量在张量转换过程中丢失的稀疏特征。此外,稀疏张量的特征集影响了特定稀疏格式下的内存布局和计算特性。稀疏张量的候选特征集如表2所示,将其分类如下:

(1)全局特征包括张量的维度大小,非零值的数量(numberofnon-zeros,简称为nnz),稀疏度,和与沿某一维度每个索引下nnz相关的特征。例如,沿某一维度累加获得每个索引下的nnz,再进一步计算得到所有索引的nnz的平均值,最大值,最小值和平均邻值差。

(2)局部特征与切片(slice)和纤维(fiber)相关,包括切片和纤维的数量,切片和纤维的比例,每个切片和纤维下的nnz,和每个切片下纤维的数量。例如,沿某一维度累加获得每个切片下的nnz,再进一步计算得到所有切片的nnz的平均值,最大值,最小值和平均邻值差。

表2是本发明提出方法的稀疏张量的候选特征集;

步骤8:每个稀疏张量经步骤6生成的归一化矩阵和步骤7生成的候选特征集组成了该张量的特征集合,将所有张量的特征集合和标签按编号索引排成列表,从而形成卷积神经网络(convolutionneuralnetwork,简称为cnn)的训练集;

步骤9:将训练集作为定制化的cnn的输入,经训练过程后生成训练后的网络模型。定制化的神经网络(tnsnet)结合了cnn和前馈神经网络(feedforwardneuralnetwork,简称为ffnn)以更好地实现张量计算中最佳存储格式的预测。稀疏张量的存储格式包括coo、f-coo、hicoo、csf和hb-csf,如图4所示。由于张量在空间上稀疏度分布的复杂性,没有格式可以适用于所有张量。此外,对于同一个张量,不同格式下的性能可能有指数级的差别。tnsnet的网络结构如图5所示,具体设计如下:

(1)tnsnet实现了网络嵌套,其中内层网络(basenet)包含了所有的卷积层和池化层。当适配其他的场景或更改矩阵缩放的方法时,basenet的网络结构和超参数无需变化,只需要更改basenet之外的全连接层;

(2)tnsnet应用了两种张量降低方法,经张量转换后生成的矩阵分别经basenet后输出为向量,再合并为张量的联合特征,并流入全连接层;

(3)tnsnet引入了特征层,稀疏张量的候选特征集作为特征层的输入,与(2)中的全连接层级联,并流入下一个全连接层。

步骤10:当选择新的输入稀疏张量数据的最佳存储格式时,则重新执行步骤3-7,再将稀疏张量的归一化矩阵和候选特征集组合为定制化的cnn的预测集;

步骤11:将预测集输入到训练后的网络模型,输出为每个稀疏张量存储格式取得最佳性能的概率,取得最大概率的稀疏格式被选择为该张量执行张量计算的存储格式;

步骤12:重复步骤10-11直到所有待预测的稀疏张量的存储格式被选择完成;

步骤13:若要在新的硬件平台实现稀疏张量格式的自动选择,有两种情况:

(1)硬件架构和软件系统相同,此时采取继续训练的方法,即基于已训练好的模型继续训练。具体方法为保留步骤9生成的训练后的模型,并重新执行步骤12;

(2)硬件架构和软件系统有多个差别,此时采取从头训练的方法,即舍弃已训练好的模型,直接从头开始训练网络模型。具体方法为不保留步骤9生成的训练后的模型,并重新执行步骤2-12。

步骤14:若需更换矩阵缩放的方法,则重新执行步骤5并微调步骤9中定制化cnn的网络结构,再重新执行步骤8-12以自动选择所有待预测的稀疏张量的存储格式。应用直方图表示的tnsnet的网络结构如图6所示。当由密度表示更换为直方图表示,则每个输入矩阵被替换为行矩阵和列矩阵,这两个矩阵可以看作是图像的不同通道。另外,每个矩阵作为basenet的输入,输出的特征值合并到全连接层。行和列的特征合并后,tnsnet剩余的网络结构保持不变。

步骤15:若要基于其他张量计算实现稀疏张量格式的自动选择,则重新执行步骤2以获取相应张量数据的新标签,再重新执行步骤8-12;

步骤16:若要对其他阶的稀疏张量实现存储格式的自动选择,则微调步骤9中tnsnet的网络结构,并重新执行步骤1-12。对于n阶张量基于某一维度的张量计算,经展平后总生成一个矩阵,而经映射后会生成个矩阵。对于映射后生成的若干个矩阵,将其分别作为basenet的输入,输出的特征值合并到全连接层。映射矩阵合并后,tnsnet剩余的网络结构保持不变。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1