一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图神经网络压缩方法、装置、电子设备及存储介质与流程

2022-11-19 19:01:36 来源:中国专利 TAG:


1.本发明涉及神经网络领域,特别涉及一种图神经网络压缩方法、装置、电子设备及存储介质。


背景技术:

2.近年来,图神经网络(graph neural network, gnn)因其能够对不规则结构数据进行建模而受到大量关注。gnn被广泛用于基于图的顶点分类、分子相互作用、社交网络、推荐系统或程序理解等各个领域。尽管gnn模型通常参数很少,但由于每个应用程序存储和计算需求与输入图数据的大小紧密相关,导致gnn具有高内存占用和高计算量(表现为训练或者推理时间长)的特点。该特点使得gnn无法有效地应用于绝大多数资源受限的设备,例如嵌入式系统和物联网设备。这种尴尬局面的背后有两个主要原因。首先,gnn的输入由两种类型数据组成,图结构(边列表)和顶点特征(嵌入)。当图规模变大时,很容易导致其存储大小急剧增加。这将使得那些具有非常有限内存预算的小型设备面临巨大压力。其次,更大规模的图数据需要更多的数据操作(例如,加法和乘法)和数据移动(例如,内存事务),它们将消耗大量能量并耗尽这些微型设备上有限功耗预算。
3.为应对上述挑战,量化压缩可以作为资源受限设备的“一石二鸟”解决方案出现,它可以:(1)有效地减少顶点特征的内存大小,从而降低内存使用;(2)最小化操作数大小可以减少功耗。然而,现有的量化方法存在以下两个问题:(1)对所有数据选择简单但激进的统一量化,以最小化内存和功耗成本,从而导致高精度损失;(2)选择一个非常保守的量化来保持准确性,这会导致次优的内存和节能性能;(3)忽略了不同的硬件架构,以统一的方式量化gnn所有层。
4.也正是如此,如何对图神经网络及对应的图数据进行量化压缩,是本领域技术人员所需解决的技术问题。


技术实现要素:

