CN114611656A - 神经网络的梯度稀疏方法和梯度稀疏装置 - Google Patents

神经网络的梯度稀疏方法和梯度稀疏装置 Download PDF

Info

Publication number
CN114611656A
CN114611656A CN202011425588.7A CN202011425588A CN114611656A CN 114611656 A CN114611656 A CN 114611656A CN 202011425588 A CN202011425588 A CN 202011425588A CN 114611656 A CN114611656 A CN 114611656A
Authority
CN
China
Prior art keywords
sparse
gradient
threshold
training
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011425588.7A
Other languages
English (en)
Inventor
李标智
黄炜平
徐斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011425588.7A priority Critical patent/CN114611656A/zh
Publication of CN114611656A publication Critical patent/CN114611656A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Complex Calculations (AREA)

Abstract

本申请提供人工智能领域中神经网络的梯度稀疏方法和相关装置。本申请提出了利用数据运算方法计算得到稀疏阈值,或者对实际稀疏度与预设稀疏度进行比较并基于比较结果来更新稀疏阈值,避免了使用排序操作来确定稀疏阈值,大大降低运算量,最终可以提高神经网络的训练效率。进一步地,本申请提出了每隔m轮迭代才更新一次稀疏阈值,从而每m轮迭代训练可以节省m‑1轮的稀疏阈值更新时间,进而可以提高神经网络的训练效率,m为大于1的整数。更进一步地,本申请还提出了稀疏阈值更新和梯度稀疏处理可以并行处理,从而可以提高神经网络的训练效率。

Description

