训练样本数据的读取方法和装置、存储介质及电子设备

文档序号:1003490 发布日期:2020-10-23 浏览:4次 >En<

阅读说明:本技术 训练样本数据的读取方法和装置、存储介质及电子设备 (Method and device for reading training sample data, storage medium and electronic equipment ) 是由 薛磊 阎姝含 于 2020-08-31 设计创作,主要内容包括:本发明公开了一种云技术场景下的训练样本数据的读取方法和装置、存储介质及电子设备,具体的,涉及数据库技术场景下的数据查询等。其中,该方法包括:从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间;当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序;按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练。本发明解决了数据读取的命中率较低的技术问题。(The invention discloses a method and a device for reading training sample data in a cloud technical scene, a storage medium and electronic equipment, and particularly relates to data query and the like in a database technical scene. Wherein, the method comprises the following steps: reading sample data blocks from a target data set stored in a storage space according to the sequence of the first data blocks, performing model training on a target model according to the read sample data blocks, and caching the read sample data blocks into a target cache space; after the sample data blocks are read from the target data set according to the sequence of the first data blocks, adjusting the sequence of the first data blocks into the sequence of the second data blocks; and according to the second data block sequence, reading sample data blocks in the target data set from the target cache space and the storage space, and performing model training on the target model according to the read sample data blocks in the target data set. The invention solves the technical problem of low hit rate of data reading.)

训练样本数据的读取方法和装置、存储介质及电子设备

技术领域

本发明涉及计算机领域,具体而言,涉及一种训练样本数据的读取方法和装置、存储介质及电子设备。

背景技术

在数据读取场景下,因数据集的体量往往比内存大很多,因此仅使用内存作为缓存,无法缓存所有数据集。而现有技术为解决上述问题,提出了以下两种方案:

方案一、在深度学习模型训练时,数据集的体量往往比内存大很多,因此仅使用内存作为缓存,无法缓存所有数据集。FSCache是一种针对远程文件系统的单机缓存系统,它支持内存和SSD的多级缓存。

方案二、Memcached是分布式缓存系统,它也支持多级缓存,其使用Memcached协议,可以提供缓存加速的能力,有效地利用计算节点的资源进行缓存。

上述两个方案使用了经典缓存替换策略:先进先出(FIFO)/最近最少使用(LRU)。

但上述方案一和方案二都使用了内存和SSD的多级缓存技术,而随着深度学习模型训练所需要的数据量不断增大,配置的SSD硬盘已经无法满足大数据量的训练场景,而低容量的SSD硬盘在上述方案一和方案二中,都无法保证较高的数据读取命中率。

即,现有技术中的方案存在数据读取的命中率较低的问题。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种训练样本数据的读取方法和装置、存储介质及电子设备,以至少解决数据读取的命中率较低的技术问题。

根据本发明实施例的一个方面,提供了一种训练样本数据的读取方法,包括:从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据上述读取到的样本数据块对目标模型进行模型训练,并将上述读取到的样本数据块缓存到目标缓存空间,直至上述目标缓存空间缓存的样本数据块达到上述目标缓存空间的缓存上限;当按照上述第一数据块顺序从上述目标数据集合中读取完样本数据块后,将上述第一数据块顺序调整为第二数据块顺序,其中,上述第一数据块顺序与上述第二数据块顺序不同;按照上述第二数据块顺序,从上述目标缓存空间和上述存储空间中读取上述目标数据集合中的样本数据块,并根据读取到的上述目标数据集合中的样本数据块对上述目标模型进行模型训练,其中,按照上述第二数据块顺序,从上述目标缓存空间和上述存储空间中读取上述目标数据集合中的样本数据块,包括:在上述目标缓存空间中查询到上述目标数据集合中的样本数据块的情况下,从上述目标缓存空间中读取上述目标数据集合中的样本数据块,在上述目标缓存空间中查询不到上述目标数据集合中的样本数据块的情况下,从上述存储空间读取上述目标数据集合中的样本数据块。

根据本发明实施例的另一方面,还提供了一种训练样本数据的读取装置,包括:第一读取单元,用于从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据上述读取到的样本数据块对目标模型进行模型训练,并将上述读取到的样本数据块缓存到目标缓存空间,直至上述目标缓存空间缓存的样本数据块达到上述目标缓存空间的缓存上限;更新单元,用于当按照上述第一数据块顺序从上述目标数据集合中读取完样本数据块后,将上述第一数据块顺序调整为第二数据块顺序,其中,上述第一数据块顺序与上述第二数据块顺序不同;第二读取单元,用于按照上述第二数据块顺序,从上述目标缓存空间和上述存储空间中读取上述目标数据集合中的样本数据块,并根据读取到的上述目标数据集合中的样本数据块对上述目标模型进行模型训练,其中,按照上述第二数据块顺序,从上述目标缓存空间和上述存储空间中读取上述目标数据集合中的样本数据块,包括:在上述目标缓存空间中查询到上述目标数据集合中的样本数据块的情况下,从上述目标缓存空间中读取上述目标数据集合中的样本数据块,在上述目标缓存空间中查询不到上述目标数据集合中的样本数据块的情况下,从上述存储空间读取上述目标数据集合中的样本数据块。

根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述训练样本数据的读取方法。

根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的训练样本数据的读取方法。