5.本发明的目的是提供一种图神经网络压缩方法、装置、电子设备及存储介质,可在预设资源限制条件的约束下,利用强化学习为图神经网络和图数据中的顶点特征自动确定最优量化位宽,以确保得到的量化图神经网络同时具有较高精度及较低资源消耗率。
6.为解决上述技术问题,本发明提供一种图神经网络压缩方法,包括:获取已训练的图神经网络及其训练时所使用的图数据;确定所述图数据中所有图顶点对应的度数分布范围,并将所述度数分布范围划分为多个度数区间;在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各所述度数区间对应的最优区间量化位宽以及所述图神经网络对应的最优网络量化位宽;利用所述最优区间量化位宽对所述图数据中对应度数的图顶点的顶点特征进行量化压缩,以及利用所述最优网络量化位宽对所述图神经网络进行量化压缩,得到最优量
化图数据和最优量化图神经网络。
7.可选地,所述确定所述图数据中所有图顶点对应的度数分布范围,并将所述度数分布范围划分为多个度数区间间,包括:将所述图数据中的所有图顶点按度数从小到大排列,得到图顶点序列;利用所述图顶点序列对所述度数分布范围进行划分,得到多个所述度数区间;各所述度数区间包含的图顶点数量相同或差值小于预设阈值。
8.可选地,在得到最优量化图数据和最优量化图神经网络之后,还包括:利用所述最优量化图数据对所述最优量化图神经网络进行训练,得到微调量化图神经网络,以将所述微调量化图神经网络部署至对外服务设备中。
9.可选地,所述硬件加速器的时序结构为可重构位串行矩阵乘法叠加,空间结构为bitfusion架构。
10.可选地,所述在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各所述度数区间对应的最优区间量化位宽以及所述图神经网络对应的最优网络量化位宽,包括:获取所述图神经网络执行指定任务对应的基准准确度,并初始化所述强化学习所使用的智能体以及历史奖励值;所述智能体包括演员模块和评论家模块;将策略次数设置为1,并初始化动作序列以及历史状态向量;所述动作序列用于保存各所述度数区间对应的区间量化位宽以及所述图神经网络对应的网络量化位宽;状态向量用于记录量化图神经网络在处理量化图数据时对应的内存占用量、计算量以及在执行所述指定任务时对应的准确度;将时间步设置为1,并在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作,利用所述连续动作对所述动作序列进行数值更新,并在更新后确定所述动作序列对应的内存占用量及计算量;利用所述动作序列对所述图数据中的顶点特征和所述图神经网络进行量化压缩,并将得到的量化图数据和量化图神经网络发送至所述硬件加速器,以使所述硬件加速器利用所述量化图数据对所述量化图神经网络进行训练,并确定训练后的所述量化图神经网络执行所述指定任务对应的当前准确度;利用所述动作序列对应的内存占用量、计算量和所述准确度确定当前状态向量,以及利用所述基准准确度和所述当前准确度确定奖励值;在确定所述奖励值大于所述历史奖励值时,利用所述奖励值更新所述历史奖励值,并利用所述更新后的动作序列对所述最优区间量化位宽及所述最优网络量化位宽进行更新;利用所述历史状态向量、所述连续动作、所述奖励值和所述当前状态向量生成转换数据,并利用所述转换数据对所述演员模块和所述评论家模块进行训练,以使所述评论家模块对所述演员模块在进行所述数值更新时所使用的策略进行更新;当确定所述时间步未达到所述动作序列的长度时,对所述时间步加1,利用所述当前状态向量更新所述历史状态向量,并进入所述在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作的步骤;当确定所述时间步达到所述动作序列的长度且所述策略次数未达到预设值时,对
所述策略次数加1,并进入所述初始化动作序列以及历史状态向量的步骤;当确定所述策略次数达到所述预设值时,输出所述最优区间量化位宽及所述最优网络量化位宽。
11.可选地,所述在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作,利用所述连续动作对所述动作序列进行数值更新,并在更新后确定所述动作序列对应的内存占用量及计算量,包括:利用所述演员模块根据behavior策略选择所述连续动作,并通过如下方式将所述连续动作进行离散化,得到离散动作值:;其中,表示第个时间步的动作序列中的第i个量化位宽对应的连续动作,表示与对应的离散动作值,q包含多个预设量化位宽值,表示四舍五入函数,和表示预设的最小量化位宽和最大量化位宽,函数用于在q中选择目标预设量化位宽值q,以使最小;利用所述动作值对所述动作序列进行数值更新,确定更新后的所述动作序列对应的内存占用量、计算量及延迟量,并判断所述内存占用量、所述计算量及所述延迟量是否满足所述预设资源限制条件的限制;若是,则进入所述利用所述动作序列对所述图数据中的顶点特征和所述图神经网络进行量化压缩的步骤;若否,则按照预设顺序依次对所述动作序列中的量化位宽进行减少,以再次更新所述动作序列,并在每次减少动作完成时进入所述确定更新后的所述动作序列对应的内存占用量、计算量及延迟量的步骤。
12.可选地,所述利用所述演员模块根据behavior策略选择连续动作,包括:利用所述演员模块根据behavior策略以如下方式选择连续动作:,其中,表示第个时间步对应的随机uo噪声,表示第个时间步对应的历史状态向量,表示所述演员模块中的在线演员网络,表示在线演员网络参数。
13.可选地,所述硬件加速器利用所述量化图数据对所述量化图神经网络进行训练,包括:所述硬件加速器基于小批量随机梯度下降法利用所述量化图数据对所述量化图神经网络进行训练。
14.可选地,所述确定更新后的所述动作序列对应的内存占用量、计算量及延迟量,包括:利用如下公式计算所述内存占用量:,其中,表示所述内存占用量,表示单个小批量内的图顶点个数,表示所述量化图神经网络第个网络层对应的顶点维度值,,表示量化图神经
网络所有网络层的数量,表示单个小批量内的所有图顶点分配到的区间量化位宽中的最大值,s表示卷积核的总数,和分别表示所述量化图神经网络各网络层的权重矩阵和卷积核对应的网络量化位宽;利用如下公式计算所述计算量:;其中,表示所述计算量,表示所述量化图神经网络各网络层的激活矩阵对应的网络量化位宽,表示量化图神经网络第层的乘累加操作的总数;利用如下公式计算所述延迟量:;其中,表示所述延迟量,表示所述量化图神经网络第个网络层处理小批量图数据的延迟。
15.可选地,所述利用所述动作序列对所述图数据中的顶点特征进行量化压缩,包括:通过如下方式对所述图数据中各图顶点的顶点特征截断至[-c,c](c》0)范围内,并利用所述动作序列中与所述图顶点的度数对应的区间量化比特对截断后的顶点特征进行量化压缩:;其中,表示量化压缩函数,表示四舍五入函数,表示截断函数,用于将截断至,表示所述顶点特征,表示所述顶点特征中的第j个分量,表示缩放因子,,表示所述动作序列中与所属图顶点的度数对应的区间量化比特。
[0016]
可选地,在利用所述动作序列对所述图数据中的顶点特征进行量化压缩之前,还包括:通过如下方式确定c值:,其中,函数用于在选择x值,以使最小,表示的特征分布与的特征分布间的kl散度;所述特征分布为最大值、最小值、均值、方差、尖度或峰度。
[0017]
可选地,所述演员模块包含在线演员网络和目标演员网络,所述评论家模块包括在线评论家网络和目标评论家网络,所述初始化所述强化学习所使用的智能体,包括:对所述在线演员网络的在线演员网络参数进行初始化,并将所述目标演员网络的目标演员网络参数与所述在线演员网络参数设置为相同值;对所述在线评论家网络的在线评论家网络参数进行初始化,并将所述目标评论家网络的目标评论家网络参数与所述在线评论家网络参数设置为相同值。
[0018]
可选地,所述利用所述转换数据对所述演员模块和所述评论家模块进行训练,包括:将所述转换数据添加至所述经验回放池,并从所述经验回放池中随机采样预设数量的转换数据作为训练数据;利用所述训练数据、所述目标演员网络、所述目标评论家网络、所述在线评论家网络及如下损失函数,确定所述在线评论家网络参数的第一梯度;,其中,所述表示所述损失函数,表示所述连续动作,表示第个时间步对应的历史状态向量,表示在线评论家网络,表示在线评论家网络参数,表示所述预设数量;表示对目标评论家网络的估计,,表示第个时间步对应的奖励值,表示预设的折扣因子,表示目标评论家网络,表示目标评论家网络参数,表示目标演员网络,表示目标演员网络参数,表示第个时间步对应的当前状态向量;根据所述第一梯度对所述在线评论家网络参数进行更新;利用所述训练数据、更新后的在线评论家网络、所述在线演员网络及目标函数确定绩效目标,并确定所述绩效目标关于确定所述在线演员网络参数的第二梯度:其中,表示当环境状态o服从分布函数为的分布时的期望值,;表示在线演员网络参数,表示所述第二梯度;基于所述第二梯度对所述在线演员网络参数进行更新;利用更新后的在线评论家网络参数和在线演员网络参数以如下方式对所述目标评论家网络参数和所述目标演员网络参数进行更新:其中,为预设值。
[0019]
本发明还提供一种图神经网络压缩装置,包括:获取模块,用于获取已训练的图神经网络及其训练时所使用的图数据;区间确定模块,用于确定所述图数据中所有图顶点对应的度数分布范围,并将所述度数分布范围划分为多个度数区间;量化位宽确定模块,用于在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各所述度数区间对应的最优区间量化位宽以及所述图神经网络对应的最优网络量化位宽;量化压缩模块,用于利用所述最优区间量化位宽对所述图数据中对应度数的图顶
点的顶点特征进行量化压缩,以及利用所述最优网络量化位宽对所述图神经网络进行量化压缩,得到最优量化图数据和最优量化图神经网络。
[0020]
本发明还提供一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的图神经网络压缩方法。
[0021]
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的图神经网络压缩方法。
[0022]
本发明提供一种图神经网络压缩方法,包括:获取已训练的图神经网络及其训练时所使用的图数据;确定所述图数据中所有图顶点对应的度数分布范围,并将所述度数分布范围划分为多个度数区间;在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各所述度数区间对应的最优区间量化位宽以及所述图神经网络对应的最优网络量化位宽;利用所述最优区间量化位宽对所述图数据中对应度数的图顶点的顶点特征进行量化压缩,以及利用所述最优网络量化位宽对所述图神经网络进行量化压缩,得到最优量化图数据和最优量化图神经网络。
[0023]
可见,本发明在获取到已训练的图神经网络及其训练时所使用的图数据时,首先会统计图数据中所有图顶点对应的度数分布范围,并将这一返回划分为多个度数区间;随后,本发明将会在预设资源限制条件的约束下,采用强化学习及硬件加速器确定各度数区间对应的最优区间量化位宽及图神经网络对应的最优网络量化位宽,并利用以上两种量化位宽对图数据的顶点特征和图神经网络进行量化压缩,其中,强化学习能够根据硬件加速器的反馈,自动搜索每个度数区间及图神经网络对应的最优量化位宽分配策略,即能够实现对上述最优区间量化位宽和最优网络量化位宽的自动查找;同时,强化学习的自动查找动作受预设资源限制条件的限制,即能够保证最终得到的最优区间量化位宽和最优网络量化位宽能够适应于资源受限设备;最后,由于本发明已将图顶点的度数分布范围划分为多个度数区间,并为每一区间均确定了对应的最优区间量化位宽,即能够对不同度数的图顶点的顶点特征进行不同程度的量化压缩,因此能够有效避免现有方案对所有数据选择简单但激进的统一量化容易导致的高精度损失的问题。简单来讲,由于本发明采用强化学习为图神经网络及其训练时所使用的图数据确定最优的量化位宽,因此不仅能够实现量化位宽的自动化确定,同时还能够有效平衡性能与网络模型精度间的关系,确保最终得到的量化图数据和量化图神经网络不仅具有较高的精度,同时还能够适应于资源受限设备。本发明还提供一种图神经网络压缩装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
[0024]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0025]
图1为本发明实施例所提供的一种图神经网络压缩方法的流程图;图2为本发明实施例所提供的一种图神经网络的典型结构图;
图3为本发明实施例所提供的一种图神经网络压缩系统的结构框图;图4为本发明实施例所提供的一种图神经网络压缩装置的结构框图;图5为本发明实施例所提供的一种电子设备的结构框图;图6为本发明实施例所提供的一种计算机可读存储介质的结构框图。
具体实施方式
[0026]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]
为对图神经网络模型更加有效地进行量化压缩,以确保压缩得到的量化图神经网络同时具有较高精度及较低资源消耗率,本发明实施例可提供一种图神经网络压缩方法,可在预设资源限制条件的约束下,利用强化学习为图神经网络和图数据自动确定最优量化位宽,以确保得到的量化图神经网络同时具有较高精度及较低资源消耗率。请参考图1,图1为本发明实施例所提供的一种图神经网络压缩方法的流程图,该方法可以包括:s100、获取已训练的图神经网络及其训练时所使用的图数据。
[0028]
应当指出的是,本步骤中获取的图神经网络为原始的、全精度的图神经网络,而图数据则为该网络的训练数据,其中图神经网络所包含的权重、卷积核等参数以及图数据均属于浮点型数据,且大多用fp32表示。浮点型数据精度高,但相应的,存储它们所需的内存空间也较大。本发明的目标是在保证图神经网络模型推理精度的前提下,为图神经网络各层的权重、卷积核参数等,以及图数据找到合适的量化位宽,以降低存储空间需求。这里的量化位宽通常为表示精度较低的整型,如int4,int8等。
[0029]
为便于理解,首先对图数据及图神经网络进行简单介绍。图数据是图神经网络的基本输入内容。考虑一个具有n个顶点和m条边的图g=(v, e),即有|v|=n和|e|=m,图顶点的平均度数d=m/n。图中的连通性由邻接矩阵给出,元素表示顶点和相邻接,表示不邻接。度数矩阵d是一个对角阵,主对角线上的n个元素的值分别表示n个顶点的度数,其余元素都为零。每个顶点都有长度为的特征向量,所有图顶点的特征向量组成特征矩阵。在本发明实施例中,图数据中具体要压缩的部分为由所有图顶点的特征向量组成特征矩阵,该矩阵属于浮点型数据。
[0030]
进一步,图神经网络是一种能够处理不规则结构数据的特殊神经网络。尽管图神经网络的结构可遵循不同指导原则进行设计,但几乎所有图神经网络都可以解释为对顶点特征执行消息传递,然后是特征变换和激活。图2展示了一个典型的图神经网络的结构:它由输入层、l层图卷积层和输出层组成。输入层负责读取表征图拓扑结构的邻接矩阵a或邻接表adjlist,以及顶点特征矩阵。图卷积层负责顶点特征提取,对于每一层图卷积层,它读入邻接矩阵a或邻接表adjlist,以及顶点特征矩阵,经由图卷积操作和非线性变换,输出新的顶点特征矩阵。输出层根据任务的不同自由设定,比如顶点分类
可通过softmax函数实现。典型的,在一个由l层图卷积层组成的图神经网络中,第层的图卷积操作通常可以写成以下形式:其中,表示定义消息传递算子的第个图卷积核;表示非线性激活函数。是第层的第s个卷积核对应的可学习线性权重矩阵,表示第层图卷积层输入的顶点特征维度。在这个通用框架内,不同图神经网络的主要差异体现在选择不同的图卷积核。无论是顶点特征矩阵x,还是图卷积核f,亦或是权重w,它们通常都是浮点型数据。需要注意的是,只有图卷积层才有卷积核和激活,输入和输出层只有权重。
[0031]
应当指出的是,本发明实施例并不限定具体的图神经网络及图数据。正如上文所述,图神经网络的结构可遵循不同指导原则进行设计;同时,可以理解的是,对于不同的任务,图数据的具体内容,甚至是其复杂度都可能不同,因此具体的图神经网络和图数据可根据实际应用需求进行选择。本技术之所以可对各类图神经网络及图数据进行压缩,是由于本发明实施例采用了强化学习来确定图神经网络及图数据对应的最佳量化位宽,而强化学习对各类环境均有较强的适应性,因此本发明实施例所提供的压缩方法适用于各类图神经网络。
[0032]
s200、确定图数据中所有图顶点对应的度数分布范围,并将度数分布范围划分为多个度数区间。
[0033]
在现有方案中,对图数据中各图顶点的顶点特征的量化压缩通常会采用统一的量化位宽进行。这虽然有效降低了图数据的复杂度及存储规模,但是这种不加区分的量化压缩方法却给图神经网络模型带来了显著的精度损失。因此,在本发明实施例中,针对图数据中拥有不同度数的图顶点,可采用不同的量化位宽进行压缩,以此缓解由量化图数据引起的图神经网络模型精度损失。具体的,在图神经网络计算中,度数较高的顶点通常会从相邻顶点获得更丰富的信息,这使得它们对低量化比特的鲁棒性更强,因为量化的随机误差通常可以通过大量的聚合操作平均为0。特别地,给定一个量化位宽q,顶点的量化误差是一个随机变量,并且遵循均匀分布。对于度数较大的顶点,可从顶点及其相邻顶点聚合大量的和,并且平均结果将按照大数定律收敛到0。因此,度数大的顶点对量化误差的鲁棒性更强,可以对这些度数高的顶点使用较小的量化比特,而对度数低的顶点使用较大的量化比特。
[0034]
进一步,由于现实世界的图的顶点度数大多服从幂率分布,如果为每个不同度数的图顶点都分配量化位宽,将会导致状态空间爆炸。例如,即便对于一个小规模的图数据com-livejournal,绝大部分的顶点度数分散在1到104之间。如果量化空间为8的话,则状态空间将达到惊人的8
10000
。显然,如此巨大的状态空间无法满足应用需求。因此,为降低状态空间复杂度,本发明实施例可首先统计图数据中各图顶点对应的度数,得到该图数据对应的度数分布范围,然后将这一范围划分为多个度数区间,以为每一区间确定最佳区间量化位宽,这样,便能够大幅缩小状态空间大小,进而提升最佳量化位宽的搜索便捷性。根据如上描述,最终得到最佳区间量化位宽的分布规律应当为:度数区间对应的度数值越大,则对
应的最佳区间量化位宽越大。需要说明的是,本发明实施例并不限定度数分布范围的划分方法,例如可对度数分布范围进行等分,也可以根据图顶点在这一范围内的分布情况进行划分,例如可确保每一度数区间对应的图顶点数量相同或是接近。为了进一步减少精度损失,在本发明实施例中,度数分布范围的划分可依照图顶点在该范围内的分布情况进行划分,以确保各区间所包含的图顶点数量相同。
[0035]
在一种可能的情况中,确定图数据中所有图顶点对应的度数分布范围,并将度数分布范围划分为多个度数区间,可以包括:步骤s201、将图数据中的所有图顶点按度数从小到大排列,得到图顶点序列;步骤s202、利用图顶点序列对度数分布范围进行划分,得到多个度数区间;各度数区间包含的图顶点数量相同或差值小于预设阈值。
[0036]
需要说明的是,本发明实施例并不限定预设阈值的具体数值,可根据实际应用需求进行设定。为降低图度数区间的图顶点数据差异,预设阈值的数值可尽量小。具体的,对于图数据g=(v, e),可首先统计其顶点度数分布,将图g中所有顶点按度数从小到大排序。在该序列中找到一个顶点度数分割点列表,以将所有顶点划分为k个区间:,使得落在每个区间中的顶点个数相同或者接近。其中,;和,和分别表示某个图数据中所有顶点度数的最小值和最大值。在此基础上,制定顶点度数-量化位宽分配表同一区间的图顶点指派相同量化位宽:如果顶点度数落在区间,则为其分配位宽。
[0037]
s300、在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各度数区间对应的最优区间量化位宽以及图神经网络对应的最优网络量化位宽。
[0038]
在完成度数区间的划分之后,本发明实施例将在预设资源限制条件的约束下,利用强化学习及硬件加速器来确定各度数区间对应的最优区间量化位宽及图神经网络模型对应的最优网络量化位宽。此处应当指出的是,图神经网络对应的最优网络量化位宽具体指图神经网络的图卷积核矩阵、权重矩阵及激活矩阵对应的最佳网络量化位宽,这三个矩阵对应的最佳网络量化位宽可相同,也可不同;此外,图神经网络各网络层的图卷积核矩阵、权重矩阵及激活矩阵对应的最佳网络量化位宽可以相同,也可以不同,可根据实际应用需求进行选择,其中输入层和输出层没有图卷积核矩阵和激活矩阵,而卷积层则有图卷积核矩阵和激活矩阵。可以理解的是,不同的最佳网络量化位宽虽然可以带来更高的网络模型精度,但容易增加最佳网络量化位宽的搜索计算量,因此上述三种矩阵的最佳网络量化位宽的设置可在平衡网络模型精度及搜索计算量之后按需设置。当然,还需指出的是,图神经网络中的各网络层并非均具有图卷积核矩阵、权重矩阵及激活矩阵,例如卷积层中设置有这三个矩阵,但输入层和输出层并未设置图卷积核矩阵和激活矩阵。因此,在为图神经网络设置网络量化位宽时,还可进一步依照图神经网络的具体结构进行设置。
[0039]
进一步,预设资源限制条件用于限制处理量化图数据及量化图神经网络(如训练、执行指定任务等)所要耗费的计算资源,这是由于图神经网络对计算资源的消耗较大,若不考虑具体的硬件框架而随意地进行量化压缩,则可能导致最终得到的量化图数据及量化图
神经网络对应有较大的处理计算量、较大的内存占用量及较长的处理时延,不利于部署应用。因此本发明实施例将采用预设资源限制条件对强化学习进行限制。需要说明的是,本发明实施例并不限定具体的预设资源限制条件,例如可以包含计算量阈值、内存占用量阈值及延迟量阈值,且各阈值设置有对应的计算公式,用于计算量化图数据及量化图神经网络对应的计算量、内存占用量及延迟量。可以理解的是,量化图数据及量化图神经网络对应的计算量、内存占用量及延迟量应当小于等于对应的计算量阈值、内存占用量阈值及延迟量阈值。上述阈值及对应的公式均由硬件加速器的直接反馈确定得到,其中硬件加速器用于验证图数据及图神经网络的量化效果,如验证量化压缩网络对计算资源的消耗,以及该网络在执行指定任务时对应的准确度。需要说明的是,本发明实施例并不限定具体的计算量阈值、内存占用量阈值及延迟量阈值,也不限定上述阈值具体对应的计算公式,可根据实际应用需求进行设定,或可参考后续实施例中的描述。本发明实施例也不限定硬件加速器的具体结构,例如该硬件加速器的时序结构可以为可重构位串行矩阵乘法叠加(bismo,bit-serial matrix multiplication overlay),空间结构可以为bitfusion架构。一种优选的硬件加速器配置可参考下表。
[0040]
表1 硬件加速器的配置情况硬件加速器型号批大小pe阵列axi 端口block ramzynq-702018*84
×
64b140
×
36kbf37x1616*164*256b2160*36kb进一步,强化学习是是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。强化学习要解决的问题是:让智能体(agent)学习在一个环境中如何执行动作(action),从而获得最大的奖励值总和(total reward)。这个奖励值一般与智能体定义的任务目标关联。智能体主要学习的内容包括:第一是行为策略(action policy),第二是规划(planning)。其中,行为策略的学习目标是最优策略,也就是使用这样的策略,可以让智能体在特定环境中的行为获得最大的奖励值,从而实现其任务目标。动作(action)可以简单分为:(1)连续的,如赛车游戏中的方向盘角度、油门、刹车控制信号,机器人的关节伺服电机控制信号;(2)离散的,如围棋、贪吃蛇游戏等。
[0041]
本发明实施例具体使用了同时基于价值和策略的强化学习方法,其又可称为actor(演员,又可称为演员)-critic(评论家,又可称为评论者)方法。actor-critic方法结合了基于价值的方法和基于策略的方法的优点,利用基于价值的方法学习q值函数或状态价值函数v来提高采样效率(该部分由评论者处理),并利用基于策略的方法学习策略函数(该部分由演员处理),从而适用于连续或高维的动作空间。actor-critic方法可以看作是基于价值的方法在连续动作空间中的扩展,也可以看作是基于策略的方法在减少样本方差和提升采样效率方面的改进。
[0042]
具体的,请参考图3,图3为本发明实施例所提供的一种图神经网络压缩系统的结构框图,该系统由基于actor-critic框架的ddpg(deep deterministic policy gradient)智能体、策略policy、量化实施以及硬件加速器共四个部分组成。其中,ddpg智能体根据当前的环境状态o,在满足硬件加速器资源(即预设资源限制条件)约束的前提下,按照特定的策略给出动作:为每一个度数区间的顶点的特征和图神经网络所有层的图卷积核(如果
有)、权重和激活(如果有)分配合适的量化位宽。上位机根据ddpg智能体提供的量化位宽分配方案,对已经训练好的浮点图神经网络模型和图数据实施量化,得到量化图神经网络模型和量化图数据。随后,量化数据及量化网络将被一起映射或分布到硬件加速器上,而后者将利用量化图数据对量化图神经网络进行训练,并在训练之后利用量化图神经网络执行指定任务,进而将量化前后图神经网络的准确度差值作为奖励,反馈给ddpg智能体。ddpg智能体根据环境反馈的信息调整策略并输出新的动作,直至获得最优策略。当然,该系统还可包括其他工作流程,为避免描述冗长,关于该系统的具体工作流程,请参考后续实施例中的描述。
[0043]
s400、利用最优区间量化位宽对图数据中对应度数的图顶点的顶点特征进行量化压缩,以及利用最优网络量化位宽对图神经网络进行量化压缩,得到最优量化图数据和最优量化图神经网络。
[0044]
在得到最优区间量化位宽及最优网络量化位宽之后,便可对相应的图数据中各图顶点的顶点特征和图神经网络进行量化压缩,以得到最优量化图数据和最优量化图神经网络。本发明实施例并不限定量化压缩的具体步骤,可根据实际应用需求进行设定,或可参考后续实施例中的描述。应当指出的是,尽管本发明实施例已尽力提升最优量化图神经网络的精度,但量化压缩本身还是会对最优量化图神经网络执行指定任务的准确度带来负面影响。对此,可在量化压缩结束后,再次使用最优量化图数据对量化图神经网络进行训练,以恢复最优量化图神经网络执行指定任务的准确度,以便将最终得到的微调量化图神经网络部署至对外服务设备中进行对外服务。
[0045]
在一种可能的情况中,在得到最优量化图数据和最优量化图神经网络之后,还可以包括:s500、利用最优量化图数据对最优量化图神经网络进行训练,得到微调量化图神经网络,以将微调量化图神经网络部署至对外服务设备中。
[0046]
需要说明的是,本发明实施例并不限定最优量化图神经网络的训练过程,可参考图神经网络的相关技术。
[0047]
基于上述实施例,本发明在获取到已训练的图神经网络及其训练时所使用的图数据时,首先会统计图数据中所有图顶点对应的度数分布范围,并将这一范围划分为多个度数区间;随后,本发明将会在预设资源限制条件的约束下,采用强化学习及硬件加速器确定各度数区间对应的最优区间量化位宽及图神经网络对应的最优网络量化位宽,并利用以上两种量化位宽对图数据中各图顶点的顶点特征和图神经网络进行量化压缩,其中,强化学习能够根据硬件加速器的反馈,自动搜索每个度数区间及图神经网络对应的最优量化位宽分配策略,即能够实现对上述最优区间量化位宽和最优网络量化位宽的自动搜索;同时,强化学习的自动搜索动作受预设资源限制条件的限制,即能够保证最终得到的最优区间量化位宽和最优网络量化位宽能够适应于资源受限设备;最后,由于本发明已将图顶点的度数分布范围划分为多个度数区间,并为每一区间均确定了对应的最优区间量化位宽,即能够对不同度数的图顶点的顶点特征进行不同程度的量化压缩,因此能够有效避免现有方案对所有数据选择简单但激进的统一量化容易导致的高精度损失的问题。简单来讲,由于本发明采用强化学习为图神经网络及其训练时所使用的图数据确定最优的量化位宽,因此不仅能够实现量化位宽的自动化确定,同时还能够有效平衡性能与网络模型精度间的关系,确
保最终得到的量化图数据和量化图神经网络不仅具有较高的精度,同时还能够适应于资源受限设备。
[0048]
基于上述实施例,下面将对图神经网络压缩系统的具体工作流程进行介绍。为便于理解,首先对后文中出现的动作序列、策略、时间步、奖励值及转换数据进行介绍。动作序列用于保存各度数区间对应的区间量化位宽以及图神经网络对应的网络量化位宽,例如,对于给定的图数据g=(v, e),首先统计其顶点度数分布范围,并按照一定策略划分为k个区间。进而对于k个度数区间和图神经网络的三种矩阵来说,动作序列的长度可以为k 3。确定一个完整动作序列的过程称作一次策略(episode),一次策略包含n个时间步(step),其中n的值与动作序列的长度相等。应当特别指出的是,每执行一个时间步,都会对动作序列进行一次更新,因此一次策略通常可产生n种不同的动作序列。进一步,可以理解的是,动作序列可用于量化压缩,而由于上一动作序列与下一动作序列之间并不相同,因此这两个动作序列所对应的压缩效果也不同,换句话说,采用这两种动作序列所产生的量化图数据和量化图神经网络对应的资源消耗情况(如内存占用率、计算量等)并不相同,执行指定任务时所对应的准确度也不相同。因此在本发明实施例中,可以采用状态向量来记录资源消耗情况及准确度间的变化情况,具体的,对于利用上一动作序列压缩的量化图数据和量化图神经网络,其对应的内存占用率、计算量及执行指定任务对应的准确度可采用历史状态向量记录,而利用下一动作序列压缩的量化图数据和量化图神经网络对应的内存占用率、计算量及执行指定任务对应的准确度则可采用当前状态向量记录。进一步,可利用原始的图神经网络执行指定任务对应的基准准确度和量化图神经网络执行相同任务对应的准确度确定奖励值,其中基准准确度具体指利用原始的图数据训练原始的图神经网络后,图神经网络对应的推理精度,如分类任务中的分类准确度。此后,每一时间步对应的历史状态向量、动作序列、奖励值及当前状态向量构成一个转换数据(transition),显然,该数据中包含本次量化压缩的动作、奖励及状态转移,智能体可通过这一数据感知动作的执行效果。换句话说,可利用转换数据对智能体进行训练,以更新智能体在确定动作时所采用的策略。
[0049]
基于上述描述,下面对图神经网络压缩系统的具体工作流程进行详细介绍,在一种可能的情况中,在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各度数区间对应的最优区间量化位宽以及图神经网络对应的最优网络量化位宽,可以包括:s310、获取图神经网络执行指定任务对应的基准准确度,并初始化强化学习所使用的智能体以及历史奖励值;智能体包括演员模块和评论家模块。
[0050]
需要说明的是,本发明实施例并不限定图神经网络所执行的具体任务,可根据实际应用需求进行设定。本发明实施例将会把原始的图神经网络执行该任务的准确度设置为基准准确度。本发明实施例也不限定准确度的计算方式,可根据实际应用需求进行设定。在一种可能的情况中,对于多分类任务而言,设测试图数据集,每个顶点仅有一个类别标签且所有顶点共有个类别标签,类别标签为的顶点数占总顶点数的比例为,且。将每一类视为“正类(positive)”,其余类视为“负类(negative)”,并借鉴经典二分类问题中相应指标的定义,该多分类问题的分类准确度可定义为:
进一步,为了在智能体的搜索过程中确定最优区间量化位宽和最优网络量化位宽,本发明实施例还专门设置了历史奖励值,用于记录搜索过程中所出现的最高奖励值。当最高奖励值出现时,本发明实施例将会对历史记录值、最优区间量化位宽和最优网络量化位宽进行更新。当然,可以理解的是,历史奖励值也应当具有初值,此处的初始化过程便是为其设置初值。本发明实施例并不限定历史奖励值具体的初值,只要尽量小即可。
[0051]
进一步,本发明实施例也不限定对智能体进行初始化的具体过程,此处的初始化主要是对智能体中的参数进行初始化,可参考ddpg智能体的相关技术。
[0052]
s320、将策略次数设置为1,并初始化动作序列以及历史状态向量;动作序列用于保存各度数区间对应的区间量化位宽以及图神经网络对应的网络量化位宽;状态向量用于记录量化图神经网络在处理量化图数据时对应的内存占用量、计算量以及在执行指定任务时对应的准确度。
[0053]
具体的,动作序列可表示为:,其中,
“”
表示为属于区间的图顶点分配量化位宽,
“”