神经网络的梯度稀疏方法和梯度稀疏装置
技术领域
本申请涉及人工智能技术领域,尤其涉及神经网络的梯度稀疏方法和梯度稀疏装置。
背景技术
随着近年来人工智能(artificial intelligence,AI)的不断发展,人工智能已经在全世界的范围内引起一轮新的创新和变革,开始推进人类从信息化向智能化时代发展和转变。与此同时,新的变化也在人工智能领域中不断发生。人工智能技术的发展从学术阶段逐步走向实验阶段,向着学术界产业界协同推进的产业化阶段持续发展着。
人工智能的关键技术是神经网络。神经网络通过模拟人脑神经细胞连接,将大量的、简单的处理单元(称为神经元)广泛互连,形成复杂的网络系统。当前,大型的深度神经网络普遍使用分布式训练的方法来加快训练速度。训练过程中,分布式训练系统中各节点之间需要频繁进行梯度传输来同步各节点上的模型参数。
目前,使用分布式训练方法来训练神经网络,一方面,需要节点配置昂贵的高带宽网络,加大硬件成本;另一方面,随着分布式训练系统的节点数增多,分布式训练的加速线性度大大下降,严重影响分布式训练的性能。为了解决上述问题,在神经网络的训练过程中,提出了如下方法:分布式训练系统中各节点对梯度先进行稀疏处理然后再传输,以达到节省带宽和加速训练的目的。
目前,分布式训练系统中各节点对梯度进行梯度稀疏时,对每一次需要传输的梯度进行排序,然后选取绝对值最大的K个梯度值,并将其余梯度值置零,从而实现梯度稀疏。
上述梯度稀疏方法中,由于每次都需要对梯度进行排序,且排序操作耗时较多,因此,梯度稀疏处理的效率较低,从而影响神经网络的训练效率。
发明内容
本申请提供了神经网络的梯度稀疏方法和梯度稀疏装置,可以提高神经网络的训练效率。
第一方面,本申请提供了一种神经网络的梯度稀疏方法。所述梯度稀疏方法应用于分布式训练系统中,所述分布式训练系统用于对所述神经网络进行N轮迭代训练,所述分布式训练系统中包括M个训练装置,所述M个训练装置中的每个训练装置中部署有所述神经网络,N和M为大于1的正整数。
所述方法包括:所述M个训练装置中的第一训练装置仅在所述N轮迭代训练中的第i轮迭代训练中,根据当前梯度集合更新存储器中的稀疏阈值,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,i为小于N的正整数,且i为m的整数倍,m为小于N且大于1的整数;所述第一训练装置在所述第i轮迭代训练中,使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,得到所述稀疏梯度。
本方法中,因为不需要每轮迭代都更新稀疏阈值,而是每隔m轮才更新一次稀疏阈值,因此每隔m轮就可以节省m-1轮迭代训练中更新稀疏阈值的时间,从而可以提高神经网络的训练效率。
结合第一方面,在第一种可能的实现方式中,所述第一训练装置在所述第i轮迭代训练中根据所述当前梯度集合更新所述存储器中的稀疏阈值,与所述第一训练装置在所述第i轮迭代训练中使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,并行执行。
本实现方式中的方法,因为第一训练装置在当前轮次迭代过程中,进行梯度稀疏所使用的稀疏阈值为之前轮次中计算得到的稀疏阈值,而不必等到当前轮次更新得到新的稀疏阈值之后才对梯度进行稀疏处理,所以在本轮中可以稀疏阈值的更新和梯度稀疏处理并行处理,从而可以降低梯度稀疏的时延,进而可以提高神经网络的训练效率。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,所述M个训练装置中的第一训练装置仅在所述N轮迭代训练中的第i轮迭代训练中,根据当前梯度集合更新存储器中的稀疏阈值,包括:所述第一训练装置仅在所述第i轮迭代训练中,根据当前梯度均值、历史梯度均值、当前梯度标准差、历史梯度标准差和存储器中的稀疏阈值计算得到新稀疏阈值,并将所述存储器中的稀疏阈值更新为所述新稀疏阈值,所述当前梯度均值为所述当前梯度集合中的梯度的均值,所述历史梯度均值为历史梯度集合中的梯度的均值,所述历史梯度集合中包括所述第一训练装置计算所述存储器中更新前的稀疏阈值所使用的参数梯度,所述当前梯度标准差为所述当前梯度集合中的梯度的标准差,所述历史梯度标准差为所述历史梯度集合中的梯度的标准差,所述存储器中更新前的稀疏阈值和所述历史梯度均值之间的映射关系与所述存储器中更新后的稀疏阈值与所述当前梯度均值之间的映射关系相同。
本实现方式的方法中,因为在计算稀疏阈值时,不再对梯度进行排序,而是基于之前的稀疏阈值,利用数据运算方法计算得到当前轮次的稀疏阈值,因此可以节省对大量梯度进行排序所使用的时间和计算资源,从而可以提高计算稀疏阈值的效率,进而可以提高进行梯度稀疏处理的效率,最终可以提高神经网络的训练效率。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述新稀疏阈值、所述当前梯度均值、所述历史梯度均值、所述当前梯度标准差、所述历史梯度标准差与所述存储器中更新前的稀疏阈值之间满足如下关系式:
Figure BDA0002824683110000021
其中,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,μ表示所述历史梯度均值,μnew表示所述当前梯度均值,σ表示所述历史梯度标准差,σnew表示所述当前梯度标准差。
结合第一方面或第一种可能的实现方式,在第四种可能的实现方式中,所述M个训练装置中的第一训练装置仅在所述N轮迭代训练中的第i轮迭代训练中,根据当前梯度集合更新存储器中的稀疏阈值,包括:所述第一训练装置仅在所述第i轮迭代训练中,根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,其中,若所述比例大于或等于第一阈值,则所述第一训练装置减小所述存储器中的稀疏阈值,若所述比例小于或等于第二阈值,则所述第一训练装置增大所述存储器中的稀疏阈值,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,所述目标梯度包括小于或等于所述存储器中更新前的稀疏阈值的梯度。
本实现方式中,因为在计算稀疏阈值时,不再对梯度进行排序,而是计算实际稀疏度,并对实际稀疏度和预设的稀疏度进行比较,并基于比较结果来更新稀疏阈值,因此可以节省对大量梯度进行排序所使用的时间和计算资源,从而可以提高计算稀疏阈值的效率,进而可以提高进行梯度稀疏处理的效率,最终可以提高神经网络的训练效率。
其中,第一阈值或第二阈值即为预设的稀疏度,目标梯度的比例即为实际稀疏度。
结合第四种可能的实现方式,在第五种可能的实现方式中,所述第一训练装置仅在所述第i轮迭代训练中,根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,包括:所述第一训练装置根据所述当前梯度集合和所述存储器中的稀疏阈值生成所述当前梯度集合对应的稀疏掩码矩阵,所述稀疏掩码矩阵中的每个元素的值为1表示所述每个元素对应的梯度大于所述存储器中的稀疏阈值,所述每个元素的值为0表示所述每个元素对应的梯度小于或等于所述存储器中的稀疏阈值;所述第一训练装置根据所述稀疏掩码矩阵中值为0的元素的数量计算所述比例,其中,所述稀疏掩码矩阵中所有元素的和、所述稀疏掩码矩阵中的所有元素的个数和所述比例之间满足如下关系式:
sparse ratio=1-sum(mask)/size(mask)
如果sparse ratio-sr>ε,则thnew=th-α*th;如果sparse ratio-sr<-ε,则thnew=th+α*th;
其中,sparse ratio表示所述稀疏掩码矩阵中值为0的元素所占的比例,sum(mask)表示所述稀疏掩码矩阵中所有元素的和,size(mask)表示所述稀疏掩码矩阵中的所有元素的数量,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,sr是预设的稀疏度,α是每次更新阈值的步长,ε是一个预设的超参数。
其中,sr与ε的和为第一阈值的一种示例,sr减去ε所得的差为第二阈值的一种示例。
第二方面,一种神经网络的梯度稀疏方法。所述梯度稀疏方法应用于分布式训练系统中,所述分布式训练系统用于对所述神经网络进行N轮迭代训练,所述分布式训练系统中包括M个训练装置,所述M个训练装置中的每个训练装置中部署有所述神经网络,N和M为大于1的正整数。
所述方法包括:所述N轮迭代训练中的第i轮迭代训练中,所述M个训练装置中的第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,i为小于或等于N的正整数,且i大于1;在所述第i轮迭代训练中,所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,得到所述稀疏梯度;并且,在所述第i轮迭代训练中,所述第一训练装置根据所述当前梯度集合更新所述存储器中的稀疏阈值,与所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,并行执行。
本方法中,因为第一训练装置在当前轮次迭代过程中,进行梯度稀疏所使用的稀疏阈值为之前轮次中计算得到的稀疏阈值,而不必等到当前轮次更新得到新的稀疏阈值之后才对梯度进行稀疏处理,所以在本轮中可以稀疏阈值的更新和梯度稀疏处理并行处理,从而可以降低梯度稀疏的时延,进而可以提高神经网络的训练效率。
结合第二方面,在第一种可能的实现方式中,所述M个训练装置中的第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,包括:所述第一训练装置根据当前梯度均值、历史梯度均值、当前梯度标准差、历史梯度标准差和存储器中的稀疏阈值计算得到新稀疏阈值,并将所述存储器中的稀疏阈值更新为所述新稀疏阈值,所述当前梯度均值为所述当前梯度集合中的梯度的均值,所述历史梯度均值为历史梯度集合中的梯度的均值,所述历史梯度集合中包括所述第一训练装置计算所述存储器中更新前的稀疏阈值所使用的参数梯度,所述当前梯度标准差为所述当前梯度集合中的梯度的标准差,所述历史梯度标准差为所述历史梯度集合中的梯度的标准差,所述存储器中更新前的稀疏阈值和所述历史梯度均值之间的映射关系与所述存储器中更新后的稀疏阈值与所述当前梯度均值之间的映射关系相同。
本实现方式中,因为在计算稀疏阈值时,不再对梯度进行排序,而是基于之前的稀疏阈值,利用数据运算方法计算得到当前轮次的稀疏阈值,因此可以节省对大量梯度进行排序所使用的时间和计算资源,从而可以提高计算稀疏阈值的效率,进而可以提高进行梯度稀疏处理的效率,最终可以提高神经网络的训练效率。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述新稀疏阈值、所述当前梯度均值、所述历史梯度均值、所述当前梯度标准差、所述历史梯度标准差与所述存储器中更新前的稀疏阈值之间满足如下关系式:
Figure BDA0002824683110000041
其中,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,μ表示所述历史梯度均值,μnew表示所述当前梯度均值,σ表示所述历史梯度标准差,σnew表示所述当前梯度标准差。
结合第二方面,在第三种可能的实现方式中,所述M个训练装置中的第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,包括:根据所述当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,其中,若所述比例大于或等于第一阈值,则所述第一训练装置减小所述存储器中的稀疏阈值,若所述比例小于或等于第二阈值,则所述第一训练装置增大所述存储器中的稀疏阈值,所述目标梯度包括小于或等于所述存储器中更新前的稀疏阈值的梯度。
本实现方式中,因为在计算稀疏阈值时,不再对梯度进行排序,而是对当前实际稀疏度和预设稀疏度进行比较,并基于比较结果来更新稀疏阈值,因此可以节省对大量梯度进行排序所使用的时间和计算资源,从而可以提高计算稀疏阈值的效率,进而可以提高进行梯度稀疏处理的效率,最终可以提高神经网络的训练效率。
其中,第一阈值或第二阈值即为预设的稀疏度,目标梯度的比例即为实际稀疏度。
结合第三种可能的实现方式,在第四种可能的实现方式中,其特征在于所述第一训练装置根据所述当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,包括:所述第一训练装置根据所述当前梯度集合和所述存储器中的稀疏阈值生成所述当前梯度集合对应的稀疏掩码矩阵,所述稀疏掩码矩阵中的每个元素的值为1表示所述每个元素对应的梯度大于所述存储器中的稀疏阈值,所述每个元素的值为0表示所述每个元素对应的梯度小于或等于所述存储器中的稀疏阈值;所述第一训练装置根据所述稀疏掩码矩阵中值为0的元素的数量计算所述比例,其中,所述稀疏掩码矩阵中所有元素的和、所述稀疏掩码矩阵中的所有元素的个数和所述比例之间满足如下关系式:
sparse ratio=1-sum(mask)/size(mask)
如果sparse ratio-sr>ε,则thnew=th-α*th;如果sparse ratio-sr<-ε,则thnew=th+α*th;
其中,sparse ratio表示所述稀疏掩码矩阵中值为0的元素所占的比例,sum(mask)表示所述稀疏掩码矩阵中所有元素的和,size(mask)表示所述稀疏掩码矩阵中的所有元素的数量,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,sr是预设的稀疏度,α是每次更新阈值的步长,ε是一个预设的超参数。
其中,sr与ε的和为第一阈值的一种示例,sr减去ε所得的差为第二阈值的一种示例。
结合第二方面或上述任意一种可能的实现方式,在第五种可能的实现方式中,所述i为m的整数倍,m为大于1且小于N的整数。
本实现方式中,因为不需要每轮迭代都更新稀疏阈值,而是每隔m轮才更新一次稀疏阈值,因此每隔m轮就可以节省m-1轮迭代训练中更新稀疏阈值的时间,从而可以提高神经网络的训练效率。
第三方面,本申请提供了一种神经网络的梯度稀疏方法。所述梯度稀疏方法应用于分布式训练系统中,所述分布式训练系统用于对所述神经网络进行N轮迭代训练,所述分布式训练系统中包括M个训练装置,所述M个训练装置中的每个训练装置中部署有所述神经网络,N和M为大于1的正整数,所述方法包括:所述N轮迭代训练中的第i轮迭代训练中,所述第一训练装置根据当前梯度均值、历史梯度均值、当前梯度标准差、历史梯度标准差和存储器中的稀疏阈值计算得到新稀疏阈值,并将所述存储器中的稀疏阈值更新为所述新稀疏阈值,所述当前梯度均值为当前梯度集合中的梯度的均值,所述历史梯度均值为历史梯度集合中的梯度的均值,所述历史梯度集合中包括所述第一训练装置计算所述存储器中更新前的稀疏阈值所使用的参数梯度,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,所述当前梯度标准差为所述当前梯度集合中的梯度的标准差,所述历史梯度标准差为所述历史梯度集合中的梯度的标准差,所述存储器中更新前的稀疏阈值和所述历史梯度均值之间的映射关系与所述存储器中更新后的稀疏阈值与所述当前梯度均值之间的映射关系相同,i为小于或等于N的正整数;在所述第i轮迭代训练中,所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,得到稀疏梯度。
本方法中,因为在计算稀疏阈值时,不再对梯度进行排序,而是基于之前的稀疏阈值,利用数据运算方法计算得到当前轮次的稀疏阈值,因此可以节省对大量梯度进行排序所使用的时间和计算资源,从而可以提高计算稀疏阈值的效率,进而可以提高进行梯度稀疏处理的效率,最终可以提高神经网络的训练效率。
结合第三方面,在第一种可能的实现方式中,所述新稀疏阈值、所述当前梯度均值、所述历史梯度均值、所述当前梯度标准差、所述历史梯度标准差与所述存储器中更新前的稀疏阈值之间满足如下关系式:
Figure BDA0002824683110000051
其中,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,μ表示所述历史梯度均值,μnew表示所述当前梯度均值,σ表示所述历史梯度标准差,σnew表示所述当前梯度标准差。
结合第三方面或第一种可能的实现方式,在第二种可能的实现方式中,所述第一训练装置根据当前梯度均值、历史梯度均值、当前梯度标准差、历史梯度标准差和存储器中的稀疏阈值计算得到新稀疏阈值,与所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,并行执行。
该实现方式中,因为第一训练装置在当前轮次迭代过程中,进行梯度稀疏所使用的稀疏阈值为之前轮次中计算得到的稀疏阈值,而不必等到当前轮次更新得到新的稀疏阈值之后才对梯度进行稀疏处理,所以在本轮中可以稀疏阈值的更新和梯度稀疏处理并行处理,从而可以降低梯度稀疏的时延,进而可以提高神经网络的训练效率。
结合第三方面或上述任意一种可能的实现方式,在第三种可能的实现方式中,所述i为m的整数倍,m为大于1且小于N的整数。
该实现方式中,因为不需要每轮迭代都更新稀疏阈值,而是每隔m轮才更新一次稀疏阈值,因此每隔m轮就可以节省m-1轮迭代训练中更新稀疏阈值的时间,从而可以提高神经网络的训练效率。
第四方面,本申请提供了一种神经网络的梯度稀疏方法。所述梯度稀疏方法应用于分布式训练系统中,所述分布式训练系统用于对所述神经网络进行N轮迭代训练,所述分布式训练系统中包括M个训练装置,所述M个训练装置中的每个训练装置中部署有所述神经网络,N和M为大于1的正整数,所述方法包括:所述N轮迭代训练中的第i轮迭代训练中,所述第一训练装置根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,其中,若所述比例大于或等于第一阈值,则所述第一训练装置减小所述存储器中的稀疏阈值,若所述比例小于或等于第二阈值,则所述第一训练装置增大所述存储器中的稀疏阈值,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,所述目标梯度包括小于或等于所述存储器中更新前的稀疏阈值的梯度,i为小于N的正整数,且i大于1,N为正整数;在所述第i轮迭代训练中,所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,得到稀疏梯度。
该实现方式中,因为在计算稀疏阈值时,不再对梯度进行排序,而是计算实际稀疏度,并对实际稀疏度和预设的稀疏度进行比较,并基于比较结果来更新稀疏阈值,因此可以节省对大量梯度进行排序所使用的时间和计算资源,从而可以提高计算稀疏阈值的效率,进而可以提高进行梯度稀疏处理的效率,最终可以提高神经网络的训练效率。
其中,第一阈值或第二阈值即为预设的稀疏度,目标梯度的比例即为实际稀疏度。
结合第四方面,在第一种可能的实现方式中,所述第一训练装置仅在所述第i轮迭代训练中,根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,包括:所述第一训练装置根据所述当前梯度集合和所述存储器中的稀疏阈值生成所述当前梯度集合对应的稀疏掩码矩阵,所述稀疏掩码矩阵中的每个元素的值为1表示所述每个元素对应的梯度大于所述存储器中的稀疏阈值,所述每个元素的值为0表示所述每个元素对应的梯度小于或等于所述存储器中的稀疏阈值;所述第一训练装置根据所述稀疏掩码矩阵中值为0的元素的数量计算所述比例,其中,所述稀疏掩码矩阵中所有元素的和、所述稀疏掩码矩阵中的所有元素的个数和所述比例之间满足如下关系式:
sparse ratio=1-sum(mask)/size(mask)
如果sparse ratio-sr>ε,则thnew=th-α*th;如果sparse ratio-sr<-ε,则thnew=th+α*th;
其中,sparse ratio表示所述稀疏掩码矩阵中值为0的元素所占的比例,sum(mask)表示所述稀疏掩码矩阵中所有元素的和,size(mask)表示所述稀疏掩码矩阵中的所有元素的数量,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,sr是预设的稀疏度,α是每次更新阈值的步长,ε是一个预设的超参数。
其中,sr与ε的和为第一阈值的一种示例,sr减去ε所得的差为第二阈值的一种示例。
结合第四方面或第一种可能的实现方式,在第二种可能的实现方式中,所述第一训练装置根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,与在所述第i轮迭代训练中,所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,并行执行。
该实现方式中,因为第一训练装置在当前轮次迭代过程中,进行梯度稀疏所使用的稀疏阈值为之前轮次中计算得到的稀疏阈值,而不必等到当前轮次更新得到新的稀疏阈值之后才对梯度进行稀疏处理,所以在本轮中可以稀疏阈值的更新和梯度稀疏处理并行处理,从而可以降低梯度稀疏的时延,进而可以提高神经网络的训练效率。
结合第四方面或上述任意一种可能的实现方式,在第三种可能的实现方式中,所述i为m的整数倍,m为大于1且小于N的整数。
第五方面,本申请提供了一种神经网络的训练装置,该装置可以包括用于实现第一方面至第四方面中任意一方面或其中任意一种实现方式中的方法的各个功能模块,这些功能模块可以通过软件和/硬件的方式实现。
第六方面,本申请提供了一种神经网络的训练装置,该装置可以包括与存储器耦合的处理器。其中,该存储器用于存储程序代码,该处理器用于执行该存储器中的程序代码,以实现第一方面至第四方面中任意一方面或其中任意一种实现方式中的方法。
可选地,该装置还可以包括该存储器。
该装置为电子设备时,在一些实现方式中,该装置还可以包括收发器,用于与其他设备通信。
该装置为用于电子设备的芯片时,在一些实现方式中,该装置还可以包括通信接口,用于与电子设备中的其他装置通信,例如用于与电子设备的收发器进行通信。
第七方面,本申请提供了一种计算机可读存储介质,该计算机可读介质存储用于处理器执行的程序代码,该程序代码包括用于实现第一方面至第四方面中任意一方面或其中任意一种可能的实现方式中的方法的指令。
第八方面,本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在处理器上运行时,使得该处理器实现第一方面至第四方面中任意一方面或其中任意一种实现方式中的方法。
附图说明
图1为本申请一个实施例提供的分布式训练系统的示意图;
图2为本申请一个实施例的训练装置的示意性结构图;
图3为本申请一个实施例的神经网络的梯度稀疏方法的示意性流程图;
图4为本申请另一个实施例的神经网络的梯度稀疏方法的示意性流程图;
图5为本申请又一个实施例的神经网络的梯度稀疏方法的示意性流程图;
图6为本申请另一个实施例的神经网络的梯度稀疏方法的示意性流程图;
图7为本申请另一个实施例的训练装置的示意性结构图。
具体实施方式
为了更好地介绍本申请的实施例,下面先对本申请实施例中的相关概念进行介绍。
1、神经网络
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
当今人工智能的关键技术是神经网络(neural networks,NN)。神经网络通过模拟人脑神经细胞连接,将大量的、简单的处理单元(称为神经元)广泛互连,形成复杂的网络系统。
一个简单的神经网络包含三个层次,分别是输入层、输出层和隐藏层(也称中间层),每一层之间的连接都对应一个权重(其值称为权值、参数)。神经网络之所以能在计算机视觉、自然语言处理等领域有出色性能,是因为通过训练算法调整权值,使神经网络的预测结果最佳。
神经网络的训练一般包含两个计算步骤,第一步为前向计算,第二步为反向计算。其中,前向计算为:输入值与参数经过计算后,再经过一个非线性函数产生输出值。输出值或作为网络的最终输出,或将作为后续的输入值继续执行类似的计算。网络的输出值与对应样本的实际标签值的偏差,用模型损失函数来衡量,损失函数表示为输入样本x和网络参数W的函数f(x,w),为了使损失函数降至最小,需要不断调整网络的参数W,而反向计算是为了得到参数W的更新值,在基于梯度下降的算法中,反向计算从神经网络的最后一层开始,计算损失函数对每一层参数的偏导数,最后得到全部参数的偏导数,称为梯度。每次迭代时,把参数W以一定步长η向梯度的反方向更新,得到新的参数W,即完成一步训练。该更新过程用下式表示:
Figure BDA0002824683110000081
其中,wt表示第t次迭代时使用的参数,wt+1表示更新后的参数,η称为学习率,Bt表示第t次迭代输入的样本集合。
训练神经网络的过程也就是对神经元对应的权重进行学习的过程,其最终目的是得到训练好的神经网络模型的每一层神经元对应的权重。
2、分布式训练
使用多个训练节点进行训练的方法。分布式训练通常分为两种并行化方法:数据并行和模型并行。
在模型并行方式下,模型的层和参数将被分布在多个节点上,模型在一个mini-batch的前向和反向训练中,将经过多次跨节点之间的通信。每个节点只保存整个模型的一部分。
在数据并行方式下,每个节点保存有完整的模型的层和参数,每个节点独自完成前向和反向计算,然后完成梯度的聚合并同步的更新所有节点上的参数。
3、梯度
梯度是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大,在模型训练中梯度用来找到最小损失函数,训练模型,加快模型的收敛。模型训练的次数即梯度的步数。
4、梯度稀疏
梯度稀疏是通过将梯度数据稀疏化并进一步编码压缩来减小实际通信的数据量,从而缓解分布式训练的通信带宽受限问题。梯度稀疏的一般方法是使用一个阈值作为稀疏的指示,当梯度的幅度小于阈值时将其置零,只有幅度大于阈值的梯度才会被传输。一般情况下,模型的梯度中含有大量幅度较小的值,这些值对模型参数更新作用很小,将这些值置零几乎不影响模型的最终精度,一般可以将95%~99%的梯度值置为零,并保持精度。
下面将结合附图对本申请实施例的实施方式进行详细描述。
图1为本申请一个实施例提供的分布式训练系统的示意图。如图1所示,本申请的应用场景以图1所示的例子为例进行描述,神经网络分布式训练系统主要由多个训练装置组成,这多个训练装置之间可以相互通信。本实施例中的训练装置可以是任意具有计算能力的设备、系统或芯片等。
图2为本申请一个实施例的训练装置的示意性结构图。如图2所示,训练装置200可以包含AI芯片201。AI芯片201可以包括:用于执行梯度稀疏的稀疏模块202、数据压缩模块203、用于通信的接口204,解压缩模块205、梯度累加模块206和缓存单元207。
其中,AI芯片201可以包含矩阵计算单元(AI cube)和向量计算单元(vectorunit)。AI芯片可以是神经网络处理器(neural network processing unit,NPU)和/或图形处理器(graphics processing unit,GPU)等,稀疏模块、数据压缩模块、解压缩模块和梯度累加模块可以通过中央处理器(center processing unit,CPU)来实现,也可以通过其他类型的处理器来实现。
AI芯片201是训练神经网络最主要的计算单元,主要用于执行神经网络训练中的前向和反向计算。其中,矩阵计算单元主要用于完成神经网络训练的前向和反向计算,并将计算得到的梯度存入缓存单元;向量计算单元主要用于从缓存单元中读取来自矩阵计算单元的梯度数据,对梯度做进一步计算和修正,并将结果发送给稀疏模块;并且,向量计算单元还用于基于梯度更新稀疏阈值,将更新后的阈值发送给稀疏模块;
稀疏模块202主要用于读取梯度数据,并对梯度数据执行稀疏操作。例如,稀疏模块根据配置在寄存器中的稀疏阈值,将低于阈值的梯度置零,然后把稀疏后的梯度发送至数据压缩模块;
数据压缩模块203主要用于将稀疏后的梯度数据进行编码压缩,然后发送到通信接口。
通信接口204用于发送和接收数据。
解压缩模块205主要用于对通信接口204接收到的梯度数据进行解码解压后发送至梯度累加模块206。
梯度累加模块206主要用于将解码后的稀疏梯度与本地的稀疏梯度累加。
当前最主要的分布式训练方法为数据并行方式。以图1所示的分布式训练系统为例,分布式训练方法主要是在多个训练装置上分别同步一份相同的网络参数W,在每次迭代中,每个训练装置各自读取一批样本数据并计算对应的梯度,为了保证每个训练装置上的参数更新值相同,需要在每次迭代中把每个训练装置计算得到的梯度汇聚并同步到所有训练装置上,然后每个训练装置根据聚合后的梯度更新本地的权重w。网络的输出值与对应样本的实际标签值的偏差,用模型损失函数来衡量,损失函数表示为输入样本x和网络参数W的函数f(x,w),对其求偏导数为▽f(x,w)。该权重更新过程可以表示为如下公式:
Figure BDA0002824683110000091
其中,x为输入值(也称为激活值,activation),b表示输入样本的组数,wt表示第t次迭代时使用的参数,wt+1表示更新后的参数,η称为学习率,N表示训练装置的个数,Bk,t表示第k个设备在第t次迭代中的输入样本集合。
在神经网络的训练过程中,分布式训练系统中各个训练装置可以对梯度先进行稀疏处理然后再传输,以达到节省带宽和加速训练的目的。
现有技术中,各训练装置进行梯度稀疏压缩时,首先,每个训练装置复制一份相同的神经网络参数存储到本地,然后各自读取一批训练样本,通过前向和反向计算得到模型的梯度数据;随后,在每个训练装置上对本地的梯度值进行排序操作,并根据排序结果确定稀疏阈值,将低于稀疏阈值的梯度值置为0,得到稀疏后的梯度;最后,每个训练装置将稀疏后的梯度进行编码压缩,通过网卡等互连装置发送到其他训练装置,同时接收其他训练装置发送来的梯度。
上述梯度稀疏方法中,由于每次都需要对梯度进行排序操作,耗时较多,因此,梯度稀疏处理的效率较低,从而影响神经网络的训练效率。
针对上述梯度稀疏处理效率低的技术问题,本申请实施例提供了一种使用阈值自适应动态调整的方案,大大降低了计算量,同时还可以将阈值计算和更新操作与其他操作异步执行,避免了阈值计算和更新引入的额外耗时。
图3为本申请一个实施例的神经网络的梯度稀疏方法的示意性流程图。如图3所示,该方法可以包括S301和S302。
图3所示的方法可以应用于分布式训练系统中,该分布式训练系统用于对神经网络进行N轮迭代训练,该分布式训练系统中包括M个训练装置,这M个训练装置中的每个训练装置中部署有相同的神经网络,N和M为大于1的正整数。N可以是预先设置好的,也可以是由训练装置中设置的训练结束条件决定的。
S301,在N轮迭代训练中的第i轮迭代训练中,第一训练装置根据当前梯度均值、历史梯度均值、当前梯度标准差、历史梯度标准差和第一训练装置的存储器中的稀疏阈值计算得到新稀疏阈值,并将所述存储器中的稀疏阈值更新为所述新稀疏阈值,当前梯度均值为当前梯度集合中的梯度的均值,历史梯度均值为历史梯度集合中的梯度的均值,历史梯度集合中包括第一训练装置计算所述存储器中更新前的稀疏阈值所使用的参数梯度,当前梯度集合中包含第一训练装置在第i轮迭代训练中为所述神经网络计算的参数梯度,所述当前梯度标准差为所述当前梯度集合中的梯度的标准差,所述历史梯度标准差为所述历史梯度集合中的梯度的标准差,所述存储器中更新前的稀疏阈值和历史梯度均值之间的映射关系与所述存储器中更新后的稀疏阈值和当前梯度均值之间的映射关系相同,i为小于或等于N的正整数。
例如,第一训练装置中的AI芯片中的向量计算单元从寄存器中读取稀疏阈值、历史梯度均值和历史梯度标准差,并基于矩阵计算单元计算得到的当前梯度集合计算当前梯度均值和当前梯度标准差,以及基于读取的稀疏阈值、历史梯度均值、历史梯度标准差和计算得到的当前梯度均值、当前梯度标准差计算得到新的稀疏阈值。
本实施例中,第一训练装置可以是M个训练装置中的任意一个训练装置。作为一种示例,这M个训练装置中任意一个训练装置均为第一训练装置,换句话说,这M个训练装置中每个训练装置执行的操作均与第一训练装置执行的操作相同。
作为一种示例,存储器中更新前的稀疏阈值可以为第一训练装置在第i-m轮迭代训练中计算得到的稀疏阈值。此时,历史梯度集合为第一训练装置在第i-m轮迭代训练中计算得到的梯度构成的集合,m为正整数,且m小于或等于N。
S302,在第i轮迭代训练中,第一训练装置使用存储器中的稀疏阈值对当前梯度集合中的梯度进行稀疏处理,得到稀疏梯度。
例如,第一训练装置中的稀疏模块从第一训练装置的存储器中读取稀疏阈值,并基于该稀疏阈值对矩阵计算单元计算得到的当前梯度集合进行稀疏处理。
第一训练装置使用从存储器中读取的稀疏阈值对当前梯度集合中的梯度进行稀疏处理的实现方式以及后续处理流程,可以参考现有技术。
例如,稀疏模块可以将当前梯度集合中小于该稀疏阈值的梯度值置为0,并将稀疏后的梯度发送至数据压缩模块;数据压缩模块对稀疏后的梯度进行编码压缩,并将压缩得到的数据发送到通信接口;通信接口向其他训练装置发送将压缩后的数据;第一训练装置的通信接口接收到其他训练装置发送的数据后,由解压缩模块还原出其他训练装置上的稀疏梯度,并发送到梯度累加模块,由梯度累加模块将第一训练装置本地的稀疏梯度与来自其他训练装置的梯度进行累加,以及将累加结果存入缓存单元。每个训练装置上均可以执行步骤S301和S302,直到完成各个训练装置上的梯度聚合,然后各训练装置用累加后的梯度更新本地的神经网络的网络参数。
因为本实施例在计算稀疏阈值时,不再对梯度进行排序,而是基于之前的稀疏阈值,利用数据运算方法计算得到当前轮次的稀疏阈值,因此可以节省对大量梯度进行排序所使用的时间和计算资源,从而可以提高计算稀疏阈值的效率,进而可以提高进行梯度稀疏处理的效率,最终可以提高神经网络的训练效率。
本实施例中,第一训练装置根据更新前的稀疏阈值、当前梯度均值和历史梯度均值计算新稀疏阈值时,应使得更新前的稀疏阈值和历史梯度均值之间的映射关系,与新稀疏阈值与当前梯度均值之间的映射关系相同。
作为一个示例,更新前的稀疏阈值与历史梯度均值之间的映射关系可以为
Figure BDA0002824683110000111
新稀疏阈值与当前梯度均值之间的映射关系也为
Figure BDA0002824683110000112
其中,thnew表示新稀疏阈值,th表示更新前的稀疏阈值,μ表示历史梯度均值,μnew表示当前梯度均值,σ表示历史梯度标准差,历史梯度标准差为历史梯度集合中的梯度的标准差,σnew表示当前梯度标准差,当前梯度标准差为当前梯度集合中的梯度的标准差。
基于上述映射关系,计算新稀疏阈值时,新稀疏阈值与当前梯度均值、历史梯度均值以及更新前的稀疏阈值之间可以满足如下关系式:
Figure BDA0002824683110000113
可以理解的是,上述关系式仅是一种示例,对上述关系式进行任意线性变换得到的关系式都属于本申请的保护范围。
本实施例的一些实现方式中,S301和S302可以串行执行,即第一训练装置在执行完S301之后再执行S302。也就是说,第一训练装置在第i轮更新稀疏阈值后,再使用更新后的稀疏阈值来进行梯度稀疏处理。
本实施例的另一些实现方式中,S301和S302可以并行执行,即第一训练装置在执行S301以更新稀疏阈值的同时,还可以使用存储器中已有的稀疏阈值来进行梯度稀疏处理。也就是说,第一训练装置在第i轮中进行梯度稀疏时可以使用之前轮次中计算得到的稀疏阈值,并且,在第i轮中更新得到的稀疏阈值用于后面轮次的梯度稀疏。
该实现方式中,因为第一训练装置在当前轮次迭代过程中,进行梯度稀疏所使用的稀疏阈值为之前轮次中计算得到的稀疏阈值,而不必等到当前轮次更新得到新的稀疏阈值之后才对梯度进行稀疏处理,所以在本轮中可以稀疏阈值的更新和梯度稀疏处理并行处理,从而可以降低梯度稀疏的时延,进而可以提高神经网络的训练效率。
本实施例的一种实现方式中,第一训练装置可以仅在部分轮次迭代训练中使用S301中的方法来更新稀疏阈值。该实现方式中,由于不是每一轮次都需要进行稀疏阈值的更新,因此可以进一步提高神经网络的训练效率。
作为一个示例,在第一轮迭代训练过程中,可以使用现有技术中排序的方法来获取稀疏阈值,然后在第二轮至第N轮迭代训练中的全部轮次的迭代训练中,可以使用S301中的方法来计算并更新稀疏阈值。
作为另一个示例,第一训练装置可以每隔m轮使用S301中的方法计算并更新一次稀疏阈值。该示例中,i可以为m的整数倍,即训练轮次为m的整数倍时,在该训练轮次使用S301中的方法更新稀疏阈值。m为大于1的整数,且m小于N。m的大小可以是根据经验设置。
本示例中,因为不需要每轮迭代都更新稀疏阈值,而是每隔m轮才更新一次稀疏阈值,因此每隔m轮就可以节省m-1轮迭代训练中更新稀疏阈值的时间,从而可以提高神经网络的训练效率。
图4为本申请另一个实施例的神经网络的梯度稀疏方法的示意性流程图。如图4所示,该方法可以包括S401和S402。
图4所示的方法可以应用于分布式训练系统中,该分布式训练系统用于对神经网络进行N轮迭代训练,该分布式训练系统中包括M个训练装置,这M个训练装置中的每个训练装置中部署有相同的神经网络,N和M为大于1的正整数。N可以是预先设置好的,也可以是由训练装置中设置的训练结束条件决定的。
S401,在N轮迭代训练中的第i轮迭代训练中,第一训练装置根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,其中,若该比例大于或等于第一阈值,则第一训练装置减小存储器中的稀疏阈值,若该比例小于或等于第二阈值,则第一训练装置增大存储器中的稀疏阈值,当前梯度集合中包含第一训练装置在第i轮迭代训练中为神经网络计算的参数梯度,目标梯度包括小于或等于存储器中更新前的稀疏阈值的梯度,i为小于N的正整数,且i大于1,N为正整数。
例如,图7所示的第一训练装置中的阈值更新模块208从寄存器中读取稀疏阈值,并基于从稀疏模块获得到的当前梯度集合对应的掩码(mask)矩阵计算新的稀疏阈值,并将新的稀疏阈值写入存储器,以更新存储器中的稀疏阈值,或者将新的稀疏阈值发送给稀疏模块,由稀疏模块将该新的稀疏阈值写入存储器中。
本实施例中,目标梯度的比例可以称为当前实际的稀疏度。本实施例中,第一训练装置可以是M个训练装置中的任意一个训练装置。作为一种示例,这M个训练装置中任意一个训练装置均为第一训练装置,换句话说,这M个训练装置中每个训练装置执行的操作均与第一训练装置执行的操作相同。
作为一种示例,存储器中更新前的稀疏阈值可以为第一训练装置在第i轮之前的迭代训练中计算得到的稀疏阈值。
例如,存储器中更新前的稀疏阈值可以为第一训练装置在第i-1轮迭代训练中计算得到的稀疏阈值。
本实施例中,第一阈值大于第二阈值。第一阈值和第二阈值可以是预先基于经验设置好的。
S402,在第i轮迭代训练中,第一训练装置使用存储器中的稀疏阈值对当前梯度集合中的梯度进行稀疏处理,得到稀疏梯度。
因为本实施例在计算稀疏阈值时,不再对梯度进行排序,而是对当前实际稀疏度和预设的稀疏度进行比较,并基于比较结果来更新稀疏阈值,因此可以节省对大量梯度进行排序所使用的时间和计算资源,从而可以提高计算稀疏阈值的效率,进而可以提高进行梯度稀疏处理的效率,最终可以提高神经网络的训练效率。
本实施例中,第一训练装置根据存储器中的稀疏阈值确定当前梯度集合中目标梯度的比例时,在一种实现方式中,第一训练装置可以依次将当前梯度集合中的梯度与存储器中的稀疏阈值做比较,并统计当前梯度集合中小于或等于存储器中的稀疏阈值的梯度的总数,以及计算该总数与当前梯度集合中的梯度的总数的比例。
作为一个示例,第一训练装置可以根据当前梯度集合和存储器中的稀疏阈值生成当前梯度集合对应的稀疏掩码矩阵,该稀疏掩码矩阵中的每个元素的值为1表示该元素对应的梯度大于存储器中的稀疏阈值,每个元素的值为0表示该元素对应的梯度小于或等于存储器中的稀疏阈值;然后,第一训练装置可以根据稀疏掩码矩阵中值为0的元素的数量计算前述比例。
例如,可以通过下面的方式得到当前梯度集合中目标梯度的比例:第一训练装置生成与当前梯度集合对应的稀疏掩码矩阵,该稀疏掩码(mask)矩阵中的每个元素的值均初始化为1;根据存储器中的稀疏阈值,依次比较当前梯度集合中每个梯度与存储器中的稀疏阈值的大小,若进行比较的梯度大于存储器中的稀疏阈值,将稀疏掩码矩阵中与该梯度对应的元素的值置为0。最终得到的稀疏掩码矩阵中,大于存储器中的稀疏阈值的梯度对应的元素的值均为1,小于或等于存储器中的稀疏阈值的梯度对应的元素的值均为0。
稀疏掩码矩阵中所有元素的和、稀疏掩码矩阵中的所有元素的个数和所述比例之间应满足的一种关系式如下:
sparse ratio=1-sum(mask)/size(mask)
其中,sparse ratio表示所述稀疏掩码矩阵中值为0的元素所占的比例,sum(mask)表示所述稀疏掩码矩阵中所有元素的和,size(mask)表示所述稀疏掩码矩阵中的所有元素的数量。
可以理解的是,上述关系式仅是一种示例,例如,可以直接对稀疏矩阵中值为1的元素的数量进行计数,然后根据计数结果和当前梯度集合中梯度的数量计算前述比例。
本实施例中,基于目标梯度的比例更新存储器中的稀疏阈值的一种实现方式如下:
如果sparse ratio-sr>ε,则thnew=th-α*th;如果sparse ratio-sr<-ε,则thnew=th+α*th。
其中,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,sr是预设的稀疏度,α是每次更新阈值的步长,ε是一个预设的超参数。α的值也可以是预先设置好的。
本实施例中,sr与ε的和为第一阈值的一种示例,sr减去ε所得的差为第二阈值的一种示例。
本实施例的一些实现方式中,S401和S402可以串行执行,即第一训练装置在执行完S401之后再执行S402。也就是说,第一训练装置在第i轮更新稀疏阈值后,再使用更新后的稀疏阈值来进行梯度稀疏处理。
本实施例的另一些实现方式中,S401和S402可以并行执行,即第一训练装置在执行S401以更新稀疏阈值的同时,还可以使用存储器中已有的稀疏阈值来进行梯度稀疏处理。也就是说,第一训练装置在第i轮中进行梯度稀疏时可以使用之前轮次中计算得到的稀疏阈值,并且,在第i轮中更新得到的稀疏阈值用于后面轮次的梯度稀疏。
该实现方式中,因为第一训练装置在当前轮次迭代过程中,进行梯度稀疏所使用的稀疏阈值为之前轮次中计算得到的稀疏阈值,而不必等到当前轮次更新得到新的稀疏阈值之后才对梯度进行稀疏处理,所以在本轮中可以稀疏阈值的更新和梯度稀疏处理并行处理,从而可以降低梯度稀疏的时延,进而可以提高神经网络的训练效率。
本实施例的一种实现方式中,第一训练装置可以仅在部分轮次迭代训练中使用S401中的方法来更新稀疏阈值。该实现方式中,由于不是每一轮次都需要进行稀疏阈值的更新,因此可以进一步提高神经网络的训练效率。
作为一个示例,在第一轮迭代训练过程中,可以使用现有技术中排序的方法来获取稀疏阈值,然后在第二轮至第N轮迭代训练中的全部轮次的迭代训练中,可以使用S401中的方法来计算并更新稀疏阈值。
作为另一个示例,第一训练装置可以每隔m轮使用S401中的方法计算并更新一次稀疏阈值。该示例中,i可以为m的整数倍,即训练轮次为m的整数倍时,在该训练轮次使用S401中的方法更新稀疏阈值。m为大于1的整数,且m小于N。m的大小可以是根据经验设置。
本示例中,因为不需要每轮迭代都更新稀疏阈值,而是每隔m轮才更新一次稀疏阈值,因此每隔m轮就可以节省m-1轮迭代训练中更新稀疏阈值的时间,从而可以提高神经网络的训练效率。
图5为本申请又一个实施例的神经网络的梯度稀疏方法的示意性流程图。如图5所示,该方法可以包括S501和S502。
图5所示的方法可以应用于分布式训练系统中,该分布式训练系统用于对神经网络进行N轮迭代训练,该分布式训练系统中包括M个训练装置,这M个训练装置中的每个训练装置中部署有相同的神经网络,N和M为大于1的正整数。N可以是预先设置好的,也可以是由训练装置中设置的训练结束条件决定的。
S501,在N轮迭代训练中的第i轮迭代训练中,第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,当前梯度集合中包含第一训练装置在第i轮迭代训练中为神经网络计算的参数梯度,i为小于或等于N的正整数,且i大于1。
本实施例的一些实现方式中,根据当前梯度集合来更新稀疏阈值的实现方式可以参考S301中的相关内容,也可以参考S401中的相关内容,或者,还可以使用现有技术中的方法,例如通过排序方式获取稀疏阈值。
S502,在第i轮迭代训练中,第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理以得到稀疏梯度,并且,第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,与第一训练装置使用存储器中的稀疏阈值对当前梯度集合中的梯度进行稀疏处理,并行执行。
例如,第一训练装置中的稀疏模块从第一训练装置的存储器中读取稀疏阈值,并基于该稀疏阈值对矩阵计算单元计算得到的当前梯度集合进行稀疏处理。
第一训练装置使用从存储器中读取的稀疏阈值对当前梯度集合中的梯度进行稀疏处理的实现方式以及后续处理流程,可以参考现有技术。
第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,与第一训练装置使用存储器中的稀疏阈值对当前梯度集合中的梯度进行稀疏处理并行执行,可以理解为:第一训练装置使用第i轮之前的迭代轮次中更新得到的稀疏阈值来进行第i轮的梯度稀疏处理,并在第i轮计算新的稀疏阈值,该新的稀疏阈值用于第i轮以后的迭代轮次中进行梯度稀疏处理。
本实施例的方法中,因为第一训练装置在当前轮次迭代过程中,进行梯度稀疏所使用的稀疏阈值为之前轮次中计算得到的稀疏阈值,而不必等到当前轮次更新得到新的稀疏阈值之后才对梯度进行稀疏处理,所以在本轮中可以稀疏阈值的更新和梯度稀疏处理并行处理,从而可以降低梯度稀疏的时延,进而可以提高神经网络的训练效率。
本实施例的一些实现方式中,在第i轮迭代训练中,第一训练装置可以每隔m轮使用S501中的方法计算并更新一次稀疏阈值。该示例中,i可以为m的整数倍,即训练轮次为m的整数倍时,在该训练轮次使用S501中的方法更新稀疏阈值。m为大于1的整数,且m小于N。m的大小可以是根据经验设置。
本实现方式中,因为不需要每轮迭代都更新稀疏阈值,而是每隔m轮才更新一次稀疏阈值,因此每隔m轮就可以节省m-1轮迭代训练中更新稀疏阈值的时间,从而可以提高神经网络的训练效率。
图6为本申请另一个实施例的神经网络的梯度稀疏方法的示意性流程图。如图6所示,该方法可以包括S601和S602。
图6所示的方法可以应用于分布式训练系统中,该分布式训练系统用于对神经网络进行N轮迭代训练,该分布式训练系统中包括M个训练装置,这M个训练装置中的每个训练装置中部署有相同的神经网络,N和M为大于1的正整数。N可以是预先设置好的,也可以是由训练装置中设置的训练结束条件决定的。
S601,第一训练装置仅在N轮迭代训练中的第i轮迭代训练中,根据当前梯度集合更新存储器中的稀疏阈值,当前梯度集合中包含第一训练装置在第i轮迭代训练中为神经网络计算的参数梯度,i为小于N的正整数,且i为m的整数倍,m为小于N且大于1的整数。
本实施例中,第一训练装置仅在N轮迭代训练中的第i轮迭代训练中根据当前梯度集合更新存储器中的稀疏阈值,且i为m的整数倍,m大于1,可以理解为:在N轮迭代训练中,第一训练装置每隔m轮使用更新一次稀疏阈值。m的大小可以是根据经验设置。
也就是说,本实施例的方法中,N轮迭代训练中,迭代轮次为m的整数倍时,可以在迭代轮次更新稀疏阈值和进行梯度稀疏处理;迭代轮次不是m的整数倍时,可以不更新稀疏阈值,仅进行梯度稀疏处理。
本实施例中,根据当前梯度集合来更新稀疏阈值的实现方式可以参考S301中的相关内容,也可以参考S401中的相关内容,此处不再赘述。
S602,在第i轮迭代训练中,第一训练装置使用存储器中的稀疏阈值对当前梯度集合中的梯度进行稀疏处理,得到稀疏梯度。
本实施例中,因为不需要每轮迭代都更新稀疏阈值,而是每隔m轮才更新一次稀疏阈值,因此每隔m轮就可以节省m-1轮迭代训练中更新稀疏阈值的时间,从而可以提高神经网络的训练效率。
本实施例的一些实现方式中,在迭代轮次为m的整数倍,即i为m的整数倍的情况下,既进行梯度稀疏处理又更新稀疏阈值。这种实现方式中,更新稀疏阈值和梯度稀疏处理可以随路执行,即串行执行;或者,更新稀疏阈值和梯度稀疏处理可以并行执行,即梯度稀疏处理所使用的稀疏阈值为当前轮次之前计算得到的稀疏阈值,当前轮次更新后的稀疏阈值用于之后轮次的梯度稀疏处理。
第一训练装置在当前轮次迭代过程中,进行梯度稀疏所使用的稀疏阈值为之前轮次中计算得到的稀疏阈值,而不必等到当前轮次更新得到新的稀疏阈值之后才对梯度进行稀疏处理,即在本轮中可以稀疏阈值的更新和梯度稀疏处理并行处理,可以降低梯度稀疏的时延,从而可以提高神经网络的训练效率。
图7为本申请一个实施例的训练装置的示意性结构图。如图7所示,训练装置700中的AI芯片201可以包括稀疏模块202、数据压缩模块203、接口204,解压缩模块205、梯度累加模块206、缓存单元207和阈值更新模块208。图7中的模块201至207的含义可以参考图2中的相同模块的含义,此处不再赘述。
阈值更新模块208用于:接收来自稀疏模块202的稀疏mask,并基于该稀疏mask计算新的阈值,将新的阈值发送给稀疏模块208。
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”一般表示前后关联对象是一种“或”的关系。