在本发明实施例中,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据上述读取到的样本数据块对目标模型进行模型训练,并将上述读取到的样本数据块缓存到目标缓存空间,直至上述目标缓存空间缓存的样本数据块达到上述目标缓存空间的缓存上限;当按照上述第一数据块顺序从上述目标数据集合中读取完样本数据块后,将上述第一数据块顺序调整为第二数据块顺序,其中,上述第一数据块顺序与上述第二数据块顺序不同;按照上述第二数据块顺序,从上述目标缓存空间和上述存储空间中读取上述目标数据集合中的样本数据块,并根据读取到的上述目标数据集合中的样本数据块对上述目标模型进行模型训练,其中,按照上述第二数据块顺序,从上述目标缓存空间和上述存储空间中读取上述目标数据集合中的样本数据块,包括:在上述目标缓存空间中查询到上述目标数据集合中的样本数据块的情况下,从上述目标缓存空间中读取上述目标数据集合中的样本数据块,在上述目标缓存空间中查询不到上述目标数据集合中的样本数据块的情况下,从上述存储空间读取上述目标数据集合中的样本数据块,通过直接读取目标缓存空间中使用顺序保持不变的固定数据,达到了在提高数据读取的读取效率的同时,还拥有较高的数据块命中率的目的,从而实现了提高数据的读取命中率的技术效果,进而解决了数据读取的命中率较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的训练样本数据的读取方法的流程图的示意图;

图2是根据本发明实施例的一种可选的训练样本数据的读取方法的示意图;

图3是根据本发明实施例的另一种可选的训练样本数据的读取方法的示意图;

图4是根据本发明实施例的另一种可选的训练样本数据的读取方法的示意图;

图5是根据本发明实施例的另一种可选的训练样本数据的读取方法的示意图;

图6是根据本发明实施例的另一种可选的训练样本数据的读取方法的示意图;

图7是根据本发明实施例的另一种可选的训练样本数据的读取方法的示意图;

图8是根据本发明实施例的另一种可选的训练样本数据的读取方法的示意图;

图9是根据本发明实施例的另一种可选的训练样本数据的读取方法的示意图;

图10是根据本发明实施例的另一种可选的训练样本数据的读取方法的示意图;

图11是根据本发明实施例的一种可选的训练样本数据的读取装置的结构示意图;

图12是根据本发明实施例的另一种可选的训练样本数据的读取装置的结构示意图;

图13是根据本发明实施例的另一种可选的训练样本数据的读取装置的结构示意图;

图14是根据本发明实施例的另一种可选的训练样本数据的读取装置的结构示意图;

图15是根据本发明实施例的一种可选的电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。

云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

数据库管理系统(Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、即可扩展标记语言(ExtensibleMarkup Language,简称XML);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(Structured Query Language,简称SQL)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。

可选地,作为一种可选的实施方式,如图1所示,上述训练样本数据的读取方法包括:

S102,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间,直至目标缓存空间缓存的样本数据块达到目标缓存空间的缓存上限;

S104,当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序,其中,第一数据块顺序与第二数据块顺序不同;

S106,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。

可选的,一种训练样本数据的读取方法可以但不限应用在数据的深度学习场景下,训练样本数据的读取方法可以但不限于为,一种独特的数据缓存方案(Dataset Cachefor Deep Learning,简称DCDL),其中,可以但不限于包括一种缓存替换策略,具体的,可以但不限于包括缓存一次策略(Cache once only,简称COO)。样本数据块可以但不限于为存放有一定量级访问或样本数据的数据集。目标缓存空间可以但不限于以一种链表形式缓存数据的缓存区域,包括链表头部、链表中部、链表尾部等,样本数据块中的数据可以但不限用于缓存至目标缓存空间中,具体的,将当前获取的样本数据块中的数据***目标缓存空间中的链表头部。可选的,目标缓存空间中的数据可以但不限于固定不变,样本数据块中的数据可以但不限于固定不变。数据块顺序可以但不限于影响目标缓存空间和/或样本数据块中的数据存储或缓存,换言之,在数据块顺序发生变化的情况下,目标缓存空间和/或样本数据块中的数据并不会发生变化。可选的,样本数据块的数据量与目标缓存空间的缓存量的比例可以但不限于为固定比例,例如1.5:1、2:1、3:1、3:2等。

需要说明的是,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间,直至目标缓存空间缓存的样本数据块达到目标缓存空间的缓存上限,其中,可选的,目标缓存空间的缓存是存在上限的,而上限即会导致目标缓存空间无法缓存全部的样本数据块。

进一步,当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序,其中,第一数据块顺序与第二数据块顺序不同;按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,在按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块的过程中,可以但不限于包括以下两种场景:1)在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块;2)在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。通过以上两种场景对应的技术手段,以实现全部样本数据块的读取,以及将读取到的样本数据块对目标模型进行模型训练。可选的,将读取到的样本数据块对目标模型进行模型训练可以但不限于为无需等待样本数据块全部读取完毕,实施实时读取实时训练的执行逻辑,也可以但不限于为全部读取后再统一进行训练。

进一步举例说明,可选的例如图2所示,包括目标存储区202(存储空间),其中,目标存储区202中包括多个数据,例如数据块A、B、C、D、E、F、G;还包括目标缓存区204(目标缓存空间),其中,目标缓存区204包括链表头部2042、链表底部2044以及其他缓存区域(空间)。

