当前位置: 首页 > 专利查询>之江实验室专利>正文

一种加速深度学习训练任务数据载入的方法技术

技术编号:30834292 阅读:9 留言:0更新日期:2021-11-18 12:56
本发明专利技术公开了一种加速深度学习训练任务数据载入的方法,该方法使用双随机序列方式,在每个训练周期开始时提前计算下一个周期的随机序列,并申请一块独立的内存提前缓存下一个周期初始阶段所需数据。根据当前周期的随机序列依次为神经网络准备数据的同时,可参照下一个周期的随机序列及时将下一个周期初始阶段所需数据依次从内存拷贝到缓存,使得下一个周期初始阶段所需的数据可全部从缓存获得。本发明专利技术不需修改现有深度学习的架构,实现简单,引入的计算开销小,缓存数据能全部命中且可被使用多次,从而减少从后端存储系统读取数据,并且训练周期数越多,此方法的加速效果越明显。显。显。

【技术实现步骤摘要】
一种加速深度学习训练任务数据载入的方法


[0001]本专利技术涉及深度学习领域,尤其是涉及一种加速深度学习训练任务数据载入的方法。

技术介绍

[0002]深度学习是机器学习的分支,是一种基于人工神经网络对资料进行表征学习的算法,它被广泛用于计算机视觉、语音识别、自然语言处理等领域。深度学习训练任务的训练过程,分多个周期执行,通过重复训练产生收敛的模型。每个周期的训练过程可分为三个阶段,即数据载入,数据增强,神经网络模型训练。数据载入阶段需实现两个功能,一是从后端存储系统中将训练集读到内存,二是对训练集进行随机化洗牌。数据增强阶段的功能是对内存中的训练数据进行翻转,旋转,缩放,裁剪,移位,调色等操作,增大训练集涵盖的样本空间。
[0003]神经网络模型训练阶段,利用增强后的数据,计算出一个包含众多参数的神经网络模型。
[0004]其中,数据载入阶段属于I/O密集型,而其他两个阶段属于计算密集型。近年来计算机算力的增长速度远大于存储端I/O性能的提升速度,这使得数据载入阶段的时间开销在总训练开销中的占比不断攀升,并逐渐成为深度学习训练的瓶颈之一。
[0005]传统的加速数据载入的方法,侧重于优化训练集在后端存储系统的组织方式和访问模式,例如将训练集中的小文件打包成捆,并以捆为单位将训练集载入内存,从而避免性能低下的小文件随机读操作,或是按数据存储的顺序依次将小文件载入内存,然后在内存中实现局部随机化,从而将性能低下的随机读转换为快速的顺序读。这些方法能有效利用后端存储系统的I/O带宽,加快训练集载入内存的速度,但是这类方法对数据载入的加速效果几乎已经达到极限。
[0006]为避免深度学习的过拟合现象,通常情况下,训练集在数据载入阶段,需进行全局的随机洗牌。然而,因为训练集的规模太大,全局洗牌过程不能直接在内存进行,所以每个训练周期需首先计算出一个随机序列,然后根据此序列将训练集的数据逐一载入内存,而数据增强操作将直接修改内存中的原始数据,这导致数据每次从后端存储系统载入内存后,只能使用一次,下一个周期需重新载入,后端存储系统因此面临沉重的I/O负担。目前,此问题缺少有效的解决方案。

技术实现思路

[0007]为解决现有技术的不足,实现减少从后端存储系统读取数据,提高数据载入速度,并且随训练周期数越多,加速效果越明显的目的,本专利技术采用如下的技术方案:一种加速深度学习训练任务数据载入的方法,包括如下步骤:S1,在深度学习训练任务初始化时,从深度学习训练任务所占内存中单独划分一块区域作为缓存,记为Cache
next
,它提供深度学习训练任务在当前周期所需数据,并提前缓
存下一个周期初始阶段所需的数据;S2,构建双随机序列模式,用于决定训练集的数据进入神经网络的顺序,随机序列的元素与训练集的数据一一对应,每一个训练周期内,同时存在新旧两个互不相同且彼此独立的随机序列;S3,第一个训练周期之前,生成一个随机序列S
next
,而任一训练周期开始时,将现存的随机序列S
next
赋值给S
cur
,并由它决定当前周期数据进入神经网络的顺序,然后生成一个新的随机序列,记为S
next
,用于决定下一个周期数据进入神经网络的顺序,S
next
包括子序列S
next_prefix
,涵盖下一个周期初始阶段将使用到的训练集的数据,随着数据载入阶段周期性地执行,每个周期遍历S
cur
,对于S
cur
的每一个元素S
cur
[i],从Cache
next
或后端存储系统获取S
cur
[i]对应的训练集的数据,将此数据放入内存,然后参考S
next_prefix
更新Cache
next
,包括如下步骤:S31,当S
cur
[i]在Cache
next
的前段curList命中时,S
cur
[i]对应的训练集的数据从curList拷贝至内存,然后在curList中删除S
cur
[i]对应的数据,此时,若S
cur
[i]存在于S
next_prefix
中,则S
cur
[i]对应训练集的数据被插入Cache
next
的后段nexList;S32,当S
cur
[i]在Cache
next
的前段curList不命中时,从后端存储系统读取S
cur
[i]对应的训练集的数据至内存,此时,若S
cur
[i]存在于S
next_prefix
中,则S
cur
[i]对应训练集的数据被插入Cache
next
的后段nexList;S33,当S
cur
遍历结束时,清空S
cur
,只剩下一个随机序列S
next
;S4,当前周期完成,若完成的周期数小于预先设定的数目N,则返回S3开始下一个周期的训练,若所有训练周期都已完成,则深度学习训练任务结束。
[0008]进一步地,所述S2包括如下步骤:S21,在深度学习训练任务的第一个周期开始之前,生成一个随机序列,记为S
next
;S22,每一个周期开始时,S
next
赋值给S
cur
,S
cur
决定当前周期数据进入神经网络的顺序;S23,使用新的随机种子生成另一个随机序列赋值给S
next
,S
next
决定下一个周期数据进入神经网络的顺序,至此系统中同时存在两个互不相同且相互独立的随机序列;S24,一个周期结束时,清空S
cur
,保留S
next

[0009]进一步地,所述S1的Cache
next
在逻辑上分为curList和nexList,其中curList缓存当前训练周期使用的数据,nexList缓存将下一个训练周期将使用的数据,包括如下步骤:S11,第一个训练周期开始前,Cache
next
为空,curList和nexList也为空;S12,第一个训练周期内,curList为空,插入Cache
next
的数据都位于nexList;S13,非第一个训练周期开始时,nexList的数据全部转入curList,nexList为空;S14,非第一个训练周期期间,curList中的数据命中便被移除,其长度逐渐缩短,而新插入Cache
next
的数据均进入nexList,使得nexList的长度逐渐增长;S15,一个训练周期结束时,curList长度为零,nexList的长度等于Cache
next
的长度;S16,nexL本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加速深度学习训练任务数据载入的方法,其特征在于包括如下步骤:S1,内存中单独划分一块区域作为缓存,记为Cache
next
;S2,构建双随机序列模式,用于决定训练集的数据进入神经网络的顺序,随机序列的元素与训练集的数据一一对应,每一个训练周期内,同时存在新旧两个互不相同且彼此独立的随机序列;S3,第一个训练周期之前,生成一个随机序列S
next
,而任一训练周期开始时,将现存的随机序列S
next
赋值给S
cur
,并由它决定当前周期数据进入神经网络的顺序,然后生成一个新的随机序列,记为S
next
,用于决定下一个周期数据进入神经网络的顺序,S
next
包括子序列S
next_prefix
,涵盖下一个周期初始阶段将使用到的训练集的数据,随着数据载入阶段周期性地执行,每个周期遍历S
cur
,对于S
cur
的每一个元素S
cur
[i],从Cache
next
或后端存储系统获取S
cur
[i]对应的训练集的数据,将此数据放入内存,然后参考S
next_prefix
更新Cache
next
,包括如下步骤:S31,当S
cur
[i]在Cache
next
的前段curList命中时,S
cur
[i]对应的训练集的数据从curList拷贝至内存,然后在curList中删除S
cur
[i]对应的数据,此时,若S
cur
[i]存在于S
next_prefix
中,则S
cur
[i]对应训练集的数据被插入Cache
next
的后段nexList;S32,当S
cur
[i]在Cache
next
的前段curList不命中时,从后端存储系统读取S
cur
[i]对应的训练集的数据至内存,此时,若S
cur
[i]存在于S
next_prefix
中,则S
cur
[i]对应训练集的数据被插入Cache
next
的后段nexList;S33,当S
cur
遍历结束时,清空S
cur
,只剩下一个随机序列S
next
;S4,当前周期完成,若完成的周期数小于预先设定的数目N,则返回S3开始下一个周期的训练,若所有训练周期都已完成,则深度学习训练任务结束。2.根据权利要求1所述的一种加速深度学习训练任务数据载入的方法,其特征在于所述S2包括如下步骤:S21,在深度学习训练任务的第一个周期开始之前,生成一个随机序列,记为S
next
;S22,每一个周期开始时,S
next
赋值给S
cur
,S
c...

【专利技术属性】
技术研发人员:朱春节银燕龙何水兵曾令仿秦亦周方
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1