一种数据获取方法、装置、电子设备及存储介质与流程

专利2022-06-29  76


本发明涉及计算机技术领域,尤其涉及一种数据获取方法、装置、电子设备及存储介质。



背景技术:

近年来,人工智能技术在产业和生活中得到了越来越广泛的应用。机器学习作为人工智能领域的一个重要分支,能够通过大量的训练数据,得到较为理想的数学模型,从而模拟人的思维。

然而,由于模型训练所需的数据量巨大,常常是千万级的文件数量,训练数据的读取速度成为影响模型训练效率的重要因素。

对于模型训练中,训练数据的读取速度较慢的问题,相关领域尚无有效的解决方案。



技术实现要素:

有鉴于此,本发明实施例提供一种数据获取方法、装置、电子设备及存储介质,能够有效提高模型训练中训练数据的获取速度。

第一方面,本发明实施例提供一种数据获取方法,包括:

确定训练数据集所需的数据存储空间与内存剩余空间的大小关系;

在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件;

在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。

可选的,所述预设策略包括:

将所述训练数据集中文件大小小于第一阈值的文件作为所述目标文件;

或者,

根据所述训练数据集中各文件的文件大小以及所述内存剩余空间,确定所述目标文件,以使所述目标文件的数量大于第二阈值,和/或以使所述目标文件保留在内核的页缓存中后,所述内存剩余空间小于第三阈值。

可选的,所述在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中包括:

从所述训练数据集中读取第一文件;

确定所述第一文件是否为首次读取的所述目标文件;

在所述第一文件为首次读取的所述目标文件的情况下,为所述第一文件添加预设标记,以使虚拟文件系统vfs根据所述预设标记,将所述第一文件保留在内核的页缓存中。

可选的,所述将所述目标文件保留在内核的页缓存中之后,所述方法还包括:

接收从所述训练数据集中读取第二文件的指令;

在内核的页缓存中查找所述第二文件;

在查找到所述第二文件的情况下,从所述内核的页缓存中获取所述第二文件,以利用所述第二文件进行模型训练;

在未查找到所述第二文件的情况下,从远端服务器获取所述第二文件,以利用所述第二文件进行模型训练。

可选的,所述方法还包括:

将所述训练数据集缓存在本地硬盘;

在未查找到所述第二文件的情况下,从本地硬盘获取所述第二文件,以利用所述第二文件进行模型训练。

可选的,所述确定训练数据集所需的数据存储空间与内存剩余空间的大小关系之前,所述方法还包括:清空内存。

第二方面,本发明的实施例还提供一种数据获取装置,包括:

确定单元,用于确定训练数据集所需的数据存储空间与内存剩余空间的大小关系;

选择单元,用于在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件;

保留单元,用于在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。

可选的,所述预设策略包括:

将所述训练数据集中文件大小小于第一阈值的文件作为所述目标文件;

或者,

根据所述训练数据集中各文件的文件大小以及所述内存剩余空间,确定所述目标文件,以使所述目标文件的数量大于第二阈值,和/或以使所述目标文件保留在内核的页缓存中后,所述内存剩余空间小于第三阈值。

可选的,所述保留单元包括:

读取模块,用于从所述训练数据集中读取第一文件;

确定模块,用于确定所述第一文件是否为首次读取的所述目标文件;

添加模块,用于在所述第一文件为首次读取的所述目标文件的情况下,为所述第一文件添加预设标记,以使虚拟文件系统vfs根据所述预设标记,将所述第一文件保留在内核的页缓存中。

可选的,所述装置还包括:

接收单元,用于在将所述目标文件保留在内核的页缓存中之后,接收从所述训练数据集中读取第二文件的指令;

查找单元,用于在内核的页缓存中查找所述第二文件;

获取单元,用于在查找到所述第二文件的情况下,从所述内核的页缓存中获取所述第二文件,以利用所述第二文件进行模型训练;在未查找到所述第二文件的情况下,从远端服务器获取所述第二文件,以利用所述第二文件进行模型训练。

可选的,所述装置还包括:

硬盘缓存单元,用于将所述训练数据集缓存在本地硬盘;

所述获取单元,还用于在未查找到所述第二文件的情况下,从本地硬盘获取所述第二文件,以利用所述第二文件进行模型训练。

可选的,所述装置还包括清空单元,用于在确定训练数据集所需的数据存储空间与内存剩余空间的大小关系之前,清空内存。

第三方面,本发明的实施例还提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的实施例提供的任一种数据获取方法。

第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种数据获取方法。