进一步举例说明,可选的例如图3所示,在目标存储区202中确定第一数据集合302(用于表示样本数据块,其中,阴影可以但不限于表示数据已由目标存储区202读取至目标缓存区204),其中,第一数据集合302中包括数据块A、B、C、D,可选的,上述在目标存储区202中确定第一数据集合302可以但不限于随机确定或按照当前的数据块顺序进行确定,例如按照当前的数据块顺序确定排序前n的数据,n为第一数据集合302中数据块的数据量;

进一步,可选的将第一数据集合302中的数据块依次***目标缓存区204中,具体的,将第一数据集合302中的数据块依次***目标缓存区204中的链表头部2042中,目标缓存区204中的各个区域可以但不限用于缓存唯一的数据块,例如在第一数据集合302中的数据块A已***链表头部2042的情况下,再将第一数据集合302中的数据块B***链表头部2042,则链表头部2042中的数据块A移至目标缓存区204的下一区域,而当前链表头部2042中的缓存数据为数据块B;

再者,第一数据集合302中数据数量与目标缓存区204中的缓存区域数量都为4,可选的,在将第一数据集合302中的数据依次***目标缓存区204中的缓存区域后,链表底部2044中的缓存数据应为最先***的数据块A,链表头部2042中的缓存数据应为最后***的数据块D,同理,目标缓存区204中其余的缓存区域也应根据***顺序的不同缓存对应的数据块。

进一步举例说明,可选的例如图4所示,目标存储区202中的第一数据集合302可以但不限于在待***数据块402中被确定,待***数据块402可以但不限用于表示待***至目标缓存区204预缓存的数据;具体的,将目标存储区202中的数据按照当前数据块顺序,依次***目标缓存区204中,直至目标缓存区204中的链表底部2044缓存有数据块,或者说,直至目标缓存区204中的所有缓存区域都缓存有数据块(达到缓存上限),则不再将待***数据块402***目标缓存区204中,并将当前目标缓存区204中缓存的数据作为第一数据集合302;例如,当前目标缓存区204中缓存有数据块A、数据块B、数据块C、数据块D,则第一数据集合302由数据块A、数据块B、数据块C、数据块D构成,而目标存储区202中的其余数据块E、数据块F、数据块G则仍留在目标存储区202中存储。

进一步举例说明,可选的例如图5所示,包括目标存储区502(存储空间),其中,目标存储区502中包括数据块A、数据块B、数据块C、数据块D、数据块E、数据块F、数据块G,还包括已缓存目标存储区502中数据块A、数据块B、数据块C、数据块D的目标缓存区504(目标缓存空间);

进一步,根据当前数据块顺序(第二数据块顺序)在目标缓存区504中直接读取出第一目标数据506(例如数据块A、数据块D),而在目标缓存区504中无法读取的数据(例如数据块B、数据块C、数据块E、数据块F、数据块G),则在目标存储区502中作为第二目标数据508读取;进而根据第一目标数据506以及第二目标数据508获取到使用数据与当前数据块顺序(第二数据块顺序)一致的目标数据510。

进一步举例说明,可选的例如图6所示,包括目标存储区602(存储空间),以及用于表示目标存储区602中数据块顺序的第一数据块顺序604,以及对第一数据块顺序604进行更新后得到的第二数据块顺序606,以及用于缓存目标存储区602中的部分数据目标缓存区608(目标缓存空间),其中,为了方便理解,目标缓存区608中还包括处于不同时刻(例如t1、t2)的时刻t1的目标缓存区6082以及时刻t2的目标缓存区6084,需要说明的是,时刻t1的目标缓存区6082以及时刻t2的目标缓存区6084所表示的都是同一目标缓存区608;

具体的,例如预先将目标存储区602中的部分数据块(例如数据块A、数据块B、数据块C、数据块D、数据块E)预缓存至目标缓存区608;获取目标存储区602的当前数据块顺序——第一数据块顺序604,并对第一数据块顺序604进行更新,以得到更新后的第二数据块顺序606;根据第二数据块顺序606,分别在目标缓存区608中获取已预缓存的数据块,例如目标存储区602中存储有1T数据量的数据块(例如数据块A、数据块B、数据块C、数据块D、数据块E、数据块F、数据块G、数据块H、数据块I、数据块J),而目标缓存区608中预缓存由500G数据量的数据块(例如数据块A、数据块B、数据块C、数据块D、数据块E)则先读取第二数据块顺序606所表示的前500G数据量的数据(例如D、J、H、A、E),后读取第二数据块顺序606所表示的后500G数据量的数据块(例如数据块C、数据块G、数据块B、数据块I、数据块F),具体表现为,在时刻t1的目标缓存区6082中,读取命中数据块D、数据块J、数据块H、数据块A、数据块E的数据块A、数据块D、数据块E;在时刻t2的目标缓存区6084中,读取命中数据块C、数据块G、数据块B、数据块I、数据块F的数据块C、数据块B;

此外,在时刻t1,并未在时刻t1的目标缓存区6082中读取的数据块C、数据块B,以及在时刻t2,并未在时刻t2的目标缓存区6084中读取的数据块E、数据块D、数据块A,会在目标存储区602中读取。

