掌桥专利:专业的专利平台
掌桥专利
首页

数据点分类方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:02:01


数据点分类方法、装置、设备及存储介质

技术领域

本申请实施例涉及数据处理领域,尤其涉及一种数据点分类方法、装置、设备及存储介质。

背景技术

度量学习(Metric Learning)是人脸识别中一种常用的机器学习方法,其能够学习到一种特征(Embedding)空间,在此空间中,所有的数据都被转换成一个特征向量,并且相似样本的特征向量之间距离小,不相似样本的特征向量之间距离大,从而实现对数据进行区分。目前,度量学习通常应用于目标检测、图像分类、人脸识别、数据分类等领域。但是,采用新的框架或损失函数进行深度学习需要消耗大量的时间对新方法进行训练、测试,这样会消耗资源并降低工作效率。

发明内容

本申请提供一种数据点分类方法、装置、设备及存储介质,能够在原有简单的架构下对数据分类,实现性能测试。

第一方面,本申请实施例提供了一种数据点分类方法,该方法包括:

步骤一:获取一个批次的数据;

步骤二;根据随机参数生成一个批次的数据的数据点;

步骤三:计算数据点的梯度;

步骤四:根据梯度对数据点进行分类;

重复上述步骤一至步骤四,直至分类的数据点满足预设条件。

可选地,上述获取一个批次的数据,包括:

对数据集中的数据进行实例化;

根据获取函数从实例化后的数据中获取一个批次的数据。

可选地,上述根据随机参数生成一个批次的数据的数据点,包括:

根据随机参数确定约束条件;

根据约束条件对一个批次的数据进行训练,生成一个批次的数据的数据点。

可选地,根据随机参数确定约束条件,包括:

根据随机参数确定数据点的高斯分布的均值和协方差;

将高斯分布的均值和协方差确定为所述约束条件。

可选地,确定高斯分布的均值,包括:

确定每一类别的数据点与随机数组成角度的余弦值;

将余弦值与半径参数的乘积作为对应类别的数据点的高斯分布均值。

可选地,计算数据点的梯度,包括:

调用分类网络模型和损失函数;

根据分类网络模型和损失函数的参数对数据点进行反向传播计算,确定数据点的梯度。

可选地,根据梯度对数据点进行分类,包括:

在数据点的第一属性满足设置条件的情况下,将数据点当前索引列表中的位置更新为梯度对应的新位置;

按照新位置分布数据点,对数据点进行分类。

第二方面,本申请实施例还提供了一种数据点分类装置,该装置包括:

获取模块,用于获取一个批次的数据;

生成模块,用于根据随机参数生成一个批次的数据点;

计算模块,用于计算数据点的梯度;

分类模块,用于根据梯度对数据点进行分类。

第三方面,本申请实施例还提供了一种电子设备,该电子设备包括:

存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,当处理器执行计算机程序时,实现如本申请实施例提供的一种数据点分类方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时,实现如本申请实施例提供的一种数据点分类方法。

本申请提供了一种数据点分类方法、装置、设备及存储介质,该方法可以包括步骤一:获取一个批次的数据;步骤二;根据随机参数生成一个批次的数据的数据点;步骤三:计算数据点的梯度;步骤四:根据梯度对数据点进行分类;重复上述步骤一至步骤四,直至分类的数据点满足预设条件。基于这一过程可以在原有简单的架构下对数据分类,实现性能测试,并且该架构具有可扩展性。

附图说明

图1是本申请实施例中的架构示意图;

图2是本申请实施例中的数据点分类方法流程图;

图3是本申请实施例中的生成的数据点的示意图;

图4是本申请实施例中的根据随机参数生成一个批次的数据的数据点的方法流程图;

图5是本申请实施例中的计算数据点的梯度的方法流程图;

图6是本申请实施例中的根据梯度对数据点进行分类的方法流程图;

图7是本申请实施例中的分类后的数据点的示意图;

图8是本申请实施例中的数据点分类装置结构示意图;

图9是本申请实施例中的电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

另外,在本申请实施例中,“可选地”或者“示例性地”等词用于表示作例子、例证或说明。本申请实施例中被描述为“可选地”或者“示例性地”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“可选地”或者“示例性地”等词旨在以具体方式呈现相关概念。

为了便于更好地理解本申请实施例提供的方案,现对本申请实施例中涉及到的相关概念进行解释、说明,具体如下:

如图1所示,为本申请实施例方案执行的架构示意图,其中,程序入口为main.py文件,data文件夹内为生成数据文件的存放位置,loss文件夹为待测试的损失函数相关文件的存放位置,model文件夹为待测试的网络模型相关文件的存储位置。

图2为本申请实施例提供的一种数据点分类方法的流程图,该方法可以在图1所示的架构下,对网络模型的性能进行测试,实现网络模型以较快的拟合速度对数据进行分类,如图2所示,该方法可以包括但不限于以下步骤:

S201、获取一个批次的数据。

示例性地,在执行本步骤时可以从data文件夹中导入数据集,并对数据集中的数据进行实例化,进而从实例化后的数据中获取一个批次的数据。例如,可以根据获取函数从实例化后的数据中获取一个批次的数据。可选地,该获取函数可以包括getitem函数或者get_batch函数,获取函数可以根据输入的batch size参数获取一个批次的数据。

S202、根据随机参数生成一个批次的数据的数据点。

本申请实施例中的随机参数可以为根据任务需求标定的相关参数,例如,随机数、数据点的预设数量和预设类别数量、数据点分布的圆环半径、环绕角度等。即本步骤可以理解为将设置的随机参数作为约束条件,基于这些约束条件生成数据点。如图3所示,为生成的数据点,其中,实心圆、五角星、三角形、正方形、十字以及乘号(图3中的“×”)分别表示不同类别的数据点。

S203、计算数据点的梯度。

示例性地,可以在上述架构下设计优化器optimzer.py,比如,将该优化器存储于model文件夹中,基于该优化器计算数据点的梯度。例如,由该优化器根据这一架构下loss文件夹中存储的损失函数计算生成的数据点的梯度。

S204、根据梯度对数据点进行分类。

基于步骤S203计算得到各数据点的梯度后,可以按照不同数据点对应的梯度,对数据点进行划分。其中,该数据点的梯度可以理解为数据点所处的位置范围,这样可以基于梯度对数据点进行分类,从而得到分类后的数据点的分布图。

S205、重复上述步骤S201至步骤S204,直至分类的数据点满足预设条件。

示例性地,本步骤中的预设条件可以包括预设数量,即按批次重复执行上述步骤S201至步骤S204,直至生成并分类后的数据点达到标定的预设数量。

本申请实施例提供了一种数据点分类方法,该方法包括步骤一:获取一个批次的数据;步骤二;根据随机参数生成一个批次的数据的数据点;步骤三:计算数据点的梯度;步骤四:根据梯度对数据点进行分类;重复上述步骤一至步骤四,直至分类的数据点满足预设条件。基于这一过程可以在原有简单的架构下对数据分类,实现性能测试,并该架构具有可扩展性。

如图4所示,在一种示例中,上述步骤S202的实现方式可以包括但不限于以下步骤:

S401、根据随机参数确定约束条件。

示例性地,本申请实施例中可以将数据点的高斯分布的均值和协方差作为约束条件,即本步骤的实现方式可以包括,根据设置的随机参数确定数据点的高斯分布的均值和协方差,进而将高斯分布的均值和协方差确定为约束条件。

S402、根据约束条件对一个批次的数据进行训练,生成一个批次的数据的数据点。

示例性地,可以基于确定的约束条件以及调用的分类网络模型对从数据集中获取的一个批次的数据进行训练,从而生成满足约束条件的一个批次的数据的数据点。

例如,可以从model文件夹中导入待测试的分类网络模型,将从数据集中获取的一个批次的数据输入至分类网络模型中进行训练,以生成该批次数据对应的数据点。

在一种示例中,确定上述步骤S401中高斯分布的均值的实现方式可以包括确定每一类别的数据点与随机数组成角度的余弦值,将得到的余弦值与半径参数的乘积作为对应类别的数据点的高斯分布均值。这样,通过设置的约束条件可以得到环绕的多个角度相差近似的高斯分布。

如图5所示,在一种示例中,上述步骤S203的实现方式可以包括但不限于以下步骤:

S501、调用分类网络模型和损失函数。

例如,分别从图1所示的框架下的model文件夹和loss文件夹中导入待测试的分类网络模型和损失函数相关文件。

S502、根据分类网络模型和损失函数的参数对数据点进行反向传播计算,确定数据点的梯度。

示例性地,可以将数据点输入至分类网络模型中,基于损失函数的参数进行反向传播求导,以计算数据点的梯度。例如,可以调用forward函数进行梯度计算,该forward函数的参数可以包括数据类型和数据尺寸,例如,在embedding层数据类型可以包括torch.tensor,数据尺寸可以包括batch_size和embedding_dim,在targets层,数据类型可以包括torch.tensor,数据尺寸可以包括batch_size,其中,数据尺寸的取值范围可以与数据集的种类相关,例如,假设数据集的种类为n类,那么数据尺寸的取值范围的值域即为1~n。

如图6所示,在一种示例中,上述步骤S204的实现方式可以包括但不限于以下步骤:

S601、在数据点的第一属性满足设置条件的情况下,将数据点当前索引列表中的位置更新为梯度对应的新位置。

示例性地,本步骤中数据点的第一属性可以包括requires_grad_,该第一属性满足设置条件可以包括将requires_grad_的值设置为true,这样可以实现基于梯度对数据点进行位置移动。

例如,可以基于get_batch函数根据输入的batch size参数返回一个迭代器,每次获取返回的一个批次的数据点,并记录数据点的索引列表,在数据点的requires_grad_属性值为true的情况下,将数据点当前索引列表中的位置更新为数据点梯度对应的新位置,比如,通过update_data函数将数据点当前索引列表中的数据更新为数据点梯度对应的新位置。

S602、按照新位置分布数据点,对数据点进行分类。

例如,可以基于分类函数对数据点进行分类,比如基于get_datamap函数返回当前批次所有数据点的分布绘图,从而实现对数据点的分类。如图7所示,为分类后的数据点,根据这一分类结果可以判断分类网络模型的性能。

图8为本申请实施例提供的一种数据点分类装置,如图8所示,该装置包括:获取模块801、生成模块802、计算模块803、分类模块804;

其中,获取模块,用于获取一个批次的数据;

生成模块,用于根据随机参数生成一个批次的数据的数据点;

计算模块,用于计算数据点的梯度;

分类模块,用于根据梯度对数据点进行分类。

在一种示例中,获取模块,具体可以用于对数据集进行实例化,根据获取函数从实例化后的数据中获取一个批次的数据。

在一种示例中,生成模块,可以用于根据随机参数确定约束条件,并根据约束条件对一个批次的数据进行训练,生成一个批次的数据的数据点。

示例性地,上述生成模块可以包括确定单元;

确定单元,可以用于根据随时参数确定约束条件。例如,确定单元随机参数确定数据点的高斯分布的均值和协方差,将高斯分布的均值和协方差确定为约束条件。

可选地,确定单元确定高斯分布的均值的实现方式可以包括:确定每一类别的数据点与随机数组成角度的余弦值,将余弦值与半径参数的乘积作为对应类别的数据点的高斯分布均值。

在一种示例中,计算模块,可以用于调用分类网络模型和损失函数,并根据分类网络模型和损失函数的参数对数据点进行反向传播计算,确定数据点的梯度。

在一种示例中,分类模块,可以用于在数据点的第一属性满足设置条件的情况下,将数据点当前索引列表中的位置更新为梯度对应的新位置,并按照新位置分布数据点,实现对数据点进行分类。

本申请实施例所提供的数据点分类装置可执行本申请图2、图4、图5、图6实施例所提供的数据点分类方法,具备执行方法相应的功能模块和有益效果。

图9为本申请实施例提供的一种电子设备的结构示意图,如图9所示,该设备包括处理器901、存储器902、输入装置909和输出装置904;设备中处理器901的数量可以是一个或多个,图9中以一个处理器901为例;设备中的处理器901、存储器902、输入装置909和输出装置904可以通过总线或其他方式连接,图9中以通过总线连接为例。

存储器902作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例图2中的数据点分类方法对应的程序指令/模块(例如,数据点分类装置中的获取模块801、生成模块802、计算模块803、分类模块804)。处理器901通过运行存储在存储器902中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的数据点分类方法。

存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据云服务器的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器902可进一步包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置909可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置904可包括显示屏等显示设备。

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据点分类方法,该方法包括:

步骤一:获取一个批次的数据;

步骤二;根据随机参数生成一个批次的数据的数据点;

步骤三:计算数据点的梯度;

步骤四:根据梯度对数据点进行分类;

重复上述步骤一至步骤四,直至分类的数据点满足预设条件。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本申请任意实施例所提供的数据点分类方法。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

值得注意的是,上述数据点分类装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

相关技术
  • 数据点分类方法、装置、设备及存储介质
  • 异常数据点输出方法、装置、计算机设备和存储介质
技术分类

06120112773196