本发明的实施例提供的数据获取方法、装置、电子设备及存储介质,能够确定训练数据集所需的数据存储空间与内存剩余空间的大小关系,在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件,在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。这样,当内存剩余空间无法容纳下训练数据集的全部数据时,缓存中的数据就不会按照默认的文件读取频率的高低来确定是否保留在缓存中,从而导致每次读取文件都由于该文件之前的读取频率过低而无法命中。而是对默认的缓存规则进行主动干预,根据预设策略,在训练数据集中选择了至少一个目标文件进行缓存,从而有效提高了缓存命中率,因此也有效提高了模型训练中训练数据的获取速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明的实施例提供的数据获取方法的一种流程图;

图2为本发明的实施例提供的数据获取装置的一种结构示意图;

图3为本发明的实施例提供的数据获取装置中保留单元的一种结构示意图;

图4为本发明的实施例提供的数据获取装置的另一种结构示意图;

图5为本发明的实施例提供的数据获取装置的又一种结构示意图;

图6为本发明的实施例提供的数据获取装置的再一种结构示意图;

图7为本发明的实施例提供的电子设备的一种结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在机器学习中,一方面需要具有强大计算能力的计算机进行模型训练,另一方面也需要足够的数据样本来供计算机进行学习。模型训练是个通过大量数据进行训练,不断迭代优化的过程。在此过程中,服务器可以按照一定的规则从数据集中分批读取数据进行模型训练,当将数据集中的所有数据都读完一轮后,可以对模型参数进行调整,然后对数据集进行第二轮读取和模型训练。如此反复可以达几十、上百轮,甚至更高。而由于模型训练所需的数据量巨大,一个数据集常常可以包括千万级别的文件数,因此,就每个文件而言,重复读取一次的时间间隔较长,每个文件的读取频率都处于较低水平。这就使得计算机中,根据文件读取频率来缓存文件的机制无法有效发挥缓存的优势,在多轮的数据读取和模型训练中,常常要频繁访问外部存储设备来获取训练数据,因此,数据获取速度较慢。

为此,本发明的实施例提供一种数据获取方法、装置、电子设备及存储介质,能够有效提高模型训练中训练数据的获取速度。

第一方面,本发明的实施例提供一种数据获取方法,能够有效提高模型训练中训练数据的获取速度。

如图1所示,本发明的实施例提供的数据获取方法可以包括:

s11,确定训练数据集所需的数据存储空间与内存剩余空间的大小关系;

具体而言,模型训练服务器可以以读取文件的方式读取训练数据。一项模型训练任务所需的所有训练数据可以形成一个数据集(dataset)。模型训练所需的数据量巨大,可选的,一个数据集常常可以包括千万级别的文件数,而一个数据集所占据的存储空间也相当巨大。

可选的,模型训练服务器在读取训练数据前,可以通过读取文件头信息或通过其他交互信息获知此次训练的数据集的数据量大小(size),也即是该数据集需要占据的数据存储空间的大小,例如132g、60g等。获知了训练数据集所需的数据存储空间之后,可以将数据存储空间与计算机当前的内存剩余空间相比较。例如,如果当前内存剩余空间为20g,训练数据集所需的数据存储空间为35g,则训练数据集所需的数据存储空间大于当前内存可以提供的剩余空间,即,该训练数据集无法被完全存入内存。

s12,在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件;

本步骤中,在数据存储空间大于内存剩余空间的情况下,对默认的、按照读取频率进行文件缓存策略进行主动干预,可以按照预设策略,在训练数据集中选择一个文件或多个文件为目标文件。

可选的,预设策略可以根据具体需要进行设置,只要能够将训练数据集中一部分文件保留在缓存,不会因为读取频率过低而被替换掉导致缓存命中率过低即可,本发明的实施例对此不做限定。例如,预设策略可以为将训练数据集中预设路径下的文件选为目标文件,或者将预设文件名的文件选为目标文件,或者将文件大小处于预设区间的文件选为目标文件等。

s13,在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。

本步骤中,在数据存储空间大于内存剩余空间的情况下,对默认的、按照读取频率进行文件缓存策略进行主动干预,将从训练数据集中选中的目标文件保留在内核的页缓存(pagecache)中。

本发明的实施例提供的数据获取方法,能够确定训练数据集所需的数据存储空间与内存剩余空间的大小关系,在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件,在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。这样,当内存剩余空间无法容纳下训练数据集的全部数据时,缓存中的数据就不会按照默认的文件读取频率的高低来确定是否保留在缓存中,从而导致每次读取文件都由于该文件之前的读取频率过低而无法命中。而是对默认的缓存规则进行主动干预,根据预设策略,在训练数据集中选择了至少一个目标文件进行缓存,从而有效提高了缓存命中率,因此也有效提高了模型训练中训练数据的获取速度。