通过本申请提供的实施例,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间,直至目标缓存空间缓存的样本数据块达到目标缓存空间的缓存上限;当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序,其中,第一数据块顺序与第二数据块顺序不同;按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块,通过直接读取目标缓存空间中使用顺序保持不变的固定数据,达到了在提高数据读取的读取效率的同时,还拥有较高的数据块命中率的目的,从而实现了提高数据的读取命中率的技术效果。

作为一种可选的方案,将第一数据块顺序调整为第二数据块顺序,包括:

S1,对目标数据集合中按照第一数据块顺序排列的样本数据块进行第一扰序操作,得到第二数据块顺序,其中,第一扰序操作用于改变目标数据集合中的样本数据块的使用顺序;或者

S2,对目标数据集合中按照初始数据块顺序排列的样本数据块进行第二扰序操作,得到第二数据块顺序,其中,初始数据块顺序为存储空间中存储的目标数据集合中的样本数据块的排列顺序,第二扰序操作用于改变目标数据集合中的样本数据块的使用顺序。

需要说明的是,对目标数据集合中按照第一数据块顺序排列的样本数据块进行第一扰序操作,得到第二数据块顺序,其中,第一扰序操作用于改变目标数据集合中的样本数据块的使用顺序。可选的,扰序操作可以但不限于为将数据块顺序随机打乱。

或者,对目标数据集合中按照初始数据块顺序排列的样本数据块进行第二扰序操作,得到第二数据块顺序,其中,初始数据块顺序为存储空间中存储的目标数据集合中的样本数据块的排列顺序,第二扰序操作用于改变目标数据集合中的样本数据块的使用顺序,换言之,可以但不限基于样本数据块当前的第一数据块顺序排列执行扰序操作,还可以但不限于基于样本数据块最原始的初始数据块顺序排列执行扰序操作。可选的,初始数据块顺序排列可以但不限于为对样本数据块执行读取操作前的初始化顺序。

进一步举例说明,可选的例如图7所示,基于初始数据块顺序702,执行第一次扰序操作,得到第一数据块顺序704;基于初始数据块顺序702,执行第二次扰序操作,得到第二数据块顺序706。

进一步举例说明,可选的例如图8所示,基于初始数据块顺序702,执行第一次扰序操作,得到第一数据块顺序704;基于第一数据块顺序704,执行第二次扰序操作,得到第二数据块顺序802。

通过本申请提供的实施例,对目标数据集合中按照第一数据块顺序排列的样本数据块进行第一扰序操作,得到第二数据块顺序,其中,第一扰序操作用于改变目标数据集合中的样本数据块的使用顺序;或者对目标数据集合中按照初始数据块顺序排列的样本数据块进行第二扰序操作,得到第二数据块顺序,其中,初始数据块顺序为存储空间中存储的目标数据集合中的样本数据块的排列顺序,第二扰序操作用于改变目标数据集合中的样本数据块的使用顺序,通过灵活执行扰序操作,达到了获取契合扰序需求的数据块顺序的目的,实现了数据块顺序的获取灵活性的效果。

作为一种可选的方案,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,包括:

S1,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的所有样本数据块,得到第一样本数据块序列,其中,第一样本数据块序列中包括按照第二数据块顺序排列的所有样本数据块;将第一样本数据块序列输入到目标模型中,以对目标模型进行模型训练;或者

S2,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的所有样本数据块,每读取到一个或一组样本数据块,将读取到的一个或一组样本数据块输入到目标模型中,以对目标模型进行模型训练。

需要说明的是,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的所有样本数据块,得到第一样本数据块序列,其中,第一样本数据块序列中包括按照第二数据块顺序排列的所有样本数据块;将第一样本数据块序列输入到目标模型中,以对目标模型进行模型训练,换言之,将所有样本数据块统一输入目标模型中,以对目标模型进行模型训练;

或者,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的所有样本数据块,每读取到一个或一组样本数据块,将读取到的一个或一组样本数据块输入到目标模型中,以对目标模型进行模型训练,换言之,将读取到样本数据块的情况下,即将读取到的样本数据块输入目标模型中,以对目标模型进行模型训练,而无需等待全部样本数据块读取完毕。

进一步举例说明,可选的例如图5所示,将从目标缓存区504中读取到的第一目标数据506和从目标存储区502中读取的第二目标数据508,组成按照第二数据块顺序(图中未示出)排列的目标数据510。

通过本申请提供的实施例,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的所有样本数据块,得到第一样本数据块序列,其中,第一样本数据块序列中包括按照第二数据块顺序排列的所有样本数据块;将第一样本数据块序列输入到目标模型中,以对目标模型进行模型训练;或者按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的所有样本数据块,每读取到一个或一组样本数据块,将读取到的一个或一组样本数据块输入到目标模型中,以对目标模型进行模型训练,通过结合目标缓存空间以及存储空间,获取第二数据块顺序排列的样本数据块,并利用灵活的训练方式,达到了以一种较为高效的获取、训练方法,以获取第二数据块顺序的样本数据块并完成模型训练的目的,实现了提高模型训练效率的效果。

作为一种可选的方案,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,包括:

S1,按照第一数据块顺序,从存储空间中存储的目标数据集合中读取目标数据集合中的所有样本数据块,得到第二样本数据块序列,其中,第二样本数据块序列中包括按照第一数据块顺序排列的所有样本数据块;将第二样本数据块序列输入到目标模型中,以对目标模型进行模型训练;或者,

