CN114968942A - 数据处理方法、预测方法、设备、存储介质及程序产品 - Google Patents
数据处理方法、预测方法、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114968942A CN114968942A CN202210680739.6A CN202210680739A CN114968942A CN 114968942 A CN114968942 A CN 114968942A CN 202210680739 A CN202210680739 A CN 202210680739A CN 114968942 A CN114968942 A CN 114968942A
- Authority
- CN
- China
- Prior art keywords
- file
- batch
- training data
- training
- model
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据处理方法、预测方法、设备、存储介质及程序产品,其中方法包括:确定当前待处理的批次索引;其中,模型训练过程中,待处理的批次索引顺序变化;若根据批次索引确定已基于当前文件列表完成了一个轮次的训练,则将文件列表中的文件标识随机排序;其中,文件列表包括磁盘中多个文件对应的文件标识,文件包含至少一个批次的训练数据;根据文件列表中文件标识的顺序,确定批次索引对应的训练数据所属的目标文件;若目标文件与内存中的文件不一致,则将磁盘中的目标文件加载到内存,并从目标文件中读取批次索引对应的训练数据进行模型训练。本申请可以节省读取训练数据的时间,提高数据读取速度,提升模型训练效率。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种数据处理方法、预测方法、设备、存储介质及程序产品。
背景技术
随着人工智能技术和大数据技术的不断发展,人工智能模型所使用的训练数据的大小也在不断增加。
在一些模型训练过程中,会使用上百G甚至更多的训练数据,因其大小过大,无法一次性加载到内存中,因此训练时可能需要从磁盘读取数据,并且,为了实现模型参数的优化,往往需要随机读取数据,存在大量的磁盘寻址耗时,在读取数据时通常性能低下,导致模型训练缓慢,整体训练效率较低。
发明内容
本申请实施例的主要目的在于提供一种数据处理方法、预测方法、设备、存储介质及程序产品,以提升模型训练的效率。
第一方面,本申请实施例提供一种数据处理方法,包括:
确定当前待处理的批次索引;其中,模型训练过程中,待处理的批次索引顺序变化;
若确定已基于当前文件列表完成了一个轮次的训练,则将所述文件列表中的文件标识随机排序;其中,所述文件列表包括磁盘中多个文件对应的文件标识,所述文件包含至少一个批次的训练数据;
根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件;
若所述目标文件与内存中的文件不一致,则将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练。
可选的,根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件,包括:
根据单个文件包含的批次数量以及所述批次索引,确定所述目标文件的文件标识在所述文件列表中的序号;
根据所述文件列表中各文件标识的顺序以及所述序号,确定对应的目标文件;
其中,单个文件包含的批次数量由预先设置的批次大小以及单个文件包含的训练数据的份数确定;所述批次大小用于表示单个批次包含的训练数据的份数。
可选的,所述方法还包括:
若所述目标文件与内存中的文件一致,则根据所述批次索引、批次大小以及单个文件包含的批次数量,计算所述批次索引对应的训练数据在所述目标文件中的位置;
从内存中所述目标文件的相应位置读取所述批次索引对应的训练数据,并根据读取到的训练数据进行模型训练。
可选的,所述方法还包括:
根据所述多个文件包含的训练数据的份数以及批次大小,计算批次索引的取值范围;
在根据所述批次索引对应的训练数据进行模型训练后,将待处理的批次索引更新为当前批次索引加一,或者,若当前批次索引为所述取值范围中的最大值,则设置更新后的批次索引为所述取值范围中的最小值,以继续对更新后的批次索引进行处理;
相应的,若根据所述批次索引确定已根据当前文件列表完成了一个轮次的训练,则将所述文件列表中的文件标识随机排序,包括:
若所述批次索引为所述取值范围中的最小值,则确定已基于当前文件列表完成了一个轮次的训练,并将所述文件列表中的文件标识随机排序。
可选的,将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练,包括:
将磁盘中的所述目标文件加载到内存,并对所述目标文件中包含的训练数据进行随机排序;
根据所述批次索引,从随机排序后的目标文件中,读取对应的训练数据进行模型训练。
可选的,所述模型用于预测用户选择某一产品模型的概率;所述训练数据包括用户的特征信息、产品模型的特征信息以及标签,所述标签用于表示所述用户是否选中所述产品模型;在训练模型之前,还包括:
将用于训练所述模型的训练数据集下载到所述磁盘,并将所述训练数据集划分到所述多个文件中保存;
将所述训练数据集展示给参与模型训练的人员,以使所述人员对所述训练数据集中的异常数据进行处理;和/或,根据所述训练数据集中各项特征信息的中位数,检测所述训练数据集中的异常训练数据并进行处理。
第二方面,本申请实施例还提供一种预测方法,包括:
根据用户输入的搜索信息,从产品模型库中查找对应的至少一个产品模型;
根据所述用户的信息以及所述至少一个产品模型的信息,基于搜索推荐模型,确定所述各产品模型的被选概率,并根据被选概率对各产品模型进行排序;
根据排序结果向用户展示所述至少一个产品模型;
其中,所述搜索推荐模型为根据第一方面任一项所述方法训练得到的模型。
第三方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行上述任一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述任一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方面所述的方法。
本申请实施例提供的数据处理方法、预测方法、设备、存储介质及程序产品,可以确定当前待处理的批次索引,其中,模型训练过程中,待处理的批次索引顺序变化,若确定已基于当前文件列表完成了一个轮次的训练,则将所述文件列表中的文件标识随机排序,其中,所述文件列表包括磁盘中多个文件对应的文件标识,所述文件包含至少一个批次的训练数据,根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件,若所述目标文件与内存中的文件不一致,则将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练,从而可以根据批次索引去查找对应的文件,并与内存中的文件进行比较,确定是直接从内存中读取训练数据还是将文件从磁盘加载到内存后再读取训练数据,顺序变化的批次索引可以大概率命中内存中的文件,能够在保证一定随机性的基础上,节省读取训练数据的时间,提高数据读取速度,提升模型训练效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的一种批次和轮次的示意图;
图4为本申请实施例提供的一种数据存储流程的示意图;
图5为本申请实施例提供的另一种数据处理方法的流程示意图;
图6为本申请实施例提供的一种使用搜索推荐模型后的展示示意图;
图7为本申请实施例提供的一种预测方法的流程示意图;
图8为本申请实施例提供的一种家装场景的模型使用示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
首先对本申请所涉及的名词进行解释:
磁盘缓冲:将磁盘中的数据通过一定的方式提前载入内存;其中,磁盘也可以称为硬盘,内存也可以称为缓存。
随机读:在有多份训练数据时,以随机的方式读取训练数据,区别于顺序读取。
模型训练的轮次(epoch)和批次(batch):在基于训练数据集对模型进行训练时,可以经历多个轮次,每一轮次可以包含多个批次,每一批次可以包含多条训练数据。每次更新模型的参数时,可以基于一个批次的数据进行更新,所有的数据更新一轮后代表完成一个轮次,再进行下一轮次的训练,下一轮次中各训练数据的顺序可以不同于当前轮次。
批次索引(batch index):用于对各个批次进行标识,例如,索引1可以指向第1个批次的训练数据。
本申请实施例可以应用于任意领域的模型训练方案。一般可以根据训练数据集对模型进行训练。训练数据集可以包括多份训练数据,将训练数据输入到模型中,可以得到对应的预测结果,再根据预测结果确定对应的损失值,根据损失值通过梯度下降等方法调整模型的参数,直至训练的轮次或者模型的精度满足预设的要求,则结束训练。
为了提高模型的训练效果,通常采用随机读的方式使用训练数据,并且,训练数据集中包含的训练数据的数量可能会达到千万或更大数量级,而由于内存空间的限制,通常难以将训练数据集中全部数据都预先加载到内存中,因此,在模型训练过程中,不可避免地要从磁盘中读取数据,而从磁盘中读取数据存在效率不高的问题。本申请实施例旨在解决存放于磁盘的大数据集高性能读取问题,提升训练速度。
在一些技术中,可以使用基于pandas的小批量读取方案。具体来说,pandas提供了高效地操作大型数据集所需的工具,当需要读取磁盘中的训练数据集时,可以使用pandas库,并指定skiprows、nrows两个参数,达到从磁盘中读取小批量数据的目的。
在该方案中,模型训练时使用的批次索引是随机变化的,例如,批次1、批次1000、批次20、……。在读取数据时,需要依次从磁盘中寻址到相应批次的训练数据。
该方案存在两个缺点,一是每次读取训练数据时,都需要定位到磁盘中的相应位置,多份训练数据需要进行多次寻址,在数据量较大时,存在大量的磁盘寻址耗时,效率低下;二是每次只能读取nrows条数据,无法对数据进行全局或近似全局的随机shuffle(乱序),模型训练效果不佳。
在另一些技术中,可以使用tensorflow框架作为模型训练的工具,基于tfRecord实现数据的读取,tfRecord是tensorflow提供的数据格式,但也存在两个缺点,一是很多训练数据集不支持将数据下载为tfRecord格式,要存储为tfRecord需要额外的代码来执行保存和读取操作;二是tfRecord是序列化后的一种用于存储二进制记录序列的简单格式,在数据处理或训练过程中发现部分数据存在问题时,无法查看和修改,会很大程度影响模型的训练调优工作的效率。
有鉴于此,本申请实施例提供了一种基于磁盘缓冲的数据处理方法,可以将模型使用的批次索引从无序变为有序,随机顺序预加载文件并对文件中的数据进行随机排序,而后放入内存中,通过一定算法使当前所使用的批次索引大概率命中内存中的数据,且整个过程中保证训练数据的随机性,从而加速模型的训练。
图1为本申请实施例提供的一种应用场景示意图。如图1所示,在对模型进行训练之前,可以先将训练数据集从数据平台下载到本地磁盘,本地磁盘中,训练数据集分布存储在多个文件中,每一轮训练结束之后,可以把文件列表打乱。
示例性地,训练数据集中共包含30000份训练数据,分别存储在文件A、B、C中,每一文件保存10000份训练数据,在每一轮训练结束之后,下一轮训练开始之前,可以把文件列表的顺序打乱,例如,第1轮训练过程中,文件的顺序为A、B、C,在开始第2轮训练之前,将文件列表随机重新排序为文件B、C、A,按照文件B、C、A的顺序进行第2轮训练。
在训练时,可以将批次索引设置为顺序变化的,例如批次1、批次2、批次3、……。在将文件列表随机排序后,可以根据每个文件包含的训练数据的情况,计算当前的批次索引命中了哪个文件,例如,每一批次包括10份训练数据,则每一文件对应1000个批次,在当前的批次索引为1001时,说明对应的批次在排序第2的文件中,而当前的文件列表
中,排序第2的文件为文件C,则可以查找内存中是否存在文件C,若存在,直接从内存
的文件C中读取训练数据,若不存在,则将文件C从磁盘加载到内存中并读取对应的训练数据用于进行模型训练。
可选的,在将文件C加载到内存中时,可以将文件C中的训练数据进行随机排列,打乱文件中各训练数据原有的顺序,再根据批次索引从中取出当前需要使用的训练数据。
读取的当前批次的训练数据用于进行模型参数的更新,读取完当前批次的训练数据后,可以按照类似的方法读取下一批次的训练数据,直至将文件B、C、A中的所有数据都读取完一次,本轮次结束,可以对文件列表再次进行随机排序,再开始下一轮次的训练。
在每次读取数据时,由于批次索引是顺序变化的,批次索引与文件包含的训练数据有隐含的顺序对应关系,因此批次索引会大概率命中内存中的文件,例如,每一文件包含1000个批次的训练数据,则在1000次读取过程中,只有1次可能会命中内存中不存在的文件,需要从磁盘中加载,其余大部分情况都可以直接从内存中读取数据,节省了从磁盘加载到内存的时间。
相对于上述基于pandas的小批量读取方案来说,本申请实施例可以将批次索引变为有序,从而可以从内存中顺序读取已经随机排序后的文件列表对应的各个训练数据,减少磁盘寻址时间;此外,pandas读取时限定为skiprows至skiprows+nrows范围,缺乏随机性,本申请实施例将大数据集拆分为多个可存入内存的小文件后,对文件列表进行随机排序,在文件加载到内存时还可以对文件内的训练数据进行随机排序,提高了数据的随机性。
相对于上述tfRecord的批量数据读取方案来说,本申请实施例无需编写额外的代码进行tfRecord的存储和加载,直接使用常规数据平台支持的csv等格式来存储数据,免除了额外的代码量;此外,当训练数据中存在异常数据时,因tfRecord存储为二进制流的缘故,无法查看和剔除该异常数据,本申请实施例无需进行二进制流的转换,可以使用可编辑、可解读的常规格式存储数据,减少数据异常的问题。
综上,本申请实施例提供的数据处理方法,不仅可以实现大数据集的全局近似随机读取,还可以通过批次索引和预加载文件的合理算法,达到近似高速的内存存储读取数据的速度,可以加速模型在大数据集存储于磁盘的情况下的训练速度,解决从磁盘加载训练数据耗时较长的问题。
下面结合附图,对本申请的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图2为本申请实施例提供的一种数据处理方法的流程示意图。本实施例中方法的执行主体可以应用于任意具有数据处理功能的设备或模块。如图2所示,所述方法可以包括:
步骤201、确定当前待处理的批次索引。
其中,模型训练过程中,待处理的批次索引顺序变化。所述模型可以为神经网络模型。
可选的,待处理的批次索引可以是模型训练过程中,当前待使用的训练数据对应的批次索引。每一批次索引可以对应一个批次的训练数据,一个批次可以包含至少一条训练数据。
模型训练过程中,随着训练进程的推进,源源不断的训练数据被送入模型实现模型的训练,待处理的批次索引可以是顺序变化的,例如顺序增大或顺序减小,而非随机变化。顺序增大的示例:批次0、批次1、批次2、……;顺序减小的示例:批次9999、批次9998、……。随机变化的示例:批次1、批次1001、批次0……。
步骤202、若确定已基于当前文件列表完成了一个轮次的训练,则将所述文件列表中的文件标识随机排序。
其中,所述文件列表包括磁盘中多个文件对应的文件标识,所述文件包含至少一个批次的训练数据。
可选的,在处理每一批次的训练数据时,可以首先确定当前待处理的批次索引,并根据所述批次索引判断是不是已经完成了一个轮次的训练。
可选的,在批次索引顺序增大的情况下,若检测到当前的批次索引为0,则说明已经进入一个新的轮次,即,已经基于当前文件列表完成了一个轮次的训练,此时可以根据文件列表进行随机排序。
或者,在批次索引顺序减小的情况下,若检测到当前的批次索引为索引最大值,则说明已经基于当前文件列表完成了一个轮次的训练,当前文件列表中所有文件包含的训练数据都已经被使用过一次。在完成一个轮次的训练后,可以将文件列表中的文件标识进行随机排序。
在其他可选的实现方式中,模型训练软件也可以在模型训练完一个轮次后,产生对应的触发信号,用于指示文件列表进行随机排序。本实施例并不限制各步骤的执行顺序,例如,步骤202也可以在步骤201之前执行,或者与步骤201同时执行。
需要说明的是,在模型训练过程中,磁盘中存储的文件的顺序可以是不变的,每一文件可以对应有一个文件标识,例如可以为文件名或者文件索引。每一轮次的训练完成后,可以仅改变文件列表中文件标识的顺序,文件列表可以通过表格或其它方式保存。
步骤203、根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件。
可选的,文件列表中的文件标识进行随机排序后,批次索引和文件中的训练数据可以具有一定的对应关系。例如,随机排序后,文件标识的顺序为:文件A、文件B、文件C,每个文件中,10份训练数据组成一个批次,则索引0可以对应文件A中的前10条训练数据,索引1可以对应文件A中的第11至20条训练数据,以此类推。
需要说明的是,上述对应关系只是一种示例,在实际应用中,可以通过多种算法来确定批次索引对应的文件,只要能够满足批次索引与文件之间具有一定的映射关系即可。
在一种可选的实现方式中,在对当前待处理的批次索引进行处理时,可以根据预设的算法,确定所述批次索引对应的文件。
在另一种可选的实现方式中,文件列表进行随机排序后,可以立刻确定每一批次索引对应的训练数据,在对各个待处理的批次索引进行处理时,直接可以查找到对应的训练数据所属的文件。
步骤204、若所述目标文件与内存中的文件不一致,则将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练。
在确定目标文件后,可以将目标文件与内存中的文件进行比对。可选的,内存中可以缓存有至少一个文件,所述目标文件与内存中的文件不一致,可以具体是指,所述目标文件与内存中的各个文件均不相同,即,所述目标文件还没有被加载到内存中。在这种情况下,可以从磁盘中将目标文件加载到内存。
若所述目标文件与内存中的文件一致,即内存中已经缓存有所述目标文件,则可以直接从所述目标文件中读取所述批次索引对应的训练数据进行模型训练。
图3为本申请实施例提供的一种批次和轮次的示意图。如图3所示,矩形框代表文件,矩形框中的黑色长条代表训练数据。每一文件中可以包括多份训练数据,将所述多个文件中的训练数据遍历一次后,即完成一个轮次的训练,每一轮次可以包括多个批次,根据每一批次的训练数据更新模型的参数后,再根据下一批次的训练数据进一步对模型参数进行更新。
可选的,当前批次索引的训练数据读取完毕后,可以将批次索引加1,并重复执行上述步骤201至步骤204。在训练完一个轮次后,可以重置批次索引,并参考上述步骤,重新进行下一轮次的训练。
示例性地,用于训练某模型的训练数据集包含约1亿条训练数据集,假设每一文件包含12.8万条训练数据,则大约需要1亿除以12.8万约等于780个文件,若每一批次包含128份训练数据,则每一文件可以对应1000个批次。
实际应用中,在模型训练开始时,可以根据磁盘中文件对应的文件标识,生成文件列表,在批次索引等于0时,按照上述步骤201至步骤204,将文件列表中排序第一的文件加载到内存中,并从内存中读取该文件的前128条训练数据进行模型训练。
接着,将批次索引加1,在批次索引等于1的情况下,执行上述步骤201至步骤204,由于内存中已经有批次索引1对应的文件,因此,直接从内存中读取该文件的第129至第256条数据即可。以此类推,直至批次索引等于999时,在执行完上述步骤201至步骤204后,1亿条训练数据全部被使用了一次,模型完成了一个轮次的训练。
在一个轮次的训练结束后,可以将文件列表进行随机排序,并在随机排序后,参照上述流程,进行下一个轮次的训练,下一个轮次训练过程与前述流程类似,只是文件列表中各文件标识的顺序发生了变化,从而可以在批次索引顺序增加的情况下,使不同轮次能够使用不同顺序的训练数据,满足模型训练的随机性要求。
每结束一个轮次后,多个文件标识的顺序会发生变化,相当于每个文件对应的批次索引也发生了变化。加载每一文件时,按照当前需要的批次索引,判断对应的文件有没有在内存中,有则直接读取使用,没有则加载文件。由于批次索引是顺序变化的,所以每1000次的判断,都会有999次命中,命中概率非常高。
综上,本实施例提供的数据处理方法,将模型训练过程中的批次索引设置为顺序变化的,并且,在训练过程中不断地对包含训练数据的多个文件进行随机排序,根据批次索引去查找对应的文件,并与内存中的文件进行比较,确定是直接从内存中读取训练数据还是将文件从磁盘加载到内存后再读取训练数据,顺序变化的批次索引可以大概率命中内存中的文件,能够在保证一定随机性的基础上,节省读取训练数据的时间,提高数据读取速度,提升模型训练效率。
可选的,在开始训练模型之前,可以将用于训练所述模型的训练数据集下载到所述磁盘,并将所述训练数据集划分到所述多个文件中保存。图4为本申请实施例提供的一种数据存储流程的示意图。如图4所示,数据可以存储在数据平台如ODPS(Open DataProcessing Service,开放数据处理服务)中,在开始后,可以从ODPS下载部分训练数据,下载时,可以基于offset(偏移)和limit(范围)定位到ODPS中的各条训练数据,例如,offset=m、limit=n时,可以下载第m至第m+n条训练数据。
进一步地,可以根据下载批次计算训练数据的文件名,在这里,每一个下载批次可以对应一个文件,例如,ODPS中前12.8万条训练数据对应的文件名为文件1、第12.8万零1到第25.6万条训练数据对应的文件名为文件2。
在确定下载的训练数据对应的文件名后,可以检查本地是否已经存在该文件名对应的文件,如果不存在则创建该文件名的文件用以存储数据,并将对应的训练数据添加到该文件中。如果本地已经存在该文件名对应的文件,则可以用append(追加)方式,将训练数据添加到文件末尾。
可选的,可以采用多个线程将ODPS中存储的训练数据分批依次下载到本地磁盘,例如线程1下载前6万条训练数据后并保存到创建的文件1中,线程2下载第6万零1条至第12.8万条训练数据后,可以将其添加到文件1末尾。
通过上述方式,可以将训练数据集下载到本地磁盘,并保存在多个文件中,可选的,所述文件可以为csv(Comma-Separated Values,逗号分隔值,也可称为字符分隔值)文件,能够以纯文本形式存储数据,文件中的分隔字符可以是逗号也可以是其它符号。或者,所述文件也可以为xlsx文件等其它任意可以存储数据的文件。
可选的,每一文件可以包括至少一行,在这种情况下,一份训练数据也可以称为一条训练数据,每一行代表一条训练数据。所述训练数据可以包括样本数据和对应的标签,例如,对于图像分类模型来说,其对应的样本数据可以为图像中的像素值,标签可以为图像的类别。
可选的,在训练模型之前,还可以将所述训练数据集展示给参与模型训练的人员,以使所述人员对所述训练数据集中的异常数据进行处理;和/或,根据所述训练数据集中各项特征信息的中位数,检测所述训练数据集中的异常训练数据并进行处理。
在一种可选的实现方式中,可以在将训练数据集下载到本地磁盘后,展示所述训练数据集,训练人员可以查看所述训练数据集中的各项训练数据,并对其中异常的训练数据进行删除、修改等操作。
在另一种可选的实现方式中,设备可以自动对训练数据集进行处理。可选的,每一条训练数据均可以包括多项特征信息,每一特征信息的中位数,可以用于判断各条训练数据是否异常。
示例性地,所述训练数据集包括L条训练数据,每条训练数据包括h项特征信息。对于任一特征信息,计算L条训练数据中该特征信息对应的中位数。对于每一条训练数据,若该训练数据中某一项特征信息与对应的中位数之间的差值或比值超出预设范围,则认为该训练数据属于异常数据,可以删除该训练数据。
综上,通过上述的数据存储流程以及异常处理流程,能够快速准备好用于支持模型训练的多个文件,并对文件中的异常数据进行处理,提高模型训练的准确性,并且,支持用户自主查看和修改数据,提升用户体验。
在本申请的一个或多个实施例中,可选的,根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件,包括:根据单个文件包含的批次数量以及所述批次索引,确定所述目标文件的文件标识在所述文件列表中的序号;根据所述文件列表中各文件标识的顺序以及所述序号,确定对应的目标文件;其中,单个文件包含的批次数量由预先设置的批次大小以及单个文件包含的训练数据的份数确定;所述批次大小用于表示单个批次包含的训练数据的份数。
可选的,批次大小可以是由用户输入的,或者,可以采用默认设置,或者,可以根据训练数据集、计算性能、时间和精度等各方面的要求,自动确定批次大小。在确定批次大小后,可以将单个文件包含的训练数据的份数除以批次大小,得到单个文件包含的批次数量。将当前待处理的批次索引除以单个文件包含的批次数量,向下取整并加1后,得到目标文件的序号。
由于文件列表中的文件标识经过了随机排序,因此文件标识的顺序与文件本身在磁盘中的顺序可能并不一致,在确定目标文件时,可以根据计算得到的序号,从文件列表中查找对应的文件标识,从而将查找到的文件标识对应的文件作为目标文件。
综上,通过预先设置的批次大小、单个文件包含的训练数据的份数计算单个文件包含的批次数量,进而再根据单个文件包含的批次数量以及当前待处理的批次索引,结合随机排序后的文件列表,能够快速、准确地确定目标文件,提升读取训练数据的整体效率和准确性。
在本申请的一个或多个实施例中,可选的,若所述目标文件与内存中的文件一致,则根据所述批次索引、批次大小以及单个文件包含的批次数量,计算所述批次索引对应的训练数据在所述目标文件中的位置;从内存中所述目标文件的相应位置读取所述批次索引对应的训练数据,并根据读取到的训练数据进行模型训练。
具体地,在目标文件与内存中的文件一致时,可以直接从内存的目标文件中读取训练数据。可以将当前待处理的批次索引除以单个文件包含的批次数量,得到的商向下取整加1为目标文件的序号,得到的余数用于指示所述批次索引对应目标文件中的第几个批次。
可选的,将所述余数与批次大小相乘,得到的乘积加1后,得到第一行数;另外,将所述余数加1后,与批次大小相乘,得到第二行数。本实施例中,将所述批次索引对应的训练数据在所述目标文件中的位置记为目标位置,所述目标位置为第一行数到第二行数之间。
示例性地,若批次索引除以单个文件包含的批次数量后,得到的余数为R,批次大小为S,则目标位置为第R/S-1行至第(R+1)/S行,即目标文件中第R/S-1行至第(R+1)/S行的训练数据作为所述批次索引对应的训练数据,读取这些训练数据用于模型训练。
可选的,在目标文件与内存中的文件一致时,可以按照上述方法计算目标位置。此外,在目标文件与内存中的文件不一致时,可以从磁盘中加载目标文件到内存中,并根据上述方法计算目标位置以读取目标位置的训练数据。
综上,通过当前待处理的批次索引、批次大小以及单个文件包含的批次数量,可以计算所述批次索引对应的训练数据在所述目标文件中的位置,并从目标位置读取训练数据,能够在模型训练过程中实现训练数据的有序读取,提高训练数据读取的准确性和稳定性。
在本申请的一个或多个实施例中,可选的,还可以根据所述多个文件包含的训练数据的份数以及批次大小,计算批次索引的取值范围;在根据所述批次索引对应的训练数据进行模型训练后,将待处理的批次索引更新为当前批次索引加一,或者,若当前批次索引为所述取值范围中的最大值,则设置更新后的批次索引为所述取值范围中的最小值,以继续对更新后的批次索引进行处理。
相应的,若根据所述批次索引确定已根据当前文件列表完成了一个轮次的训练,则将所述文件列表中的文件标识随机排序,可以包括:若所述批次索引为所述取值范围中的最小值,则确定已基于当前文件列表完成了一个轮次的训练,并将所述文件列表中的文件标识随机排序。
可选的,训练数据集中包括N个文件,每个文件包括K份训练数据,则将N*K除以批次大小,得到商D,则对应的取值范围可以为0至D-1。不同训练情况下,训练数据的份数可能是变化的,批次索引的范围也会发生变化,了解批次索引的范围可以保证训练的正常进行。
在对当前的批次索引进行处理后,可以对批次索引进行更新。一般情况下,可以将批次索引加一,得到更新后的批次索引,并对更新后的批次索引进行处理。对各个批次索引的处理过程可以是相同的,此处不再赘述。若当前批次索引已经达到所述取值范围中的最大值D-1,则下一个待处理的批次索引为取值范围的最小值0。
在批次索引为0时,说明已基于当前文件列表完成了一个轮次的训练,可以将所述文件列表中的文件标识随机排序。这样,在模型训练过程中,批次索引从0依次增大,到D-1后,一个轮次的数据读取完毕,批次索引重新又变回0,对文件列表进行重新排序后,可以开始下一轮次的训练。
图5为本申请实施例提供的另一种数据处理方法的流程示意图。如图5所示,所述方法可以包括以下步骤。
步骤a、将批次索引设置为依次递增。
可选的,可以使用开源软件tensorflow作为模型训练软件进行模型训练,将model.fit方法中shuffle参数设置为False,可以使传进来的批次索引依次递增。
步骤b、扫描用于训练模型的所有文件,生成文件列表。
可选的,可以扫描包路径下所有的文件,生成对应的文件列表。文件列表可以存储在一个表格中。
步骤c、计算全量数据集的长度。
其中,所述全量数据集可以是指整个训练数据集,对应的长度可以用于确定批次索引的取值范围。可以根据所述多个文件包含的训练数据的份数以及批次大小,计算对应的长度。通过本步骤可以计算得到批次索引的取值范围。
示例性地,每个文件中有12.8万条训练数据,批次大小为128,单个文件包含的批次数量为12.8万/128=1000,780个文件对应的全量数据集的长度为780*1000=780000,则批次索引的取值范围可以为0至779999。
步骤d、判断当前传入的批次索引是否等于0。若等于0,则执行步骤e,若不等于0则执行步骤f。
可选的,批次索引等于0,则说明已经完成了一个轮次的数据读取工作,需要进行下一个轮次的数据读取工作。
步骤e、将文件列表随机排序。
在每一个轮次的数据读取工作之前,可以先将文件列表随机排序。随机排序后,文件列表会发生变化,但是每个文件包含的训练数据不变。
其中,步骤d和步骤e相当于完成了:确定当前待处理的批次索引;若确定已基于当前文件列表完成了一个轮次的训练,则将所述文件列表中的文件标识随机排序。
步骤f、根据批次索引,计算文件索引、缓存索引。
其中,文件索引可以是指目标文件对应的索引,缓存索引可以是指当前内存中已有文件对应的索引。文件的索引具体可以为文件对应的文件标识。
可选的,可以根据批次索引、单个文件包含的训练数据的份数以及批次大小,计算批次索引命中文件列表中的第几个文件(即目标文件在文件列表中的序号)。
步骤g、判断文件索引是否等于缓存索引。若是,则执行步骤h,若否,则执行步骤i。
步骤h、将文件加载入内存并随机排序。
可选的,若文件索引不等于缓存索引,说明目标文件还没有缓存到内存中,此时,可以将目标文件加载到内存中。在步骤h后可以执行步骤i。
其中,步骤f至步骤h可以实现:根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件;若所述目标文件与内存中的文件不一致,则将磁盘中的所述目标文件加载到内存。
可选的,将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练,可以包括:将磁盘中的所述目标文件加载到内存,并对所述目标文件中包含的训练数据进行随机排序;根据所述批次索引,从随机排序后的目标文件中,读取对应的训练数据进行模型训练。
可选的,将文件加载到内存之前,可以对目标文件中的训练数据进行随机排序,或者,在加载到内存之后,可以对文件中的训练数据进行随机排序。或者,加载文件和随机排序也可以没有顺序关系,可以同时进行。
在随机排序后,各条训练数据的顺序发生变化,相应的,每个批次包含的训练数据也会发生变化。
在前述步骤中,可以在每一轮次后,对文件列表进行随机排序,在本步骤中,对文件内的训练数据进行排序,这样,不仅文件间会进行随机排序,文件内也会随机排序,做到近似全局随机。
此外,文件间随机排序和文件内随机排序,分散在不同的时机,避免数据读取的延迟过大,尤其是避免在一个轮次的数据读取完后,再读取下一轮次的数据之前,花费过多的时间进行排序操作,能够有效提升模型训练的整体效率。
综上,在本实施例中,不仅各个文件的顺序会随机排序,在将文件加载到内存时,每个文件内的各个训练数据也会进行随机排序,从而可以实现近似全局随机,提升模型的训练效果,并且,通过为文件间随机排序和文件内随机排序设置合理的时机,能够减少数据读取的延迟时间,提高模型训练效率。
步骤i、返回批次索引对应的训练数据。
可选的,可以读取训练数据,作为模型训练软件当前需要的数据,使得模型训练软件根据读取的训练数据进行模型训练。
可选的,在返回训练数据之前,还可以对训练数据进行预处理,从而使模型训练软件可以根据预处理后的训练数据更新模型的参数。
可选的,预处理操作可以包括:若训练数据中的某一项特征信息为空,则可以该特征信息对应的数值填充为所有训练数据中该特征信息的平均值或默认值。例如,训练数据包括产品尺寸,若某一条训练数据中产品尺寸为空,则可以将该条训练数据中的产品尺寸设置为所有训练数据的产品尺寸的平均值。
通过在将训练数据输入模型之前,对训练数据进行预处理操作,能够使模型能够正常对训练数据进行处理,提升模型训练效果。并且,在内存中对训练数据进行预处理操作,相比于在磁盘中对数据进行预处理操作,能够减少从磁盘读取的数据量,提高数据加载效率,减少资源浪费。
步骤j、更新批次索引。重新执行步骤f,直至达到训练结束条件。
可选的,在根据所述批次索引对应的训练数据进行模型训练后,将待处理的批次索引更新为当前批次索引加一,或者,若当前批次索引为所述取值范围中的最大值,则设置更新后的批次索引为所述取值范围中的最小值,以继续对更新后的批次索引进行处理。
可选的,模型训练过程中的数据读取过程和根据数据更新模型参数的过程,可以是并行处理的。例如,可以设置多个线程,分别用于实现数据读取和参数更新。
综上,本实施例提供的数据处理方法,可以根据多个文件包含的训练数据的份数以及批次大小,计算批次索引的取值范围,并在根据所述批次索引对应的训练数据进行模型训练后,更新待处理的批次索引,从而可以在按照顺序将取值范围内的批次索引遍历一次后,确定已根据当前文件列表完成了一个轮次的训练,能够在满足批次索引顺序变化的情况下实现模型的训练,提升模型训练的稳定性。
在本申请的一个或多个实施例中,可选的,所述方法还包括:若确定已基于当前文件列表完成了一个轮次的训练,则重新设置索引偏置;其中,所述索引偏置小于单个文件包含的训练数据的份数,可以在所述份数中随机取值,且所述索引偏置不能被批次大小整除;所述索引偏置用于表示在一个轮次中第一批次的训练数据的开始位置。
相应的,根据单个文件包含的批次数量以及所述批次索引,确定所述目标文件的文件标识在所述文件列表中的序号,可以包括:根据单个文件包含的批次数量、所述批次索引以及所述索引偏置,确定所述目标文件的文件标识在所述文件列表中的序号。
可选的,根据所述批次索引、批次大小以及单个文件包含的批次数量,计算所述批次索引对应的训练数据在所述目标文件中的位置,可以包括:根据所述批次索引、批次大小、单个文件包含的批次数量以及所述索引偏置,计算所述批次索引对应的训练数据在所述目标文件中的位置。
相较于前述方案,在根据索引偏置计算目标文件以及目标位置时,只是将训练数据的开始位置由前述方案中的第1条变为第索引偏置条,其余计算原理和过程不变。
示例性地,可以设置索引偏置为100,则第一批次的训练数据从排序第1的文件中第100条训练数据开始,假设批次大小为128,则第一批次的训练数据为第100条至第227条训练数据,依次类推,排序第1的文件末尾的部分训练数据,可能要与下一文件中的部分训练数据结合起来作为一个批次,这样,不同文件之间的训练数据也会有融合。
综上,通过每个轮次设置索引偏置,并根据索引偏置计算目标文件以及目标位置,能够实现文件间随机排序、文件内随机排序、以及各文件的训练数据融合,相比于前述实施例中各个文件之间的训练数据不会进行融合的方案,能够进一步增加训练数据的随机性,更大程度地实现全局随机,提升模型的训练效果。
在本申请各实施例中,可选的,在加载文件并读取训练数据时,可以是先将整个文件加载到内存后再读取所需的训练数据,也可以是边加载边消费模式,使用一条训练数据后即加载一条新的训练数据,减少等待文件加载的时间。
在本申请的一个或多个实施例中,可选的,所述模型可以为搜索推荐模型,可以用于预测用户选择某一产品模型的概率;所述训练数据包括用户的特征信息、产品模型的特征信息以及标签,所述标签用于表示所述用户是否选中所述产品模型。
可选的,本申请实施例可以应用于家装领域。在家装领域,可以为用户提供家装设计软件,家装设计软件可以供用户对房屋中的硬装、软装等进行设计,并且,可以利用通过上述方法训练好的搜索推荐模型,评估用户选择某一产品模型的概率,并在产品模型展示页面,将概率较大的产品模型排在前面展示,使用户能够更加方便地选择自己感兴趣的产品模型。
可选的,所述产品模型可以是2D或3D产品模型,具体可以为家具模型、家电模型等家装领域所使用的模型。产品模型的信息可以包括下述至少一项:产品模型的尺寸、材质、样式、风格、封装情况等。用户的信息可以包括用户画像信息和/或用户对应的上下文信息;所述上下文信息可以包括家装设计软件中用户当前已设计的信息,例如,可以包括在当前房屋中已有的家具信息。
在实际应用中,可以根据用户的日常行为构建为适用于训练搜索推荐模型的训练数据集,并根据训练数据集对搜索推荐模型进行训练。训练数据集中,不同的训练数据对应的产品模型可能是相同的也可能是不同的,但是整个训练数据集可以覆盖产品模型库中的所有产品模型。训练完成后,搜索推荐模型可以用于供家装设计软件使用,实时预测当前用户选择各产品模型的概率。
图6为本申请实施例提供的一种使用搜索推荐模型后的展示示意图。如图6所示,家装设计软件可以向用户展示画布,用户可以在画布中构建自己的房屋,并在房屋中增加产品,如图所示,在画布中已经设计了柜子和落地灯。
家装设计软件还可以向用户展示搜索框,用户可以在搜索框中输入相应的关键字,例如,用户还想在房屋中增加一个桌子,则可以输入关键字“桌子”。符合要求的产品模型可能有很多,可以将用户画像信息、上下文信息例如当前房屋的信息以及房屋中已有家具的信息、各个符合要求的产品模型的信息输入到模型中,得到各个产品模型对应的概率,并将产品模型按照概率由大到小进行排序并展示,用户可以直接选中展示的产品模型并拖动到画布中,从而实现为房屋增加桌子。
综上,通过利用前述实施例训练得到的模型,对用户预测用户选择某一产品模型的概率,能够快速准确地找出用户最有可能选择的产品模型,还可以将用户最有可能选择的产品位于前列,方便用户选择,从而提升家装设计的效率,提升用户体验度。
图7为本申请实施例提供的一种预测方法的流程示意图。所述方法可以应用于家装领域,如图7所示,所述方法可以包括:
步骤701、根据用户输入的搜索信息,从产品模型库中查找对应的至少一个产品模型。
可选的,在产品模型库中,可以存储有多个产品模型,用户输入的搜索信息可以为产品的关键字,根据搜索信息,可以从产品模型库中,找出符合搜索信息的至少一个产品模型。
示例性地,若用户搜索的是“桌子”,则可以找出库中所有的桌子模型。若用户搜索的是“巴洛克”,则可以找出所有“巴洛克”风格的产品模型。
步骤702、根据所述用户的信息以及所述至少一个产品模型的信息,基于搜索推荐模型,确定所述各产品模型的被选概率,并根据被选概率对各产品模型进行排序。
其中,所述搜索推荐模型为根据前述任一实施例所述方法训练得到的模型。
可选的,可以将所述用户的信息以及产品模型的信息输入到搜索推荐模型,得到产品模型对应的被选概率,并依据被选概率进行排序。
步骤703、根据排序结果向用户展示所述至少一个产品模型。
图8为本申请实施例提供的一种家装场景的模型使用示意图。如图8所示,用户输入搜索信息后,可以从产品模型库中选出符合要求的产品模型,基于搜索推荐模型,可以得到各个产品模型对应的概率,再根据概率,将产品模型进行排序后展示给用户。
综上,本申请实施例可以根据用户输入的搜索信息,从产品模型库中查找对应的至少一个产品模型,根据所述用户的信息以及所述至少一个产品模型的信息,基于搜索推荐模型,确定所述各产品模型的被选概率,并根据被选概率对各产品模型进行排序,根据排序结果向用户展示所述至少一个产品模型,能够快速准确地预测用户选择各个符合要求的产品模型的概率,将概率较大的优先展示,方便用户选择,从而提升家装设计的效率,提升用户体验度。
对应于上述数据处理方法,本申请实施例还提供一种数据处理装置,所述装置包括:
第一确定模块,用于确定当前待处理的批次索引;其中,模型训练过程中,待处理的批次索引顺序变化;
排序模块,用于在确定已基于当前文件列表完成了一个轮次的训练时,将所述文件列表中的文件标识随机排序;其中,所述文件列表包括磁盘中多个文件对应的文件标识,所述文件包含至少一个批次的训练数据;
第二确定模块,用于根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件;
读取模块,用于在所述目标文件与内存中的文件不一致时,将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练。
在本申请的一个或多个实施例中,可选的,所述第二确定模块具体用于:
根据单个文件包含的批次数量以及所述批次索引,确定所述目标文件的文件标识在所述文件列表中的序号;
根据所述文件列表中各文件标识的顺序以及所述序号,确定对应的目标文件;
其中,单个文件包含的批次数量由预先设置的批次大小以及单个文件包含的训练数据的份数确定;所述批次大小用于表示单个批次包含的训练数据的份数。
在本申请的一个或多个实施例中,可选的,所述读取模块还用于:
若所述目标文件与内存中的文件一致,则根据所述批次索引、批次大小以及单个文件包含的批次数量,计算所述批次索引对应的训练数据在所述目标文件中的位置;
从内存中所述目标文件的相应位置读取所述批次索引对应的训练数据,并根据读取到的训练数据进行模型训练。
在本申请的一个或多个实施例中,可选的,所述第一确定模块还用于:
根据所述多个文件包含的训练数据的份数以及批次大小,计算批次索引的取值范围;
在根据所述批次索引对应的训练数据进行模型训练后,将待处理的批次索引更新为当前批次索引加一,或者,若当前批次索引为所述取值范围中的最大值,则设置更新后的批次索引为所述取值范围中的最小值,以继续对更新后的批次索引进行处理;
相应的,所述排序模块具体用于:
若所述批次索引为所述取值范围中的最小值,则确定已基于当前文件列表完成了一个轮次的训练,并将所述文件列表中的文件标识随机排序。
在本申请的一个或多个实施例中,可选的,所述读取模块在将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练时,具体用于:
将磁盘中的所述目标文件加载到内存,并对所述目标文件中包含的训练数据进行随机排序;
根据所述批次索引,从随机排序后的目标文件中,读取对应的训练数据进行模型训练。
在本申请的一个或多个实施例中,可选的,所述模型用于预测用户选择某一产品模型的概率;所述训练数据包括用户的特征信息、产品模型的特征信息以及标签,所述标签用于表示所述用户是否选中所述产品模型;所述读取模块还用于:
在训练模型之前,将用于训练所述模型的训练数据集下载到所述磁盘,并将所述训练数据集划分到所述多个文件中保存;
将所述训练数据集展示给参与模型训练的人员,以使所述人员对所述训练数据集中的异常数据进行处理;和/或,根据所述训练数据集中各项特征信息的中位数,检测所述训练数据集中的异常训练数据并进行处理。
对应于上述预测方法,本申请实施例还提供一种预测装置,包括:
查找模块,用于根据用户输入的搜索信息,从产品模型库中查找对应的至少一个产品模型;
第三确定模块,用于根据所述用户的信息以及所述至少一个产品模型的信息,基于搜索推荐模型,确定所述各产品模型的被选概率,并根据被选概率对各产品模型进行排序;
展示模块,用于根据排序结果向用户展示所述至少一个产品模型;
其中,所述搜索推荐模型为根据第一方面任一项所述方法训练得到的模型。
本申请实施例提供的数据处理装置和预测装置,可用于执行上述图1至图8所示实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图9为本申请实施例提供的一种电子设备的结构示意图。如图9所示,本实施例的电子设备可以包括:
至少一个处理器901;以及
与所述至少一个处理器通信连接的存储器902;
其中,所述存储器902存储有可被所述至少一个处理器901执行的指令,所述指令被所述至少一个处理器901执行,以使所述电子设备执行如上述任一实施例所述的方法。
可选地,存储器902既可以是独立的,也可以跟处理器901集成在一起。
本实施例提供的电子设备的实现原理和技术效果可以参见前述各实施例,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现前述任一实施例所述的方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例所述的方法。
本申请的技术方案中,所涉及的用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
确定当前待处理的批次索引;其中,模型训练过程中,待处理的批次索引顺序变化;
若确定已基于当前文件列表完成了一个轮次的训练,则将所述文件列表中的文件标识随机排序;其中,所述文件列表包括磁盘中多个文件对应的文件标识,所述文件包含至少一个批次的训练数据;
根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件;
若所述目标文件与内存中的文件不一致,则将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练。
2.根据权利要求1所述的方法,其特征在于,根据所述文件列表中文件标识的顺序,确定所述批次索引对应的训练数据所属的目标文件,包括:
根据单个文件包含的批次数量以及所述批次索引,确定所述目标文件的文件标识在所述文件列表中的序号;
根据所述文件列表中各文件标识的顺序以及所述序号,确定对应的目标文件;
其中,单个文件包含的批次数量由预先设置的批次大小以及单个文件包含的训练数据的份数确定;所述批次大小用于表示单个批次包含的训练数据的份数。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述目标文件与内存中的文件一致,则根据所述批次索引、批次大小以及单个文件包含的批次数量,计算所述批次索引对应的训练数据在所述目标文件中的位置;
从内存中所述目标文件的相应位置读取所述批次索引对应的训练数据,并根据读取到的训练数据进行模型训练。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据所述多个文件包含的训练数据的份数以及批次大小,计算批次索引的取值范围;
在根据所述批次索引对应的训练数据进行模型训练后,将待处理的批次索引更新为当前批次索引加一,或者,若当前批次索引为所述取值范围中的最大值,则设置更新后的批次索引为所述取值范围中的最小值,以继续对更新后的批次索引进行处理;
相应的,若根据所述批次索引确定已根据当前文件列表完成了一个轮次的训练,则将所述文件列表中的文件标识随机排序,包括:
若所述批次索引为所述取值范围中的最小值,则确定已基于当前文件列表完成了一个轮次的训练,并将所述文件列表中的文件标识随机排序。
5.根据权利要求1-4任一项所述的方法,其特征在于,将磁盘中的所述目标文件加载到内存,并从所述目标文件中读取所述批次索引对应的训练数据进行模型训练,包括:
将磁盘中的所述目标文件加载到内存,并对所述目标文件中包含的训练数据进行随机排序;
根据所述批次索引,从随机排序后的目标文件中,读取对应的训练数据进行模型训练。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述模型用于预测用户选择某一产品模型的概率;所述训练数据包括用户的特征信息、产品模型的特征信息以及标签,所述标签用于表示所述用户是否选中所述产品模型;在训练模型之前,还包括:
将用于训练所述模型的训练数据集下载到所述磁盘,并将所述训练数据集划分到所述多个文件中保存;
将所述训练数据集展示给参与模型训练的人员,以使所述人员对所述训练数据集中的异常数据进行处理;和/或,根据所述训练数据集中各项特征信息的中位数,检测所述训练数据集中的异常训练数据并进行处理。
7.一种预测方法,其特征在于,包括:
根据用户输入的搜索信息,从产品模型库中查找对应的至少一个产品模型;
根据所述用户的信息以及所述至少一个产品模型的信息,基于搜索推荐模型,确定所述各产品模型的被选概率,并根据被选概率对各产品模型进行排序;
根据排序结果向用户展示所述至少一个产品模型;
其中,所述搜索推荐模型为根据权利要求1-6任一项所述方法训练得到的模型。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行权利要求1-7任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-7任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210680739.6A CN114968942A (zh) | 2022-06-15 | 2022-06-15 | 数据处理方法、预测方法、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210680739.6A CN114968942A (zh) | 2022-06-15 | 2022-06-15 | 数据处理方法、预测方法、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968942A true CN114968942A (zh) | 2022-08-30 |
Family
ID=82963097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210680739.6A Pending CN114968942A (zh) | 2022-06-15 | 2022-06-15 | 数据处理方法、预测方法、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968942A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628509A (zh) * | 2023-07-21 | 2023-08-22 | 科大讯飞股份有限公司 | 模型训练方法、装置、设备及存储介质 |
CN117667853A (zh) * | 2024-01-30 | 2024-03-08 | 苏州元脑智能科技有限公司 | 数据读取方法、装置、计算机设备及存储介质 |
-
2022
- 2022-06-15 CN CN202210680739.6A patent/CN114968942A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628509A (zh) * | 2023-07-21 | 2023-08-22 | 科大讯飞股份有限公司 | 模型训练方法、装置、设备及存储介质 |
CN116628509B (zh) * | 2023-07-21 | 2023-12-01 | 科大讯飞股份有限公司 | 模型训练方法、装置、设备及存储介质 |
CN117667853A (zh) * | 2024-01-30 | 2024-03-08 | 苏州元脑智能科技有限公司 | 数据读取方法、装置、计算机设备及存储介质 |
CN117667853B (zh) * | 2024-01-30 | 2024-05-03 | 苏州元脑智能科技有限公司 | 数据读取方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114968942A (zh) | 数据处理方法、预测方法、设备、存储介质及程序产品 | |
CN107145538B (zh) | 表格数据查询方法、装置与系统 | |
CN105404688A (zh) | 搜索方法和搜索设备 | |
CN111680063B (zh) | Elasticsearch分页查询数据的方法及装置 | |
CN111198961A (zh) | 商品搜索方法、装置及服务器 | |
CN115964002B (zh) | 一种电能表终端档案管理方法、装置、设备及介质 | |
CN105488176A (zh) | 数据处理方法和装置 | |
CN111858728A (zh) | 不同数据源的数据抽取方法、装置、设备及存储介质 | |
CN109857366B (zh) | 基于外存的插入排序方法、系统、设备及存储介质 | |
CN106919587B (zh) | 应用程序搜索系统及方法 | |
CN114020946A (zh) | 一种基于多图检索数据融合的目标判断处理方法和系统 | |
CN101635001A (zh) | 从数据库提取信息的方法和设备 | |
CN111125499A (zh) | 数据查询方法及装置 | |
CN111488483B (zh) | 曲库更新方法、装置、终端和非临时性计算机可读存储介质 | |
CN106168960B (zh) | 一种数据资源的调整装置及其调整方法 | |
CN110688223B (zh) | 数据处理方法及相关产品 | |
CN110866000A (zh) | 数据质量评价方法、装置、电子设备及存储介质 | |
JP2020160494A (ja) | 情報処理装置、文書管理システム及びプログラム | |
CN108170664A (zh) | 基于重点关键词的关键词拓展方法和装置 | |
CN111061508B (zh) | 一种Java卡及其性能优化方法 | |
CN114637914A (zh) | 榜单处理方法、计算设备及存储介质 | |
CN116301655B (zh) | 一种历史笔记图片加载方法、系统和可读存储介质 | |
CN112579912A (zh) | 一种搜索方法、电子设备及计算机存储介质 | |
CN105260425A (zh) | 基于云盘的文件显示方法及装置 | |
CN114610793B (zh) | 一种基于大数据统计分析的交互方法、系统和存储介质 |
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 |