可选的,在步骤s11中,训练数据集所需的数据存储空间与内存剩余空间的大小关系可以包括两种情况:第一种情况是,数据存储空间小于或等于内存剩余空间,此时训练数据集能够被完整载入内存,每次读取训练数据时,只需从内存中读取即可,此时不会触发缓存调度操作;第二种情况是,数据存储空间大于内存剩余空间,此时内存中只能缓存训练数据集的部分数据,因此会触发缓存调度操作。

可选的,为了能缓存更多的文件,在本发明的一个实施例中,在步骤s11确定训练数据集所需的数据存储空间与内存剩余空间的大小关系之前,本发明的实施例提供的数据获取方法还可以包括:清空内存。

当数据存储空间大于内存剩余空间时,为了避免出现按照文件被读取的频率缓存文件的情况,在本发明的实施例中,可以对缓存调度进行主动干预。具体而言,可以在步骤s12中根据预设策略,在所述训练数据集中选择至少一个文件为目标文件,以便在步骤s13中将目标文件缓存。

在本发明的实施例中,当进行模型训练时,需要对数据集中的数据进行n轮的读取操作,也就是说,数据集中的所有数据都至少要被读取n次。为了尽量减少读取数据所花费的通信时间,在本发明的一个实施例中,所述预设策略可以包括将所述训练数据集中文件大小小于第一阈值的文件作为所述目标文件。这样,通过将文件大小比较小文件都选为目标文件进行缓存,一方面不会占用太多的缓存空间,另一方面,可以缓存较多数量的文件,从而有效减少了从外部存储器读取文件的概率,有效提升了数据的获取速度。第一阈值的大小可以根据需要进行灵活设置和调整,例如可以为10m,50m等。

可选的,在本发明的另一个实施例中,所述预设策略也可以包括:根据所述训练数据集中各文件的文件大小以及所述内存剩余空间,确定所述目标文件,以使所述目标文件的数量大于第二阈值,和/或以使所述目标文件保留在内核的页缓存中后,所述内存剩余空间小于第三阈值。也即是说,本实施例中,可以提前获知训练数据集中各文件的大小,以及内存剩余空间的大小,将尽量多的文件选择为目标文件进行缓存,和/或让目标文件存储在数据变量中后内存剩余空间尽量小。

举例而言,在本发明的一个实施例中,如果内存剩余空间为9.5g,训练数据集中文件大小为50m的文件有100个,文件大小为200m的文件有20个,文件大小为1g的文件有30个,则可以选择缓存100个50m的文件(5g)、20个200m的文件(4g),这样,共缓存了120个文件,缓存了上述文件后,内存剩余空间为9.5g-5g-4g=0.5g。可选的,在本发明的另一个实施例中,也可以选择缓存90个50m的文件(4.5g),20个200m的文件(4g),一个1g的文件(1g),这样,总共缓存了111个文件,内存剩余空间为9.5g-4.5g-4g-1g=0g。

本发明的实施例中,尽可能利用有限的内存剩余空间缓存更多数量的文件,对于每次的数据读取操作,如果数据没有被缓存,则需要花费额外的通信时间,去外部存储设备中读数据,而如果数据已经被缓存,则可以节省掉上述通信时间,直接从缓存中将数据读出,从而提高数据的获取速度。

为了尽量减小不必要的数据通信时间,在本发明的一个实施例中,选择目标文件的预设策略可以为:每个目标文件本身的数据量越小越好,目标文件的数量越大越好。例如,缓存余量为200g,可以在训练数据集中,选择数据量最小的50个文件作为目标文件,将200g缓存余量刚好占满。选择好的目标文件可以形成一个文件名列表以备查询。

选择了目标文件后,可以在步骤s13中对目标文件进行缓存。可选的,在步骤s13中,在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中具体可以包括:

从所述训练数据集中读取第一文件;

确定所述第一文件是否为首次读取的所述目标文件;

在所述第一文件为首次读取的所述目标文件的情况下,为所述第一文件添加预设标记,以使虚拟文件系统vfs根据所述预设标记,将所述第一文件保留在内核的页缓存中。