S2,按照第一数据块顺序,从存储空间中存储的目标数据集合中读取目标数据集合中的所有样本数据块,每读取到一个或一组样本数据块,将读取到的一个或一组样本数据块输入到目标模型中,以对目标模型进行模型训练。

需要说明的是,按照第一数据块顺序,从存储空间中存储的目标数据集合中读取目标数据集合中的所有样本数据块,得到第二样本数据块序列,其中,第二样本数据块序列中包括按照第一数据块顺序排列的所有样本数据块;将第二样本数据块序列输入到目标模型中,以对目标模型进行模型训练;

或者,按照第一数据块顺序,从存储空间中存储的目标数据集合中读取目标数据集合中的所有样本数据块,每读取到一个或一组样本数据块,将读取到的一个或一组样本数据块输入到目标模型中,以对目标模型进行模型训练。可选的,在述存储空间中读取样本数据块的场景下,可以但不限于每读取一个或一组即将读取到的样本数据块输入目标模型进行模型训练,也可以但不限于在读取到的多个或多组样本数据块为全部样本数据块的情况下,再将读取到的多个或多组样本数据块输入目标模型进行模型训练。

进一步举例说明,可选的例如将通过数据读取获取的数据,应用在深度学习的训练过程具体如下:

1、数据读取,读取按照第二数据块顺序排列的目标数据(集合)。

2、数据解析和预处理,比如对于计算机视觉(computer vision,简称CV)领域的模型,需要对图像进行解压缩,数据增强(如翻转、缩放、随机裁剪、噪声等),乱序和批处理等。

3、数据加载,将预处理后的数据加载到训练加速器(GPU/TPU)上。

4、模型训练,训练加速器使用加载的数据进行训练。

通过本申请提供的实施例,按照第一数据块顺序,从存储空间中存储的目标数据集合中读取目标数据集合中的所有样本数据块,得到第二样本数据块序列,其中,第二样本数据块序列中包括按照第一数据块顺序排列的所有样本数据块;将第二样本数据块序列输入到目标模型中,以对目标模型进行模型训练;或者按照第一数据块顺序,从存储空间中存储的目标数据集合中读取目标数据集合中的所有样本数据块,每读取到一个或一组样本数据块,将读取到的一个或一组样本数据块输入到目标模型中,以对目标模型进行模型训练,通过稳定且灵活地读取数据,达到了灵活地为待训练的神经网络模型提供稳定的读取数据的目的,实现了提高神经网络模型训练的稳定性的效果。

作为一种可选的方案,

根据读取到的样本数据块对目标模型进行模型训练,包括:使用目标数据集合中按照第一数据块顺序排列的样本数据块,对目标模型进行第一轮训练;

按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在对目标模型进行第一轮训练的过程中或之后,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块;

根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,包括:使用目标数据集合中按照第二数据块顺序排列的样本数据块,对目标模型进行第二轮训练。

需要说明的是,使用目标数据集合中按照第一数据块顺序排列的样本数据块,对目标模型进行第一轮训练,可选的,因第一轮训练所用的样本数据块是从存储空间中存储的目标数据集合中直接读取的,进而导致第一轮训练的效率较低;

进一步,在对目标模型进行第一轮训练的过程中或之后,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,可选的,在第一轮训练过程中或后,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,即表示样本数据块不再全部从存储空间中存储的目标数据集合中直接读取,还包括从目标缓存空间中读取,效率有所提升;

再者,使用目标数据集合中按照第二数据块顺序排列的样本数据块,对目标模型进行第二轮训练,可选的,使用读取效率较高的样本数据块,进而执行第二轮训练,相比较而言,第二轮训练的效率明显高于第一轮训练的效率。

进一步举例说明,可选的例如在对待训练的神经网络模型进行第一轮训练的过程中,同时按照第二数据块顺序,在目标缓存空间中查找样本数据块,并在样本数据块查找完成且第一轮训练完成的情况下,使用读取到的按照第二数据块顺序排列的样本数据块,对待训练的神经网络模型进行第二轮训练。

进一步举例说明,可选的例如深度学习训练场景可以但不限于对于数据集的每个样本,在深度学习训练的每个使用训练集全部样本训练一次(epoch)的过程中,固定地访问且仅访问一次。每个样本的再次访问概率是一致的。针对上述特性,可以但不限于应用COO算法,将内存/固态硬盘(Solid state Disk,简称SSD)都认为是普通的存储空间,而不需要在内存/SSD中进行缓存替换,只缓存第一次缓存的数据。

可选的,COO算法的具体过程如下述内容所示:

1、新数据会直接***链表头部。

2、链表满时,新数据不***,直接丢弃。

对于第n个epoch(n>=2),COO算法的命中率HitRate如下述公式1所示:

(1)

其中,Sizeof(cache)表示缓存的大小,Sizeof(data)表示需要访问的数据总大小。

通过本申请提供的实施例,根据读取到的样本数据块对目标模型进行模型训练,包括:使用目标数据集合中按照第一数据块顺序排列的样本数据块,对目标模型进行第一轮训练;按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在对目标模型进行第一轮训练的过程中或之后,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块;根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,包括:使用目标数据集合中按照第二数据块顺序排列的样本数据块,对目标模型进行第二轮训练,通过使用读取效率较高的样本数据块以完成多轮训练,进而达到了提高神经网络的训练速度的目的,实现了提高神经网络的训练效率的效果。

