一种图神经网络压缩方法、装置、电子设备及存储介质制造方法及图纸

技术编号:35661552 阅读:20 留言:0更新日期:2022-11-19 16:59
本发明专利技术提供一种图神经网络压缩方法、装置、电子设备及存储介质,涉及神经网络领域,方法包括:获取已训练的图神经网络及其训练时所使用的图数据;确定图数据中所有图顶点对应的度数分布范围,并将度数分布范围划分为多个度数区间;在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各度数区间对应的最优区间量化位宽以及图神经网络对应的最优网络量化位宽;利用最优区间量化位宽对图数据中对应度数的图顶点的顶点特征进行量化压缩,并利用最优网络量化位宽对图神经网络进行量化压缩,得到最优量化图数据和最优量化图神经网络;利用强化学习为图神经网络和图顶点特征确定最优量化位宽,确保量化图神经网络具有高精度及较低资源消耗率。度及较低资源消耗率。度及较低资源消耗率。

【技术实现步骤摘要】
一种图神经网络压缩方法、装置、电子设备及存储介质


[0001]本专利技术涉及神经网络领域,特别涉及一种图神经网络压缩方法、装置、电子设备及存储介质。

技术介绍

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

技术实现思路

[0005]本专利技术的目的是提供一种图神经网络压缩方法、装置、电子设备及存储介质,可在预设资源限制条件的约束下,利用强化学习为图神经网络和图数据中的顶点特征自动确定最优量化位宽,以确保得到的量化图神经网络同时具有较高精度及较低资源消耗率。
[0006]为解决上述技术问题,本专利技术提供一种图神经网络压缩方法,包括:获取已训练的图神经网络及其训练时所使用的图数据;确定所述图数据中所有图顶点对应的度数分布范围,并将所述度数分布范围划分为多个度数区间;在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各所述度数区间对应的最优区间量化位宽以及所述图神经网络对应的最优网络量化位宽;利用所述最优区间量化位宽对所述图数据中对应度数的图顶点的顶点特征进行量化压缩,以及利用所述最优网络量化位宽对所述图神经网络进行量化压缩,得到最优量
化图数据和最优量化图神经网络。
[0007]可选地,所述确定所述图数据中所有图顶点对应的度数分布范围,并将所述度数分布范围划分为多个度数区间间,包括:将所述图数据中的所有图顶点按度数从小到大排列,得到图顶点序列;利用所述图顶点序列对所述度数分布范围进行划分,得到多个所述度数区间;各所述度数区间包含的图顶点数量相同或差值小于预设阈值。
[0008]可选地,在得到最优量化图数据和最优量化图神经网络之后,还包括:利用所述最优量化图数据对所述最优量化图神经网络进行训练,得到微调量化图神经网络,以将所述微调量化图神经网络部署至对外服务设备中。
[0009]可选地,所述硬件加速器的时序结构为可重构位串行矩阵乘法叠加,空间结构为BitFusion架构。
[0010]可选地,所述在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各所述度数区间对应的最优区间量化位宽以及所述图神经网络对应的最优网络量化位宽,包括:获取所述图神经网络执行指定任务对应的基准准确度,并初始化所述强化学习所使用的智能体以及历史奖励值;所述智能体包括演员模块和评论家模块;将策略次数设置为1,并初始化动作序列以及历史状态向量;所述动作序列用于保存各所述度数区间对应的区间量化位宽以及所述图神经网络对应的网络量化位宽;状态向量用于记录量化图神经网络在处理量化图数据时对应的内存占用量、计算量以及在执行所述指定任务时对应的准确度;将时间步设置为1,并在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作,利用所述连续动作对所述动作序列进行数值更新,并在更新后确定所述动作序列对应的内存占用量及计算量;利用所述动作序列对所述图数据中的顶点特征和所述图神经网络进行量化压缩,并将得到的量化图数据和量化图神经网络发送至所述硬件加速器,以使所述硬件加速器利用所述量化图数据对所述量化图神经网络进行训练,并确定训练后的所述量化图神经网络执行所述指定任务对应的当前准确度;利用所述动作序列对应的内存占用量、计算量和所述准确度确定当前状态向量,以及利用所述基准准确度和所述当前准确度确定奖励值;在确定所述奖励值大于所述历史奖励值时,利用所述奖励值更新所述历史奖励值,并利用所述更新后的动作序列对所述最优区间量化位宽及所述最优网络量化位宽进行更新;利用所述历史状态向量、所述连续动作、所述奖励值和所述当前状态向量生成转换数据,并利用所述转换数据对所述演员模块和所述评论家模块进行训练,以使所述评论家模块对所述演员模块在进行所述数值更新时所使用的策略进行更新;当确定所述时间步未达到所述动作序列的长度时,对所述时间步加1,利用所述当前状态向量更新所述历史状态向量,并进入所述在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作的步骤;当确定所述时间步达到所述动作序列的长度且所述策略次数未达到预设值时,对
所述策略次数加1,并进入所述初始化动作序列以及历史状态向量的步骤;当确定所述策略次数达到所述预设值时,输出所述最优区间量化位宽及所述最优网络量化位宽。
[0011]可选地,所述在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作,利用所述连续动作对所述动作序列进行数值更新,并在更新后确定所述动作序列对应的内存占用量及计算量,包括:利用所述演员模块根据Behavior策略选择所述连续动作,并通过如下方式将所述连续动作进行离散化,得到离散动作值:;其中,表示第个时间步的动作序列中的第i个量化位宽对应的连续动作,表示与对应的离散动作值,Q包含多个预设量化位宽值,表示四舍五入函数,和表示预设的最小量化位宽和最大量化位宽,函数用于在Q中选择目标预设量化位宽值q,以使最小;利用所述动作值对所述动作序列进行数值更新,确定更新后的所述动作序列对应的内存占用量、计算量及延迟量,并判断所述内存占用量、所述计算量及所述延迟量是否满足所述预设资源限制条件的限制;若是,则进入所述利用所述动作序列对所述图数据中的顶点特征和所述图神经网络进行量化压缩的步骤;若否,则按照预设顺序依次对所述动作序列中的量化位宽进行减少,以再次更新所述动作序列,并在每次减少动作完成时进入所述确定更新后的所述动作序列对应的内存占用量、计算量及延迟量的步骤。
[0012]可选地,所述利用所述演员模块根据Behavior策略选择连续动作,包括:利用所述演员本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图神经网络压缩方法,其特征在于,包括:获取已训练的图神经网络及其训练时所使用的图数据;确定所述图数据中所有图顶点对应的度数分布范围,并将所述度数分布范围划分为多个度数区间;在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各所述度数区间对应的最优区间量化位宽以及所述图神经网络对应的最优网络量化位宽;利用所述最优区间量化位宽对所述图数据中对应度数的图顶点的顶点特征进行量化压缩,以及利用所述最优网络量化位宽对所述图神经网络进行量化压缩,得到最优量化图数据和最优量化图神经网络。2.根据权利要求1所述的图神经网络压缩方法,其特征在于,所述确定所述图数据中所有图顶点对应的度数分布范围,并将所述度数分布范围划分为多个度数区间,包括:将所述图数据中的所有图顶点按度数从小到大排列,得到图顶点序列;利用所述图顶点序列对所述度数分布范围进行划分,得到多个所述度数区间;各所述度数区间包含的图顶点数量相同或差值小于预设阈值。3.根据权利要求1所述的图神经网络压缩方法,其特征在于,在得到最优量化图数据和最优量化图神经网络之后,还包括:利用所述最优量化图数据对所述最优量化图神经网络进行训练,得到微调量化图神经网络,以将所述微调量化图神经网络部署至对外服务设备中。4.根据权利要求1所述的图神经网络压缩方法,其特征在于,所述硬件加速器的时序结构为可重构位串行矩阵乘法叠加,空间结构为BitFusion架构。5.根据权利要求1至4任一项所述的图神经网络压缩方法,其特征在于,所述在预设资源限制条件的约束下,利用强化学习及硬件加速器确定各所述度数区间对应的最优区间量化位宽以及所述图神经网络对应的最优网络量化位宽,包括:获取所述图神经网络执行指定任务对应的基准准确度,并初始化所述强化学习所使用的智能体以及历史奖励值;所述智能体包括演员模块和评论家模块;将策略次数设置为1,并初始化动作序列以及历史状态向量;所述动作序列用于保存各所述度数区间对应的区间量化位宽以及所述图神经网络对应的网络量化位宽;状态向量用于记录量化图神经网络在处理量化图数据时对应的内存占用量、计算量以及在执行所述指定任务时对应的准确度;将时间步设置为1,并在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作,利用所述连续动作对所述动作序列进行数值更新,并在更新后确定所述动作序列对应的内存占用量及计算量;利用所述动作序列对所述图数据中的顶点特征和所述图神经网络进行量化压缩,并将得到的量化图数据和量化图神经网络发送至所述硬件加速器,以使所述硬件加速器利用所述量化图数据对所述量化图神经网络进行训练,并确定训练后的所述量化图神经网络执行所述指定任务对应的当前准确度;利用所述动作序列对应的内存占用量、计算量和所述准确度确定当前状态向量,以及利用所述基准准确度和所述当前准确度确定奖励值;在确定所述奖励值大于所述历史奖励值时,利用所述奖励值更新所述历史奖励值,并
利用所述更新后的动作序列对所述最优区间量化位宽及所述最优网络量化位宽进行更新;利用所述历史状态向量、所述连续动作、所述奖励值和所述当前状态向量生成转换数据,并利用所述转换数据对所述演员模块和所述评论家模块进行训练,以使所述评论家模块对所述演员模块在进行所述数值更新时所使用的策略进行更新;当确定所述时间步未达到所述动作序列的长度时,对所述时间步加1,利用所述当前状态向量更新所述历史状态向量,并进入所述在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作的步骤;当确定所述时间步达到所述动作序列的长度且所述策略次数未达到预设值时,对所述策略次数加1,并进入所述初始化动作序列以及历史状态向量的步骤;当确定所述策略次数达到所述预设值时,输出所述最优区间量化位宽及所述最优网络量化位宽。6.根据权利要求5所述的图神经网络压缩方法,其特征在于,所述在所述预设资源限制条件的约束下,利用所述演员模块确定连续动作,利用所述连续动作对所述动作序列进行数值更新,并在更新后确定所述动作序列对应的内存占用量及计算量,包括:利用所述演员模块根据Behavior策略选择所述连续动作,并通过如下方式将所述连续动作进行离散化,得到离散动作值:;其中,表示第个时间步的动作序列中的第i个量化位宽对应的连续动作,表示与对应的离散动作值,Q包含多个预设量化位宽值,表示四舍五入函数,和表示预设的最小量化位宽和最大量化位宽,函数用于在Q中选择目标预设量化位宽值q,以使最小;利用所述动作值对所述动作序列进行数值更新,确定更新后的所述动作序列对应的内存占用量、计算量及延迟量,并判断所述内存占用量、所述计算量及所述延迟量是否满足所述预设资源限制条件的限制;若是,则进入所述利用所述动作序列对所述图数据中的顶点特征和所述图神经网络进行量化压缩的步骤;若否,则按照预设顺序依次对所述动作序列中的量化位宽进行减少,以再次更新所述动作序列,并在每次减少动作完成时进入所述确定更新后的所述动作序列对应的内存占用量、计算量及延迟量的步骤。7.根据权利要求6所述的图神经网络压缩方法,其特征在于,所述利用所述演员模块根据Behavior策略选择所述连续动作,包括:利用所述演员模块根据Behavior策略以如下方式选择连续动作:,其中,表示第个时间步对应的随机UO噪声,表...

【专利技术属性】
技术研发人员:胡克坤董刚赵雅倩李仁刚
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1