具体而言,在linux系统中,文件缓存机制由linux系统的虚拟文件系统vfs直接管理。为了屏蔽默认的按照文件读取频率进行文件缓存的策略,在本发明的一个实施例中,在所述第一文件为首次读取的所述目标文件的情况下,可以为所述第一文件添加预设标记,这样,虚拟文件系统vfs就可以根据所述预设标记,将所述第一文件保留在内核的页缓存中。

进一步的,将所述目标文件保留在内核的页缓存中之后,本发明的实施例提供的数据获取方法还可以包括:

接收从所述训练数据集中读取第二文件的指令;

在内核的页缓存中查找所述第二文件;

在查找到所述第二文件的情况下,从所述内核的页缓存中获取所述第二文件,以利用所述第二文件进行模型训练;

在未查找到所述第二文件的情况下,从远端服务器获取所述第二文件,以利用所述第二文件进行模型训练。

举例而言,在本发明的一个实施例中,假设一个数据集有一千五百万张图片,各张图片需要循环100轮进行数据输入和模型训练,即数据集重复输入了100轮。每轮训练中,图片数据可以分批读入。可选的,每批读入的数据量可以根据需要进行设定。第一轮读取这一千五百万张图片时,每批数据都是第一次读入,不存在内核的页缓存(pagecache)命中问题,但此轮数据读取需要为之后的99轮训练进行缓存准备。即,本轮读入时,可以按照预设策略将数据量最小的一批图片保留在内核的页缓存中。从第二轮读取这一千五百万张图开始,先去内核的页缓存中查找,如果内核的页缓存中没有,再去远端服务器中读取。

可选的,在本发明的一个实施例中,为了进一步节省数据读取的通信时间,本发明的实施例提供的数据获取方法还可以包括:

将所述训练数据集缓存在本地硬盘;

在未查找到所述第二文件的情况下,从本地硬盘获取所述第二文件,以利用所述第二文件进行模型训练。

第二方面,本发明的实施例还提供数据获取装置,能够有效提高模型训练中训练数据的获取速度。

如图2所示,本发明的实施例提供的数据获取装置可以包括:

确定单元21,用于确定训练数据集所需的数据存储空间与内存剩余空间的大小关系;

选择单元22,用于在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件;

保留单元23,用于在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。

本发明的实施例提供的数据获取装置,能够确定训练数据集所需的数据存储空间与内存剩余空间的大小关系,在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件,在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。这样,当内存剩余空间无法容纳下训练数据集的全部数据时,缓存中的数据就不会按照默认的文件读取频率的高低来确定是否保留在缓存中,从而导致每次读取文件都由于该文件之前的读取频率过低而无法命中。而是对默认的缓存规则进行主动干预,根据预设策略,在训练数据集中选择了至少一个目标文件进行缓存,从而有效提高了缓存命中率,因此也有效提高了模型训练中训练数据的获取速度。

可选的,所述预设策略可以包括:

将所述训练数据集中文件大小小于第一阈值的文件作为所述目标文件;

或者,

根据所述训练数据集中各文件的文件大小以及所述内存剩余空间,确定所述目标文件,以使所述目标文件的数量大于第二阈值,和/或以使所述目标文件保留在内核的页缓存中后,所述内存剩余空间小于第三阈值。

可选的,如图3所示,保留单元23可以包括:

读取模块231,用于从所述训练数据集中读取第一文件;

确定模块232,用于确定所述第一文件是否为首次读取的所述目标文件;

添加模块233,用于在所述第一文件为首次读取的所述目标文件的情况下,为所述第一文件添加预设标记,以使虚拟文件系统vfs根据所述预设标记,将所述第一文件保留在内核的页缓存中。

可选的,如图4所示,本发明的实施例提供的数据获取装置还可以包括:

接收单元24,用于在将所述目标文件保留在内核的页缓存中之后,接收从所述训练数据集中读取第二文件的指令;

查找单元25,用于在内核的页缓存中查找所述第二文件;

获取单元26,用于在查找到所述第二文件的情况下,从所述内核的页缓存中获取所述第二文件,以利用所述第二文件进行模型训练;在未查找到所述第二文件的情况下,从远端服务器获取所述第二文件,以利用所述第二文件进行模型训练。

可选的,如图5所示,本发明的实施例提供的数据获取装置还可以包括:

硬盘缓存单元27,用于将所述训练数据集缓存在本地硬盘;

获取单元26,还用于在未查找到所述第二文件的情况下,从本地硬盘获取所述第二文件,以利用所述第二文件进行模型训练。

可选的,如图6所示,本发明的实施例提供的数据获取装置还可以包括清空单元28,用于在确定训练数据集所需的数据存储空间与内存剩余空间的大小关系之前,清空内存。

