样本数据缓存方法、系统、计算机设备和存储介质与流程

未命名 09-16 阅读:85 评论:0


1.本技术涉及深度神经网络技术领域,特别是涉及一种样本数据缓存方法、系统、计算机设备和存储介质。


背景技术:

2.深度神经网络(deep neural networks,dnn)是深度学习的一种框架,一个深度神经网络模型由多个计算单元层组成,其输出作为后续单元的输入。dnn模型的训练包括前向传播方法,该方法顺序地将与输入数据相关的信息通过所有模型层,并生成预测结果。例如,在图像识别应用中,图像像素信息会通过各个层,以预测图像内容。为了生成预测结果,深度学习(deep learning,dl)根据前向传播输出和真实标签定义成本/损失函数。
3.在训练深度神经网络时,通常使用大型数据集,因为它们代表着多样性的真实场景。当前的研究多集中的模型本身的优化,比如量化、剪枝、蒸馏等,或者通信层面比如nvlink,infiniband以及通过加速卡的迭代升级提供性能更优越的gpu(graphics processing unit,图形处理器)和tpu(tensorprocessing unit,张量处理器)等硬件。但对于数据流处理过程中的瓶颈探索较少,存储资源的io能力并未跟上计算性能的提升速度,导致特别是在分布式某些训练场景下,io资源消耗占整体训练时间的85%以上。
4.dnn的训练过程需要对大量数据进行多轮迭代,一轮迭代过程称为一次epoch。在epoch中,需要对所有的数据项有且仅处理一次,数据以mini-batch的形式将数据从磁盘读入到内存当中。在训练过程中,io进程将数据加载到队列当中由cpu(central processing unit,中央处理器)进行预处理,数据处理完后就会对内存数据进行释放,在下轮epoch中需要重新将同一个数据项从磁盘读入内存当中,增加了很多冗余的io和预处理操作,导致深度神经网络的训练效率低。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够提高深度神经网络的训练效率的样本数据缓存方法、系统、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种样本数据缓存方法。所述方法包括:获取用于训练的样本数据列表;若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样本数据;若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗大于所述备选解码样本数据的解码资源消耗,则对所述第一样本数据进行解码处理,得到对应的目标解码样本数据;根据所述目标解码样本数据对所述缓存区域的解码样本数据集进行更新。
7.在其中一个实施例中,所述若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样
本数据,包括:若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,获取所述解码样本数据集中各解码样本数据的重要度;将所述重要度最小的解码样本确定为备选解码样本数据。
8.在其中一个实施例中,在所述获取用于训练的样本数据列表之前,所述方法还包括:获取解码后的样本数据集;确定所述样本数据集中各样本数据的重要度,以及从所述样本数据集确定目标数据样本集并将所述目标数据样本集缓存至缓存区域。
9.在其中一个实施例中,所述解码后的样本数据集中包括多个批量样本数据,所述确定所述样本数据集中各样本数据的重要度,包括:确定每个样本批量数据中单个第二样本数据的熵损失值;根据所述熵损失值对每个批量数据样本中的单个所述第二样本数据进行排序,得到单个所述第二样本数据的重要度;所述重要度用于表征样本数据对所述深度神经网络精度的影响程度。
10.在其中一个实施例中,所述根据所述熵损失值对每个批量数据样本中的单个所述第二样本数据进行排序,得到单个所述第二样本数据的重要度,包括:从所述每个批量数据样本中确定作为参考的参考样本数据,获取所述参考样本数据的熵损失值;通过判断所述每个批量数据样本中的单个所述第二样本数据的熵损失值是否大于所述参考样本数据的熵损失值,对每个批量数据样本中的单个所述第二样本数据进行排序,得到单个所述第二样本数据的重要度。
11.在其中一个实施例中,所述方法还包括:若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗小于所述备选解码样本数据的解码资源消耗,则不更新所述缓存区域的解码样本数据集。
12.第二方面,本技术还提供了一种样本数据缓存系统。所述系统包括数据层,其中,所述数据层中包括:样本列表获取模块,用于响获取用于训练的样本数据列表;备选解码样本确定模块,用于若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样本数据;目标解码样本确定模块,用于若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗大于所述备选解码样本数据的解码资源消耗,则对所述第一样本数据进行解码处理,得到对应的目标解码样本数据;缓存更新模块,用于根据所述目标解码样本数据对所述缓存区域的解码样本数据集进行更新。
13.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理
器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取用于训练的样本数据列表;若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样本数据;若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗大于所述备选解码样本数据的解码资源消耗,则对所述第一样本数据进行解码处理,得到对应的目标解码样本数据;根据所述目标解码样本数据对所述缓存区域的解码样本数据集进行更新。
14.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取用于训练的样本数据列表;若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样本数据;若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗大于所述备选解码样本数据的解码资源消耗,则对所述第一样本数据进行解码处理,得到对应的目标解码样本数据;根据所述目标解码样本数据对所述缓存区域的解码样本数据集进行更新。
15.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:获取用于训练的样本数据列表;若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样本数据;若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗大于所述备选解码样本数据的解码资源消耗,则对所述第一样本数据进行解码处理,得到对应的目标解码样本数据;根据所述目标解码样本数据对所述缓存区域的解码样本数据集进行更新。
16.上述样本数据缓存方法、系统、计算机设备、存储介质和计算机程序产品,响应于深度神经网络训练的数据请求,获取用于训练的样本数据列表;在缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据的情况下,通过从解码样本数据集中确定备选解码样本数据,比较备选解码样本数据和第一样本数据的重要度以及解码资源消耗,在第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗的情况下,根据第一样本数据的目标解码样本数据对缓存区域的解码样本数据集进行更新,在进行训练时,考虑了样本数重要度和解码资源消耗两个维度,来优化缓存区域中的解码样本数据,不需要重新将同一个数据项从磁盘读入内存,减少了很多冗余的io和以及考虑了数据解码本身的资源消耗,缩短了整体的训练时长,进而提高了训练效率。
附图说明
17.图1为一个实施例中训练过程中各环节的资源消耗示意图;
图2为一个实施例中样本数据缓存方法的应用环境图;图3为一个实施例中样本数据缓存方法的流程示意图;图4为一个实施例中确定样本数据重要度方法的流程示意图;图5为另一个实施例中样本数据缓存方法的流程示意图;图6为一个实施例中样本数据缓存系统的结构框图;图7为一个实施例中计算机设备的内部结构图。
具体实施方式
18.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
19.深度神经网络是深度学习的一种框架,在计算视觉、自然语言处理、机器人、无人驾驶、生物医疗和其他领域已被广泛应用。dnn模型的训练包括前向传播方法,该方法顺序地将与输入数据相关的信息通过所有模型层,并生成预测结果。例如,在图像识别应用中,图像像素信息会通过各个层,以预测图像内容。为了生成预测结果,dl根据前向传播输出和真实标签定义成本/损失函数。dl过程旨在通过增加或减少模型中间层输出的权重,以最小化成本函数,从而改进预测结果,这一步被称为反向传播,它通过梯度下降优化技术从最外层开始调整dl模型的参数,回溯到输入层。梯度下降会将参数朝着梯度的相反方向进行调整。基于sgd(stochastic gradient descent)的dl训练通过简单地应用随机抽样或shuffle来生成每个训练周期结束时的随机排列顺序,从而平等地对待所有训练样本。shuffle是指对于给定的数据集,随机打乱其样本的顺序,以避免模型学习到数据的顺序模式。
20.深度神经网络训练过程中的可以分为四个部分:原始数据加载、数据解码、数据增强、gpu的计算并进行梯度更新。深度神经网络训练过程中存在资源消耗,如图1所示,为一个实施例中训练过程中各环节的资源消耗示意图,包括io资源消耗、解码资源消耗、图形处理单元的资源消耗和图形变换资源消耗。
21.然而,深度神经网络的训练速度在深度神经网络训练过程中占据着比较重要的地位。为了提高深度神经网络的训练效率,通过缓存原始数据减小io方面资源消耗,提高数据的处理性能。然而目前通过缓存原始数据的方式来提高训练效率无法满足实际的需求。因此针对深度神经网络的训练效率低这一问题,提出了一种样本数据缓存方法。
22.本技术实施例提供的样本数据缓存方法,可以应用于如图2所示的应用环境中。其中,服务器中包括控制层202和数据层204。控制层计算样本数据的重要度,运行模型训练以及发送深度神经网络的训练的数据请求;数据层204包括第一优先级队列pq和第二优先级队列(gc,garbage collection),用于跟踪当前缓存的解码样本数据以及记录所有访问样本数据。
23.数据层202响应控制层204发送的深度神经网络训练的数据请求,获取用于训练的样本数据列表;若缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据,则从解码样本数据集中确定备选解码样本数据;若第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备
选解码样本数据的解码资源消耗,则对第一样本数据进行解码处理,得到对应的目标解码样本数据;根据目标解码样本数据对缓存区域的解码样本数据集进行更新。进一步地,本技术实施例中样本数据缓存方法可以是一种基于重要性采样的缓存优化方法,其中,重要性采样的访问方式,对样本数据的访问频率是不同的。重要性采样可以理解为是找到比其他样本更重要,即对损失函数贡献最大的训练样本的过程。换言之,在深度学习训练过程中,不同数据对模型的精度影响也是不同的,hard to learning的样本通常重要性更高,在训练过程中提高对重要性高的样本的访问频率,能够加速模型的收敛速度。hard to learning的样本可以是机器学习模型难以学习和分类的样本。
24.可以理解的是,控制层和数据层都可以同时存在于终端和服务器端,可以根据具体的系统架构和应用场景来确定。控制层和数据层也可以分别存在于终端和服务器端中,例如,在一些传统的客户端/服务器系统中,数据层通常位于服务器端,控制层位于终端客户端。例如,控制层存在终端,数据层存在服务器中,控制层计算样本数据的重要度,运行深度神经网络的训练以及发送深度神经网络的训练的数据请求;数据层用于跟踪当前缓存的解码样本数据以及记录所有访问样本数据。
25.在一个实施例中,如图3所示,提供了一种样本数据缓存方法,以该方法应用于图1中所示的应用环境为例进行说明,包括以下步骤:步骤302,获取用于训练的样本数据列表。
26.其中,样本数据列表包括至少一个用于训练的样本数据标识,每个样本数据标识存在对应的样本数据。
27.具体地,在进行深度神经网络训练之前,获取用于训练的原始样本数据集,对原始样本数据集进行解码处理后,得到解码样本数据集并存储在磁盘中,根据预设缓存条件,从磁盘的解码样本数据集中获取目标解码样本数据集存储至缓存区域中。缓存区域缓存的是解码样本数据,即对原始样本数据解码后的张量数据进行缓存,能够对解码数据重用缩短整体训练时间。在对深度神经网络训练进行训练时,控制层向数据层发送深度神经网络训练的数据请求,数据层响应数据请求从控制层获取训练所需的样本数据列表。从缓存中去查找是否存在与样本数据列表匹配的解码样本数据。其中,原始样本数据可以是图像。
28.步骤304,若缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据,则从解码样本数据集中确定备选解码样本数据。
29.其中,确定备选解码样本数据的方式可以根据缓存样本数据集中各解码样本数据的重要度来确定。基于不同场景的需求,可以是预设的重要度范围,也可以设定的重要度阈值。解码样本数据的重要度可以通过数据的访问频率来体现,例如,数据的重要度越高,则对应的访问频率也越高。
30.步骤306,若第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗,则对第一样本数据进行解码处理,得到对应的目标解码样本数据。
31.其中,预设条件可以是第一样本数据的重要度与备选解码样本数据的重要度相等,也可以是第一样本数据的重要度与备选解码样本数据的重要度的差值在预设阈值范围内。本实例以预设条件是第一样本数据的重要度与备选解码样本数据的重要度相等为例进行说明。可以理解的是,第一样本数据的解码资源消耗大于备选解码样本数据的解码资源
消耗,则说明第一样本数据可以是受益最高的样本。受益最高的样本可以是机器学习模型在训练数据集中,对于该模型最难以处理的、需要更多次训练的样本。第一样本数据的数量可以是一个,也可以是两个,这里对第一样本的数量不做限定。解码资源消耗的确定方式可以通过现有方式来确定,在此不做赘述。
32.样本数据的重要度以及解码资源消耗在可以通过数据层中的组件来记录。数据层的组件中包括元数据管理器和分布式内存键值存储服务器,元数据管理器使用两个基于堆的第一优先级队列pq和第二优先级队列(gc,garbage collection)。pq用于跟踪当前缓存的解码样本数据,gc记录了所有访问的样本。pq和gc存储样本id和元数据的记录《is,af,at》的映射关系,其中is是样本的重要度,af是访问频率,at是解码资源消耗。第一优先级队列pq的缓存顺序不是先进先出(fifo)而是按照队列中的元素的优先级来决定,本实施例中的优先级是基于样本数据的重要度和解码资源消耗的优先级来确定。例如,存在10%的样本数据的访问频率都一样,在重要度相同的情况下,优先选择缓存解码开销高的样本数据进行缓存。
33.步骤308,根据目标解码样本数据对缓存区域的解码样本数据集进行更新。
34.其中,在一个epoch(又称为训练周期或迭代次数)内,一个数据样本也可以在多个minibatch(也称为批量大小)中被访问,缓存区域的各解码样本数据会随着训练的迭代发生变化。对缓存区域的解码样本数据集进行更新的方式包括将备选解码样本数据从缓存区域的解码样本数据集中删除,将目标解码样本数据添加至缓存区域的解码样本数据集中。
35.具体地,在缓存区域缓存存满的情况下,获取到样本数据列表,若缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据,则对第一样本数据和备选解码样本数据的重要度以及解码资源消耗进行检测,若第一样本数据的重要度与备选解码样本数据的重要度相等,且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗,则从磁盘中第一样本数据,此时获取的第一样本数据是编码后的数据,通过对第一样本数据进行解码,得到对应的目标解码样本数据。将备选解码样本数据从缓存区域的解码样本数据集中删除,将目标解码样本数据添加至缓存区域的解码样本数据集中,并将目标解码样本数据的元数据记录在优先队列中。
36.可以理解的是,深度神经网络训练进行训练时,通常将用于训练的样本数据集划分为多个批次,每个批次包含固定数量的样本数据。在一轮训练中,模型会遍历整个训练数据集,对每个批次进行参数更新,直到训练结束。本实例以一轮训练的样本数据缓存为例进行说明。在多轮训练中,可以重复上述样本数据缓存的步骤,并反复使用难以学习的样本进行训练,因此可以确保提供良好的缓存命中率以及提高训练的精度。
37.上述样本数据缓存方法,响应于深度神经网络训练的数据请求,获取用于训练的样本数据列表;在缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据的情况下,通过从解码样本数据集中确定备选解码样本数据,比较备选解码样本数据和第一样本数据的重要度以及解码资源消耗,在第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗的情况下,根据第一样本数据的目标解码样本数据对缓存区域的解码样本数据集进行更新,在进行深度神经网络训练时,考虑了样本数据的重要度和解码资源消耗两个不同粒度,来优化缓存区域中的解码样本数据,能够将受益最高的进行缓存,不
需要重新将同一个数据项从磁盘读入内存,以及确保更多的满足重要度预设条件的解码样本数据保存在缓存中,减少了很多冗余的io和以及考虑了数据解码本身的资源消耗,缩短了整体的训练时长,进而提高了训练效率。
38.在一个实施例中,如图4所示,提供了一种确定样本数据重要度方法,包括以下步骤:步骤402,获取解码后的样本数据集;其中,解码后的样本数据集中包括多个批量样本数据。
39.步骤404,确定每个样本批量数据中单个第二样本数据的熵损失值。
40.步骤406,根据熵损失值对每个批量数据样本中的单个第二样本数据进行排序,得到单个第二样本数据的重要度;重要度用于表征样本数据对深度神经网络精度的影响程度。
41.其中,控制层通过样本级的细粒度计算每个样本的重要度,即重要度。换言之,通过样本级别的损失信息即小批量中单个样本的熵损失值来计算每个样本数据的重要度,熵损失值可以理解为是样本数据的分类交叉熵。每个样本数据的分类交叉熵表示模型能够预测样本类别标签的不确定性,测量不确定性能够确定样本数据的重要性。分类交叉熵的计算方式可以表示为:
42.其中,ti表示样本在类别i下的hot-encoded真实标签,si表示一个minibatch中样本在类别i下的softmax概率,si的计算方式如下:
43.其中,ri表示样本属于第i类的原始似然度,rj表示样本属于第j类的原始似然度,分母是一个标准化项。可以理解的是,使用softmax标准化方法能有效识别原始似然度的小大变化,从而相应地分配重要度;以及确保获取到为正值的指数。基于样本的熵损失值可以确定深度神经网络训练最重要的样本。
44.进一步地,由于softmax是连续可微的,因此可以计算出dnn模型每个权重相对于代价函数的导数。使用上述方式确定所有基于样本的熵损失来计算平均熵损失。一个样本的熵损失值越高,意味着模型会对这个样本产生多个预测,但只有其中一个是正确的,因此,模型难以为该样本生成一个准确的预测。相应地,一个样本的熵值越低,意味着模型可以为其生成一个高精度的单一预测。因此,样本的熵值越低,表示它在提高模型在后续时期的准确性方面的作用不是很大,而较高的熵值则表示相反的情况。
45.也就是说,每个样本的熵计算为量化不同样本的重要性提供一个简单的方法,但是无法说明minibatch间的不同样本对模型精确度的贡献程度不同,因此,根据熵损失值对每个批量数据样本中的单个第二样本数据进行排序,得到单个第二样本数据的重要度,重要度的确定方式包括:从每个批量数据样本中确定作为参考的参考样本数据,获取参考样本数据的熵损失值;通过判断每个批量数据样本中的单个第二样本数据的熵损失值是否大
于参考样本数据的熵损失值,对每个批量数据样本中的单个第二样本数据进行排序,得到单个第二样本数据的重要度。
46.其中,参考样本数据的确定可以根据实际需求进行确定,例如可以选取每批量数据样本中的第一个样本数据作为参考样本数据。
47.确定样本数据的重要度可以通过基于对数的排名算法来确定,具体方式如下:
48.在一个包含b个样本的小批量中,第i个样本的基于排名的重要度度表示为ranki。li和lk分别表示第i个和第k个样本的熵损失,即熵损失值。b0是用于在对数尺度上固定排名范围的偏差项。i是一个恒等函数,当条件li》lk为真时返回1,否则返回0。对于批次b中的每个k项,可以将每个样本数据放置在适当的排名中。
49.例如,两个小批量b1和b2包含样本《4, 5, 6》和《7, 8, 9》。假设b1中的样本具有熵得分《0.3, 0.5, 0.4》,而b2中的样本具有《0.6, 1.2, 0.8》的熵得分。由于这些熵值是原始值,在跨小批量比较样本的重要度会存在不准确的问题。例如,基于优先级队列的缓存在对两个小批次中的所有样本进行排序时,将b1中的样本5排名为全局较低的一半,即使样本5在b1中是最重要的样本。通过熵损失值对这些样本进行排序会给出相对于b1和b2的排名,这意味着样本5和8分别是b1和b2中最重要的样本,并且能够得出一个minibatch中排名前x%的重要数据一定在整个数据集中排名前x%。
50.上述确定样本数据重要度方法中,通过计算每个样本批量数据中单个样本数据的熵损失值,基于单个样本数据的熵损失值确定每个样本数据在对应批样本数据中的不同样本对模型精确度的重要度,可以对难以学习的样本进行训练,确保提供良好的缓存命中率以及提高训练的精度。
51.在另一个实施例中,如图5所示,提供了一种样本数据缓存方法,以该方法应用于图1中所示的应用环境为例进行说明,包括以下步骤:步骤502,获取解码后的样本数据集。
52.步骤504,确定样本数据集中各样本数据的重要度,以及从样本数据集确定目标数据样本集并将目标数据样本集缓存至缓存区域。
53.其中,确定目标数据样本集的数量可以根据缓存区域的大小来确定,也可以根据各样本数据的重要度以及缓存区域的大小来确定,对此不做限定。
54.步骤506,获取用于训练的样本数据列表。
55.步骤508,若缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据,获取解码样本数据集中各解码样本数据的重要度。
56.步骤510,将重要度最小的解码样本确定为备选解码样本数据。
57.步骤512,若第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗,则对第一样本数据进行解码处理,得到对应的目标解码样本数据。
58.步骤514,根据目标解码样本数据对缓存区域的解码样本数据集进行更新。
59.可选地,在一个实施例中,若第一样本数据的重要度与备选解码样本数据的重要
度满足预设条件且第一样本数据的解码资源消耗小于备选解码样本数据的解码资源消耗,则不更新缓存区域的解码样本数据集。
60.可选地,在一个实施例中,通过pytorch 1.7实现上述样本数据缓存方法。其中,pytorch包括dataset,sampler和dataloader三个主要组件。dataset类提供了数据集的访问方法,并公开了一个get_item接口,用于获取给定索引的样本及其目标label。sampler为训练过程提供数据集的子集,采用随机排列。dataloader利用sampler提供的信息,在工作进程的帮助下以小批量方式加载样本。在系统中,我们通过继承pytorch dataset类来实现一个新的类isdataset,该类具有将样本及其对应的类标签组合在一起的功能,以便dataloader可以轻松地从远程存储中获取用于训练的样本数据,该类具有缓存数据项筛选策略的主要逻辑。
61.在 isdataset类中,我们通过覆盖get_item和len方法来介绍数据层的逻辑。len方法返回 isdataset的总长度,get_item方法获取数据样本相关联的索引,使客户层能够以每个样本为粒度找到重要度及解码资源消耗。此外,get_item方法连接到内存池缓存,即缓存区域,基于优先级队列缓存策略,检测到若缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据,则从解码样本数据集中确定备选解码样本数据;若第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗,则对第一样本数据进行解码处理,得到对应的目标解码样本数据;根据目标解码样本数据对缓存区域的解码样本数据集进行更新。
62.上述样本数据缓存方法,响应于深度神经网络训练的数据请求,获取用于训练的样本数据列表;在缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据的情况下,通过从解码样本数据集中确定备选解码样本数据,比较备选解码样本数据和第一样本数据的重要度以及解码资源消耗,在第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗的情况下,根据第一样本数据的目标解码样本数据对缓存区域的解码样本数据集进行更新,在进行训练时,考虑了样本数重要度和解码资源消耗两个维度,来优化缓存区域中的解码样本数据,不需要重新将同一个数据项从磁盘读入内存,减少了很多冗余的io和以及考虑了数据解码本身的资源消耗,缩短了整体的训练时长,进而提高了训练效率。也就是说,结合了深度学习训练的数据流处理特点以及缓存的优化方式,在降低成本的同时也提高了训练速度。
63.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
64.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的样本数据缓存方法的样本数据缓存系统。该系统所提供的解决问题的实现方案与上述方法中所记
载的实现方案相似,故下面所提供的一个或多个样本数据缓存系统实施例中的具体限定可以参见上文中对于样本数据缓存方法的限定,在此不再赘述。
65.在一个实施例中,如图6所示,提供了一种样本数据缓存系统,样本数据缓存系统包括数据层,数据层中包括样本列表获取模块602、备选解码样本确定模块604、目标解码样本确定模块606和缓存更新模块608,其中:样本列表获取模块602,用于响获取用于训练的样本数据列表。
66.备选解码样本确定模块604,用于若缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据,则从解码样本数据集中确定备选解码样本数据。
67.目标解码样本确定模块606,用于若第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗,则对第一样本数据进行解码处理,得到对应的目标解码样本数据;缓存更新模块608,用于根据目标解码样本数据对缓存区域的解码样本数据集进行更新。
68.上述样本数据缓存系统,响应于深度神经网络训练的数据请求,获取用于训练的样本数据列表;在缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据的情况下,通过从解码样本数据集中确定备选解码样本数据,比较备选解码样本数据和第一样本数据的重要度以及解码资源消耗,在第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗的情况下,根据第一样本数据的目标解码样本数据对缓存区域的解码样本数据集进行更新,在进行训练时,考虑了样本数重要度和解码资源消耗两个维度,来优化缓存区域中的解码样本数据,不需要重新将同一个数据项从磁盘读入内存,减少了很多冗余的io和以及考虑了数据解码本身的资源消耗,缩短了整体的训练时长,进而提高了训练效率。
69.在另一个实施例中,提供了一种样本数据缓存系统,样本数据缓存系统包括数据层,数据层除包括样本列表获取模块602、备选解码样本确定模块604、目标解码样本确定模块606和缓存更新模块608之外,还包括:重要度确定模块和缓存模块,其中:备选解码样本确定模块604还用于若缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据,获取解码样本数据集中各解码样本数据的重要度;将重要度最小的解码样本确定为备选解码样本数据。
70.重要度确定模块,用于获取解码后的样本数据集;确定样本数据集中各样本数据的重要度。
71.缓存模块,用于从样本数据集确定目标数据样本集并将目标数据样本集缓存至缓存区域。
72.在一个实施例中,重要度确定模块还用于确定每个样本批量数据中单个第二样本数据的熵损失值;根据熵损失值对每个批量数据样本中的单个第二样本数据进行排序,得到单个第二样本数据的重要度;重要度用于表征样本数据对深度神经网络精度的影响程度。
73.在一个实施例中,重要度确定模块还用于从每个批量数据样本中确定作为参考的参考样本数据,获取参考样本数据的熵损失值;通过判断每个批量数据样本中的单个第二样本数据的熵损失值是否大于参考样本数据的熵损失值,对每个批量数据样本中的单个第二样本数据进行排序,得到单个第二样本数据的重要度。
74.在一个实施例中,缓存更新模块608还用于若第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗小于备选解码样本数据的解码资源消耗,则不更新缓存区域的解码样本数据集。
75.上述样本数据缓存系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
76.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储样本数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种样本数据缓存方法。
77.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
78.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
79.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
80.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
81.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
82.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器
(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random accessmemory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
83.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
84.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种样本数据缓存方法,其特征在于,所述方法包括:获取用于训练的样本数据列表;若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样本数据;若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗大于所述备选解码样本数据的解码资源消耗,则对所述第一样本数据进行解码处理,得到对应的目标解码样本数据;根据所述目标解码样本数据对所述缓存区域的解码样本数据集进行更新。2.根据权利要求1所述的方法,其特征在于,所述若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样本数据,包括:若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,获取所述解码样本数据集中各解码样本数据的重要度;将所述重要度最小的解码样本确定为备选解码样本数据。3.根据权利要求1所述的方法,其特征在于,在所述获取用于训练的样本数据列表之前,所述方法还包括:获取解码后的样本数据集;确定所述样本数据集中各样本数据的重要度,以及从所述样本数据集确定目标数据样本集并将所述目标数据样本集缓存至缓存区域。4.根据权利要求3所述的方法,其特征在于,所述解码后的样本数据集中包括多个批量样本数据,所述确定所述样本数据集中各样本数据的重要度,包括:确定每个样本批量数据中单个第二样本数据的熵损失值;根据所述熵损失值对每个批量数据样本中的单个所述第二样本数据进行排序,得到单个所述第二样本数据的重要度;所述重要度用于表征样本数据对深度神经网络精度的影响程度。5.根据权利要求4所述的方法,其特征在于,所述根据所述熵损失值对每个批量数据样本中的单个所述第二样本数据进行排序,得到单个所述第二样本数据的重要度,包括:从所述每个批量数据样本中确定作为参考的参考样本数据,获取所述参考样本数据的熵损失值;通过判断所述每个批量数据样本中的单个所述第二样本数据的熵损失值是否大于所述参考样本数据的熵损失值,对每个批量数据样本中的单个所述第二样本数据进行排序,得到单个所述第二样本数据的重要度。6.根据权利要求1至权利要求5任意一项所述的方法,其特征在于,所述方法还包括:若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗小于所述备选解码样本数据的解码资源消耗,则不更新所述缓存区域的解码样本数据集。7.一种样本数据缓存系统,其特征在于,所述系统包括数据层,其中,所述数据层中包括:样本列表获取模块,用于响获取用于训练的样本数据列表;
备选解码样本确定模块,用于若缓存区域的解码样本数据集中不存在与所述样本数据列表中第一样本数据匹配的解码样本数据,则从所述解码样本数据集中确定备选解码样本数据;目标解码样本确定模块,用于若所述第一样本数据的重要度与所述备选解码样本数据的重要度满足预设条件且所述第一样本数据的解码资源消耗大于所述备选解码样本数据的解码资源消耗,则对所述第一样本数据进行解码处理,得到对应的目标解码样本数据;缓存更新模块,用于根据所述目标解码样本数据对所述缓存区域的解码样本数据集进行更新。8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至权利要求6中任一项所述的方法的步骤。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求6中任一项所述的方法的步骤。10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至权利要求6中任一项所述的方法的步骤。

技术总结
本申请涉及一种样本数据缓存方法、系统、计算机设备和存储介质。所述方法包括:获取用于训练的样本数据列表;若缓存区域的解码样本数据集中不存在与样本数据列表中第一样本数据匹配的解码样本数据,则从解码样本数据集中确定备选解码样本数据;若第一样本数据的重要度与备选解码样本数据的重要度满足预设条件且第一样本数据的解码资源消耗大于备选解码样本数据的解码资源消耗,则对第一样本数据进行解码处理,得到对应的目标解码样本数据;根据目标解码样本数据对缓存区域的解码样本数据集进行更新。采用本方法减少冗余的IO和考虑了数据解码本身的资源消耗,缩短了整体的训练时长,进而提高了训练效率。进而提高了训练效率。进而提高了训练效率。


技术研发人员:韩珂 李勇 曾令仿 陈光 吴运翔 程稳
受保护的技术使用者:之江实验室
技术研发日:2023.08.16
技术公布日:2023/9/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