CN111461293B - 基于gpu的深度神经网络模型训练方法、装置和计算机设备 - Google Patents
基于gpu的深度神经网络模型训练方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN111461293B CN111461293B CN202010187555.7A CN202010187555A CN111461293B CN 111461293 B CN111461293 B CN 111461293B CN 202010187555 A CN202010187555 A CN 202010187555A CN 111461293 B CN111461293 B CN 111461293B
- Authority
- CN
- China
- Prior art keywords
- hidden layer
- gpu
- output data
- main memory
- allowance
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及一种基于GPU的深度神经网络模型训练方法、装置、计算机设备和存储介质。该方法包括:在深度神经网络模型首次训练时,将各隐藏层的输出数据压缩至GPU主存存储,得到压缩后的输出数据和GPU的主存余量;当主存余量未达到预设余量阈值时,根据输出数据的稀疏程度值和压缩后的输出数据占用GPU主存的时间比重,确定初步隐藏层;迭代训练深度神经网络模型时,根据初步隐藏层,将初步隐藏层的输出数据压缩至GPU主存存储,得到GPU主存的初步余量,直至初步余量达到预设余量阈值;当初步余量达到预设余量阈值时,确定需要将输出数据压缩至GPU主存存储的最终隐藏层,进行训练,以得到训练好的深度神经网络模型。采用本方法能够提高GPU资源利用率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于GPU的深度神经网络模型训练方法、装置、计算机设备和存储介质。
背景技术
随着互联网和人工智能技术的发展,图像识别、语音识别、自然语言处理等智能任务在生活中无处不在。而神经网络作为当前实现这类智能任务最有效的算法之一,已经获得学术界和工业界广泛关注和应用。现代深度神经网络(DNN,Deep Neural Network)的训练通常依赖于GPU(Graphics Processing Unit,图形处理器)来训练复杂的数百层深度网络。
在当前的深度神经网络的训练过程中,各隐藏层会产生相应的中间输出数据,例如特征映射矩阵,其中,某些中间输出数据在前向传递过程和反向传递过程中都会用到,因此,现有的技术是将所有中间输出数据都进行对应的压缩存储。然而,上述方法占用的GPU主存资源较多,存在GPU资源利用率不高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高GPU资源利用率的基于GPU的深度神经网络模型训练方法、装置、计算机设备和存储介质。
一种基于GPU的深度神经网络模型训练方法,所述方法包括:
在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和所述GPU的主存余量;
当所述GPU的主存余量未达到预设余量阈值时,根据所述输出数据的稀疏程度值和所述压缩后的输出数据占用所述GPU主存的时间比重,确定初步隐藏层;
迭代训练所述深度神经网络模型时,根据所述初步隐藏层,将所述初步隐藏层对应的输出数据压缩至所述GPU主存存储,得到所述GPU主存的初步余量,直至所述初步余量达到所述预设余量阈值;
当所述初步余量达到所述预设余量阈值时,确定需要将对应的输出数据压缩至所述GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
在其中一个实施例中,所述输出数据包括特征映射;所述在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,包括:在深度神经网络模型首次训练过程的前向传递过程中,在所述各隐藏层计算生成对应的所述特征映射后,将所述特征映射作为下一隐藏层的输入数据参与前向传递计算,将所述特征映射压缩至所述GPU主存存储。
在其中一个实施例中,所述方法还包括:在所述深度神经网络模型首次训练过程的反向传递过程中,在完成所述各隐藏层对应的解压缩步骤后,获取所述解压缩步骤的开始时间并存储;在深度神经网络模型下一次训练过程的反向传递过程中,根据所述解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩。
在其中一个实施例中,所述当所述GPU的主存余量未达到预设余量阈值时,根据所述输出数据的稀疏程度值和所述压缩后的输出数据占用所述GPU主存的时间比重,确定初步隐藏层,包括:当所述GPU的主存余量未达到预设余量阈值时,获取所述输出数据的稀疏程度值;当所述稀疏程度值大于预设稀疏程度阈值时,确定第一隐藏层;所述第一隐藏层为所述各隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层;根据所述第一隐藏层,对所述第一隐藏层对应的输出数据压缩并存储至所述GPU主存后,获取所述GPU主存的第一余量;当所述第一余量未达到所述预设余量阈值时,获取所述压缩后的输出数据占用所述GPU主存的时间比重;根据所述时间比重,确定初步隐藏层;所述初步隐藏层为所述第一隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层。
在其中一个实施例中,所述当所述稀疏程度值大于预设稀疏程度阈值时,确定第一隐藏层,包括:当所述稀疏程度值大于预设稀疏程度阈值时,将所述稀疏程度值对应的隐藏层确定为需要将对应的输出数据进行压缩的隐藏层;根据所述隐藏层,确定所述各隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为第一隐藏层。
在其中一个实施例中,所述根据所述时间比重,确定初步隐藏层,包括:当所述时间比重小于预设时间比重阈值时,将所述时间比重对应的隐藏层确定为不需要将对应的输出数据进行压缩的隐藏层;根据所述隐藏层,确定所述第一隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为初步隐藏层。
在其中一个实施例中,所述根据所述解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩,包括:根据所述解压缩步骤的开始时间,确定所述反向传递过程的节点到达当前隐藏层的时间;根据所述时间,在基于反向传递算法的训练过程中,同时对所述当前隐藏层的压缩后的特征映射进行并行式预解压缩。
一种基于GPU的深度神经网络模型训练装置,所述装置包括:
首次训练模块,用于在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和所述GPU的主存余量;
初步隐藏层确定模块,用于当所述GPU的主存余量未达到预设余量阈值时,根据所述输出数据的稀疏程度值和所述压缩后的输出数据占用所述GPU主存的时间比重,确定初步隐藏层;
迭代训练模块,用于迭代训练所述深度神经网络模型时根据所述初步隐藏层,将所述初步隐藏层对应的输出数据压缩至所述GPU主存存储,得到所述GPU主存的初步余量,直至所述初步余量达到所述预设余量阈值;
最终隐藏层确定模块,用于当所述初步余量达到所述预设余量阈值时,确定需要将对应的输出数据压缩至所述GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和所述GPU的主存余量;
当所述GPU的主存余量未达到预设余量阈值时,根据所述输出数据的稀疏程度值和所述压缩后的输出数据占用所述GPU主存的时间比重,确定初步隐藏层;
迭代训练所述深度神经网络模型时,根据所述初步隐藏层,将所述初步隐藏层对应的输出数据压缩至所述GPU主存存储,得到所述GPU主存的初步余量,直至所述初步余量达到所述预设余量阈值;
当所述初步余量达到所述预设余量阈值时,确定需要将对应的输出数据压缩至所述GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和所述GPU的主存余量;
当所述GPU的主存余量未达到预设余量阈值时,根据所述输出数据的稀疏程度值和所述压缩后的输出数据占用所述GPU主存的时间比重,确定初步隐藏层;
迭代训练所述深度神经网络模型时,根据所述初步隐藏层,将所述初步隐藏层对应的输出数据压缩至所述GPU主存存储,得到所述GPU主存的初步余量,直至所述初步余量达到所述预设余量阈值;
当所述初步余量达到所述预设余量阈值时,确定需要将对应的输出数据压缩至所述GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
上述基于GPU的深度神经网络模型训练方法、装置、计算机设备和存储介质,通过根据GPU主存余量、深度神经网络模型中各隐藏层的输出数据的稀疏程度以及各隐藏层的输出数据占用GPU主存的时间比重,确定深度神经网络模型中需要对输出数据进行压缩存储的隐藏层,从而减少了一些不必要的中间输出数据占用GPU主存空间,解决了GPU主存资源浪费问题,同时充分利用了GPU的计算资源,最大化地利用GPU的主存和计算资源,进而提高了GPU资源利用率和模型训练的效率。
附图说明
图1为一个实施例中一种基于GPU的深度神经网络模型训练方法的流程示意图;
图2为一个实施例中确定初步隐藏层步骤的流程示意图;
图3为一个实施例中深度神经网络模型隐藏层输出数据在反向传递期间预解压缩的流程示意图;
图4为一个实施例中对深度神经网络模型隐藏层输出数据进行压缩编码和解压缩的流程示意图;
图5为一个实施例中基于GPU的深度神经网络模型训练装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种基于GPU的深度神经网络模型训练方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该方法包括以下步骤:
步骤S102,在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和GPU的主存余量。
其中,隐藏层为深度神经网络模型的中间层,隐藏层对应的输出数据为深度神经网络模型的中间层输出,例如特征映射的矩阵或者张量。GPU的主存余量为GPU主存在第一次模型训练后剩余的主存存储容量。
具体地,服务器在深度神经网络模型首次进行训练时,即第一批量的训练数据输入该模型进行训练时,各隐藏层将上一隐藏层的输出数据作为输入数据,输入该隐藏层,得到该隐藏层的输出数据,服务器将各隐藏层在前向传递中生成的全部输出数据压缩编码至GPU主存存储,例如采用CSR(Compressed Sparse Row)或CSC(Compressed Sparse Column)稀疏矩阵压缩方法对中间层输出数据进行压缩存储,得到压缩后的输出数据,监测GPU主存使用情况,得到GPU的主存余量。
步骤S104,当GPU的主存余量未达到预设余量阈值时,根据输出数据的稀疏程度值和压缩后的输出数据占用GPU主存的时间比重,确定初步隐藏层。
其中,预设余量阈值为设定的GPU主存的目标存储阈值。稀疏程度值为输出数据的特征属性,例如特征映射矩阵中零元素占总元素的比重,其中,零元素占总元素的比重越大,稀疏程度值的数值越大。压缩后的输出数据占用GPU主存的时间比重为各隐藏层压缩后的输出数据在GPU主存的存储时长占用GPU主存存储所有压缩后的输出数据的总时长比重。初步隐藏层为当GPU的主存余量未达到预设余量阈值时,根据输出数据的稀疏程度值和压缩后的输出数据占用GPU主存的时间比重,确定的需要将对应的输出数据压缩存储的隐藏层。
具体地,当GPU的主存余量未达到预设余量阈值时,即第一批量的训练数据输入模型训练后,服务器根据各隐藏层的输出数据的稀疏程度值和压缩后的输出数据占用GPU主存的时间比重,确定初步隐藏层。
在一个实施例中,如图2所示,当GPU的主存余量未达到预设余量阈值时,根据输出数据的稀疏程度值和压缩后的输出数据占用GPU主存的时间比重,确定初步隐藏层,包括以下步骤S202至步骤S210:
步骤S202,当GPU的主存余量未达到预设余量阈值时,获取输出数据的稀疏程度值。
具体地,服务器在GPU的主存余量未达到预设余量阈值时,即GPU主存在第一批量的训练数据输入模型训练后GPU剩余存储空间未达到预设余量阈值时,通过对每个隐藏层输出数据的稀疏程度进行监测,得到对应的输出数据的稀疏程度值。
步骤S204,当稀疏程度值大于预设稀疏程度阈值时,确定第一隐藏层。
其中,预设稀疏程度阈值为隐藏层输出数据的稀疏程度阈值设置标准,可以是固定阈值,也可以是动态阈值,例如初始时为80%,在训练过程中逐步升至90%,具体数值可由服务器或者用户根据实际情况设置。第一隐藏层为各隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层,即当GPU的主存余量未达到预设余量阈值且隐藏层输出数据的稀疏程度小于预设稀疏程度阈值时,确定的需要压缩编码的隐藏层。
具体地,在一个实施例中,当稀疏程度值大于预设稀疏程度阈值时,确定第一隐藏层,包括:当稀疏程度值大于预设稀疏程度阈值时,将稀疏程度值对应的隐藏层确定为需要将对应的输出数据进行压缩的隐藏层;根据该隐藏层,确定各隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为第一隐藏层。
优选地,服务器可以将输出数据的稀疏程度值小于预设稀疏程度阈值的对应隐藏层取消压缩编码操作,释放掉该隐藏层压缩和解压缩的计算资源,并根据该隐藏层从而确定各隐藏层中此时需要进行压缩的隐藏层,即第一隐藏层。
本实施例中,由于深度神经网络中间层输出数据的稀疏程度普遍很高,但也根据网络各层的不同而体现出了不同的稀疏程度,因此对于稀疏程度高的输出数据使用压缩编码收益较高,而稀疏程度较低的层,使用压缩编码减少的内存使用量有限,且会增加压缩和解压缩步骤的计算开销,因此设置预设稀疏程度阈值,根据该阈值,用以确定对输出数据使用压缩编码存储的隐藏层,实现收益的最大化。
步骤S206,根据第一隐藏层,对第一隐藏层对应的输出数据压缩并存储至GPU主存后,获取GPU主存的第一余量。
其中,第一余量为将第一隐藏层对应的输出数据压缩并存储至GPU主存后,GPU主存的剩余存储容量。
具体地,服务器根据确定的第一隐藏层,在后续的训练数据输入模型进行训练时,将第一隐藏层对应的输出数据压缩并存储至GPU主存,并监测GPU主存的剩余存储容量,得到此时的GPU主存的第一余量。
步骤S208,当第一余量未达到预设余量阈值时,获取压缩后的输出数据占用GPU主存的时间比重。
具体地,当第一余量未达到预设余量阈值时,即此时GPU主存仍有余量时,服务器通过监测隐藏层输出数据占用GPU主存的时间占比,得到此时压缩后的输出数据占用GPU主存的时间比重,即该数据占用GPU主存的时长比重。
步骤S210,根据时间比重,确定初步隐藏层。
其中,初步隐藏层为第一隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层,即当GPU的主存余量未达到预设余量阈值且根据压缩后的输出数据占用GPU主存的时间比重,确定的第一隐藏层中需要将对应的输出数据压缩的隐藏层。
具体地,服务器根据压缩后的输出数据占用GPU主存的时间比重,确定初步隐藏层。
在一个实施例中,根据时间比重,确定初步隐藏层,包括:当时间比重小于预设时间比重阈值时,将时间比重对应的隐藏层确定为不需要将对应的输出数据进行压缩的隐藏层;根据隐藏层,确定第一隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为初步隐藏层。
其中,预设时间比重阈值为设置的压缩后的隐藏层输出数据占用GPU主存的时长比重标准阈值。
具体地,当第一余量未达到预设余量阈值时,得到压缩后的输出数据占用GPU主存的时间比重,当该时间比重小于预设时间比重阈值,则将对应的第一隐藏层确定为取消将对应的输出数据压缩的隐藏层,从而得到第一隐藏层中需要将对应的输出数据进行压缩的隐藏层,即初步隐藏层。例如,对于深度神经网络靠后的层,由于其中间输出存入GPU主存后不久便要取出参与反向传递的计算,计算结束后便丢弃,因此其对于GPU主存占用的时间比例,比网络中靠前的层的中间输出占用的少,故这部分网络的中间输出,视GPU主存的存储情况来决定是否进行压缩。
对于深度神经网络靠后的层,由于其中间输出存入内存后不久便要取出参与反向传递的计算,计算结束后便丢弃,因此其对于GPU主存占用的时间比例,比网络中靠前的层的中间输出占用的少,故这部分网络的中间输出,视GPU主存的存储情况来决定是否进行压缩。
本实施例中,根据深度神经网络模型训练时,压缩后的中间层输出数据占用GPU主存的时间占比有所不同,表示了深度神经网络中的隐藏层中,从前往后的隐藏层输出数据在内存中存储的时间是逐渐递减的,也即存储时间占比较低的层,存储该层中间输出数据的效率是较低的,且对于这些层,频繁地压缩编码存储和解码取出,消耗了计算资源。于是根据主存的使用情况和输出数据的稀疏程度,设置预设时间比重阈值,将时间占比较低的隐藏层取消掉对中间输出数据的压缩编码操作,提高了压缩效率,实现对GPU主存和计算资源的最大化利用。
步骤S104后还有步骤S106,迭代训练深度神经网络模型时,根据初步隐藏层,将初步隐藏层对应的输出数据压缩至GPU主存存储,得到GPU主存的初步余量,直至初步余量达到预设余量阈值。
其中,初步余量为将初步隐藏层对应的输出数据压缩存储至GPU主存后,GPU主存剩余的存储容量。
具体地,迭代训练深度神经网络模型时,服务器根据确定的初步隐藏层,将该初步隐藏层对应的输出数据压缩至GPU主存存储,得到当前训练过程的GPU主存的初步余量,直至当前训练过程得到的初步余量达到预设余量阈值。
步骤S108,当初步余量达到预设余量阈值时,确定需要将对应的输出数据压缩至GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
其中,最终隐藏层为根据GPU的主存余量、深度神经网络隐藏层的中间输出数据的稀疏程度、每个隐藏层中间输出数据占用GPU主存的时间比重,以上三个要素决定的最终需要对输出数据进行压缩的隐藏层。
具体地,当GPU主存的初步余量达到预设余量阈值时,服务器确定需要将对应的输出数据压缩至GPU主存存储的最终隐藏层,根据最终隐藏层进行训练,并对最终隐藏层的输出数据压缩至GPU主存存储,以便得到训练好的深度神经网络模型。
本实施例中,对深度神经网络正向传递中产生的中间输出(即特征映射)实施压缩编码进行存储,并当该数据在反向传递中作为参数进行计算时解码使用,并且根据GPU主存余量与计算资源、网络隐藏层的中间输出的稀疏程度以及每个隐藏层中间输出所占GPU主存的时间占比,来决定对深度神经网络哪些层的中间输出进行压缩编码。旨在对于深度神经网络训练阶段,实现更好地节约GPU主存的同时,更好地利用GPU的计算资源。
通过对这三个影响因素进行优先级排序和联合考虑,能最大化地利用GPU的主存和计算资源;因为若是不进行压缩编码,在网络规模较大时,内存的不足会迫使人们主动将minibatch size降低,而这会导致GPU的计算资源得不到充分利用,于是提出该方法,以达到在内存能满足的情况之下,尽可能地利用GPU的计算资源。
根据GPU主存在神经网络训练过程中的使用情况,随着使用压缩编码的中间层数量降低,主存的使用量将不断增加,表示了对中间层输出的特征映射进行压缩编码能有效地缓解GPU主存占用压力。
根据压缩和解压缩步骤的数量和计算效率呈一种反比例关系,压缩和解压缩步骤的数量越多,占用的计算资源相应地就越多,造成了深度神经网络模型训练的效率降低,于是,对于GPU主存占用未达阈值的情况下,减少对某些隐藏层的压缩和解压缩操作,对深度神经网络模型的训练是有益无害的,在此基础上,引出了以上对于选择隐藏层中间输出进行压缩编码的条件。
通过根据GPU主存余量、深度神经网络模型中各隐藏层的输出数据的稀疏程度以及各隐藏层的输出数据占用GPU主存的时间比重,确定深度神经网络模型中需要对输出数据进行压缩存储的最终隐藏层,从而减少了一些不必要的中间输出数据占用GPU主存空间,解决了GPU主存资源浪费问题,同时充分利用了GPU的计算资源,最大化地利用GPU的主存和计算资源,进而提高了GPU资源利用率和模型训练的效率。
在一个实施例中,如图3所示,输出数据包括特征映射;在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,包括:在深度神经网络模型首次训练过程的前向传递过程中,在各隐藏层计算生成对应的特征映射后,将特征映射作为下一隐藏层的输入数据参与前向传递计算,将特征映射压缩至GPU主存存储。
一个特征映射通常有两个用途,它们在时间上是分开的。在深度神经网络某层使用ReLU作为激活函数,其后一层为卷积层时,该层通过ReLU层输出的特征映射,需要保持精度传递至其后的卷积层作为输入,并且该特征映射在反向传递的梯度下降中也参与了计算,在正向传递使用和反向传递使用之间的空闲期,该特征映射需要存储在GPU的主存中;而ReLU的输出具有极高的稀疏性,便存在了优化的可能性。将该特征映射在正向过程中使用完毕后进行压缩编码存储,并解码此数据以用于反向过程的计算。
并不是每一个特征映射都要为反向传递保存。因此,我们将需存储的特征映射(在正向过程中生成并在正向和反向过程中使用)与立即使用的特征映射(在正向过程中生成并在正向过程中立即使用)和梯度映射(在反向过程中生成并立即使用)区分开来。反向传递中需要的存储的特征映射在minibatch处理中会存储很长时间。相反,立即使用的特征映射和梯度映射一经使用就可以丢弃而无需存储。
本实施例中,深度神经网络模型的隐藏层输出数据包括特征映射,可以是矩阵或者是张量的形式。当前隐藏层(Layer(x))在t1时刻生成特征映射,在t2时刻将该特征映射输出至下一隐藏层(Layer(y))作为输入参与前向传递计算(正向传递使用),在下一隐藏层(Layer(y))使用完毕后,即t3时刻将该特征映射压缩编码存储至GPU主存。
在一个实施例中,继续如图3所示,上述基于GPU的深度神经网络模型训练方法还包括:在深度神经网络模型首次训练过程的反向传递过程中,在完成各隐藏层对应的解压缩步骤后,获取解压缩步骤的开始时间并存储;在深度神经网络模型下一次训练过程的反向传递过程中,根据解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩。
具体地,参见图3的特征映射生存时间线,其中,执行过程如下:在t1时刻,Layer(x)根据输入计算生成特征映射;在t2时刻,特征映射作为Layer(y)的输入参与了前向传递中的计算,这次是第一次使用;在第一次使用完毕后,在t3时刻将该特征映射压缩编码存储进GPU主存中;在t4时刻,将经压缩编码的特征映射预解码取出;在t5时刻,该特征映射参与了反向传递中的计算,为第二次使用,使用完便丢弃。
图3中,t4的预解码时刻是被动态记录的,在第一个minibatch训练数据的训练期间,记录下在反向传递过程中到达每一层的时间,在下一次训练时,根据该时间,在深度神经网络中从后往前并行式地提前开启线程将压缩编码存储的中间层输出进行解码取出,由于并行解码,不会占用训练模型的时间,待反向传递到达了该层时,能节约掉等待解码的时间,实现了效率的提升,而对于反向传递到达的时间记录进行动态的调整,实现预解码和反向传递的精准对接。
根据在训练过程中使用预解码与神经网络训练速度呈一种正比例关系,说明了使用并行式预解码,省掉了反向传递中等待对中间层输出特征映射解码的过程,提升了训练的速度。
进一步地,在一个实施例中,根据解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩,包括:根据解压缩步骤的开始时间,确定反向传递过程的节点到达当前隐藏层的时间;根据该时间,在基于反向传递算法的训练过程中,同时对当前隐藏层的压缩后的特征映射进行并行式预解压缩。
本实施例中,采用预解码机制,对于已压缩存储的数据,在反向传递需要时,并行式地将其预解码。因此,采用本实施例的方法,能够解决深度神经网络训练时GPU主存占用与计算资源分配的优化问题;而采用对已压缩数据在反向传递过程中进行并行预解码,则可以节约训练时间。
优选地,在一个实施例中,如图4所示,在深度神经网络模型的隐藏层k使用ReLU作为激活函数,其后一层即隐藏层k+1为卷积层时,通过ReLU层输出的特征映射矩阵,需要保持精度传递至其后的卷积层作为输入,并且该特征映射矩阵在反向传递的梯度下降中也参与了计算。而ReLU层输出的特征映射矩阵具有极高的稀疏性,便可以对其压缩编码再进行存储。在特征映射矩阵传入下一层之后,可以应用CSR/CSC稀疏矩阵压缩编码的方法对其压缩存储,以达到节约GPU主存的目的。当正向传递结束后,反向传递开始,当反向传递计算至该层时,再将该层在正向传递过程中算出的压缩后的特征矩阵解压缩,解压缩后的特征映射矩阵作为参数参与反向传递过程中的梯度下降计算。本实施例的方法节省了GPU主存消耗,且不会损害深度神经网络模型的训练精度。
应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种基于GPU的深度神经网络模型训练装置500,包括:首次训练模块501、初步隐藏层确定模块502、迭代训练模块503和最终隐藏层确定模块504,其中:
首次训练模块501,用于在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和GPU的主存余量。
初步隐藏层确定模块502,用于当GPU的主存余量未达到预设余量阈值时,根据输出数据的稀疏程度值和压缩后的输出数据占用GPU主存的时间比重,确定初步隐藏层。
迭代训练模块503,用于迭代训练深度神经网络模型时根据初步隐藏层,将初步隐藏层对应的输出数据压缩至GPU主存存储,得到GPU主存的初步余量,直至初步余量达到预设余量阈值。
最终隐藏层确定模块504,用于当初步余量达到预设余量阈值时,确定需要将对应的输出数据压缩至GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
在一个实施例中,输出数据包括特征映射;首次训练模块501用于在深度神经网络模型首次训练过程的前向传递过程中,在各隐藏层计算生成对应的特征映射后,将特征映射作为下一隐藏层的输入数据参与前向传递计算,将特征映射压缩至GPU主存存储。
在一个实施例中,基于GPU的深度神经网络模型训练装置500还包括预解压缩模块,用于在深度神经网络模型首次训练过程的反向传递过程中,在完成各隐藏层对应的解压缩步骤后,获取解压缩步骤的开始时间并存储;在深度神经网络模型下一次训练过程的反向传递过程中,根据解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩。
在一个实施例中,初步隐藏层确定模块502用于当GPU的主存余量未达到预设余量阈值时,获取输出数据的稀疏程度值;当稀疏程度值大于预设稀疏程度阈值时,确定第一隐藏层;第一隐藏层为各隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层;根据第一隐藏层,对第一隐藏层对应的输出数据压缩并存储至GPU主存后,获取GPU主存的第一余量;当第一余量未达到预设余量阈值时,获取压缩后的输出数据占用GPU主存的时间比重;根据时间比重,确定初步隐藏层;初步隐藏层为第一隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层。
在一个实施例中,初步隐藏层确定模块502还用于当稀疏程度值大于预设稀疏程度阈值时,将稀疏程度值对应的隐藏层确定为需要将对应的输出数据进行压缩的隐藏层;根据隐藏层,确定各隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为第一隐藏层。
在一个实施例中,初步隐藏层确定模块502还用于当时间比重小于预设时间比重阈值时,将时间比重对应的隐藏层确定为不需要将对应的输出数据进行压缩的隐藏层;根据隐藏层,确定第一隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为初步隐藏层。
在一个实施例中,预解压缩模块,还用于根据解压缩步骤的开始时间,确定反向传递过程的节点到达当前隐藏层的时间;根据时间,在基于反向传递算法的训练过程中,同时对当前隐藏层的压缩后的特征映射进行并行式预解压缩。
关于基于GPU的深度神经网络模型训练装置的具体限定可以参见上文中对于基于GPU的深度神经网络模型训练方法的限定,在此不再赘述。上述基于GPU的深度神经网络模型训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各隐藏层对应的输出数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于GPU的深度神经网络模型训练方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和GPU的主存余量;
当GPU的主存余量未达到预设余量阈值时,根据输出数据的稀疏程度值和压缩后的输出数据占用GPU主存的时间比重,确定初步隐藏层;
迭代训练深度神经网络模型时,根据初步隐藏层,将初步隐藏层对应的输出数据压缩至GPU主存存储,得到GPU主存的初步余量,直至初步余量达到预设余量阈值;
当初步余量达到预设余量阈值时,确定需要将对应的输出数据压缩至GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在深度神经网络模型首次训练过程的前向传递过程中,在各隐藏层计算生成对应的特征映射后,将特征映射作为下一隐藏层的输入数据参与前向传递计算,将特征映射压缩至GPU主存存储。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在深度神经网络模型首次训练过程的反向传递过程中,在完成各隐藏层对应的解压缩步骤后,获取解压缩步骤的开始时间并存储;在深度神经网络模型下一次训练过程的反向传递过程中,根据解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当GPU的主存余量未达到预设余量阈值时,获取输出数据的稀疏程度值;当稀疏程度值大于预设稀疏程度阈值时,确定第一隐藏层;第一隐藏层为各隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层;根据第一隐藏层,对第一隐藏层对应的输出数据压缩并存储至GPU主存后,获取GPU主存的第一余量;当第一余量未达到预设余量阈值时,获取压缩后的输出数据占用GPU主存的时间比重;根据时间比重,确定初步隐藏层;初步隐藏层为第一隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当稀疏程度值大于预设稀疏程度阈值时,将稀疏程度值对应的隐藏层确定为需要将对应的输出数据进行压缩的隐藏层;根据隐藏层,确定各隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为第一隐藏层。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当时间比重小于预设时间比重阈值时,将时间比重对应的隐藏层确定为不需要将对应的输出数据进行压缩的隐藏层;根据隐藏层,确定第一隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为初步隐藏层。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据解压缩步骤的开始时间,确定反向传递过程的节点到达当前隐藏层的时间;根据时间,在基于反向传递算法的训练过程中,同时对当前隐藏层的压缩后的特征映射进行并行式预解压缩。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和GPU的主存余量;
当GPU的主存余量未达到预设余量阈值时,根据输出数据的稀疏程度值和压缩后的输出数据占用GPU主存的时间比重,确定初步隐藏层;
迭代训练深度神经网络模型时,根据初步隐藏层,将初步隐藏层对应的输出数据压缩至GPU主存存储,得到GPU主存的初步余量,直至初步余量达到预设余量阈值;
当初步余量达到预设余量阈值时,确定需要将对应的输出数据压缩至GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在深度神经网络模型首次训练过程的前向传递过程中,在各隐藏层计算生成对应的特征映射后,将特征映射作为下一隐藏层的输入数据参与前向传递计算,将特征映射压缩至GPU主存存储。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在深度神经网络模型首次训练过程的反向传递过程中,在完成各隐藏层对应的解压缩步骤后,获取解压缩步骤的开始时间并存储;在深度神经网络模型下一次训练过程的反向传递过程中,根据解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当GPU的主存余量未达到预设余量阈值时,获取输出数据的稀疏程度值;当稀疏程度值大于预设稀疏程度阈值时,确定第一隐藏层;第一隐藏层为各隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层;根据第一隐藏层,对第一隐藏层对应的输出数据压缩并存储至GPU主存后,获取GPU主存的第一余量;当第一余量未达到预设余量阈值时,获取压缩后的输出数据占用GPU主存的时间比重;根据时间比重,确定初步隐藏层;初步隐藏层为第一隐藏层中确定的需要将对应的输出数据进行压缩的隐藏层。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当稀疏程度值大于预设稀疏程度阈值时,将稀疏程度值对应的隐藏层确定为需要将对应的输出数据进行压缩的隐藏层;根据隐藏层,确定各隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为第一隐藏层。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当时间比重小于预设时间比重阈值时,将时间比重对应的隐藏层确定为不需要将对应的输出数据进行压缩的隐藏层;根据隐藏层,确定第一隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为初步隐藏层。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据解压缩步骤的开始时间,确定反向传递过程的节点到达当前隐藏层的时间;根据时间,在基于反向传递算法的训练过程中,同时对当前隐藏层的压缩后的特征映射进行并行式预解压缩。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于GPU的深度神经网络模型训练方法,其特征在于,所述方法包括:
在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和所述GPU的主存余量;
当所述GPU的主存余量未达到预设余量阈值时,获取所述输出数据的稀疏程度值;
当所述稀疏程度值大于预设稀疏程度阈值时,将所述稀疏程度值对应的隐藏层确定为需要将对应的输出数据进行压缩的隐藏层;
根据所述需要将对应的输出数据进行压缩的隐藏层,确定所述各隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为第一隐藏层;
根据所述第一隐藏层,对所述第一隐藏层对应的输出数据压缩并存储至所述GPU主存后,获取所述GPU主存的第一余量;
当所述第一余量未达到所述预设余量阈值时,获取所述压缩后的输出数据占用所述GPU主存的时间比重;
当所述时间比重小于预设时间比重阈值时,将所述时间比重对应的隐藏层确定为不需要将对应的输出数据进行压缩的隐藏层;
根据所述不需要将对应的输出数据进行压缩的隐藏层,确定所述第一隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为初步隐藏层;
迭代训练所述深度神经网络模型时,根据所述初步隐藏层,将所述初步隐藏层对应的输出数据压缩至所述GPU主存存储,得到所述GPU主存的初步余量,直至所述初步余量达到所述预设余量阈值;
当所述初步余量达到所述预设余量阈值时,确定需要将对应的输出数据压缩至所述GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述输出数据包括特征映射;所述在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,包括:
在深度神经网络模型首次训练过程的前向传递过程中,在所述各隐藏层计算生成对应的所述特征映射后,将所述特征映射作为下一隐藏层的输入数据参与前向传递计算,将所述特征映射压缩至所述GPU主存存储。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述深度神经网络模型首次训练过程的反向传递过程中,在完成所述各隐藏层对应的解压缩步骤后,获取所述解压缩步骤的开始时间并存储;
在深度神经网络模型下一次训练过程的反向传递过程中,根据所述解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩。
4.根据权利要求3所述的方法,其特征在于,所述根据所述解压缩步骤的开始时间,采用预解压缩的方式预先将前向传递过程中存储的压缩后的特征映射进行解压缩,包括:
根据所述解压缩步骤的开始时间,确定所述反向传递过程的节点到达当前隐藏层的时间;
根据所述时间,在基于反向传递算法的训练过程中,同时对所述当前隐藏层的压缩后的特征映射进行并行式预解压缩。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述输出数据的稀疏程度值小于所述预设稀疏程度阈值的对应隐藏层取消压缩编码操作,并释放掉所述对应隐藏层压缩和解压缩的计算资源。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一隐藏层,对所述第一隐藏层对应的输出数据压缩并存储至所述GPU主存后,获取所述GPU主存的第一余量,包括:
根据所述第一隐藏层,对所述第一隐藏层对应的输出数据压缩并存储至所述GPU主存后,监测所述GPU主存的剩余存储容量,获得所述GPU主存的第一余量。
7.根据权利要求1所述的方法,其特征在于,所述当所述第一余量未达到所述预设余量阈值时,获取所述压缩后的输出数据占用所述GPU主存的时间比重,包括:
当所述第一余量未达到所述预设余量阈值时,监测所述第一隐藏层对应的输出数据占用所述GPU主存的时间占比,获得所述压缩后的输出数据占用所述GPU主存的时间比重。
8.一种基于GPU的深度神经网络模型训练装置,其特征在于,所述装置包括:
首次训练模块,用于在深度神经网络模型首次训练时,将各隐藏层对应的输出数据压缩至GPU主存存储,得到压缩后的输出数据和所述GPU的主存余量;
初步隐藏层确定模块,用于当所述GPU的主存余量未达到预设余量阈值时,获取所述输出数据的稀疏程度值;当所述稀疏程度值大于预设稀疏程度阈值时,将所述稀疏程度值对应的隐藏层确定为需要将对应的输出数据进行压缩的隐藏层;根据所述需要将对应的输出数据进行压缩的隐藏层,确定所述各隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为第一隐藏层;根据所述第一隐藏层,对所述第一隐藏层对应的输出数据压缩并存储至所述GPU主存后,获取所述GPU主存的第一余量;当所述第一余量未达到所述预设余量阈值时,获取所述压缩后的输出数据占用所述GPU主存的时间比重;当所述时间比重小于预设时间比重阈值时,将所述时间比重对应的隐藏层确定为不需要将对应的输出数据进行压缩的隐藏层;根据所述不需要将对应的输出数据进行压缩的隐藏层,确定所述第一隐藏层中需要将对应的输出数据进行压缩的隐藏层,作为初步隐藏层;
迭代训练模块,用于迭代训练所述深度神经网络模型时根据所述初步隐藏层,将所述初步隐藏层对应的输出数据压缩至所述GPU主存存储,得到所述GPU主存的初步余量,直至所述初步余量达到所述预设余量阈值;
最终隐藏层确定模块,用于当所述初步余量达到所述预设余量阈值时,确定需要将对应的输出数据压缩至所述GPU主存存储的最终隐藏层,根据所述最终隐藏层进行训练,以得到训练好的深度神经网络模型。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010187555.7A CN111461293B (zh) | 2020-03-17 | 2020-03-17 | 基于gpu的深度神经网络模型训练方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010187555.7A CN111461293B (zh) | 2020-03-17 | 2020-03-17 | 基于gpu的深度神经网络模型训练方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111461293A CN111461293A (zh) | 2020-07-28 |
CN111461293B true CN111461293B (zh) | 2023-06-06 |
Family
ID=71685598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010187555.7A Active CN111461293B (zh) | 2020-03-17 | 2020-03-17 | 基于gpu的深度神经网络模型训练方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111461293B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447890A (zh) * | 2019-01-09 | 2019-03-08 | 北京理工大学 | 一种基于卷积神经网络的光谱成像系统的编码优化方法 |
CN109657649A (zh) * | 2019-01-14 | 2019-04-19 | 南京邮电大学 | 一种轻型心音神经网络的设计方法 |
CN109993683A (zh) * | 2017-12-29 | 2019-07-09 | 英特尔公司 | 任意神经网络的机器学习稀疏计算机制、用于训练机制的算术计算微架构以及稀疏性 |
CN110147872A (zh) * | 2018-05-18 | 2019-08-20 | 北京中科寒武纪科技有限公司 | 编码存储装置及方法、处理器及训练方法 |
CN110232087A (zh) * | 2019-05-30 | 2019-09-13 | 湖南大学 | 大数据增量迭代方法、装置、计算机设备和存储介质 |
CN110378472A (zh) * | 2019-07-24 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种深度神经网络模型的数据并行训练方法、装置及设备 |
CN110428045A (zh) * | 2019-08-12 | 2019-11-08 | 电子科技大学 | 基于Tucker算法的深度卷积神经网络压缩方法 |
CN110443354A (zh) * | 2019-07-26 | 2019-11-12 | 深圳大学 | 一种基于多组张列量分解的深度神经网络压缩方法、系统、装置及存储介质 |
CN110458189A (zh) * | 2019-06-29 | 2019-11-15 | 天津大学 | 压缩感知和深度卷积神经网络电能质量扰动分类方法 |
CN110543938A (zh) * | 2018-05-28 | 2019-12-06 | 瑞萨电子株式会社 | 半导体装置和存储器访问设定方法 |
CN110580525A (zh) * | 2019-06-03 | 2019-12-17 | 北京邮电大学 | 神经网络压缩方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625584B2 (en) * | 2019-06-17 | 2023-04-11 | Intel Corporation | Reconfigurable memory compression techniques for deep neural networks |
-
2020
- 2020-03-17 CN CN202010187555.7A patent/CN111461293B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993683A (zh) * | 2017-12-29 | 2019-07-09 | 英特尔公司 | 任意神经网络的机器学习稀疏计算机制、用于训练机制的算术计算微架构以及稀疏性 |
CN110147872A (zh) * | 2018-05-18 | 2019-08-20 | 北京中科寒武纪科技有限公司 | 编码存储装置及方法、处理器及训练方法 |
CN110543938A (zh) * | 2018-05-28 | 2019-12-06 | 瑞萨电子株式会社 | 半导体装置和存储器访问设定方法 |
CN109447890A (zh) * | 2019-01-09 | 2019-03-08 | 北京理工大学 | 一种基于卷积神经网络的光谱成像系统的编码优化方法 |
CN109657649A (zh) * | 2019-01-14 | 2019-04-19 | 南京邮电大学 | 一种轻型心音神经网络的设计方法 |
CN110232087A (zh) * | 2019-05-30 | 2019-09-13 | 湖南大学 | 大数据增量迭代方法、装置、计算机设备和存储介质 |
CN110580525A (zh) * | 2019-06-03 | 2019-12-17 | 北京邮电大学 | 神经网络压缩方法及系统 |
CN110458189A (zh) * | 2019-06-29 | 2019-11-15 | 天津大学 | 压缩感知和深度卷积神经网络电能质量扰动分类方法 |
CN110378472A (zh) * | 2019-07-24 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种深度神经网络模型的数据并行训练方法、装置及设备 |
CN110443354A (zh) * | 2019-07-26 | 2019-11-12 | 深圳大学 | 一种基于多组张列量分解的深度神经网络压缩方法、系统、装置及存储介质 |
CN110428045A (zh) * | 2019-08-12 | 2019-11-08 | 电子科技大学 | 基于Tucker算法的深度卷积神经网络压缩方法 |
Non-Patent Citations (4)
Title |
---|
Berkin Akin 等.ZCOMP: Reducing DNN Cross-Layer Memory Footprint Using Vector Extensions.《MICRO '52: Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture》.2019,全文. * |
Chubo Liu 等.A Game Approach to Multi-Servers Load Balancing with Load-Dependent Server Availability Consideration.《IEEE Transactions on Cloud Computing》.2018,第9卷(第9期),全文. * |
Zhuliang Yao 等.Balanced Sparsity for Efficient DNN Inference on GPU.《AAAI Technical Track: Machine Learning》.2019,第33卷(第33期),全文. * |
汤洋 等.高性能行任务散列法GPU一般稀疏矩阵-矩阵乘法.《北京邮电大学学报》.2019,第42卷(第42期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111461293A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10834415B2 (en) | Devices for compression/decompression, system, chip, and electronic device | |
US10599935B2 (en) | Processing artificial neural network weights | |
CN110119745B (zh) | 深度学习模型的压缩方法、装置、计算机设备及存储介质 | |
US11526581B2 (en) | Compression-encoding scheduled inputs for matrix computations | |
US20230004809A1 (en) | Method and Device for Model Compression of Neural Network | |
US11960421B2 (en) | Operation accelerator and compression method | |
CN113570033B (zh) | 神经网络处理单元、神经网络的处理方法及其装置 | |
US20210191733A1 (en) | Flexible accelerator for sparse tensors (fast) in machine learning | |
CN110751265A (zh) | 一种轻量型神经网络构建方法、系统及电子设备 | |
CN103546161A (zh) | 基于二进制位处理的无损压缩方法 | |
US20200364558A1 (en) | Electronic apparatus and controlling method thereof | |
CN111553471A (zh) | 一种数据分析处理方法及装置 | |
CN111461293B (zh) | 基于gpu的深度神经网络模型训练方法、装置和计算机设备 | |
CN109086819B (zh) | caffemodel模型压缩方法、系统、设备及介质 | |
CN110569970A (zh) | 一种应用于卷积神经网络中硬件加速器的数据传输方法 | |
CN112329923B (zh) | 一种模型压缩方法、装置、电子设备及可读存储介质 | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
CN103581673A (zh) | 视频数据的压缩/解压缩方法及系统 | |
CN113256744A (zh) | 一种图像编码、解码方法及系统 | |
WO2023159820A1 (zh) | 图像压缩方法、图像解压缩方法及装置 | |
Vogel et al. | Guaranteed compression rate for activations in cnns using a frequency pruning approach | |
Vooturi et al. | Efficient inferencing of compressed deep neural networks | |
CN113313253A (zh) | 神经网络压缩方法、数据处理方法、装置及计算机设备 | |
CN113495669A (zh) | 一种解压装置、加速器、和用于解压装置的方法 | |
US20130067207A1 (en) | Apparatus and method for compressing instructions and a computer-readable storage media therefor |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |