一种数据访问方法、装置、设备和存储介质制造方法及图纸

技术编号:29134775 阅读:14 留言:0更新日期:2021-07-02 22:30
本申请公开一种数据访问方法、装置、设备和存储介质,获取用于训练目标深度学习模型的训练数据集,根据训练数据集,确定目标索引文件,以基于索引对训练数据集中的每条训练数据进行随机访问。在此基础上,将对训练数据的随机排序等操作转化为对索引信息的操作,即在每轮对目标深度学习模型进行训练的过程中,随机打乱目标索引文件中索引信息的顺序,得到索引信息按照第二顺序排列的目标索引文件,按照第二顺序,从训练数据集中读取目标索引信息对应的目标训练数据输入目标深度学习模型进行该轮训练。从而使内存中仅需要存储体积较小的索引信息以及训练中每一步需要的少量训练数据,显著减少内存使用,并且能够保证训练数据读取的高效性。

【技术实现步骤摘要】
一种数据访问方法、装置、设备和存储介质
本申请涉及数据处理领域,特别是涉及一种数据访问方法、装置、设备和存储介质。
技术介绍
近年来,深度学习技术取得了巨大进展,在自然语言处理、计算机视觉与语音识别等多个领域取得了接近甚至超过人类的表现。训练精度高、效果好的深度学习模型离不开海量的训练数据。目前,深度学习模型主要基于随机梯度下降算法进行训练。在大多数模型训练场景中,需要首先将整个训练数据集读取到内存中,之后在每一轮训练前将训练数据集中的训练数据随机打乱,并在打乱后的训练数据集中依次读取一小部分训练数据输入模型中。但随着模型训练使用的数据规模越来越大,这一做法逐渐变得不可行,因为多达几十甚至几百GB以上的训练数据很可能无法完全加载至内存中。此外,模型训练的每一步中实际仅用到整个训练数据集的一小部分,使得内存有效利用率很低,浪费了大量内存资源。
技术实现思路
为了解决上述技术问题,本申请提供了一种数据访问方法、装置、设备和存储介质,保证每轮训练读取部分需要的数据,避免因加载整个训练数据集而造成大量内存资源浪费。通过每轮训练随机打乱目标索引文件中索引信息的顺序,实现基于索引对训练数据集中的每条训练数据进行随机访问,并在这一基础上,可以将对训练数据的随机排序等操作转化为对索引信息的操作,从而使内存中仅需要存储体积较小的索引信息以及训练中每一步需要的少量训练数据,与加载整个训练数据集相比显著减少内存使用,并且能够保证训练数据读取的高效性。本申请实施例公开了如下技术方案:第一方面,本申请实施例提供一种数据访问方法,所述方法包括:获取用于训练目标深度学习模型的训练数据集;根据所述训练数据集,确定目标索引文件,所述目标索引文件按照第一顺序记录所述训练数据集中每条训练数据的索引信息,所述索引信息表示训练数据在所述训练数据集中的位置;在每轮对所述目标深度学习模型进行训练的过程中,随机打乱所述目标索引文件中所述索引信息的顺序,得到所述索引信息按照第二顺序排列的目标索引文件,所述第一顺序与所述第二顺序不同;按照所述第二顺序,从目标索引文件确定属于同一读取批次的目标索引信息;针对每一读取批次,从所述训练数据集中读取所述目标索引信息对应的目标训练数据输入所述目标深度学习模型,以对所述目标深度学习模型进行该轮训练。第二方面,本申请实施例提供一种数据访问装置,所述装置包括获取单元、确定单元、打乱单元和读取单元:所述获取单元,用于获取用于训练目标深度学习模型的训练数据集;所述确定单元,用于根据所述训练数据集,确定目标索引文件,所述目标索引文件按照第一顺序记录所述训练数据集中每条训练数据的索引信息,所述索引信息表示训练数据在所述训练数据集中的位置;所述打乱单元,用于在每轮对所述目标深度学习模型进行训练的过程中,随机打乱所述目标索引文件中所述索引信息的顺序,得到所述索引信息按照第二顺序排列的目标索引文件,所述第一顺序与所述第二顺序不同;所述确定单元,还用于按照所述第二顺序,从目标索引文件确定属于同一读取批次的目标索引信息;所述读取单元,用于针对每一读取批次,从所述训练数据集中读取所述目标索引信息对应的目标训练数据输入所述目标深度学习模型,以对所述目标深度学习模型进行该轮训练。第三方面,本申请实施例提供一种用于数据访问的设备,所述设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器用于根据所述程序代码中的指令执行第一方面所述的方法。第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面所述的方法。由上述技术方案可以看出,在深度学习过程中,通常要在整个训练数据集上进行多轮训练,本申请可以提出一种训练数据集快速访问方法,具体地,获取用于训练目标深度学习模型的训练数据集,根据训练数据集,确定目标索引文件,目标索引文件按照第一顺序记录训练数据集中每条训练数据的索引信息,索引信息表示训练数据在训练数据集中的位置。在每轮对目标深度学习模型进行训练的过程中,随机打乱目标索引文件中索引信息的顺序,得到索引信息按照第二顺序排列的目标索引文件,其中,第一顺序与第二顺序不同。按照第二顺序,从目标索引文件确定属于同一读取批次的目标索引信息,从而针对每一读取批次,从训练数据集中读取目标索引信息对应的目标训练数据输入目标深度学习模型,以对目标深度学习模型进行该轮训练,从而保证每轮训练读取部分需要的数据,避免因加载整个训练数据集而造成大量内存资源浪费。通过每轮训练随机打乱目标索引文件中索引信息的顺序,实现基于索引对训练数据集中的每条训练数据进行随机访问,并在这一基础上,可以将对训练数据的随机排序等操作转化为对索引信息的操作,从而使内存中仅需要存储体积较小的索引信息以及训练中每一步需要的少量训练数据,与加载整个训练数据集相比显著减少内存使用,并且能够保证训练数据读取的高效性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为相关技术提供的一种数据访问方法的算法流程图;图2为本申请实施例提供的一种数据访问方法的应用场景示意图;图3为本申请实施例提供的一种数据访问方法的流程图;图4为本申请实施例提供的一种数据访问方法的算法流程图;图5为本申请实施例提供的一种数据访问方法的整体框架图;图6为本申请实施例提供的通过索引查找模块读取训练数据的算法流程图;图7为本申请实施例提供的一种构建目标索引文件的算法流程图;图8为本申请实施例提供的一种数据访问方法的流程图;图9为本申请实施例提供的一种数据访问装置的结构图;图10为本申请实施例提供的一种终端设备的结构图;图11为本申请实施例提供的一种服务器的结构图。具体实施方式下面结合附图,对本申请的实施例进行描述。一些相关技术中,将整个训练数据集读取到内存中,之后在每一轮训练前将训练数据集中的训练数据随机打乱,并在打乱后的训练数据集中依次读取一小部分训练数据输入模型中,参见图1所示。其中,e表示当前训练轮数为第e轮,e从0开始计数,e=0时表示开始进入第一轮训练,E表示总训练轮数。在训练开始后即e=0(参见S101)时,将整个训练数据集读取到内存中(参见S102)。若e<总训练轮数E(参见S103),表示训练还未结束,故需要将整个训练数据集中的训练数据随机打乱(参见S104),在打乱后的训练数据集中依次读取一小部分训练数据输入模型中(参见S105),e+=1(参见S106),重新执行S103。然而,随着模型训练使用的数据规模越本文档来自技高网...

【技术保护点】
1.一种数据访问方法,其特征在于,所述方法包括:/n获取用于训练目标深度学习模型的训练数据集;/n根据所述训练数据集,确定目标索引文件,所述目标索引文件按照第一顺序记录所述训练数据集中每条训练数据的索引信息,所述索引信息表示训练数据在所述训练数据集中的位置;/n在每轮对所述目标深度学习模型进行训练的过程中,随机打乱所述目标索引文件中所述索引信息的顺序,得到所述索引信息按照第二顺序排列的目标索引文件,所述第一顺序与所述第二顺序不同;/n按照所述第二顺序,从目标索引文件确定属于同一读取批次的目标索引信息;/n针对每一读取批次,从所述训练数据集中读取所述目标索引信息对应的目标训练数据输入所述目标深度学习模型,以对所述目标深度学习模型进行该轮训练。/n

【技术特征摘要】
1.一种数据访问方法,其特征在于,所述方法包括:
获取用于训练目标深度学习模型的训练数据集;
根据所述训练数据集,确定目标索引文件,所述目标索引文件按照第一顺序记录所述训练数据集中每条训练数据的索引信息,所述索引信息表示训练数据在所述训练数据集中的位置;
在每轮对所述目标深度学习模型进行训练的过程中,随机打乱所述目标索引文件中所述索引信息的顺序,得到所述索引信息按照第二顺序排列的目标索引文件,所述第一顺序与所述第二顺序不同;
按照所述第二顺序,从目标索引文件确定属于同一读取批次的目标索引信息;
针对每一读取批次,从所述训练数据集中读取所述目标索引信息对应的目标训练数据输入所述目标深度学习模型,以对所述目标深度学习模型进行该轮训练。


2.根据权利要求1所述的方法,其特征在于,所述根据所述训练数据集,确定目标索引文件,包括:
在索引文件存储区域查找所述训练数据集对应的目标索引文件;
若在所述索引文件存储区域未查找到所述目标索引文件,构建所述训练数据集对应的目标索引文件。


3.根据权利要求2所述的方法,其特征在于,若所述训练数据集包括一个,所述构建所述训练数据集对应的目标索引文件,包括:
对所述训练数据集进行遍历,记录每条训练数据在所述训练数据集中的位置;
根据所述位置构建所述目标索引文件。


4.根据权利要求2所述的方法,其特征在于,若所述训练数据集包括多个,所述构建所述训练数据集对应的目标索引文件,包括:
对多个所述训练数据集分别进行遍历,记录每条训练数据在对应的训练数据集中的位置,构建第一数组;
依次打开每个所述训练数据集,并将所述训练数据集对应的文件句柄记录在第二数组中;
根据每个所述训练数据集对应的文件句柄在所述第二数组中的位置下标构建第三数组;
根据所述第一数组、所述第二数组和所述第三数组构建所述目标索引文件。


5.根据权利要求4所述的方法,其特征在于,所述从所述训练数据集中读取所述目标索引信息对应的目标训练数据输入所述目标深度学习模型,包括:
根据所述第三数组和所述第二数组,从多个所述训练数据集中确定目标训练数据所在的目标训练数据集;
根据所述第一数组,从所述目标训练数据集中读取所述目标索引信息对应的目标训练数据输入所述目标深度学习模型。


6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
以每个所述训练数据集的文件路径为键,以每个所述训练数据集对应的文件句柄在所述第二数组中的位置下标为值构建哈希表;
所述根据所述第一数组、所述第二数组和所述第三数组构建所述目标索引文件,包括:
根据所述第一数组、第二数组、第三数组和所述哈希表构建所述目标索引文件。


7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在重新读取训练数据输入所...

【专利技术属性】
技术研发人员:唐晶廖阔
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1