“”

“”
分别表示为图神经网络所有层的图卷积核(如果有)、权重和激活(如果有)设置的量化位宽为,和。当然,如果为图神经网络不同层的图卷积核(或权重或激活)指定不同的量化位宽,此时,ddpg智能体的动作序列a的长度将变为k 3l 2,其中l表示图卷积层的数量,即有:进一步,状态向量可表示为:,其中acc表示准确度,store表示内存占用量,compt表示计算量。关于内存占用量及计算量的确定方式可参考后续实施例中的描述。
[0054]
s330、将时间步设置为1,并在预设资源限制条件的约束下,利用演员模块确定连续动作,利用连续动作对动作序列进行数值更新,并在更新后确定动作序列对应的内存占用量及计算量。
[0055]
可以理解的是,演员模块对动作序列的数值更新即相当于演员模块根据当前状态及策略给出了一种动作。值得注意的是,演员模块(actor)首先会确定连续动作,进而利用这一连续动作对动作序列进行数值更新。然而,量化位宽通常为离散值,例如常规的量化位宽为2、4、8、16、32位等,因此在得到连续动作之后,首先需要将其离散化,得到离散动作值,进而利用这一离散动作值对动作序列进行更新。下面对这一过程进行详细介绍。
[0056]
在一种可能的情况中,在预设资源限制条件的约束下,利用演员模块确定连续动作,利用连续动作对动作序列进行数值更新,并在更新后确定动作序列对应的内存占用量及计算量,包括:
步骤s331、利用演员模块根据behavior策略选择连续动作,并通过如下方式将连续动作进行离散化,得到离散动作值:其中,表示第个时间步的动作序列中的第i个量化位宽对应的连续动作,表示与对应的离散动作值,q包含多个预设量化位宽值,表示四舍五入函数,和表示预设的最小量化位宽和最大量化位宽,函数用于在q中选择目标预设量化位宽值q,以使最小;步骤s332、利用动作值对动作序列进行数值更新,确定更新后的动作序列对应的内存占用量、计算量及延迟量,并判断内存占用量、计算量及延迟量是否满足预设资源限制条件的限制;若是,则进入步骤s333,若否,则进入步骤s334;步骤s333、若是,则进入利用动作序列对图数据中的顶点特征和图神经网络进行量化压缩的步骤;步骤s334、若否,则按照预设顺序依次对动作序列中的量化位宽进行减少,以再次更新动作序列,并在每次减少动作完成时进入确定更新后的动作序列对应的内存占用量、计算量及延迟量的步骤。
[0057]
具体来讲,对于长度为k 3的动作序列,在第个时间步,ddpg智能体采取连续动作,且满足,并采用如上公式将其每一个分量舍入为中离它最近的位宽值,即满足最小,其中=2,=32。例如,当在如上公式中的计算结果表明,在q选择4时,相较于选择其他预设量化位宽能够确保最小,因此对应的应当设置为4。
[0058]
进一步,在实际应用中,由于计算预算有限(即计算量、延迟和内存占用量),因此本发明实施例希望在给定约束的情况下找到具有最佳推理性能的量化位宽分配方案。本发明实施例鼓励智能体通过限制动作空间来满足计算预算。具体的,每当智能体发出一个动作,本发明实施例就需要预估量化后的图神经网络将使用的硬件资源量。如果当前的分配方案超出硬件加速器资源预算,则依次减少每个度数区间的顶点以及图神经网络所有层的图卷积核(如果有)、权重和激活(如果有)的位宽,直到最终满足硬件加速器资源预算约束为止。也可以按照其他顺序,比如按照当前已分配位宽值由大到小的顺序依次减少,本发明实施例不做限定。
[0059]
进一步,behavior策略是一个根据当前演员模块的策略和随机uo(uhlenbeck-ornstein,奥恩斯坦-乌伦贝克)噪声生成的随机过程,其具体过程可以为:在一种可能的情况中,利用演员模块根据behavior策略选择连续动作,包括:步骤s3311、利用演员模块根据behavior策略以如下方式选择连续动作:,其中,表示第个时间步对应的随机uo噪声,表示第个时间步对应的历史状态向量,表示演员模块中的在线演员网络,表示在线演员网络参数。
[0060]
此处应当指出的是,演员模块的一种策略具体可由该模块中具体的模型参数表示。换句话说,对演员模块进行策略更新实际便是对该模块进行参数更新。
[0061]
s340、利用动作序列对图数据中的顶点特征和图神经网络进行量化压缩,并将得到的量化图数据和量化图神经网络发送至硬件加速器,以使硬件加速器利用量化图数据对量化图神经网络进行训练,并确定训练后的量化图神经网络执行指定任务对应的当前准确度。
[0062]
s350、利用动作序列对应的内存占用量、计算量和准确度确定当前状态向量,以及利用基准准确度和当前准确度确定奖励值;具体的,奖励值可通过如下方式进行计算:其中,是利用原始的训练集训练原始的图神经网络后,原始图神经网络对应的基准准确度,是微调后的量化图神经网络的准确度,为比例因子,其数值可优选为0.1。
[0063]
s360、在确定奖励值大于历史奖励值时,利用奖励值更新历史奖励值,并利用更新后的动作序列对最优区间量化位宽及最优网络量化位宽进行更新;s370、利用历史状态向量、连续动作、奖励值和当前状态向量生成转换数据,并利用转换数据对演员模块和评论家模块进行训练,以使评论家模块对演员模块在进行数值更新时所使用的策略进行更新;需要说明的是,本发明实施例并不限定对演员模块和评论家模块进行训练的具体过程,可参考后续实施例中的介绍。训练的意义即在于对演员模块进行模型参数更新,使其可采用新的策略来确定下一动作。
[0064]
s380、当确定时间步未达到动作序列的长度时,对时间步加1,利用当前状态向量更新历史状态向量,并进入在预设资源限制条件的约束下,利用所述演员模块确定连续动作的步骤;s390、当确定时间步达到动作序列的长度且策略次数未达到预设值时,对策略次数加1,并进入初始化动作序列以及历史状态向量的步骤;s3100、当确定策略次数达到预设值时,输出最优区间量化位宽及最优网络量化位宽。
[0065]
需要说明的是,本发明实施例并不限定具体的预设值,可根据实际应用需求进行设定。可以理解的是,预设值越大,则智能体对环境的感知程度越强,其生成的最优区间量化位宽及最优网络量化位宽便更加合适,但相应的计算耗时也更长,计算量也更大,因此策略次数对应的预设上限可在平衡精度及计算资源消耗之后按需设定。
[0066]
基于上述实施例,下面对内存占用量、计算量及延迟量的计算方式进行介绍。当然,考虑到上述三个量的阈值及计算公式由硬件加速器的直接反馈来确定,因此还需对硬件加速器对量化图数据和量化图神经网络的处理方式进行介绍。具体的,硬件加速器对量化图数据和量化图神经网络的主要处理内容为利用量化图数据对量化图神经网络进行训练,而训练过程可采用多种方式进行优化,例如全批量(full-batch)、小批量(mini-batch)或单元素(one-example)随机梯度下降(stochastic gradient descent, sgd)等策略进行
优化。在本发明实施例中,为提高训练效率,硬件加速器可采用小批量随机梯度下降法对量化图神经网络的训练过程进行优化。
[0067]
在一种可能的情况中,硬件加速器利用量化图数据对量化图神经网络进行训练,可以包括:s341、硬件加速器基于小批量随机梯度下降法利用量化图数据对量化图神经网络进行训练。
[0068]
基于上述训练方式,下面对内存占用量、计算量及延迟量的计算方式进行介绍。在一种可能的情况中,确定更新后的动作序列对应的内存占用量、计算量及延迟量,包括:s3321、利用如下公式计算内存占用量:,其中,表示内存占用量,表示单个小批量内的图顶点个数,表示量化图神经网络第个网络层对应的顶点维度值,,表示量化图神经网络所有网络层的数量,表示单个小批量内的所有图顶点分配到的区间量化位宽中的最大值,s表示卷积核的总数,和分别表示量化图神经网络各网络层的权重矩阵和卷积核对应的网络量化位宽;s3322、利用如下公式计算计算量:;其中,表示计算量,表示量化图神经网络各网络层的激活矩阵对应的网络量化位宽,表示量化图神经网络第层的乘累加操作的总数;s3323、利用如下公式计算延迟量:其中,表示延迟量,表示量化图神经网络第个网络层处理小批量图数据的延迟。
[0069]
应当指出的是,在得到上述内存占用量、计算量及延迟量之后,可采用对应的阈值来判断上述三个量是否符合要求。可采用、和表示内存占用量阈值、计算量阈值及延迟量阈值,其中为硬件加速设备可提供的存储容量,表示硬件加速器每秒种可提供的比特操作总数上限,而是指硬件加速器的延迟特性。、和均由硬件加速器本身特性决定,可直接获取或通过测量得到。
[0070]
基于上述实施例,下面对量化压缩的具体过程进行具体介绍。本发明实施例将以图数据量化压缩为例进行介绍。在一种可能的情况中,利用动作序列对图数据中的顶点特征进行量化压缩,可以包括:s341、通过如下方式对图数据中各图顶点的顶点特征截断至[-c,c](c》0)范围内,并利用动作序列中与图顶点的度数对应的区间量化比特对截断后的顶点特征进行量化压
缩:其中,表示量化压缩函数,表示四舍五入函数,表示截断函数,用于将截断至,表示顶点特征,表示顶点特征中的第j个分量,表示缩放因子,,表示动作序列中与所属图顶点的度数对应的区间量化比特。
[0071]
当然,为进一步降低对截断值c的选择为量化图数据的精度损失,本发明实施例还设计了采用基于最小化量化前后数据特征分布距离的方法来确定合适的c值。具体的,在利用动作序列对图数据中的顶点特征进行量化压缩之前,还可以包括:s342、通过如下方式确定c值:,其中,函数用于在选择x值,以使最小,表示的特征分布与的特征分布间的kl散度;特征分布为最大值、最小值、均值、方差、尖度或峰度。
[0072]
需要说明的是,本发明实施例并不限定kl散度(kullback-leibler divergence)的计算方式,当然,也可以采用其他方式来确定上述两种特征分布间的距离,例如还可采用js距离(jensen-shannon divergence)和互信息(mutual information)等,可根据实际应用需求进行设定。本发明实施例也不限定上述特征分布数据的具体获取方式,例如最大值、最小值、均值、方差可直接通过目标数据获得;尖度和峰度通过构建目标数据的直方图获得。至于图神经网络不同层的图卷积核(如果有)、权重和激活(如果有),本发明实施例将对它们进行类似的量化。不同之处在于,对激活来说,本发明实施例会将它们截断到[0, c]的范围内,而不是[-c, c],这是因为激活值(即relu(线性整流函数)层的输出)是非负的。
[0073]
基于上述实施例,下面对演员模块和评论家模块的初始化及训练过程进行详细介绍。首先对ddpg智能体的结构进行简单介绍。actor-critic框架由actor(又可称策略网络μ)和critic(又可称q网络或价值网络)组成。其中,actor负责与环境交互,并在critic价值函数的指导下用策略梯度方法学习一个更好的策略;critic的任务是利用搜集到的actor与环境交互的数据学习一个价值函数q,该函数的功能是评判当前状态-动作对的好坏,进而辅助actor进行策略更新。actor和critic均包含两个网络,一个叫做online(在线网络),一个叫做target(目标网络)。因而ddpg算法中共有四个网络,分别是online actor网络(在线演员网络)、target actor网络(目标演员网络)、online critic网络(在线评论家网络)和target critic网络(目标评论家网络)。其中,online actor网络和target actor网络结构相同,参数不同;online critic网络和target critic网络同样如此。在网络训练过程中,ddpg算法采用冻结target网络的技巧:让online网络参数实时更新,而target网络参数暂时冻结。冻结target网络之时,让online网络去做尝试和探索,target网络则根据online网络产生的样本总结经验,然后再行动,并将online网络的参数赋值给target网络。
[0074]
此外,ddgp算法还采用经验回放(experience replay)机制来去除数据相关性和提高样本利用效率。具体做法是维护一个经验回放池,将每次从环境中采样得到的转换数
据四元组(状态、动作、奖励、下一状态)存储到经验回放池中,训练策略网络和q网络的时候再从回放缓冲区中随机采样若干数据。这么做可以起到以下两个作用:(1)使样本满足独立假设。采用经验回放可以打破样本之间的相关性,让其满足独立假设;(2)提高样本利用率。
[0075]
ddpg智能体的四个网络的功能分别如下所述:online actor网络(在线演员网络):负责策略网络参数的迭代更新、根据当前环境状态选择当前最优动作、以及负责和环境交互生成下一状态和奖励r;target actor网络(目标演员网络):负责根据从经验回放池中采样的下一状态选择下一最优动作、负责定期通过指数移动平均法将online actor的参数更新给target actor网络的参数;online critic网络(在线评论家网络):负责价值网络参数的迭代更新、负责计算当前状态-动作对的online q值、负责计算target critic网络输出的估计;target critic网络(目标评论家网络):负责计算 target critic网络输出的估计中的、负责定期通过指数移动平均法将online critic的参数更新给target critic网络的参数。
[0076]
在一种可能的情况中,演员模块包含在线演员网络和目标演员网络,评论家模块包括在线评论家网络和目标评论家网络,初始化强化学习所使用的智能体,可以包括:s311、对在线演员网络的在线演员网络参数进行初始化,并将目标演员网络的目标演员网络参数与在线演员网络参数设置为相同值;s312、对在线评论家网络的在线评论家网络参数进行初始化,并将目标评论家网络的目标评论家网络参数与在线评论家网络参数设置为相同值。
[0077]
具体的,可首先初始化在线演员和在线评论家网络的参数和,并将在线网络的参数拷贝给对应的目标网络参数:。
[0078]
在一种可能的情况中,利用转换数据对演员模块和评论家模块进行训练,可以包括:s371、将转换数据添加至经验回放池,并从经验回放池中随机采样预设数量的转换数据作为训练数据;s372、利用训练数据、目标演员网络、目标评论家网络、在线评论家网络及如下损失函数,确定在线评论家网络参数的第一梯度;,其中,表示损失函数,表示连续动作,表示第个时间步对应的历史状态向量,表示在线评论家网络,在线评论家网络参数,表示预设数量;表示对目标评论家网络的估计,,表示第个时间步对应的
奖励值,表示预设的折扣因子,表示目标评论家网络,表示目标评论家网络参数,表示目标演员网络,表示目标演员网络参数,表示第个时间步对应的当前状态向量;s373、根据第一梯度对在线评论家网络参数进行更新;s374、利用训练数据、更新后的在线评论家网络、在线演员网络及目标函数确定绩效目标,并确定绩效目标关于确定在线演员网络参数的第二梯度:其中,表示当环境状态o服从分布函数为的分布时的期望值,;表示在线演员网络参数,表示第二梯度。
[0079]
对于第二梯度的计算过程,需要指出的是,本发明实施例的目标是要寻找一个最优的策略网络参数,使得ddpg智能体根据这个参数对应的最优策略实施动作,在环境中产生的累积奖励的期望最大。为评价策略μ的好坏,本发明定义一个叫做绩效目标(performance objective)的目标函数j:其中,是指在每个状态o下,如果都按照策略来选择动作,能够产生的q值。的含义是当环境状态o服从分布函数为的分布时,的期望值。目标函数关于策略网络参数的梯度(简称策略梯度)可通过如下公式计算:策略梯度的计算利用了链式法则,先对动作a求导,再对策略网络参数求导。然后通过梯度上升的方法来最大化函数q,得到值最大的动作。
[0080]
可以用monte-carlo(蒙特卡洛)方法来估算上述期望值。在经验回放池p中存储状态转换,其中是基于ddpg智能体按照behavior策略产生的,其将会基于上述实施例所提供的方法被转换为离散动作值。当从经验回放池p中随机采样获得n个转换数据以组成单个batch时,根据monte-carlo方法,可将单个batch数据代入上述策略梯度公式,可以作为对上述期望值的一个无偏差估计,所以策略梯度可以改写为:s375、基于第二梯度对在线演员网络参数进行更新;s376、利用更新后的在线评论家网络参数和在线演员网络参数以如下方式对目标评论家网络参数和目标演员网络参数进行更新:其中,为预设值。
[0081]
下面基于具体的例子详细介绍上述图神经网络压缩方法。
[0082]
(a)搭建一个由一台主机(即上位机)和一个硬件加速器组成的异构并行计算系统。使用xilinx zynq-7020 fpga或inspur f37x fpga作为gnn推理硬件加速器。在时序结构设计方面,利用可重构位串行矩阵乘法叠加(bismo,bit-serial matrix multiplication overlay)。空间结构方面,采用bitfusion架构。获取硬件加速器的计算、存储和延迟特性数据。
[0083]
(b)图神经网络选择gcn(graph convolutional network,图卷积神经网络),利用pumbed(一种文摘型数据库)构造图数据集,并选择图学习任务为顶点分类,随后设计与学习任务匹配的目标函数和评价标准。构建一个包含l层图卷积层的gnn实例,在上位机利用cpu或gpu按照小批量随机梯度下降法训练该gnn模型,得到训练好的浮点gnn模型。图数据和已训练好的浮点gnn模型是本发明要量化对象。
[0084]
(c)构建ddpg强化学习环境并完成初始化。1)搭建actor(策略网络)和critic(价值网络)。每个网络都有一个副本,一个是online网络,另一个是target网络。2)初始化actor和critic的online网络参数和;将online网络的参数拷贝给对应的target网络参数:。3)初始化环境状态。4)初始化经验回放池(replay memory buffer)p和采样阈值。5)初始化最大奖励r_best和最优动作a_best。
[0085]
(d)利用ddpg算法寻找最优量化位宽分配策略。除非明确说明,所有步骤均在上位机上执行。具体步骤如下:重复以下训练过程(一个过程对应一个episode)次:

初始化uo随机过程;

接收一个随机初始状态;

重复执行t个时间步,在每个时间步依次执行下述操作:a. actor根据behavior策略选择一个动作其中,是随机uo(uhlenbeck-ornstein)噪声。将转换为离散动作。
[0086]
b.上位机根据指定好的量化位宽,采用基于最小化量化前后数据特征分布距离的方法量化方法,对所有图顶点的特征、gnn所有层的图卷积核(如果有)、权重和激活(如果有)实施量化。得到量化后的图顶点特征数据和gnn模型,并将后者映射到硬件加速器;c. 硬件加速器从上位机读取量化后的图顶点特征和邻接矩阵,采用小批量随机梯度下降法训练gnn模型,并测试其分类准确度及计算奖励函数的值,并输出;将和返回给上位机;d. 上位机更新r_best和a_best。上位机比较返回的和r_best的大小,如果》r_best, 则令,。
[0087]
e. 上位机将这个状态转换过程存入经验回放池p中。
[0088]
f.当经验回放池p中的转换个数超过阈值时,实施采样:上位机从经验回放池p随机采样n个transition数据,作为online actor和online critic网络的一个batch训练数据。
[0089]
g. 上位机更新online actor网络和online critic网络的梯度。计算关于的梯度,并计算策略梯度;采用adam optimizer更新online critic网络参数和online actor网络参数;h. 上位机软更新target actor网络和target critic网络的参数:使用移动平均的方法,将两者相应的online网络参数,软更新给target网络参数:

上位机输出r_best和a_best.(e)硬件加速器根据a_best将量化模型再训练一个epoch以恢复性能,得到最终的定点gnn量化模型和量化后的图顶点特征数据。
[0090]
下面对本发明实施例提供的图神经网络压缩装置、电子设备及计算机可读存储介质进行介绍,下文描述的图神经网络压缩装置、电子设备及计算机可读存储介质与上文描述的图神经网络压缩方法可相互对应参照。
[0091]
请参考图4,图4为本发明实施例所提供的一种图神经网络压缩装置的结构框图。该装置可以包括:获取模块401,用于获取已训练的图神经网络及其训练时所使用的图数据;区间确定模块402,用于确定图数据中所有图顶点对应的度数分布范围,并将度数分布范围划分为多个度数区间;量化位宽确定模块403,用于在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各度数区间对应的最优区间量化位宽以及图神经网络对应的最优网络量化位宽;量化压缩模块404,用于利用最优区间量化位宽对图数据中对应度数的图顶点的顶点特征进行量化压缩,以及利用最优网络量化位宽对图神经网络进行量化压缩,得到最优量化图数据和最优量化图神经网络。
[0092]
可选地,区间确定模块402,可以包括:排列子模块,用于将图数据中的所有图顶点按度数从小到大排列,得到图顶点序列;划分子模块,用于利用图顶点序列对度数分布范围进行划分,得到多个度数区间;各度数区间包含的图顶点数量相同或差值小于预设阈值。
[0093]
可选地,该装置还可以包括:训练模块,用于利用最优量化图数据对最优量化图神经网络进行训练,得到微调量化图神经网络,以将微调量化图神经网络部署至对外服务设备中。
[0094]
可选地,硬件加速器的时序结构为可重构位串行矩阵乘法叠加,空间结构为bitfusion架构。
[0095]
可选地,量化位宽确定模块403,包括:初始化子模块,用于获取图神经网络执行指定任务对应的基准准确度,并初始化强化学习所使用的智能体以及历史奖励值;智能体包括演员模块和评论家模块;第一设置子模块,用于将策略次数设置为1,并初始化动作序列以及历史状态向
量;动作序列用于保存各度数区间对应的区间量化位宽以及图神经网络对应的网络量化位宽;状态向量用于记录量化图神经网络在处理量化图数据时对应的内存占用量、计算量以及在执行指定任务时对应的准确度;第二设置子模块,用于将时间步设置为1,并在预设资源限制条件的约束下,利用演员模块确定连续动作,利用连续动作对动作序列进行数值更新,并在更新后确定动作序列对应的内存占用量及计算量;压缩及训练子模块,用于利用动作序列对图数据中的顶点特征和图神经网络进行量化压缩,并将得到的量化图数据和量化图神经网络发送至硬件加速器,以使硬件加速器利用量化图数据对量化图神经网络进行训练,并确定训练后的量化图神经网络执行指定任务对应的当前准确度;计算子模块,用于利用动作序列对应的内存占用量、计算量和准确度确定当前状态向量,以及利用基准准确度和当前准确度确定奖励值;更细子模块,用于在确定奖励值大于历史奖励值时,利用奖励值更新历史奖励值,并利用更新后的动作序列对最优区间量化位宽及最优网络量化位宽进行更新;智能体训练子模块,用于利用历史状态向量、连续动作、奖励值和当前状态向量生成转换数据,并利用转换数据对演员模块和评论家模块进行训练,以使评论家模块对演员模块在进行数值更新时所使用的策略进行更新;第三设置子模块,用于当确定时间步未达到动作序列的长度时,对时间步加1,利用当前状态向量更新历史状态向量,并进入在预设资源限制条件的约束下,利用演员模块对动作序列进行数值更新时间步的步骤;第四设置子模块,用于当确定时间步达到动作序列的长度且策略次数未达到预设值时,对策略次数加1,并进入初始化动作序列以及历史状态向量的步骤;输出子模块,用于当确定策略次数达到预设值时,输出最优区间量化位宽及最优网络量化位宽。
[0096]
可选地,第二设置子模块,可以包括:离散动作确定单元,用于利用演员模块根据behavior策略选择连续动作,并通过如下方式将连续动作进行离散化,得到离散动作值:其中,表示第个时间步的动作序列中的第i个量化位宽对应的连续动作,表示与对应的离散动作值,q包含多个预设量化位宽值,表示四舍五入函数,和表示预设的最小量化位宽和最大量化位宽,函数用于在q中选择目标预设量化位宽值q,以使最小;更新单元,用于利用动作值对动作序列进行数值更新,确定更新后的动作序列对应的内存占用量、计算量及延迟量,并判断内存占用量、计算量及延迟量是否满足预设资源限制条件的限制;第一处理单元,用于若是,则进入利用动作序列对图数据中的顶点特征和图神经网络进行量化压缩的步骤;
第二处理单元,用于若否,则按照预设顺序依次对动作序列中的量化位宽进行减少,以再次更新动作序列,并在每次减少动作完成时进入确定更新后的动作序列对应的内存占用量、计算量及延迟量的步骤。
[0097]
可选地,离散动作确定单元,可以包括:连续动作确定子单元,用于利用演员模块根据behavior策略以如下方式选择连续动作:,其中,表示第个时间步对应的随机uo噪声,表示第个时间步对应的历史状态向量,表示演员模块中的在线演员网络,表示在线演员网络参数。
[0098]
可选地,压缩及训练子模块,可以包括:硬件加速器单元,用于硬件加速器基于小批量随机梯度下降法利用量化图数据对量化图神经网络进行训练。
[0099]
可选地,更新单元,可以包括:第一计算子单元,用于利用如下公式计算内存占用量:,其中,表示内存占用量,表示单个小批量内的图顶点个数,表示量化图神经网络第个网络层对应的顶点维度值,,表示量化图神经网络所有网络层的数量,表示单个小批量内的所有图顶点分配到的区间量化位宽中的最大值,s表示卷积核的总数,和分别表示量化图神经网络各网络层的权重矩阵和卷积核对应的网络量化位宽;第二计算子单元,用于利用如下公式计算计算量:;其中,表示计算量,表示量化图神经网络各网络层的激活矩阵对应的网络量化位宽,表示量化图神经网络第层的乘累加操作的总数;第三计算子单元,用于利用如下公式计算延迟量:其中,表示延迟量,表示量化图神经网络第个网络层处理小批量图数据的延迟。
[0100]
可选地,压缩及训练子模块,包括:压缩单元,用于通过如下方式对图数据中各图顶点的顶点特征截断至[-c,c](c》0)范围内,并利用动作序列中与图顶点的度数对应的区间量化比特对截断后的顶点特征进行量化压缩:其中,表示量化压缩函数,表示四舍五入函数,表示
截断函数,用于将截断至,表示顶点特征,表示顶点特征中的第j个分量,表示缩放因子,,表示动作序列中与所属图顶点的度数对应的区间量化比特。
[0101]
可选地,压缩及训练子模块,还包括:截断值确定单元,用于通过如下方式确定c值:,其中,函数用于在选择x值,以使最小,表示的特征分布与的特征分布间的kl散度;特征分布为最大值、最小值、均值、方差、尖度或峰度。
[0102]
可选地,演员模块包含在线演员网络和目标演员网络,评论家模块包括在线评论家网络和目标评论家网络,初始化子模块,包括:第一初始化单元,用于对在线演员网络的在线演员网络参数进行初始化,并将目标演员网络的目标演员网络参数与在线演员网络参数设置为相同值;第二初始化单元,用于对在线评论家网络的在线评论家网络参数进行初始化,并将目标评论家网络的目标评论家网络参数与在线评论家网络参数设置为相同值。
[0103]
可选地,智能体训练子模块,可以包括:训练数据抽取单元,用于将转换数据添加至经验回放池,并从经验回放池中随机采样预设数量的转换数据作为训练数据;第一梯度计算单元,用于利用训练数据、目标演员网络、目标评论家网络、在线评论家网络及如下损失函数,确定在线评论家网络参数的第一梯度;,其中,表示损失函数,表示连续动作,表示第个时间步对应的历史状态向量,表示在线评论家网络,在线评论家网络参数,表示预设数量;表示对目标评论家网络的估计,,表示第个时间步对应的奖励值,表示预设的折扣因子,表示目标评论家网络,表示目标评论家网络参数,表示目标演员网络,表示目标演员网络参数,表示第个时间步对应的当前状态向量;第一更新单元,用于根据第一梯度对在线评论家网络参数进行更新;第二梯度计算单元,用于利用训练数据、更新后的在线评论家网络、在线演员网络及目标函数确定绩效目标,并确定绩效目标关于确定在线演员网络参数的第二梯度:其中,表示当环境状态o服从分布函数为的分布时的期望值,
;表示在线演员网络参数,表示第二梯度;第二更新单元,用于基于第二梯度对在线演员网络参数进行更新;第三更新单元,用于利用更新后的在线评论家网络参数和在线演员网络参数以如下方式对目标评论家网络参数和目标演员网络参数进行更新:其中,为预设值。
[0104]
请参考图5,图5为本发明实施例所提供的一种电子设备的结构框图,本发明实施例还提供一种电子设备,包括:存储器501,用于存储计算机程序;处理器502,用于执行计算机程序时实现如上述的图神经网络压缩方法的步骤。
[0105]
由于电子设备部分的实施例与图神经网络压缩方法部分的实施例相互对应,因此电子设备部分的实施例请参见图神经网络压缩方法部分的实施例的描述,这里不再赘述。
[0106]
请参考图6,图6为本发明实施例所提供的一种计算机可读存储介质的结构框图,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质601上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的图神经网络压缩方法的步骤。
[0107]
由于计算机可读存储介质部分的实施例与图神经网络压缩方法部分的实施例相互对应,因此存储介质部分的实施例请参见图神经网络压缩方法部分的实施例的描述,这里不再赘述。
[0108]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0109]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0110]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0111]
以上对本发明所提供的一种图神经网络压缩方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这
些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献