CN114462571A - 训练深度学习模型的方法、数据处理方法及装置 - Google Patents

训练深度学习模型的方法、数据处理方法及装置 Download PDF

Info

Publication number
CN114462571A
CN114462571A CN202111678978.XA CN202111678978A CN114462571A CN 114462571 A CN114462571 A CN 114462571A CN 202111678978 A CN202111678978 A CN 202111678978A CN 114462571 A CN114462571 A CN 114462571A
Authority
CN
China
Prior art keywords
model
deep learning
learning model
shared parameter
training
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
CN202111678978.XA
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.)
iFlytek Co Ltd
Original Assignee
iFlytek 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 iFlytek Co Ltd filed Critical iFlytek Co Ltd
Priority to CN202111678978.XA priority Critical patent/CN114462571A/zh
Publication of CN114462571A publication Critical patent/CN114462571A/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
    • G06N3/045Combinations of networks
    • 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)
  • Machine Translation (AREA)

Abstract

本申请实施例提供了一种训练深度学习模型的方法、数据处理方法及装置,通过将深度学习模型所需的至少部分模型参数压缩在一个共享参数池中,多个模型参数可以共享该共享参数池中同一位置存储的参数,能够在不影响模型精度的情况下压缩模型的参数量,解决了深度学习模型的参数的数量过多的技术问题。

Description

训练深度学习模型的方法、数据处理方法及装置
技术领域
本申请涉及计算机领域,具体涉及一种训练深度学习模型的方法、数据处理方法及装置。
背景技术
随着深度学习(DL,Deep Learning)技术的飞速发展,各种深度学习模型被广泛应用在图像分类、多目标检测、语义分割以及行为识别等领域。然而,深度学习模型具有相当复杂的结构和数以百万计的参数,对模型运行所需要的硬件配置的要求非常高,过高的配置要求导致深度学习模型的使用受限。因此,如何实现深度学习模型的压缩成为一个亟待解决的重要问题。
发明内容
有鉴于此,本申请实施例提供了一种训练深度学习模型的方法、数据处理方法及装置,以解决深度学习模型中的模型参数的数量过多的问题,实现深度学习模型的压缩。
第一方面,本申请的实施例提供了一种数据处理方法,用于利用深度学习模型处理数据,该方法包括:在共享参数池中获取所述深度学习模型的模型参数的集合,所述共享参数池包括存储有参数值的多个位置,所述共享参数池中的至少部分位置分别关联所述集合的一个子集中的模型参数,以使同一个所述子集中的模型参数共享同一个位置的参数值,不同位置关联的所述子集没有交集;以及将待处理的数据输入使用所述模型参数的集合的所述深度学习模型,得到输出结果。
在本申请某些实施例中,各所述模型参数与所述共享参数池的位置通过伪随机函数相关联。
在本申请某些实施例中,在共享参数池中获取深度学习模型的模型参数的集合,包括:确定伪随机种子;根据伪随机种子和伪随机函数确定各模型参数在共享参数池中的关联位置;以及从各模型参数的关联位置获取各模型参数的参数值。
第二方面,本申请实施例提供了一种训练深度学习模型的方法,该方法包括:在每次对深度学习模型训练前,在共享参数池中获取深度学习模型的模型参数的集合,共享参数池包括存储有参数值的多个位置,共享参数池中的至少部分位置分别关联集合的一个子集中的模型参数,以使同一个子集中的模型参数共享同一个位置的参数值,不同位置关联的子集没有交集;对使用模型参数的集合的深度学习模型进行训练,得到训练结果;以及根据训练结果更新共享参数池中各位置存储的参数值。
在本申请某些实施例中,各模型参数与共享参数池的位置通过伪随机函数相关联。
在本申请某些实施例中,还包括:确定共享参数池;初始化深度学习模型;确定伪随机种子;以及根据伪随机种子和伪随机函数确定深度学习模型的各模型参数在共享参数池中的关联位置。
在本申请某些实施例中,确定共享参数池包括:实例化共享参数池;以及初始化共享参数池。
在本申请某些实施例中,还包括:响应于深度学习模型未收敛,在更新后的共享参数池中获取深度学习模型的模型参数集合;
对使用模型参数的集合的深度学习模型进行训练,得到训练结果;以及
根据训练结果更新共享参数池中各位置存储的参数值。
第三方面,本申请的实施例提供了一种处理装置,用于利用深度学习模型处理数据,该装置包括:第二获取模块,用于在共享参数池中获取深度学习模型的模型参数的集合,共享参数池包括存储有参数值的多个位置,共享参数池中的至少部分位置分别关联集合的一个子集中的模型参数,以使同一个子集中的模型参数共享同一个位置的参数值,不同位置关联的子集没有交集;输出模块,用于将待处理的数据输入使用模型参数的集合的深度学习模型,得到输出结果。
第四方面,本申请的实施例提供了一种训练深度学习模型的装置,该装置包括:
第一获取模块,用于在每次对深度学习模型训练前,在共享参数池中获取深度学习模型的模型参数的集合,共享参数池包括存储有参数值的多个位置,共享参数池中的至少部分位置分别关联集合的一个子集中的模型参数,以使同一个子集中的模型参数共享同一个位置的参数值,不同位置关联的子集没有交集;
训练模块,用于对使用模型参数的集合的深度学习模型进行训练,得到训练结果;以及
更新模块,用于根据训练结果更新共享参数池中各位置存储的参数值。
第五方面,本申请的实施例提供了一种计算可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述第一方面的数据处理方法,和/或用于执行上述第二方面的训练深度学习模型的方法。
第六方面,本申请的实施例提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器,其中,处理器用于执行上述第一方面的数据处理方法,和/或用于执行上述第二方面的训练深度学习模型的方法。
本申请实施例提供了一种训练深度学习模型的方法、数据处理方法及装置,通过将深度学习模型所需的至少部分模型参数压缩在一个共享参数池中,多个模型参数可以共享该共享参数池中同一位置存储的参数,能够在不影响模型精度的情况下压缩模型的参数量,解决了深度学习模型的参数的数量过多的技术问题。
附图说明
图1是本申请一示例性实施例提供的训练深度学习模型的方法的流程示意图。
图2是本申请另一示例性实施例的神经网络的结构示意图。
图3是本申请另一示例性实施例的共享参数池的示意图。
图4是本申请另一示例性实施例提供的训练深度学习模型的方法的流程示意图。
图5是本申请另一示例性实施例提供的确定共享参数池的方法的流程示意图。
图6是本申请另一示例性实施例提供的在共享参数池中获取模型参数的集合的示意图。
图7是本申请另一示例性实施例提供的训练深度学习模型的方法的流程示意图。
图8是本申请另一示例性实施例提供的训练深度学习模型的方法的流程示意图。
图9是本申请另一示例性实施例提供的数据处理方法的流程示意图。
图10是本申请一示例性实施例提供的训练深度学习模型的装置的结构示意图。
图11是本申请一示例性实施例提供的数据处理装置的结构示意图。
图12是本申请一示例性实施例提供的用于训练深度学习模型和数据处理的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,随着数据处理技术的发展,深度学习被广泛应用在数据处理领域。神经网络(NN,Neural Networks)是深度学习的代表算法,基于神经网络的模型,特别是卷积神经网络(CNN,Convolutional Neural Network),因为其优异的性能已被大量应用于图像分类、多目标检测、语义分割、行为识别等领域。然而神经网络具有复杂的结构和数以百万计的参数,这些参数使神经网络能够模拟抽象出高级模式以及极端复杂的非线性关系,使得神经网络具有更优异的性能。然而在终端上设备部署、运行此类深度学习模型时,大量的参数会导致对硬件设备的内存要求过高。以分类网络为例,经过训练的AlexNet模型的存储大小约为230M,VGG16模型的存储大小更是达到了527M左右。导致了现有的神经网络模型存在使用效率低下,实时性差以及内存占用大等难以克服的问题。同时,因为神经网络会占用运行设备大量的内存,阻碍了其在内存有限的嵌入式计算设备上的部署。特别是限制了卷积神经网络在诸如移动端、手机端以及可穿戴设备等硬件的计算能力和内存都极其有限的终端上的部署。
在一个对比例中,通过权重共享思想实现模型参数压缩。该方案允许神经网络中的多个权重共享同一参数值,达到减少参数量以及实际存储的需求。具体地,首先通过将每一层网络参数对应的哈希地图(Hash map)对应使用一系列低成本的哈希函数(Hashfunction)映射到不同的哈希桶(Hash bucket)中,并允许相同哈希桶中的所有连接共享同一参数值。其次在网络的训练中在矩阵正交等限制条件下联合优化所有哈希地图以及对应哈希桶中的参数;最后在网络的部署时,只需要保存相应的哈希函数以及对应哈希桶中的参数,通过哈希查表的方式将对应参数取出并组合推理。
然而,该对比例的方法为神经网络模型中的每一层结构都对应分配一个独立待优化的哈希地图,这样的操作会导致神经网络结构加深时参数、哈希矩阵的优化过程过于复杂。一方面,这样的做法无法在层与层间进行跨层的联合参数共享,从而导致网络整体压缩比例受限,无法得到极致压缩。另一方面,多个哈希矩阵给训练以及参数的联合优化过程带来了沉重的负担,同时在收敛性方面很难得到保障,导致该方案会导致网络最终存在精度损失,并且这种情况在一些紧致的基础模型结构(如MobileNet模型、EfficientNet模型等)上表现尤为突出。
在其他对比例中,通过剪枝、蒸馏、张量低秩分解以及量化等模型压缩技术来解决神经网络模型的参数的数量巨大的问题,达到模型压缩加速的效果。剪枝技术主要可分为非结构化剪枝、结构化剪枝技术,其分别通过细粒度、粗粒度的整体移除网络中的部分参数达到降低参数量的效果。知识蒸馏则是依靠迁移教师模型(全量参数)的知识(中间信息)来指导学生模型(少量参数)的训练从而达到模型整体的压缩。张量低秩分解大多通过SVD分解等矩阵分解技术将复杂、高维度的矩阵计算分解为多个低纬度的矩阵串联计算的方式在减少网络计算量的同时降低了整体所需的参数量。网络量化主要通过将浮点权值量化为低比特定点权值(例如,8位甚至1位)不直接压缩模型的参数量转而通过限制数据保存的精度来减小模型最终保存时所需的内存消耗。但上述方法的压缩效果有限。
为解决深度学习模型的参数的数量过多的技术问题,本申请实施例通过采用参数采样以及共享联合训练的方法,在不额外引入辅助参数且不增加模型优化难度的情况下,将深度学习模型的全部模型参数压缩在一个共享参数池中,多个模型参数可以共享参数池中同一位置存储的参数值,能够在不影响模型精度的情况下压缩模型的参数量。
本申请实施例的方法可应用于各种深度学习框架(Deep learning framework)中,例如,PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等等。
图1是本申请一示例性实施例提供的训练深度学习模型的方法的流程示意图。图1的方法由计算设备,例如,服务器,来执行。如图1所示,该方法包括如下内容。
110:在每次对深度学习模型训练前,在共享参数池中获取神经网络模型的多组模型参数。共享参数池包括存储有参数值的多个位置,共享参数池中的至少部分位置分别关联集合的一个子集中的模型参数,以使同一个子集中的模型参数共享同一个位置的参数值,不同位置关联的子集没有交集本实施例中,深度学习模型的框架是神经网络模型进行举例说明,神经网络是由大量的、简单的节点广泛地互相连接而形成的复杂网络系统。
图2是本申请一示例性实施例的神经网络模型的结构示意图。在本申请一个实施例中,神经网络模型的结构如图2所示,图2所示的神经网络模型有以下几个部分:输入层x,隐藏层(包括第一隐藏层h1和第二隐藏层h2),输出层y。每个节点都是一个神经元,每层的每个神经元都和下一层的神经元相连接。输入层x就是神经网络提取的特征,输出层y就是想要得到的结果。
图3是本申请一示例性实施例的共享参数池的示意图。如图3所示,该共享参数池300包括4个位置。共享参数池300的每个位置存储有参数值。
在本申请一实施例中,图2中的神经网络模型的多个节点的模型参数与图3中的共享参数池300的位置通过伪随机函数(PRF,Pseudo Random Function)相关联。进一步地,图2中的神经网络模型的多个节点的模型参数与图3中的共享参数池300的位置通过伪随机种子(PRS,Pseudo Random Seed)和伪随机函数相关联。也就是说,神经网络模型中的多个节点的模型参数和共享参数池的位置具有预先确定的关联关系,该关联关系可以预先通过一个伪随机采样函数和伪随机种子确定。也就是说,各节点的模型参数分别对应一个关联位置,不同的节点的关联位置可以相同,共享参数池的每个位置可以关联一个、两个或者多个节点的模型参数。具体地,可以将同一个位置对应的多个节点看做是一组节点,同一个组中的各模型参数分别和共享参数池中的同一个位置关联,一组中的多个节点可以共享存储在共享参数池中的同一位置的参数。其中,每组中的节点可以是一个、两个、三个以及多个。当一个组中的节点为两个或者两个以上时,同一组中的各节点可以分别位于神经网络的同一层或者分别位于神经网络的不同层。
获取神经网络模型的多个模型参数就是从共享参数池中获取各节点的关联位置存储的参数。在本申请的一个实施例中,如图2和图3所示,节点a和节点f为一组,和共享参数池中的位置0关联,获取节点a和节点f的参数具体为分别获取存储在共享参数池中的位置0的参数值1.6。节点c、节点g和节点h为另一组,和共享参数池中的位置1关联,获取节点c、节点g和节点h的参数具体为分别获取存储在共享参数池中位置1的参数值2.3。类似地,节点b和节点d为又一组以及节点e为再一组,这两组中的节点同样具有预先确定的关联位置,根据关联位置分别获取这两组中的模型参数。
120:对使用参数的深度学习模型进行训练,得到训练结果。
具体地,神经网络模型使用通过步骤110确定的多个模型参数,利用训练集对神经网络模型进行训练。在本申请的一个实施例中,神经网络模型可以是以EfficientNet B0为基础的模型框架,该模型用于ImageNet图像分类任务。用于训练该模型的训练集为ILSVRC2012,其中训练数据包含1000个类别,120W数据;测试数据包括1000个类别,每个类别50个样本,包含5W数据。例如,利用训练数据,采用forward方法对神经网络模型进行训练,得到训练结果。
130:根据训练结果更新共享参数池中各位置存储的参数值。
具体地,通过梯度回传将所有梯度累和回传到leaf节点(中的每一个参数位置)上,调用优化器对共享参数池中存储的参数进行更新。
在本实施例中,神经网络模型中多个模型参数与共享参数池的位置通过伪随机函数相关联,通过更新共享参数池中的参数来更新神经网络模型。训练过程中,神经网络模型的多个模型参数根据伪随机函数从共享参数池中的各个位置获取,从同一位置获取多个模型参数可以同时更新,以使得神经网络模型的不同的节点可以共用共享参数池中的一个位置存储的参数。本申请实施例,通过一个固定的伪随机函数可以在共享参数池中获取到神经网络模型全部模型参数,实现跨层的多个模型参数共享,大大压缩了神经网络模型,可以实现神经网络模型的压缩。
本申请实施例的训练方法可用于训练大多数深度学习框架的模型。例如,能够将诸如MobileNet以及EfficientNet框架的模型的参数的数量压缩5-10倍。
本实例步骤110-130所示的方法可以认为是神经网络模型训练过程中一次迭代的过程。在本申请的另一个实施例中,与上一实施例的区别在于也可以采用反向传播算法(backpropagation),利用训练数据中的部分数据实现一个迭代过程。
应理解,在本实施例中,在共享参数池中获取到的模型参数的集合是指神经网络模型中的全部节点的参数。在本申请另一实施例中,在共享参数池中获取到的模型参数的集合也可以是一个神经网络模型中的部分节点的参数,例如,当神经网络模型中包括n个隐藏层,其中的n-x(x为大于1的整数)个隐藏层的多个节点和共享参数池的位置具有关联关系。在本申请另一实施例中,在共享参数池中获取到的模型参数的集合还可以是从两个不同的共享参数池中获取模型的全部节点的参数,例如,神经网络模型的一部分节点和第一共享参数池的位置关联,神经网络模型的另一部分节点和第二共享参数池的位置关联。
图4是本申请另一示例性实施例提供的训练深度学习模型的方法的流程示意图。如图4所示,本申请神经网络模型的训练方法包括如下步骤:
410:确定共享参数池。
具体地,根据想要的压缩比例来确定共享参数池的大小,例如,共享参数池的大小为(m,)。
图5是本申请另一示例性实施例提供的确定共享参数池的方法的流程示意图。如图5所示,确定共享参数池包括如下步骤:
510:实例化共享参数池。
具体地,将共享参数池实例化为一个一维张量(tensor)的结构,将共享参数池实例化可以便于后续将共享参数池中的位置和神经网络模型中的模型参数构建关联关系。
520:初始化共享参数池。
在本申请的一个实施例中,可以采用类似卷积形式的初始化方法(例如,Kaiming初始化)对共享参数池中存储的参数进行初始化。在本实施例中,可以采用如公式(1)中的初始化方法初始化共享参数池。具体是通过reshape操作将步骤510中实例化的共享参数池Params_pool等价映射到四维张量形式,之后通过计算出标准差std以及边界bound,最后从上下界分别为(-bound,bound)中采样出共享参数池Params_pool中的参数,并reshape回原共享参数池的一维数据结构。
Figure BDA0003453398080000091
本实施例中,采用Kaiming初始化的方法初始化共享参数池,在收敛性上存在较大优势,能够提高神经网络模型的训练效率和训练精度。
应理解,本实施例以对卷积神经网络模型进行训练为例进行说明,实际上可以根据不同的模型框架确定不同的共享参数池的初始化方法,例如,也可以全连接形式的初始化方法对共享参数池中存储的参数进行初始化。
420:初始化深度学习模型。
具体地,可以根据该深度学习模型的具体应用场景确定不同的模型框架以及对应的训练集。在本申请的一个实施例中,神经网络模型用于ImageNet图像分类任务,根据任务需要可以确定以EfficientNet B0为基础的模型框架。EfficientNet B0网络结构如表1所示,其中Conv为普通卷积结构、K3*3代表卷积核大小(Kernel size),MBConv为EfficientNet网络中的基础块(block)结构,每一个MBConv结构都由2个1*1Conv、一个全连接SE block以及1个Conv3*3的组成。
表1 Efficient B0网络结构
Figure BDA0003453398080000092
通过表1的结构生成对应的神经网络多个模型参数列表,将EfficientNet b0网络结构实例化完成。
430:确定伪随机种子。
具体地,伪随机种子用于确定共享参数池中位置和神经网络模型的各模型参数的关联关系。
440:根据伪随机函数建立共享参数池中的多个位置和模型参数的随机关联关系。
具体地,通过步骤430中确定的伪随机种子和伪随机函数不停迭代产生伪随机数,以为各模型参数确定索引(INDEX),INDEX指示各模型参数在共享参数池中的采样位置。不同模型参数的采样位置可以重复。
伪随机数是用确定性的算法计算出的随机数序列。伪随机数并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在伪随机种子和采样函数不变的情况下,生成的伪随机数是固定的。本实施例中,伪随机函数具体可以是Python中自带的随机数生成(random.choice)函数等。
在本申请一实施例中,在每一个带有参数的操作的初始化(Initialization)函数中,在共享参数池里对应采样该函数所需参数数目大小的INDEX(可重复),确定各个模型参数的INDEX后,在整个训练过程中都不会对INDEX进行修改。也就是相当于给模型参数绑定了一个固定不变的INDEX。这个INDEX是通过伪随机种子和伪随机函数生成,因此,整个训练过程中,神经网络模型的模型参数一直存储在共享参数池的一个固定位置,后续需要某一个模型参数时,通过伪随机种子和伪随机函数确定模型参数的INDEX在共享参数池中采样得到。
通过伪随机种子和伪随机函数确定模型参数的INDEX,可以避免大量INDEX的存储,并且能够完美保证神经网络模型在训练和测试过程中的效果完全一致。由此,通过将神经网络模型的模型参数以共享参数池的形式存储和使用,可以灵活控制神经网络模型的参数的压缩比例。
450:在共享参数池中获取深度学习模型的模型参数集合。
具体地,根据步骤410-440确定的伪随机种子和伪随机函数能够确定各模型参数的INDEX,以确定各模型参数在共享参数池中的采样位置,从共享参数池中的采样位置获取各模型参数。
图6是本申请另一示例性实施例提供的在共享参数池中获取模型参数的集合的场景示意图。如图6所示,在一个实施例中,以获取卷积神经网络中的两个卷积的参数为例进行说明。神经网络模型为常规卷积Conv3*3。共享参数池600的大小为(6,)。从共享参数池600中获取神经网络模型的两个卷积的参数,具体为第一卷积参数矩阵610和第二卷积参数矩阵620,具体地,两个卷积的形状均为Nin*Nout*k*k(Nin=1,Nin=1,k=3),group为1。第一卷积参数矩阵610和第二卷积参数矩阵620分别包括9个参数。
第一卷积参数矩阵610和第二卷积参数矩阵620中的参数已经通过步骤410-440预先通过伪随机种子和伪随机函数确定INDEX。在本步骤中,使用与步骤440中相同的伪随机种子和伪随机函数确定两个卷积的INDEX,分别为第一索引611和第二索引621。第一索引611和第二索引621能够指示出各卷积中的9个模型参数在共享参数池中的位置。根据第一索引611和第二索引621从共享参数池600中获取存储在共享参数池不同位置的参数,确定第一卷积参数矩阵610和第二卷积参数矩阵620中的参数值。
在本实施例中,共享参数池600的大小为(6,)的一个1维张量,第一卷积参数矩阵610和第二卷积参数矩阵620中各自的9个参数全由中按照模型实例化过程中采样绑定的INDEX进行采样取出后reshape。后续训练过程中将采样参数注入functional方法进行前向计算,更新共享参数池。神经网络模型的模型参数总数为18,可以完美地将神经网络模型中的18个模型参数用一个大小为(6,)的共享参数池表示,相当于用包括6个参数值的共享参数池获取到18个模型参数,达到参数量的三倍压缩效果。
本申请实施例将所有参数共享到一个参数池中(只有一个参数空间),网络构建时为每一个卷积对应的参数绑定固定的参数池INDEX采样(对应参数池中的一个位置),使用了一种伪随机采样的方式,通过固定伪随机种子,在网络实例化过程中通过固定的种子采样的方式固定INDEX,可以完美避免大量INDEX的存储,并且能够完美保证训练测试过程效果一致。之后神经网络模型的训练中也是按照这个索引采样参数组合计算,让网络在训练过程中适应采样的参数共享组合,这样仅需要更新参数池中的参数,这样可以灵活控制压缩比例。
图7是本申请另一示例性实施例提供的训练深度学习模型的方法的流程示意图。如图7所示,该训练深度学习模型的方法包括如下内容。
710:在共享参数池中获取深度学习模型的模型参数的集合。
720:对使用模型参数的集合的深度学习模型进行训练,更新共享参数池中各位置存储的参数值。
具体地,将每个操作通过绑定的INDEX采样参数reshape后注入functional方法进行前向计算,得到网络的最后输出。再之后通过梯度回传将所有梯度累和回传到leaf节点(模型中的每一个参数位置)上,调用优化器进行参数更新。
730:判断是否达到预设迭代轮数。
若“是”,执行步骤740。若“否”重复执行步骤710。具体地,响应于神经网络模型未达到预定的迭代轮数,重复执行步骤710。
740:将共享参数池中参数作为深度学习。
具体地,响应于神经网络模型达到预定的迭代轮数,将共享参数池中参数作为神经网络模型。
具体地,保存共享参数池。可以在迭代达到预设轮数时将共享参数池中的参数以预定的格式保存。例如,将共享参数池的数据以.pth文件的形式保存。
图8是本申请另一示例性实施例提供的训练深度学习模型的方法的流程示意图。如图8所示,该训练深度学习模型的方法包括如下内容。
810:实例化共享参数池。
具体地,根据需求参数限制,采用1维张量结构实例化参数池。
820:初始化共享参数池。
具体地,采用Kaiming初始化方式,参考卷积形式初始化共享参数池内的参数。
830:模型整体初始化。
具体地,包括确定基础模型结构列表和伪随机种子。
840:确定模型参数和共享参数池的位置的关联。
通过伪随机采样工具(random.choice)和伪随机种子为每一个带有参数的操作(op)绑定一系列参数池中的采样INDEX。
850:实例化模型。
具体地,采用Dataset、Dataloader、Adam优化器、Cosine Annealing LR等方法实例化模型。具体地,优化器采用Adam,学习率更新策略采用Cosine Annealing LR。之后不断从Dataloader中取出一个batch(256个样本)的数据,调用模型forward训练过程。
860:判断是否达到预设迭代轮数。
具体地,若“是”执行步骤890,若“否”执行步骤870。
870:训练模型。
具体地,在forward函数中,对每个操作的参数通过绑定的INDEX从共享参数池中采样相应参数值,并用functional计算方式将参数注入操作的计算过程。
880:更新共享参数池。
具体地,通过优化器将累积梯度传回共享参数池中并进行更新,并更新训练相关变量。
890:保存共享参数池。
具体地,保存共享参数池、伪随机种子、伪随机函数以及模型框架作为最终确定的神经网络模型。
图9是本申请另一示例性实施例提供的数据处理方法的流程示意图。本实施例的数据处理方法利用通过上述实施例的方法训练得到的深度学习模型处理数据。如图9所示,该数据处理方法包括如下内容。
910:在共享参数池中获取深度学习模型的模型参数的集合。共享参数池包括存储有参数值的多个位置,模型参数的集合包括多个子集,在不同子集中的模型参数分别关联共享参数池的不同位置,在同一子集中的模型参数分别关联共享参数池的相同位置,以共享位置存储的参数值。
具体地,本申请实施例中的共享参数池、伪随机种子以及伪随机函数是通过上述实施例的方法更新后保存的数据。具体地,共享参数池、伪随机种子以及伪随机函数都可以保存在终端中,例如,该终端可以是用于执行本实施例的数据处理方法的服务器中。
具体地,在共享参数池采样INDEX,由于伪随机种子固定所以网络中每一个带参数的操作在共享参数池中采样的INDEX也固定且保障推理时与训练过程中完全一致。
具体地,根据伪随机种子以及伪随机函数确定各模型参数关联的共享参数池中的位置,从共享参数池中获取到深度学习模型的全部参数的值。在共享参数池中获取深度学习模型的模型参数的集合的具体方式可以参考上述图1-图8所对应的实施例提供的方法中的描述,为了避免重复,在此不再赘述。
920:将待处理的数据输入使用模型参数的集合的深度学习模型,得到输出结果。
调用模型forward运算过程,运算过程中将每个操作通过上一步绑定的INDEX采样参数reshape后注入functional方法进行前向计算,得到模型的预测输出。
本申请实施例提供了一种数据处理装置,通过将深度学习模型中的所有参数仅通过一个紧致的共享参数池采样空间表示,实现深度学习模型的模型参数的数量的灵活压缩控制,在深度学习模型训练过程中为每一个模型参数绑定索引并从共享参数池中采样参数,联合梯度优化实现共享参数池中参数的优化,同时实例化构建模型的过程中固定伪随机种子通过伪随机采样保证训练、测试绑定采样索引的一致,避免了大量索引参数的存储。
图10是本申请一示例性实施例提供的训练深度学习模型的装置的结构示意图。如图10所示,该模型的训练装置1000包括:第一获取模块1010、训练模块1020以及更新模块1030。
第一获取模块1010用于在每次对深度学习模型训练前,在共享参数池中获取深度学习模型的模型参数的集合,共享参数池包括存储有参数值的多个位置,共享参数池中的至少部分位置分别关联集合的一个子集中的模型参数,以使同一个子集中的模型参数共享同一个位置的参数值,不同位置关联的子集没有交集。
训练模块1020用于对使用模型参数的集合的深度学习模型进行训练,得到训练结果。
更新模块1030用于根据训练结果更新共享参数池中各位置存储的参数值。
本申请实施例提供了一种训练深度学习模型的装置,通过将深度学习模型所需的至少部分模型参数压缩在一个共享参数池中,多个模型参数可以共享该共享参数池中同一位置存储的参数,能够在不影响模型精度的情况下压缩模型的参数量,解决了深度学习模型的参数的数量过多的技术问题。
根据本申请一实施例,各模型参数与共享参数池的位置通过伪随机函数相关联。
根据本申请一实施例,第一获取模块1010用于确定伪随机种子;根据伪随机种子和伪随机函数确定各模型参数在共享参数池中的关联位置;以及从各模型参数的关联位置获取各模型参数的参数值。
根据本申请一实施例,该模型的训练装置1000还包括:确定模块、初始化模块、第二确定模块及关联模块。
第一确定模块用于确定共享参数池。
初始化模块用于初始化深度学习模型。
第二确定模块用于确定伪随机种子。
关联模块用于根据伪随机种子和伪随机函数确定深度学习模型的各模型参数在共享参数池中的关联位置。
根据本申请一实施例,第一确定单元1040用于实例化共享参数池;以及初始化共享参数池。
根据本申请一实施例,共享参数池为一个一维张量。
根据本申请一实施例,该模型的训练装置1000还包括第三确定模块。
第三确定模块用于响应于深度学习模型收敛,将共享参数池中的参数值作为深度学习模型。
根据本申请一实施例,该模型的训练装置1000还包括:第三确定模块、第四确定模块以及存储模块。
第三确定模块用于响应于深度学习模型未收敛,在更新后的共享参数池中获取深度学习模型的模型参数集合。
第三确定模块用于对使用模型参数的集合的深度学习模型进行训练,得到训练结果。
存储模块用于根据训练结果更新共享参数池中各位置存储的参数值。
应当理解,上述实施例中的各模块的具体工作过程和功能可以参考上述图1至图9实施例提供的方法中的描述,为了避免重复,在此不再赘述。
图11是本申请一示例性实施例提供的数据处理装置的结构示意图。如图11所示,该数据处理装置1100包括:第二获取模块1110和输出模块1120。
第二获取模块1110用于在共享参数池中获取深度学习模型的模型参数的集合,共享参数池包括存储有参数值的多个位置,共享参数池中的至少部分位置分别关联集合的一个子集中的模型参数,以使同一个子集中的模型参数共享同一个位置的参数值,不同位置关联的子集没有交集。
输出模块1120用于将待处理的数据输入使用模型参数的集合的深度学习模型,得到输出结果。
本申请实施例提供了一种数据处理装置,通过将深度学习模型中的所有参数仅通过一个紧致的共享参数池采样空间表示,实现深度学习模型的模型参数的数量的灵活压缩控制,在深度学习模型训练过程中为每一个模型参数绑定索引并从共享参数池中采样参数,联合梯度优化实现共享参数池中参数的优化,同时实例化构建模型的过程中固定伪随机种子通过伪随机采样保证训练、测试绑定采样索引的一致,避免了大量索引参数的存储。
应当理解,上述实施例中的第二获取模块1110和输出模块1120的具体工作过程和功能可以参考上述图1-图9实施例提供的方法中的描述,为了避免重复,在此不再赘述。
图12是本申请一示例性实施例提供的用于训练深度学习模型和数据处理的电子设备1200的框图。
参照图12,电子设备1200包括处理组件1210,其进一步包括一个或多个处理器,以及由存储器1220所代表的存储器资源,用于存储可由处理组件1210的执行的指令,例如应用程序。存储器1220中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1210被配置为执行指令,以执行上述训练深度学习模型的法,或者数据处理方法。
电子设备1200还可以包括一个电源组件被配置为执行电子设备1200的电源管理,一个有线或无线网络接口被配置为将电子设备1200连接到网络,和一个输入输出(I/O)接口。可以基于存储在存储器1220的操作系统操作电子设备1200,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
一种非临时性计算机可读存储介质,当存储介质中的指令由上述电子设备1200的处理器执行时,使得上述电子设备1200能够执行一种训练深度学习模型的方法,包括:在每次对深度学习模型训练前,在共享参数池中获取深度学习模型的模型参数的集合,共享参数池包括存储有参数值的多个位置,共享参数池中的至少部分位置分别关联集合的一个子集中的模型参数,以使同一个子集中的模型参数共享同一个位置的参数值,不同位置关联的子集没有交集;对使用模型参数的集合的深度学习模型进行训练,得到训练结果;以及根据训练结果更新共享参数池中各位置存储的参数值。
或者,一种数据处理方法,包括:在共享参数池中获取深度学习模型的模型参数的集合,共享参数池包括存储有参数值的多个位置,共享参数池中的至少部分位置分别关联集合的一个子集中的模型参数,以使同一个子集中的模型参数共享同一个位置的参数值,不同位置关联的子集没有交集;以及将待处理的数据输入使用模型参数的集合的深度学习模型,得到输出结果。
上述所有可选技术方案,可采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序校验码的介质。需要说明的是,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种数据处理方法,用于利用深度学习模型处理数据,其特征在于,包括:
在共享参数池中获取所述深度学习模型的模型参数的集合,所述共享参数池包括存储有参数值的多个位置,所述共享参数池中的至少部分位置分别关联所述集合的一个子集中的模型参数,以使同一个所述子集中的模型参数共享同一个位置的参数值,不同位置关联的所述子集没有交集;以及
将待处理的数据输入使用所述模型参数的集合的所述深度学习模型,得到输出结果。
2.根据权利要求1所述的方法,其特征在于,各所述模型参数与所述共享参数池的位置通过伪随机函数相关联。
3.根据权利要求1所述的方法,其特征在于,所述在共享参数池中获取所述深度学习模型的模型参数的集合,包括:
确定伪随机种子;
根据所述伪随机种子和伪随机函数确定各所述模型参数在所述共享参数池中的关联位置;以及
从各所述模型参数的关联位置获取各所述模型参数的参数值。
4.一种训练深度学习模型的方法,其特征在于,包括:
在每次对所述深度学习模型训练前,在共享参数池中获取所述深度学习模型的模型参数的集合,所述共享参数池包括存储有参数值的多个位置,所述共享参数池中的至少部分位置分别关联所述集合的一个子集中的模型参数,以使同一个所述子集中的模型参数共享同一个位置的参数值,不同位置关联的所述子集没有交集;
对使用所述模型参数的集合的所述深度学习模型进行训练,得到训练结果;以及
根据所述训练结果更新共享参数池中各位置存储的参数值。
5.根据权利要求4所述的方法,其特征在于,各所述模型参数与所述共享参数池的位置通过伪随机函数相关联。
6.根据权利要求4所述的方法,其特征在于,还包括:
确定所述共享参数池;
初始化所述深度学习模型;
确定伪随机种子;以及
根据所述伪随机种子和伪随机函数确定所述深度学习模型的各所述模型参数在所述共享参数池中的关联位置。
7.根据权利要求5所述的方法,其特征在于,所述确定所述共享参数池包括:
实例化所述共享参数池;以及
初始化所述共享参数池。
8.根据权利要求4所述的方法,其特征在于,还包括:响应于所述深度学习模型未收敛,在更新后的共享参数池中获取所述深度学习模型的模型参数集合;
对使用所述模型参数的集合的所述深度学习模型进行训练,得到训练结果;以及
根据所述训练结果更新共享参数池中各位置存储的参数值。
9.一种数据处理装置,用于利用深度学习模型处理数据,其特征在于,包括:
第二获取模块,用于在共享参数池中获取所述深度学习模型的模型参数的集合,所述共享参数池包括存储有参数值的多个位置,所述共享参数池中的至少部分位置分别关联所述集合的一个子集中的模型参数,以使同一个所述子集中的模型参数共享同一个位置的参数值,不同位置关联的所述子集没有交集;
输出模块,用于将待处理的数据输入使用所述模型参数的集合的所述深度学习模型,得到输出结果。
10.一种训练深度学习模型的装置,其特征在于,包括:
第一获取模块,用于在每次对所述深度学习模型训练前,在共享参数池中获取所述深度学习模型的模型参数的集合,所述共享参数池包括存储有参数值的多个位置,所述共享参数池中的至少部分位置分别关联所述集合的一个子集中的模型参数,以使同一个所述子集中的模型参数共享同一个位置的参数值,不同位置关联的所述子集没有交集;
训练模块,用于对使用所述模型参数的集合的所述深度学习模型进行训练,得到训练结果;以及
更新模块,用于根据所述训练结果更新共享参数池中各位置存储的参数值。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1至3中任一项所述的数据处理方法,和/或用于执行上述权利要求4至8中任一项所述的训练深度学习模型的方法。
12.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器用于执行上述权利要求1至3中任一项所述的数据处理方法,和/或用于执行上述权利要求4至8中任一项所述的训练深度学习模型的方法。
CN202111678978.XA 2021-12-31 2021-12-31 训练深度学习模型的方法、数据处理方法及装置 Pending CN114462571A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111678978.XA CN114462571A (zh) 2021-12-31 2021-12-31 训练深度学习模型的方法、数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111678978.XA CN114462571A (zh) 2021-12-31 2021-12-31 训练深度学习模型的方法、数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN114462571A true CN114462571A (zh) 2022-05-10

Family

ID=81407496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111678978.XA Pending CN114462571A (zh) 2021-12-31 2021-12-31 训练深度学习模型的方法、数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN114462571A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116594971A (zh) * 2023-07-17 2023-08-15 山东天意装配式建筑装备研究院有限公司 基于bim的装配式建筑数据优化存储方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116594971A (zh) * 2023-07-17 2023-08-15 山东天意装配式建筑装备研究院有限公司 基于bim的装配式建筑数据优化存储方法
CN116594971B (zh) * 2023-07-17 2023-09-29 山东天意装配式建筑装备研究院有限公司 基于bim的装配式建筑数据优化存储方法

Similar Documents

Publication Publication Date Title
CN109388674B (zh) 数据处理方法、装置、设备及可读存储介质
CN112163601B (zh) 图像分类方法、系统、计算机设备及存储介质
EP4350572A1 (en) Method, apparatus and system for generating neural network model, devices, medium and program product
CN114330699A (zh) 神经网络结构搜索方法及装置
CN110689136B (zh) 一种深度学习模型获得方法、装置、设备及存储介质
CN113128419B (zh) 一种障碍物识别方法和装置、电子设备及存储介质
CN114514519A (zh) 使用异构模型类型和架构的联合学习
CN113505883A (zh) 一种神经网络训练方法以及装置
CN112561031A (zh) 基于人工智能的模型搜索方法、装置及电子设备
CN111598213A (zh) 网络训练方法、数据识别方法、装置、设备和介质
CN116362325A (zh) 一种基于模型压缩的电力图像识别模型轻量化应用方法
WO2023207039A1 (zh) 数据处理方法、装置、设备以及存储介质
CN115496970A (zh) 图像任务模型的训练方法、图像识别方法以及相关装置
CN115017178A (zh) 数据到文本生成模型的训练方法和装置
CN114462571A (zh) 训练深度学习模型的方法、数据处理方法及装置
CN111832637A (zh) 基于交替方向乘子法admm的分布式深度学习分类方法
CN114781654A (zh) 联邦迁移学习方法、装置、计算机设备及介质
CN114936630A (zh) 一种电磁超表面单元及超表面电磁响应快速预测方法
CN111126860B (zh) 任务分配方法、任务分配装置和电子设备
CN112819157A (zh) 神经网络训练的方法及装置、智能行驶控制的方法及装置
CN114445692B (zh) 图像识别模型构建方法、装置、计算机设备及存储介质
CN116108195A (zh) 基于时序元学习的动态知识图谱预测方法和装置
CN107306419A (zh) 一种端到端质量评估方法和装置
CN116301914A (zh) 基于gap8微处理器的卷积神经网络部署方法
CN115456149A (zh) 脉冲神经网络加速器学习方法、装置、终端及存储介质

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