作为一种可选的方案,对样本数据块的当前数据块顺序进行更新,得到第二数据块顺序,包括:

在使用目标数据集合中按照第一数据块顺序排列的样本数据块,对目标模型进行第一轮训练的过程中,将第一数据块顺序调整为第二数据块顺序。

需要说明的是,在使用目标数据集合中按照第一数据块顺序排列的样本数据块,对目标模型进行第一轮训练的过程中,将第一数据块顺序调整为第二数据块顺序。可选的,在对目标模型进行第一轮训练的过程中,并行执行数据块顺序的调整操作,提高了整体操作的执行效率。

进一步举例说明,可选的例如在对待训练的神经网络模型进行第一轮训练的同时,即获取第二数据块顺序。

通过本申请提供的实施例,在使用目标数据集合中按照第一数据块顺序排列的样本数据块,对目标模型进行第一轮训练的过程中,将第一数据块顺序调整为第二数据块顺序,通过并行执行第一轮训练以及顺序调整操作,达到了同步执行神经网络模型的训练操作以及数据块顺序的获取操作的目的,实现了提高了神经网络模型的训练效率的效果。

作为一种可选的方案,在按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练之后,方法还包括:

S1,将第二数据块顺序调整为第三数据块顺序,其中,第二数据块顺序与第三数据块顺序不同;

S2,按照第三数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第三数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。

需要说明的是,将第二数据块顺序调整为第三数据块顺序,其中,第二数据块顺序与第三数据块顺序不同;按照第三数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第三数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。

进一步举例说明,可选的例如图9所示,包括目标存储区902(存储空间),以及用于表示当前目标存储区902中数据块的使用顺序的第一数据块顺序906,以及基于第一数据块顺序906进行更新并得到的第二数据块顺序908、第三数据块顺序910;还包括目标缓存区904(目标缓存空间),以及同一目标缓存区904在不同时刻(例如时刻T1、T2、T3、T4、T5、T6)中的表现;其中,可选的基于数据读取效率考虑,第一数据块顺序906、第二数据块顺序908、第三数据块顺序910可以但不限于分别被分为前半段以及后半段;

具体的,可选的例如在时刻t1,目标存储区902中的数据块还未***目标缓存区9040,则时刻t1的目标缓存区9042中数据块为空,与第一数据块顺序906前半段所对应的数据块命中率为0;再例如在时刻t2,目标存储区902中的部分数据块已***目标缓存区904中,但因***目标缓存区904中的数据块为目标存储区902中的前半段数据块,相当于第一数据块顺序906前半段,进而时刻t2的目标缓存区9044中数据块与第一数据块顺序906后半段所对应的数据块命中率也为0;

再者,可选的例如在时刻t3,第一数据块顺序906更新为第二数据块顺序908,而目标缓存区904中的数据保持不变,在上述情况下,时刻t3的目标缓存区9046中的数据块A、数据块D、数据块E与第二数据块顺序908前半段所对应的数据块A、数据块D、数据块E命中,则直接在目标缓存区904中读取数据块A、数据块D、数据块E,而第二数据块顺序908前半段所对应的,且与时刻t3的目标缓存区9046中未命中的数据块B、数据块C则在目标存储区902中读取;

进一步,可选的在时刻t4,时刻t4的目标缓存区9048中的数据块B、C与第二数据块顺序908后半段所对应的数据块B、数据块C命中,则直接在目标缓存区904中读取数据块B、数据块C,而第二数据块顺序908后半段所对应的,且与时刻t3的目标缓存区9046中未命中的数据块A、数据块D、数据块E则在目标存储区902中读取;

再者,可选的例如在时刻t5,第二数据块顺序908更新为第三数据块顺序910,而目标缓存区904中的数据块仍保持不变,在上述情况下,时刻t5的目标缓存区9050中的数据块A、数据块B、数据块C、数据块D与第三数据块顺序910前半段所对应的数据块A、B、C、D命中,则直接在目标缓存区904中读取数据块A、B、C、D,而第三数据块顺序910前半段所对应的,且与时刻t5的目标缓存区9050中未命中的数据块E则在目标存储区902中读取;

进一步,可选的在时刻t6,时刻t6的目标缓存区9052中的数据块E与第三数据块顺序910后半段所对应的数据块E命中,则直接在目标缓存区904中读取数据块E,而第三数据块顺序910后半段所对应的,且与时刻t5的目标缓存区9052中未命中的数据块A、数据块B、数据块C、数据块D则在目标存储区902中读取。

通过本申请提供的实施例,将第二数据块顺序调整为第三数据块顺序,其中,第二数据块顺序与第三数据块顺序不同;按照第三数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第三数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块,通过目标缓存空间中固定不变的待读取数据,达到了以一种较为稳定且命中率较高的数据方式,以兼顾数据读取的效率与命中的目的,实现了同步保持数据读取的效率与命中率的效果。

作为一种可选的方案,从目标缓存空间中读取第一目标数据,包括:

使用多个线程并行从目标缓存空间中获取目标数据集合中的一组样本数据块。

可选的,多线程可以但不限用于表示从软件或者硬件上实现多个线程并发执行的技术,具有多线程的计算机可以但不限于因硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

需要说明的是,使用多个线程并行从目标缓存空间中获取目标数据集合中的一组样本数据块,通过多线程执行获取目标数据,可以有效的提高数据的获取效率,进而提高数据读取的整体处理性能。

进一步,可选的,使用多个线程并行从目标缓存空间中获取一组目标数据外,还可以将多个线程并行使用应用在具体的神经网络训练场景中。可选的,例如图10所示,在加速器执行模型训练的同时,在CPU上同步进行下一次训练所需的数据准备,具体包括图中所示的数据读取过程、预处理过程。

使用多线程并行地进行数据读取和预处理,在CPU上并行执行过数据读取和预处理,可以有效地提高神经网络模型的整体训练效率,以下通过更为直观的计算表示,使用多线程并行地进行数据读取和预处理对神经网络模型的整体训练效率的提高:

可选的,对于第n个epoch,本方案所需的训练总时间如下述公式2所示:

Figure 686642DEST_PATH_IMAGE002

(2)

其中 表示第n个epoch所需的训练总时间,

Figure 744039DEST_PATH_IMAGE006

表示单数据块读取需要的时间,

Figure DEST_PATH_IMAGE007

表示数据预处理所需要的时间,

Figure 201565DEST_PATH_IMAGE008

表示数据加载所需的时间,表示单epoch训练的时间。M代表需要读取的数据块数量,K表示线程数。

通过本申请提供的实施例,使用多个线程并行从目标缓存空间中获取目标数据集合中的一组样本数据块,达到了在更短的时间内读取数据的目的,实现了提高数据读取的效率的效果。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本发明实施例的另一个方面,还提供了一种用于实施上述训练样本数据的读取方法的训练样本数据的读取装置。如图11所示,该装置包括:

第一读取单元1102,用于从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间,直至目标缓存空间缓存的样本数据块达到目标缓存空间的缓存上限;

更新单元1104,用于当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序,其中,第一数据块顺序与第二数据块顺序不同;

第二读取单元1106,用于按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。

可选的,一种训练样本数据的读取装置可以但不限应用在数据的深度学习场景下,训练样本数据的读取装置可以但不限于为,一种独特的数据缓存方案(Dataset Cachefor Deep Learning,简称DCDL),其中,可以但不限于包括一种缓存替换策略,具体的,可以但不限于包括缓存一次策略(Cache once only,简称COO)。样本数据块可以但不限于为存放有一定量级访问或样本数据的数据集。目标缓存空间可以但不限于以一种链表形式缓存数据的缓存区域,包括链表头部、链表中部、链表尾部等,样本数据块中的数据可以但不限用于缓存至目标缓存空间中,具体的,将当前获取的样本数据块中的数据***目标缓存空间中的链表头部。可选的,目标缓存空间中的数据可以但不限于固定不变,样本数据块中的数据可以但不限于固定不变。数据块顺序可以但不限于影响目标缓存空间和/或样本数据块中的数据存储或缓存,换言之,在数据块顺序发生变化的情况下,目标缓存空间和/或样本数据块中的数据并不会发生变化。

需要说明的是,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间,直至目标缓存空间缓存的样本数据块达到目标缓存空间的缓存上限,其中,可选的,目标缓存空间的缓存是存在上限的,而上限即会导致目标缓存空间无法缓存全部的样本数据块。

进一步,当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序,其中,第一数据块顺序与第二数据块顺序不同;按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,在按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块的过程中,可以但不限于包括以下两种场景:1)在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块;2)在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。通过以上两种场景对应的技术手段,以实现全部样本数据块的读取,以及将读取到的样本数据块对目标模型进行模型训练。可选的,将读取到的样本数据块对目标模型进行模型训练可以但不限于为无需等待样本数据块全部读取完毕,实施实时读取实时训练的执行逻辑,也可以但不限于为全部读取后再统一进行训练。

具体实施例可以参考上述训练样本数据的读取方法中所示示例,本示例中在此不再赘述。

通过本申请提供的实施例,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间,直至目标缓存空间缓存的样本数据块达到目标缓存空间的缓存上限;当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序,其中,第一数据块顺序与第二数据块顺序不同;按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块,通过直接读取目标缓存空间中使用顺序保持不变的固定数据,达到了在提高数据读取的读取效率的同时,还拥有较高的数据块命中率的目的,从而实现了提高数据的读取命中率的技术效果。

作为一种可选的方案,如图12所示,更新单元1104,包括:

第一操作模块1202,用于对目标数据集合中按照第一数据块顺序排列的样本数据块进行第一扰序操作,得到第二数据块顺序,其中,第一扰序操作用于改变目标数据集合中的样本数据块的使用顺序;或者

第二操作模块1204,用于对目标数据集合中按照初始数据块顺序排列的样本数据块进行第二扰序操作,得到第二数据块顺序,其中,初始数据块顺序为存储空间中存储的目标数据集合中的样本数据块的排列顺序,第二扰序操作用于改变目标数据集合中的样本数据块的使用顺序。

具体实施例可以参考上述训练样本数据的读取方法中所示示例,本示例中在此不再赘述。

作为一种可选的方案,如图13所示,第二读取单元1106,包括:

第一读取模块1302,用于按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的所有样本数据块,得到第一样本数据块序列,其中,第一样本数据块序列中包括按照第二数据块顺序排列的所有样本数据块;将第一样本数据块序列输入到目标模型中,以对目标模型进行模型训练;或者

第二读取模块1304,用于按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的所有样本数据块,每读取到一个或一组样本数据块,将读取到的一个或一组样本数据块输入到目标模型中,以对目标模型进行模型训练。

具体实施例可以参考上述训练样本数据的读取方法中所示示例,本示例中在此不再赘述。

作为一种可选的方案,如图14所示,第一读取单元1102,包括:

第三读取模块1402,用于按照第一数据块顺序,从存储空间中存储的目标数据集合中读取目标数据集合中的所有样本数据块,得到第二样本数据块序列,其中,第二样本数据块序列中包括按照第一数据块顺序排列的所有样本数据块;将第二样本数据块序列输入到目标模型中,以对目标模型进行模型训练;或者

第四读取模块1404,用于按照第一数据块顺序,从存储空间中存储的目标数据集合中读取目标数据集合中的所有样本数据块,每读取到一个或一组样本数据块,将读取到的一个或一组样本数据块输入到目标模型中,以对目标模型进行模型训练。

具体实施例可以参考上述训练样本数据的读取方法中所示示例,本示例中在此不再赘述。

作为一种可选的方案,

第一读取单元1102,包括:第一训练模块,用于使用目标数据集合中按照第一数据块顺序排列的样本数据块,对目标模型进行第一轮训练;

第二读取单元1106,包括:第二训练模块,用于在对目标模型进行第一轮训练的过程中或之后,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块;

第三训练模块,用于根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,包括:使用目标数据集合中按照第二数据块顺序排列的样本数据块,对目标模型进行第二轮训练。

具体实施例可以参考上述训练样本数据的读取方法中所示示例,本示例中在此不再赘述。

作为一种可选的方案,更新单元1104,包括:

调整模块,用于在使用目标数据集合中按照第一数据块顺序排列的样本数据块,对目标模型进行第一轮训练的过程中,将第一数据块顺序调整为第二数据块顺序。

具体实施例可以参考上述训练样本数据的读取方法中所示示例,本示例中在此不再赘述。

作为一种可选的方案,装置还包括:

调整单元,用于在按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练之后,将第二数据块顺序调整为第三数据块顺序,其中,第二数据块顺序与第三数据块顺序不同;

第三读取单元,用于在按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练之后,按照第三数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第三数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。

具体实施例可以参考上述训练样本数据的读取方法中所示示例,本示例中在此不再赘述。

作为一种可选的方案,第二读取单元1108,包括:

获取模块,用于使用多个线程并行从目标缓存空间中获取目标数据集合中的一组样本数据块。

具体实施例可以参考上述训练样本数据的读取方法中所示示例,本示例中在此不再赘述。

根据本发明实施例的又一个方面,还提供了一种用于实施上述训练样本数据的读取方法的电子设备,如图15所示,该电子设备包括存储器1502和处理器1504,该存储器1502中存储有计算机程序,该处理器1504被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间,直至目标缓存空间缓存的样本数据块达到目标缓存空间的缓存上限;

S2,当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序,其中,第一数据块顺序与第二数据块顺序不同;

S3,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。

可选地,本领域普通技术人员可以理解,图15所示的结构仅为示意,电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图15其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图15中所示更多或者更少的组件(如网络接口等),或者具有与图15所示不同的配置。

其中,存储器1502可用于存储软件程序以及模块,如本发明实施例中的训练样本数据的读取方法和装置对应的程序指令/模块,处理器1504通过运行存储在存储器1502内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的训练样本数据的读取方法。存储器1502可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1502可进一步包括相对于处理器1504远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1502具体可以但不限于用于存储样本数据块、第一数据块顺序以及第二数据块顺序等信息。作为一种示例,如图15所示,上述存储器1502中可以但不限于包括上述训练样本数据的读取装置中的第一读取单元1102、更新单元1104及第二读取单元1106。此外,还可以包括但不限于上述训练样本数据的读取装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置1506用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1506包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1506为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子设备还包括:显示器1508,用于显示上述样本数据块、第一数据块顺序以及第二数据块顺序等信息;和连接总线1510,用于连接上述电子设备中的各个模块部件。

根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,从存储空间中存储的目标数据集合中按照第一数据块顺序读取样本数据块,根据读取到的样本数据块对目标模型进行模型训练,并将读取到的样本数据块缓存到目标缓存空间,直至目标缓存空间缓存的样本数据块达到目标缓存空间的缓存上限;

S2,当按照第一数据块顺序从目标数据集合中读取完样本数据块后,将第一数据块顺序调整为第二数据块顺序,其中,第一数据块顺序与第二数据块顺序不同;

S3,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,并根据读取到的目标数据集合中的样本数据块对目标模型进行模型训练,其中,按照第二数据块顺序,从目标缓存空间和存储空间中读取目标数据集合中的样本数据块,包括:在目标缓存空间中查询到目标数据集合中的样本数据块的情况下,从目标缓存空间中读取目标数据集合中的样本数据块,在目标缓存空间中查询不到目标数据集合中的样本数据块的情况下,从存储空间读取目标数据集合中的样本数据块。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

30页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种缓存分配控制方法、装置、终端设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类