第三方面,本发明的实施例还提供一种电子设备,能够有效提高模型训练中训练数据的获取速度。

如图7所示,本发明的实施例提供的电子设备,可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例提供的数据获取方法。

处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。

上述电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

相应的,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种数据获取方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。


技术特征:

1.一种数据获取方法,其特征在于,包括:

确定训练数据集所需的数据存储空间与内存剩余空间的大小关系;

在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件;

在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。

2.根据权利要求1所述的方法,其特征在于,所述预设策略包括:

将所述训练数据集中文件大小小于第一阈值的文件作为所述目标文件;

或者,

根据所述训练数据集中各文件的文件大小以及所述内存剩余空间,确定所述目标文件,以使所述目标文件的数量大于第二阈值,和/或以使所述目标文件保留在内核的页缓存中后,所述内存剩余空间小于第三阈值。

3.根据权利要求1所述的方法,其特征在于,所述在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中包括:

从所述训练数据集中读取第一文件;

确定所述第一文件是否为首次读取的所述目标文件;

在所述第一文件为首次读取的所述目标文件的情况下,为所述第一文件添加预设标记,以使虚拟文件系统vfs根据所述预设标记,将所述第一文件保留在内核的页缓存中。

4.根据权利要求1所述的方法,其特征在于,所述将所述目标文件保留在内核的页缓存中之后,所述方法还包括:

接收从所述训练数据集中读取第二文件的指令;

在内核的页缓存中查找所述第二文件;

在查找到所述第二文件的情况下,从所述内核的页缓存中获取所述第二文件,以利用所述第二文件进行模型训练;

在未查找到所述第二文件的情况下,从远端服务器获取所述第二文件,以利用所述第二文件进行模型训练。

5.根据权利要求4所述的方法,其特征在于,还包括:

将所述训练数据集缓存在本地硬盘;

在未查找到所述第二文件的情况下,从本地硬盘获取所述第二文件,以利用所述第二文件进行模型训练。

6.根据权利要求1至5中任一项所述的方法,其特征在于,所述确定训练数据集所需的数据存储空间与内存剩余空间的大小关系之前,所述方法还包括:清空内存。

7.一种数据获取装置,其特征在于,包括:

确定单元,用于确定训练数据集所需的数据存储空间与内存剩余空间的大小关系;

选择单元,用于在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件;

保留单元,用于在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。

8.根据权利要求7所述的装置,其特征在于,所述预设策略包括:

将所述训练数据集中文件大小小于第一阈值的文件作为所述目标文件;

或者,

根据所述训练数据集中各文件的文件大小以及所述内存剩余空间,确定所述目标文件,以使所述目标文件的数量大于第二阈值,和/或以使所述目标文件保留在内核的页缓存中后,所述内存剩余空间小于第三阈值。

9.根据权利要求7所述的装置,其特征在于,所述保留单元包括:

读取模块,用于从所述训练数据集中读取第一文件;

确定模块,用于确定所述第一文件是否为首次读取的所述目标文件;

添加模块,用于在所述第一文件为首次读取的所述目标文件的情况下,为所述第一文件添加预设标记,以使虚拟文件系统vfs根据所述预设标记,将所述第一文件保留在内核的页缓存中。

10.根据权利要求7所述的装置,其特征在于,还包括:

接收单元,用于在将所述目标文件保留在内核的页缓存中之后,接收从所述训练数据集中读取第二文件的指令;

查找单元,用于在内核的页缓存中查找所述第二文件;

获取单元,用于在查找到所述第二文件的情况下,从所述内核的页缓存中获取所述第二文件,以利用所述第二文件进行模型训练;在未查找到所述第二文件的情况下,从远端服务器获取所述第二文件,以利用所述第二文件进行模型训练。

技术总结
本发明实施例公开一种数据获取方法、装置、电子设备及存储介质,涉及计算机技术领域,能够有效提高模型训练中训练数据的获取速度。所述数据获取方法,包括:确定训练数据集所需的数据存储空间与内存剩余空间的大小关系;在所述数据存储空间大于所述内存剩余空间的情况下,根据预设策略,在所述训练数据集中选择至少一个文件为目标文件;在所述目标文件首次被读取后,将所述目标文件保留在内核的页缓存中,以便将来再次读取所述目标文件时从所述内核的页缓存中获取所述目标文件。本发明适用于机器学习的模型训练中。

技术研发人员:余虹建;李锦丰
受保护的技术使用者:北京猎豹移动科技有限公司
技术研发日:2020.01.10
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26086.html

最新回复(0)