Claims (23)

1.一种神经网络的梯度稀疏方法,其特征在于,所述梯度稀疏方法应用于分布式训练系统中,所述分布式训练系统用于对所述神经网络进行N轮迭代训练,所述分布式训练系统中包括M个训练装置,所述M个训练装置中的每个训练装置中部署有所述神经网络,N和M为大于1的正整数,所述方法包括:
所述M个训练装置中的第一训练装置仅在所述N轮迭代训练中的第i轮迭代训练中,根据当前梯度集合更新存储器中的稀疏阈值,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,i为小于N的正整数,且i为m的整数倍,m为小于N且大于1的整数;
所述第一训练装置在所述第i轮迭代训练中,使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,得到所述稀疏梯度。
2.根据权利要求1所述的方法,其特征在于,所述第一训练装置在所述第i轮迭代训练中根据所述当前梯度集合更新所述存储器中的稀疏阈值,与所述第一训练装置在所述第i轮迭代训练中使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,并行执行。
3.根据权利要求1或2所述的方法,其特征在于,所述M个训练装置中的第一训练装置仅在所述N轮迭代训练中的第i轮迭代训练中,根据当前梯度集合更新存储器中的稀疏阈值,包括:
所述第一训练装置仅在所述第i轮迭代训练中,根据当前梯度均值、历史梯度均值、当前梯度标准差、历史梯度标准差和存储器中的稀疏阈值计算得到新稀疏阈值,并将所述存储器中的稀疏阈值更新为所述新稀疏阈值,所述当前梯度均值为所述当前梯度集合中的梯度的均值,所述历史梯度均值为历史梯度集合中的梯度的均值,所述历史梯度集合中包括所述第一训练装置计算所述存储器中更新前的稀疏阈值所使用的参数梯度,所述当前梯度标准差为所述当前梯度集合中的梯度的标准差,所述历史梯度标准差为所述历史梯度集合中的梯度的标准差,所述存储器中更新前的稀疏阈值和所述历史梯度均值之间的映射关系与所述存储器中更新后的稀疏阈值与所述当前梯度均值之间的映射关系相同。
4.根据权利要求3所述的方法,其特征在于,所述新稀疏阈值、所述当前梯度均值、所述历史梯度均值、所述当前梯度标准差、所述历史梯度标准差与所述存储器中更新前的稀疏阈值之间满足如下关系式:
Figure FDA0002824683100000011
其中,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,μ表示所述历史梯度均值,μnew表示所述当前梯度均值,σ表示所述当前梯度标准差,σnew表示所述历史梯度标准差。
5.根据权利要求1或2所述的方法,其特征在于,所述M个训练装置中的第一训练装置仅在所述N轮迭代训练中的第i轮迭代训练中,根据当前梯度集合更新存储器中的稀疏阈值,包括:
所述第一训练装置仅在所述第i轮迭代训练中,根据所述当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,其中,若所述比例大于或等于第一阈值,则所述第一训练装置减小所述存储器中的稀疏阈值,若所述比例小于或等于第二阈值,则所述第一训练装置增大所述存储器中的稀疏阈值,所述目标梯度包括小于或等于所述存储器中更新前的稀疏阈值的梯度。
6.根据权利要求5所述的方法,其特征在于,所述第一训练装置仅在所述第i轮迭代训练中,根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,包括:
所述第一训练装置根据所述当前梯度集合和所述存储器中的稀疏阈值生成所述当前梯度集合对应的稀疏掩码矩阵,所述稀疏掩码矩阵中的每个元素的值为1表示所述每个元素对应的梯度大于所述存储器中的稀疏阈值,所述每个元素的值为0表示所述每个元素对应的梯度小于或等于所述存储器中的稀疏阈值;
所述第一训练装置根据所述稀疏掩码矩阵中值为0的元素的数量计算所述比例,其中,所述稀疏掩码矩阵中所有元素的和、所述稀疏掩码矩阵中的所有元素的个数和所述比例之间满足如下关系式:
sparse ratio=1-sum(mask)/size(mask)
如果sparse ratio-sr>ε,则thnew=th-α*th;如果sparse ratio-sr<-ε,则thnew=th+α*th;
其中,sparse ratio表示所述稀疏掩码矩阵中值为0的元素所占的比例,sum(mask)表示所述稀疏掩码矩阵中所有元素的和,size(mask)表示所述稀疏掩码矩阵中的所有元素的数量,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,sr是预设的稀疏度,α是每次更新阈值的步长,ε是一个预设的超参数。
7.一种神经网络的梯度稀疏方法,其特征在于,所述梯度稀疏方法应用于分布式训练系统中,所述分布式训练系统用于对所述神经网络进行N轮迭代训练,所述分布式训练系统中包括M个训练装置,所述M个训练装置中的每个训练装置中部署有所述神经网络,N和M为大于1的正整数,所述方法包括:
所述N轮迭代训练中的第i轮迭代训练中,所述M个训练装置中的第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,i为小于或等于N的正整数,且i大于1;
在所述第i轮迭代训练中,所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,得到所述稀疏梯度;
并且,在所述第i轮迭代训练中,所述第一训练装置根据所述当前梯度集合更新所述存储器中的稀疏阈值,与所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,并行执行。
8.根据权利要求7所述的方法,其特征在于,所述M个训练装置中的第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,包括:
所述第一训练装置根据当前梯度均值、历史梯度均值、当前梯度标准差、历史梯度标准差和存储器中的稀疏阈值计算得到新稀疏阈值,并将所述存储器中的稀疏阈值更新为所述新稀疏阈值,所述当前梯度均值为所述当前梯度集合中的梯度的均值,所述历史梯度均值为历史梯度集合中的梯度的均值,所述历史梯度集合中包括所述第一训练装置计算所述存储器中更新前的稀疏阈值所使用的参数梯度,所述当前梯度标准差为所述当前梯度集合中的梯度的标准差,所述历史梯度标准差为所述历史梯度集合中的梯度的标准差,所述存储器中更新前的稀疏阈值和所述历史梯度均值之间的映射关系与所述存储器中更新后的稀疏阈值与所述当前梯度均值之间的映射关系相同。
9.根据权利要求8所述的方法,其特征在于,所述新稀疏阈值、所述当前梯度均值、所述历史梯度均值、所述当前梯度标准差、所述历史梯度标准差与所述存储器中更新前的稀疏阈值之间满足如下关系式:
Figure FDA0002824683100000031
其中,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,μ表示所述历史梯度均值,μnew表示所述当前梯度均值,σ表示所述历史梯度标准差,σnew表示所述当前梯度标准差。
10.根据权利要求7所述的方法,其特征在于,所述M个训练装置中的第一训练装置根据当前梯度集合更新存储器中的稀疏阈值,包括:
根据所述当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,其中,若所述比例大于或等于第一阈值,则所述第一训练装置减小所述存储器中的稀疏阈值,若所述比例小于或等于第二阈值,则所述第一训练装置增大所述存储器中的稀疏阈值,所述目标梯度包括小于或等于所述存储器中更新前的稀疏阈值的梯度。
11.根据权利要求10所述的方法,其特征在于所述第一训练装置根据所述当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,包括:
所述第一训练装置根据所述当前梯度集合和所述存储器中的稀疏阈值生成所述当前梯度集合对应的稀疏掩码矩阵,所述稀疏掩码矩阵中的每个元素的值为1表示所述每个元素对应的梯度大于所述存储器中的稀疏阈值,所述每个元素的值为0表示所述每个元素对应的梯度小于或等于所述存储器中的稀疏阈值;
所述第一训练装置根据所述稀疏掩码矩阵中值为0的元素的数量计算所述比例,其中,所述稀疏掩码矩阵中所有元素的和、所述稀疏掩码矩阵中的所有元素的个数和所述比例之间满足如下关系式:
sparse ratio=1-sum(mask)/size(mask)
如果sparse ratio-sr>ε,则thnew=th-α*th;如果sparse ratio-sr<-ε,则thnew=th+α*th;
其中,sparse ratio表示所述稀疏掩码矩阵中值为0的元素所占的比例,sum(mask)表示所述稀疏掩码矩阵中所有元素的和,size(mask)表示所述稀疏掩码矩阵中的所有元素的数量,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,sr是预设的稀疏度,α是每次更新阈值的步长,ε是一个预设的超参数。
12.根据权利要求7至11中任一项所述的方法,其特征在于,所述i为m的整数倍,m为大于1且小于N的整数。
13.一种神经网络的梯度稀疏方法,其特征在于,所述梯度稀疏方法应用于分布式训练系统中,所述分布式训练系统用于对所述神经网络进行N轮迭代训练,所述分布式训练系统中包括M个训练装置,所述M个训练装置中的每个训练装置中部署有所述神经网络,N和M为大于1的正整数,所述方法包括:
所述N轮迭代训练中的第i轮迭代训练中,所述第一训练装置根据当前梯度均值、历史梯度均值、当前梯度标准差、历史梯度标准差和存储器中的稀疏阈值计算得到新稀疏阈值,并将所述存储器中的稀疏阈值更新为所述新稀疏阈值,所述当前梯度均值为当前梯度集合中的梯度的均值,所述历史梯度均值为历史梯度集合中的梯度的均值,所述历史梯度集合中包括所述第一训练装置计算所述存储器中更新前的稀疏阈值所使用的参数梯度,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,所述当前梯度标准差为所述当前梯度集合中的梯度的标准差,所述历史梯度标准差为所述历史梯度集合中的梯度的标准差,所述存储器中更新前的稀疏阈值和所述历史梯度均值之间的映射关系与所述存储器中更新后的稀疏阈值与所述当前梯度均值之间的映射关系相同,i为小于或等于N的正整数;
在所述第i轮迭代训练中,所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,得到稀疏梯度。
14.根据权利要求13所述的方法,其特征在于,所述新稀疏阈值、所述当前梯度均值、所述历史梯度均值、所述当前梯度标准差、所述历史梯度标准差与所述存储器中更新前的稀疏阈值之间满足如下关系式:
Figure FDA0002824683100000041
其中,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,μ表示所述历史梯度均值,μnew表示所述当前梯度均值,σ表示所述历史梯度标准差,σnew表示所述当前梯度标准差。
15.根据权利要求13或14所述的方法,其特征在于,所述第一训练装置根据当前梯度均值、当前梯度均值和存储器中的稀疏阈值计算得到新稀疏阈值,与所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,并行执行。
16.根据权利要求13至15中任一项所述的方法,其特征在于,所述i为m的整数倍,m为大于1且小于N的整数。
17.一种神经网络的梯度稀疏方法,其特征在于,所述梯度稀疏方法应用于分布式训练系统中,所述分布式训练系统用于对所述神经网络进行N轮迭代训练,所述分布式训练系统中包括M个训练装置,所述M个训练装置中的每个训练装置中部署有所述神经网络,N和M为大于1的正整数,所述方法包括:
所述N轮迭代训练中的第i轮迭代训练中,所述第一训练装置根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,其中,若所述比例大于或等于第一阈值,则所述第一训练装置减小所述存储器中的稀疏阈值,若所述比例小于或等于第二阈值,则所述第一训练装置增大所述存储器中的稀疏阈值,所述当前梯度集合中包含所述第一训练装置在所述第i轮迭代训练中为所述神经网络计算的参数梯度,所述目标梯度包括小于或等于所述存储器中更新前的稀疏阈值的梯度,i为小于N的正整数,且i大于1,N为正整数;
在所述第i轮迭代训练中,所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,得到稀疏梯度。
18.根据权利要求17所述的方法,其特征在于,所述第一训练装置仅在所述第i轮迭代训练中,根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,包括:
所述第一训练装置根据所述当前梯度集合和所述存储器中的稀疏阈值生成所述当前梯度集合对应的稀疏掩码矩阵,所述稀疏掩码矩阵中的每个元素的值为1表示所述每个元素对应的梯度大于所述存储器中的稀疏阈值,所述每个元素的值为0表示所述每个元素对应的梯度小于或等于所述存储器中的稀疏阈值;
所述第一训练装置根据所述稀疏掩码矩阵中值为0的元素的数量计算所述比例,其中,所述稀疏掩码矩阵中所有元素的和、所述稀疏掩码矩阵中的所有元素的个数和所述比例之间满足如下关系式:
sparse ratio=1-sum(mask)/size(mask)
如果sparse ratio-sr>ε,则thnew=th-α*th;如果sparse ratio-sr<-ε,则thnew=th+α*th;
其中,sparse ratio表示所述稀疏掩码矩阵中值为0的元素所占的比例,sum(mask)表示所述稀疏掩码矩阵中所有元素的和,size(mask)表示所述稀疏掩码矩阵中的所有元素的数量,thnew表示所述新稀疏阈值,th表示所述存储器中更新前的稀疏阈值,sr是预设的稀疏度,α是每次更新阈值的步长,ε是一个预设的超参数。
19.根据权利要求17或18所述的方法,其特征在于,所述第一训练装置根据当前梯度集合中目标梯度的比例更新存储器中的稀疏阈值,与在所述第i轮迭代训练中,所述第一训练装置使用所述存储器中的稀疏阈值对所述当前梯度集合中的梯度进行稀疏处理,并行执行。
20.根据权利要求17至19中任一项所述的方法,其特征在于,所述i为m的整数倍,m为大于1且小于N的整数。
21.一种神经网络的梯度稀疏装置,其特征在于,包括用于实现如权利要求1至20中任一项所述的方法的功能模块。
22.一种神经网络的梯度稀疏装置,其特征在于,所述装置包括与存储器耦合的处理器,所述处理器用于执行所述存储器中的程序代码,以实现如权利要求1至20中任一项所述的方法。
23.一种计算机可读介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被处理器执行时,实现如权利要求1至20中任一项所述的方法。
CN202011425588.7A 2020-12-08 2020-12-08 神经网络的梯度稀疏方法和梯度稀疏装置 Pending CN114611656A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011425588.7A CN114611656A (zh) 2020-12-08 2020-12-08 神经网络的梯度稀疏方法和梯度稀疏装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011425588.7A CN114611656A (zh) 2020-12-08 2020-12-08 神经网络的梯度稀疏方法和梯度稀疏装置

