一种数据存储方法及装置、数据读取方法及装置、设备与流程

文档序号:32073324发布日期:2022-11-05 03:36阅读:57来源:国知局
一种数据存储方法及装置、数据读取方法及装置、设备与流程

1.本发明涉及数据处理技术领域,特别是涉及一种数据存储方法及装置、数据读取方法及装置、设备及非易失性存储介质。


背景技术:

2.人工智能在近几年得到了快速发展,人工智能的机器学习需要对数据集进行收集,标记及预处理等。而后才能在机器学习与深度学习的训练与推论中被读取与使用。
3.然而数据集的读写对整体人工智能训练与推论的效能有可能有极大的负面影响,主要原因包括:(1)数据集依不同演算法的需求,其个数可能成千上万或更多 (每个都是例如图档,文字或语音);(2)数据集需要经过预处理为可用的训练/测试数据写入硬盘;(3)数据集经过预处理后,通常每项数据都会变小,且其大小是固定的;(4)以上三步骤完成后,训练与推论的过程其实是“读取”成千上万小数据量的数据集数据,进行运算。也就是说要存取一个数据集,实际上需要执行很多系统程序,并且需要在硬盘中花费时间搜寻该数据集的所有数据项,以还原成原来的数据集。需要花费大量时间捜寻硬盘大部份不连续的区块,才能组合为原数据集,导致数据读写效率低。
4.综上所述,如何有效地解决花费大量时间捜寻硬盘大部份不连续的区块,才能组合为原数据集,导致数据读写效率低等问题,是目前本领域技术人员急需解决的问题。


技术实现要素:

5.本发明的目的是提供一种数据存储方法,该方法节省了数据读取的时间,提升了数据读写效率;本发明的另一目的是提供一种数据存储装置、数据读取方法及装置、设备及非易失性存储介质。
6.为解决上述技术问题,本发明提供如下技术方案:一种数据存储方法,包括:接收待存储的目标数据集;获取所述目标数据集中每项数据的数据大小;其中,所述目标数据集中各项数据的大小相同;将所述目标数据集中各项数据存储至硬盘中连续且大小相同的各目标区块;其中,各所述目标区块的区块大小根据所述数据大小确定。
7.在本发明的一种具体实施方式中,在接收待存储的目标数据集之后,获取所述目标数据集中每项数据的数据大小之前,还包括:对所述目标数据集进行第一预处理操作;其中,所述第一预处理操作为未增加数据大小的预处理操作。
8.在本发明的一种具体实施方式中,对所述目标数据集进行第一预处理操作,包括:对所述目标数据集进行除归一化预处理之外的预处理操作。
9.在本发明的一种具体实施方式中,接收待存储的目标数据集,包括:
接收待存储的用于人工智能模型训练的目标数据集。
10.在本发明的一种具体实施方式中,获取所述目标数据集中每项数据的数据大小,包括:获取所述目标数据集中由数据本身、数据标签以及数据档名构成的每项数据的数据大小。
11.在本发明的一种具体实施方式中,还包括根据所述数据大小确定所述目标区块的区块大小的过程,根据所述数据大小确定所述目标区块的区块大小的过程,包括:获取预设的各可选区块大小;从大于所述数据大小的各所述可选区块大小中选取得到所述目标区块的区块大小。
12.在本发明的一种具体实施方式中,从大于所述数据大小的各所述可选区块大小中选取得到所述目标区块的区块大小,包括:从大于所述数据大小的各所述可选区块大小中选取与所述数据大小差值最小的可选区块大小;将与所述数据大小差值最小的可选区块大小确定为所述目标区块的区块大小。
13.在本发明的一种具体实施方式中,在获取预设的各可选区块大小之后,还包括:判断所述数据大小是否小于等于各所述可选区块大小中的最大值;若是,则执行所述从大于所述数据大小的各所述可选区块大小中选取得到所述目标区块的区块大小的步骤;若否,则将各所述可选区块大小中的最大值确定为所述目标区块的区块大小。
14.一种数据读取方法,包括:接收数据读取命令;从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据;其中,各所述目标区块的区块大小根据每项数据的数据大小确定,且所述目标数据集中各项数据的大小相同;将读取到的各项数据返回给所述数据读取命令的发送端。
15.在本发明的一种具体实施方式中,在从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据之后,将读取到的各项数据返回给所述数据读取命令的发送端之前,还包括:对读取到的各项数据进行第二预处理操作;其中,所述第二预处理操作为增加数据大小的预处理操作。
16.在本发明的一种具体实施方式中,对读取到的各项数据进行第二预处理操作,包括:对读取到的各项数据进行归一化预处理操作。
17.在本发明的一种具体实施方式中,接收数据读取命令,包括:接收读取用于人工智能模型训练的目标数据集的数据读取命令。
18.在本发明的一种具体实施方式中,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据,包括:当所述目标区块的区块大小大于等于所述数据大小时,按照目标区块与每项数据
的一对一关系,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据。
19.在本发明的一种具体实施方式中,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据,包括:当所述目标区块的区块大小小于所述数据大小时,按照目标区块与每项数据的多对一关系,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据;其中,每项数据预先存储在相邻连续区块中。
20.一种数据存储装置,包括:数据集接收模块,用于接收待存储的目标数据集;数据大小获取模块,用于获取所述目标数据集中每项数据的数据大小;其中,所述目标数据集中各项数据的大小相同;数据存储模块,用于将所述目标数据集中各项数据存储至硬盘中连续且大小相同的各目标区块;其中,各所述目标区块的区块大小根据所述数据大小确定。
21.一种数据读取装置,包括:读取命令接收模块,用于接收数据读取命令;数据读取模块,用于从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据;其中,各所述目标区块的区块大小根据每项数据的数据大小确定,且所述目标数据集中各项数据的大小相同;数据返回模块,用于将读取到的各项数据返回给所述数据读取命令的发送端。
22.一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如前所述数据存储方法或数据读取方法的步骤。
23.一种非易失性存储介质,所述非易失性存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述数据存储方法或数据读取方法的步骤。
24.本发明所提供的数据存储方法,接收待存储的目标数据集;获取目标数据集中每项数据的数据大小;其中,目标数据集中各项数据的大小相同;将所述目标数据集中各项数据存储至硬盘中连续且大小相同的各目标区块;其中,各所述目标区块的区块大小根据所述数据大小确定。
25.由上述技术方案可知,通过依据待存储的目标数据集中每项数据的固定大小设定硬盘的目标区块的区块大小,保证目标数据集中各项数据存储至硬盘连续区块。使得数据存储得到较大优化,在数据读取时能够从硬盘连续区块中直接读取,节省了数据读取的时间,提升了数据读写效率。
26.相应的,本发明还提供了与上述数据存储方法相对应的数据存储装置、数据读取方法及装置、设备和非易失性存储介质,具有上述技术效果,在此不再赘述。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
28.图1为本发明一些实施例中数据存储方法的一种实施流程图;图2为本发明一些实施例中数据存储方法的另一种实施流程图;图3为本发明一些实施例中数据读取方法的一种实施流程图;图4为本发明一些实施例中数据读取方法的另一种实施流程图;图5为本发明一些实施例中一种手写辨识数据集图档示意图;图6为本发明一些实施例中一种对手写辨识数据集图档归一化后的示意图;图7为本发明一些实施例中一种数据集图档分类示意图;图8为本发明一些实施例中一种数据存储装置的结构框图;图9为本发明一些实施例中一种数据读取装置的结构框图;图10为本发明一些实施例中一种电子设备的结构框图;图11为本发明一些实施例中提供的一种电子设备的具体结构示意图。
具体实施方式
29.现有的数据存储方法,储存在硬盘中的每笔数据,作业系统、档案系统是不保证其连续性的,也就是说每个数据,因为配合硬盘与档案系统规划的区块大小,会被切割为数据区块,无法保证连续,实际上是常常不连续地储存在硬盘之中。读取数据的部分仍需要cpu(central processing unit,中央处理器),主记忆体与硬盘i/o(input/output,输入/输出)系统加上相关软体与作业系统一起完成数据读写,这代表gpu(graphics processing unit,图形处理器)、cpu、主记忆体与硬盘i/o以及相关软体与作业系统彼此需要频繁地沟通与传输非地址连续的数据,也就是说用户在应用层要存取一个数据,实际上需要执行很多作业系统、档案系统的程序,并且需要在硬盘中花费时间搜寻该数据的所有数据区块,以组合还原成原来的档案。从而导致数据集的读写对整体人工智能训练与推论的效能有可能造成极大的负面影响,进而导致读写效能下降。
30.为此,本技术中提供的数据存储方法中,保证目标数据集中各项数据存储至硬盘连续区块,使得数据存储得到较大优化,在数据读取时能够从硬盘连续区块中直接读取,节省了数据读取的时间,提升了数据读写效率。
31.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.参见图1,图1为本发明实施例中数据存储方法的一种实施流程图,该方法可以包括以下步骤:s101:接收待存储的目标数据集。
33.当需要存储预先获取到的目标数据集(dataset)时,向加速器发送待存储的目标数据集,如可以通过cpu或gpu向加速器发送待存储的目标数据集,加速器接收待存储的目标数据集。
34.目标数据集可以为用于人工智能机器学习训练的数据集,如可以为用于训练图像识别模型的数据集,也可以为用于物品推荐模型的数据集,等等。目标数据集中的数据类型
可以为图片、文字、语音等。
35.cpu主机或gpu主机与加速器之间可以通过实体连线连接,也可以通过网路连接,本发明实施例对此不做限定。
36.s102:获取目标数据集中每项数据的数据大小。
37.其中,目标数据集中各项数据的大小相同。
38.在接收到待存储的目标数据集之后,可以对目标数据集进行预处理,变换为可用的训练数据或测试数据,使得待存储的目标数据集中各项数据的大小相同,获取目标数据集中每项数据的数据大小。
39.以深度学习的图片预处理为例。给定一张压缩过的图片,通常会进行以下一个或多个预处理步骤:(1)图片解码(image decode):将压缩的图片解码,彩色的图会解码分为r(red,红色)、g(green,绿色)、b(blue,蓝色)三个像素通道的图片储存。有些模型演算法后续会需要针对r、g、b其中一个或多个通道进行训练;(2)灰度转换(grayscale conversion)灰度转换只是将图像从彩色转换为黑白。它通常用于降低人工智能算法中的计算复杂度。由于大多数图片不需要识别颜色,因此使用灰度转换是明智的,它减少了图像中的像素数量,从而减少了所需的计算量;(3)归一化(normalization):归一化是将图像数据像素(强度)投影到预定义范围的过程,通常为(0,1)或(-1,1),但不同演算法有不同的定义,其目的是提高所有图像的公平性。例如,将所有图像缩放到 [0,1] 或 [-1,1] 的相等范围允许所有图像对总损失做出同等贡献,而不是当其他图像具有高像素和低像素范围时分别是强损失和弱损失。归一化的目的还包括提供标准学习率由于高像素图像需要低学习率,而低像素图像需要高学习率,重新缩放有助于为所有图像提供标准学习率;(4)数据增强(data augmentation):数据增强是在不收集新数据的情况下对现有数据进行微小改动以增加其多样性的过程。这是一种用于扩大数据集的技术。标准数据增强技术包括水平和垂直翻转、旋转、裁剪、剪切等。执行数据增强有助于防止神经网络学习不相关的特征,提升模型性能;(5)标准化(image standardization):标准化是一种缩放和预处理图像使其具有相似或一致性高度和宽度的方法。人工智能的训练、测试、推论时,如果图像的尺寸是一致的,则处理起来效率更高。
[0040]
s103:将目标数据集中各项数据存储至硬盘中连续且大小相同的各目标区块;其中,各目标区块的区块大小根据数据大小确定。
[0041]
预先设置可供选择的最小写入区块大小,如通常可以设定为256位元组(byte)、512位元组、1024位元组、2048位元组、4096位元组等,有些固态硬盘可以支持更大范围的区块大小。在获取到目标数据集中每项数据的数据大小之后,根据数据大小确定目标区块的区块大小。如在确定存在大于等于数据大小的可选择区块大小时,从大于等于数据大小的各可选择区块大小中选择与数据大小最接近的区块大小。
[0042]
在根据数据大小确定目标区块的区块大小之后,将目标数据集中各项数据存储至硬盘中连续且大小相同的各目标区块。相较于现有的读取不连续地储存在硬盘中的数据,本发明在数据读取时能够从硬盘连续区块中直接读取,节省了数据读取的时间,提升了数
据读写效率。
[0043]
由上述技术方案可知,通过依据待存储的目标数据集中每项数据的固定大小设定硬盘的目标区块的区块大小,保证目标数据集中各项数据存储至硬盘连续区块。使得数据存储得到较大优化,在数据读取时能够从硬盘连续区块中直接读取,节省了数据读取的时间,提升了数据读写效率。
[0044]
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
[0045]
参见图2,图2为本发明实施例中数据存储方法的另一种实施流程图,该方法可以包括以下步骤:s201:接收待存储的目标数据集。
[0046]
在本发明的一种具体实施方式中,步骤s201可以包括以下步骤:接收待存储的用于人工智能模型训练的目标数据集。
[0047]
当需要训练人工智能模型时,预先收集用于人工智能模型训练的目标数据集,并将用于人工智能模型训练的目标数据集发送给加速器,加速器接收待存储的用于人工智能模型训练的目标数据集。
[0048]
目标数据集可以包含训练集、验证集和测试集。
[0049]
首先,模型在训练集(training dataset)上进行拟合。对于监督式学习,训练集是由用来拟合参数(例如人工神经网络中神经元之间连接的权重)的样本组成的集合。在实践中,训练集通常是由输入向量和输出向量组成的数据对。其中输出向量被称为目标。在训练过程中,当前模型会对训练集中的每个样本进行预测,并将预测结果与目标进行比较。根据比较的结果,学习算法会更新模型的参数。模型拟合的过程可能同时包括特征选择和参数估计。
[0050]
接下来,拟合得到的模型会在验证集(validation dataset)上进行预测。在对模型的超参数(例如神经网络中隐藏层的神经元数量)进行调整时,验证集提供了对在训练集上拟合得到模型的无偏评估。验证集可用于正则化中的提前停止,即在验证集误差上升时(此为在训练集上过拟合的信号),停止训练。
[0051]
最后,测试集(test dataset)可被用来提供对最终模型的无偏评估。若测试集在训练过程中从未用到(例如,没有被用在交叉验证当中),则它也被称之为预留集。
[0052]
很多人工智能的算法只需用使用训练集作为训练,之后使用测试集或验证集作为训练完成的测试,之后便布署进行推论。也就是说测试集或验证集可以是同一集合。
[0053]
在本发明的一种具体实施方式中,在步骤s201之后,在步骤s202之前,该方法还可以包括以下步骤:对目标数据集进行第一预处理操作;其中,第一预处理操作为未增加数据大小的预处理操作。
[0054]
在接收到待存储的目标数据集之后,对目标数据集进行第一预处理操作。在将目标数据集存储至加速器的过程中,第一预处理操作包括部分预处理,一般是进行未增加数据大小的一些预处理操作。如对待识别的图片进行水平翻转、垂直翻转、旋转等。从而避免数据存储过程中的数据预处理导致数据增大,节省存储空间,降低成本。
[0055]
在本发明的一种具体实施方式中,对目标数据集进行第一预处理操作,可以包括以下步骤:对目标数据集进行除归一化预处理之外的预处理操作。
[0056]
由于归一化处理得到的浮点数值需要占用更多的存储空间,因此在接收到待存储的目标数据集之后,对目标数据集进行预处理时,对目标数据集进行除归一化预处理之外的预处理操作,从而节省存储空间。
[0057]
s202:获取目标数据集中每项数据的数据大小。
[0058]
其中,目标数据集中各项数据的大小相同。
[0059]
在本发明的一种具体实施方式中,步骤s202可以包括以下步骤:获取目标数据集中由数据本身、数据标签以及数据档名构成的每项数据的数据大小。
[0060]
目标数据集中每项数据除了包含数据本身外,还包括数据标签以及数据档名,从而由数据本身、数据标签以及数据档名共同构成一项完整数据。在接收到待存储的目标数据集之后,获取目标数据集中由数据本身、数据标签以及数据档名构成的每项数据的数据大小。
[0061]
数据标签为数据项对应的参考标准,数据档名为对数据项进行唯一标识的标识信息。
[0062]
s203:获取预设的各可选区块大小。
[0063]
预先设置可供选择的最小写入区块大小,如以固态硬盘(solid state disk ,ssd)为例,通常可以设定为256位元组(byte)、512位元组、1024位元组、2048位元组、4096位元组等,有些固态硬盘可以支持更大范围的区块大小。在获取到目标数据集中每项数据的数据大小之后,获取预设的各可选区块大小。
[0064]
s204:判断数据大小是否小于等于各可选区块大小中的最大值,若是,则执行步骤s205,若否,则执行步骤s206。
[0065]
在获取到预设的各可选区块大小之后,判断数据大小是否小于等于各可选区块大小中的最大值,若是,则说明存在可选择的区块大小,使得每个数据项仅存储在一个完整区块中,执行步骤s205,若否,则说明每项数据的大小已超过硬盘最大的支持区块大小,则需要多个区块才能容纳每个数据项,执行步骤s206。
[0066]
s205:从大于数据大小的各可选区块大小中选取得到目标区块的区块大小。
[0067]
当确定数据大小小于等于各可选区块大小中的最大值时,说明存在可选择的区块大小,使得每个数据项仅存储在一个完整区块中,从大于数据大小的各可选区块大小中选取得到目标区块的区块大小。从而实现了目标数据集中各项数据存储至硬盘连续单独区块,实现目标数据集写入硬盘的最佳化,使得在后续数据读取时能够从硬盘连续区块中直接读取,节省了数据读取的时间,提升了数据读写效率。
[0068]
在本发明的一种具体实施方式中,步骤s205可以包括以下步骤:步骤一:从大于数据大小的各可选区块大小中选取与数据大小差值最小的可选区块大小;步骤二:将与数据大小差值最小的可选区块大小确定为目标区块的区块大小。
[0069]
为方便描述,可以将上述两个步骤结合起来进行说明。
[0070]
当确定数据大小小于等于各可选区块大小中的最大值时,从大于数据大小的各可选区块大小中选取与数据大小差值最小的可选区块大小,将与数据大小差值最小的可选区块大小确定为目标区块的区块大小。从而实现了目标数据集中各项数据存储至硬盘连续单独区块,使得在后续数据读取时能够从硬盘连续区块中直接读取,节省了数据读取的时间,提升了数据读写效率。
[0071]
例如,当每项数据的大小为3136位元组时,若可供选择的区块大小为256位元组、512位元组、1024位元组、2048位元组、4096位元组等,则确定目标区块大小为4096位元组。
[0072]
s206:将各可选区块大小中的最大值确定为目标区块的区块大小。
[0073]
当确定数据大小大于各可选区块大小中的最大值时,说明每项数据的大小已超过硬盘最大的支持区块大小,则需要多个区块才能容纳每个数据项,在这种情况下,将各可选区块大小中的最大值确定为目标区块的区块大小。以手写辨识数据集每项大小3200位元组为例,当可选区块大小中的最大值为2048位元组时,选择设定目标区块的区块大小为2048位元组,虽然每项数据存储至多个区块中,但在数据读取时仍是读取连续区块,效能依然很高。
[0074]
s207:将目标数据集中各项数据存储至硬盘中连续且大小相同的各目标区块;其中,各目标区块的区块大小根据数据大小确定。
[0075]
参见图3,图3为本发明实施例中数据读取方法的一种实施流程图,该方法可以包括以下步骤:s301:接收数据读取命令。
[0076]
在将目标数据集存储至加速器之后,当需要读取目标数据集时,向加速器发送数据读取命令,如cpu或gpu向加速器发送数据读取命令,加速器接收数据读取命令。
[0077]
s302:从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据;其中,各目标区块的区块大小根据每项数据的数据大小确定,且目标数据集中各项数据的大小相同。
[0078]
预先存储在加速器的目标数据集在存储前会通过对目标数据集进行预处理,使得目标数据集中各项数据的大小相同,并根据目标数据集中每项数据的数据大小确定目标区块的区块大小,从而使得目标数据集在连续区块中存储。加速器在接收到数据读取命令之后,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据。通过从连续区块中读取目标数据集的各项数据,较大地提升了数据读取速率。
[0079]
s303:将读取到的各项数据返回给数据读取命令的发送端。
[0080]
在从硬盘中目标区块的区块大小的各连续区块中读取目标数据集的每项数据之后,将读取到的各项数据返回给数据读取命令的发送端,从而完成对目标数据集中各项数据的快速读取。
[0081]
发送端一般为与加速器进行数据读写交互的主机cpu或主机gpu。
[0082]
参见图4,图4为本发明实施例中数据读取方法的另一种实施流程图,该方法可以包括以下步骤:s401:接收数据读取命令。
[0083]
在本发明的一种具体实施方式中,步骤s401可以包括以下步骤:接收读取用于人工智能模型训练的目标数据集的数据读取命令。
[0084]
预先存储至加速器的目标数据集可以为用于人工智能模型训练的数据集,当需要训练人工智能模型时,向加速器发送读取用于人工智能模型训练的目标数据集的数据读取命令。加速器接收读取用于人工智能模型训练的目标数据集的数据读取命令。
[0085]
s402:从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据;其中,各目标区块的区块大小根据每项数据的数据大小确定,且目标数据集中各项数据的大小相同。
[0086]
在本发明的一种具体实施方式中,步骤s402可以包括以下步骤:当目标区块的区块大小大于等于数据大小时,按照目标区块与每项数据的一对一关系,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据。
[0087]
当目标区块的区块大小大于等于数据大小时,说明在数据存储时每项数据存储在一个存储区块中,按照目标区块与每项数据的一对一关系,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据,从而实现对目标数据集中各项数据的快速读取。
[0088]
在本发明的一种具体实施方式中,步骤s402可以包括以下步骤:当目标区块的区块大小小于数据大小时,按照目标区块与每项数据的多对一关系,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据;其中,每项数据预先存储在相邻连续区块中。
[0089]
当目标区块的区块大小小于数据大小时,说明在数据存储时每项数据存储在相邻连续区块中,按照目标区块与每项数据的多对一关系,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据。从而实现对目标数据集中各项数据的连续读取,提升了数据读取效率。
[0090]
s403:对读取到的各项数据进行第二预处理操作;其中,第二预处理操作为增加数据大小的预处理操作。
[0091]
在读取到目标数据集的各项数据之后,对读取到的各项数据进行增加数据大小的第二预处理操作。cpu主机或gpu主机系统需要读取数据集时,加速器先由硬盘连续区块读取先前部分预处理数据集,再进行写入时没有进行的余下所有预处理,最后再将完成所有预处理的数据集传送回cpu主机或gpu主机系统,从而写入的部分预处理(不增加大小的处理)由cpu主机或gpu主机系统移到加速器,进一步释放cpu主机或gpu主机,实现更配合调整预处理的步骤与次序,减少数据存储时数据集的大小。
[0092]
通过在数据存储时不进行增加数据大小的第二预处理操作,在读取数据时,才在加速器中对目标数据集中各项数据进行增加数据大小的第二预处理操作,此过程即体现了计算存储的概念。通过采用计算存储的策略使得数据集读写效能最佳化,也就是用“计算能力”换取空间减少,加速器实现归一化预处理实际上只是经由快速矩阵运算电路之后,再传回数据项给cpu主机或gpu主机,该过程仅需要额外花费少量的计算时间和电路成本,可大幅减少数据集的储存空间。
[0093]
存储计算/计算存储(in-storage computing/ computing storage)指的是更靠近在存储装置的地方,配置计算元件,而尽量不使用中央处理器的运算能力。以此加速整体存储的效能并卸载中央处理器。
[0094]
在本发明的一种具体实施方式中,步骤s403可以包括以下步骤:对读取到的各项数据进行归一化预处理操作。
[0095]
在读取到目标数据集的各项数据之后,可以是对读取到的各项数据进行归一化预处理操作。例如,以手写辨识数据集说明,尚未进行归一化预处理的28x28阵列每个点的值,以0~ 255表示其颜色强度,这代表只需要1个位元组即可表示每个点的值,但归一化预处理后,每个点的浮点数值需要4个位元组。所以在预处理时,先不进行归一化预处理,将经过部分预处理后得到的数据集写入硬盘,但在读取时,在加速器中进行归一化预处理,然后再传回给cpu主机或gpu主机,如此一来,每笔数据项,相较于存储归一化后的浮点数值,本发明在硬盘储存时只用了1/4的大小,所占空间更小。
[0096]
s404:将读取到的各项数据返回给数据读取命令的发送端。
[0097]
在一种具体实例应用中,参见图5和图6,图5为本发明实施例中一种手写辨识数据集图档示意图,图6为本发明实施例中一种对手写辨识数据集图档归一化后的示意图。以著名入门的0~9手写辨识数据集(mnist handwritten digit database)为例,图5左方是一个“9”的28x28的灰阶单色图片,右方显示28x28阵列每个图像点的值(尚未进行归一化预处理),以0~ 255表示其颜色强度。图6左方是图片,在经过归一化预处理(每个阵列元素除以255)之后,最后以一个28x28的浮点数阵列表示。
[0098]
在一种具体实例应用中,参见图7,图7为本发明实施例中一种数据集图档分类示意图。即使是相对入门简单的mnist数据集也有训练集60000项、测试数据10000项。需要对这70000笔进行预处理,每个数字的影像以28x28的阵列储存,而且每一个皆有标签(label)注记其真实的数字,如果标签范围是0~9,则只需多用一个位元组(byte)储存标签注记。后续的模型训练会视训练过程频繁读取60000项(训练集),每批次训练完成后,也可能多次读取10000项(测试集)确认测试成功与否。
[0099]
在一种具体实例应用中,cpu/gpu主机系统0/1/2分别对数据集存取加速器0/1/2进行写入与读取,多路资料集配合更进阶的资料集硬体核心架构写入流程如下:(1)cpu/gpu主机系统0/1/2把“完全不”进行预处理的数据集直接传送给对应的数据集存取加速器0/1/2;(2)资料集存取加速器0/1/2收到写入数据集,先进行不会导致数据变大的部分预处理,如此写入的数据集所需存储空间最小,此步骤将cpu/gpu的部分预处理运算转移到加速器;(3)判断经过部分预处理的数据集的大小(含标签或档名);(4)依据每项数据集的大小,设定硬盘最佳化的最小读取区块;(5)将所有数据集依序写入硬盘连续区块。
[0100]
多路数据集加速读取流程如下:(1)由传输介质收到cpu/gpu主机系统0/1/2设定读取预处理的设定与参数,此步骤通常只需执行一次便适用于所有数据项的读取;(2)由传输介质收到cpu/gpu主机系统读取预处理数据集的命令;(3)依据命令由硬盘连续区块读取之前写入的部分预处理数据集;(4)进行写入时未处理的“余下所有预处理”,完成人工智能模型完成的全部预处理;(5)回传已完成全部预处理的数据集到 cpu/gpu主机系统0/1/2。
[0101]
相应于上面的数据存储方法实施例,本发明还提供了一种数据存储装置,下文描
述的数据存储装置与上文描述的数据存储方法可相互对应参照。
[0102]
参见图8,图8为本发明实施例中一种数据存储装置的结构框图,该装置可以包括:数据集接收模块81,用于接收待存储的目标数据集;数据大小获取模块82,用于获取目标数据集中每项数据的数据大小;其中,目标数据集中各项数据的大小相同;数据存储模块83,用于将目标数据集中各项数据存储至硬盘中连续且大小相同的各目标区块;其中,各目标区块的区块大小根据数据大小确定。
[0103]
由上述技术方案可知,通过依据待存储的目标数据集中每项数据的固定大小设定硬盘的目标区块的区块大小,保证目标数据集中各项数据存储至硬盘连续区块。使得数据存储得到较大优化,在数据读取时能够从硬盘连续区块中直接读取,节省了数据读取的时间,提升了数据读写效率。
[0104]
在本发明的一种具体实施方式中,该装置还可以包括:第一预处理模块,用于在接收待存储的目标数据集之后,获取目标数据集中每项数据的数据大小之前,对目标数据集进行第一预处理操作;其中,第一预处理操作为未增加数据大小的预处理操作。
[0105]
在本发明的一种具体实施方式中,第一预处理模块具体为对目标数据集进行除归一化预处理之外的预处理操作的模块。
[0106]
在本发明的一种具体实施方式中,数据集接收模块81具体为接收待存储的用于人工智能模型训练的目标数据集的模块。
[0107]
在本发明的一种具体实施方式中,数据大小获取模块82具体为获取目标数据集中由数据本身、数据标签以及数据档名构成的每项数据的数据大小的模块。
[0108]
在本发明的一种具体实施方式中,该装置还可以包括区块大小确定模块,区块大小确定模块:可选区块大小获取子模块,用于获取预设的各可选区块大小;区块大小选取子模块,用于从大于数据大小的各可选区块大小中选取得到目标区块的区块大小。
[0109]
在本发明的一种具体实施方式中,区块大小选取子模块包括:区块大小选取单元,用于从大于数据大小的各可选区块大小中选取与数据大小差值最小的可选区块大小;区块大小确定单元,用于将与数据大小差值最小的可选区块大小确定为目标区块的区块大小。
[0110]
在本发明的一种具体实施方式中,该装置还可以包括:判断模块,用于在获取预设的各可选区块大小之后,判断数据大小是否小于等于各可选区块大小中的最大值;区块大小选取子模块具体为当确定数据大小小于等于各可选区块大小中的最大值时,从大于数据大小的各可选区块大小中选取得到目标区块的区块大小的模块;区块大小确定模块具体为当确定数据大小大于各可选区块大小中的最大值时,将各可选区块大小中的最大值确定为目标区块的区块大小的模块。
[0111]
相应于上面的数据读取方法实施例,本发明还提供了一种数据读取装置,下文描
述的数据读取装置与上文描述的数据读取方法可相互对应参照。
[0112]
参见图9,图9为本发明实施例中一种数据读取装置的结构框图,该装置可以包括:读取命令接收模块91,用于接收数据读取命令;数据读取模块92,用于从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据;其中,各目标区块的区块大小根据每项数据的数据大小确定,且目标数据集中各项数据的大小相同;数据返回模块93,用于将读取到的各项数据返回给数据读取命令的发送端。
[0113]
在本发明的一种具体实施方式中,该装置还可以包括:第二预处理模块,用于在从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据之后,将读取到的各项数据返回给数据读取命令的发送端之前,对读取到的各项数据进行第二预处理操作;其中,第二预处理操作为增加数据大小的预处理操作。
[0114]
在本发明的一种具体实施方式中,第二预处理模块具体为对读取到的各项数据进行归一化预处理操作的模块。
[0115]
在本发明的一种具体实施方式中,读取命令接收模块91具体为接收读取用于人工智能模型训练的目标数据集的数据读取命令的模块。
[0116]
在本发明的一种具体实施方式中,数据读取模块92具体为当目标区块的区块大小大于等于数据大小时,按照目标区块与每项数据的一对一关系,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据的模块。
[0117]
在本发明的一种具体实施方式中,数据读取模块92具体为当目标区块的区块大小小于数据大小时,按照目标区块与每项数据的多对一关系,从硬盘中连续且大小相同的各目标区块中读取目标数据集的每项数据的模块;其中,每项数据预先存储在相邻连续区块中。
[0118]
相应于上面的方法实施例,参见图10,图10为本发明所提供的电子设备的示意图,该设备可以包括:存储器332,用于存储计算机程序;处理器322,用于执行计算机程序时实现上述方法实施例的数据存储方法或数据读取方法的步骤。
[0119]
具体的,请参考图11,图11为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
[0120]
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
[0121]
上文所描述的数据存储方法或数据读取方法中的步骤可以由电子设备的结构实现。
[0122]
相应于上面的方法实施例,本发明还提供一种非易失性存储介质,非易失性存储
介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:接收待存储的目标数据集;获取目标数据集中每项数据的数据大小;其中,目标数据集中各项数据的大小相同;将目标数据集中各项数据存储至硬盘中连续且大小相同的各目标区块;其中,各目标区块的区块大小根据数据大小确定。
[0123]
该非易失性存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0124]
对于本发明提供的非易失性存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
[0125]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及非易失性存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0126]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1