Publications (1)

Publication Number Publication Date
CN114611656A true CN114611656A (zh) 2022-06-10

Family

ID=81856257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011425588.7A Pending CN114611656A (zh) 2020-12-08 2020-12-08 神经网络的梯度稀疏方法和梯度稀疏装置

Country Status (1)

Country Link
CN (1) CN114611656A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118052260A (zh) * 2024-04-01 2024-05-17 兰州交通大学 一种神经网络模型动态分层梯度压缩方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118052260A (zh) * 2024-04-01 2024-05-17 兰州交通大学 一种神经网络模型动态分层梯度压缩方法

Similar Documents

Publication Publication Date Title
Li et al. A free lunch from ANN: Towards efficient, accurate spiking neural networks calibration
US11308392B2 (en) Fixed-point training method for deep neural networks based on static fixed-point conversion scheme
US20190034784A1 (en) Fixed-point training method for deep neural networks based on dynamic fixed-point conversion scheme
WO2020167480A1 (en) Adjusting activation compression for neural network training
CN106062786B (zh) 用于训练神经网络的计算系统
CN110889509B (zh) 一种基于梯度动量加速的联合学习方法及装置
CN110070178A (zh) 一种卷积神经网络计算装置及方法
US11562247B2 (en) Neural network activation compression with non-uniform mantissas
CN113515370A (zh) 一种面向大规模深度神经网络的分布式训练方法
CN110321997B (zh) 高并行度计算平台、系统及计算实现方法
EP3607496A1 (en) Conditional graph execution based on prior simplified graph execution
CN109032630B (zh) 一种参数服务器中全局参数的更新方法
CN114697654A (zh) 一种神经网络量化压缩方法及系统
Jiang et al. A low-latency LSTM accelerator using balanced sparsity based on FPGA
CN114611656A (zh) 神经网络的梯度稀疏方法和梯度稀疏装置
CN113273082A (zh) 具有异常块浮点的神经网络激活压缩
WO2020037512A1 (zh) 一种神经网络计算方法和装置
Shen et al. Learning to prune in training via dynamic channel propagation
EP3276541A1 (en) Self-adaptive neural networks
CN113487012A (zh) 一种面向fpga的深度卷积神经网络加速器及设计方法
CN112906887B (zh) 稀疏gru神经网络加速的实现方法和装置
CN114139689B (zh) 一种用于嵌入式系统的深层聚合神经网络轻量化方法
CN117763399B (zh) 一种自适应变长信号输入的神经网络分类方法
CN117216596B (zh) 基于梯度聚类的联邦学习优化通信方法、系统及存储介质
US12003255B2 (en) Method and device for binary coding of signals in order to implement digital MAC operations with dynamic precision

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination