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

一种数据处理方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:59:31


一种数据处理方法、装置、电子设备及存储介质

技术领域

本发明涉及人工智能技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。

背景技术

在人工智能算法模型应用于项目中时,一般使用通用计算单元或AI专用单元进行模型推理。

但在实际应用中,基于通用计算单元进行模型推理的速度较慢,因此,在进行人工智能应用方面通常会采用AI专用单元加速模型推理。但是AI专用单元由于硬件设计限制无法支持所有的人工智能算法的相关算子,而人工智能算法更新迭代速度较快,AI专用单元的更新速度无法赶上算法新算子的更新速度,因而导致模型推理结果不够准确。

为了解决上述问题,需要对模型推理方法进行改进。

发明内容

本发明提供了一种数据处理方法、装置、电子设备及存储介质,以解决现有技术中AI专用单元的更新速度较慢,无法赶上人工智能算法的更新速度,进而无法支持所有的人工智能算法的相关算子的问题。

第一方面,本发明实施例提供了一种数据处理方法,包括:

确定与智能视觉项目关联的至少一个待执行算子,并将至少一个所述待执行算子中排序第一的待执行算子作为当前待执行算子;

根据所述当前待执行算子对应的算子类别,确定与所述当前待执行算子对应的待使用计算单元;

基于所述待使用计算单元处理所述当前待执行算子的算子关联信息,得到执行结果;

将所述执行结果作为与所述当前待执行算子关联的下一待执行算子的算子关联信息,并将所述下一待执行算子作为所述当前待执行算子;

重复执行根据所述当前待执行算子对应的算子类别,确定与所述当前待执行算子对应的待使用计算单元的步骤;

直至所述当前待执行算子为最后的待执行算子时,将所述当前待执行算子的执行结果作为所述智能视觉项目对应的目标执行结果。

第二方面,本发明实施例还提供了一种数据处理装置,包括:

待执行算子确定模块,用于确定与智能视觉项目关联的至少一个待执行算子,并将至少一个所述待执行算子中排序第一的待执行算子作为当前待执行算子;

计算单元确定模块,用于根据所述当前待执行算子对应的算子类别,确定与所述当前待执行算子对应的待使用计算单元;

执行结果确定模块,用于基于所述待使用计算单元处理所述当前待执行算子的算子关联信息,得到执行结果;

算子切换模块,用于将所述执行结果作为与所述当前待执行算子关联的下一待执行算子的算子关联信息,并将所述下一待执行算子作为所述当前待执行算子;

重复模块,用于重复执行根据所述当前待执行算子对应的算子类别,确定与所述当前待执行算子对应的待使用计算单元的步骤;

目标执行结果确定模块,用于直至所述当前待执行算子为最后的待执行算子时,将所述当前待执行算子的执行结果作为所述智能视觉项目对应的目标执行结果。

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

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据处理方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据处理方法。

本发明实施例的技术方案,通过确定与智能视觉项目关联的至少一个待执行算子,并将至少一个待执行算子中排序第一的待执行算子作为当前待执行算子;根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元;基于待使用计算单元处理当前待执行算子的算子关联信息,得到执行结果;将执行结果作为与当前待执行算子关联的下一待执行算子的算子关联信息,并将下一待执行算子作为当前待执行算子;重复执行根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元的步骤;直至当前待执行算子为最后的待执行算子时,将当前待执行算子的执行结果作为智能视觉项目对应的目标执行结果。本技术方案中,在对于智能视觉项目对应的算法模型进行模型推理时,通过对算法模型进行模型分割,得到至少一个待执行算子,进一步的,若待执行算子属于新增算子类别,则采用通用计算单元对待执行算子进行处理,若待执行算子属于现有算子类别,则采用预先设置的相应的专用计算单元进行处理。基于此,按照各待执行算子的排序,依次调用相应的计算单元处理,直至所有的待执行算子执行完毕后,将执行结果作为智能视觉项目的目标执行结果。解决了现有技术中AI专用单元的更新速度较慢,无法赶上人工智能算法的更新速度,进而无法支持所有的人工智能算法的相关算子的问题,本技术方案中通过将算法算子分为新增算子和现有算子,并将现有算子采用专用计算单元,将新增算子采用通用计算单元执行相应功能的方式,实现了提高智能视觉项目的模型推理准确性和模型推理效率的效果。

应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明提供的一种算法模型分割示意图;

图2是根据本发明提供的现有技术中的数据处理方法的流程图;

图3是根据本发明实施例一提供的一种数据处理方法的流程图;

图4是根据本发明实施例一提供的一种算法模型处理过程的示意图;

图5是根据本发明实施例一提供的一种算法模型处理过程的示意图;

图6是根据本发明实施例二提供的一种数据处理方法的流程图;

图7是根据本发明实施例二提供的一种数据处理方法的流程图;

图8是根据本发明实施例三提供的一种数据处理装置的结构示意图;

图9是实现本发明实施例的数据处理方法的电子设备的结构示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

在对本技术方案进行详细阐述之前,先对本技术方案的应用场景进行简单介绍,以便更加清楚地理解本技术方案。

随着人工智能技术的快速发展,人工智能算法模型广泛应用于产品或项目中,模型推理使用通用计算单元往往会存在计算效率较低的问题。基于此,业界部署与人工智能技术相关的算法模型时,通常会选择专用的AI专用单元加速模型推理。但是由于人工智能算法的更新迭代速度快,而AI专用单元的硬件限制导致AI专用单元的更迭速度无法赶上人工智能算法的更新迭代速度,导致使用了特别的算子或者新增的算子的算法模型无法在AI专用单元中运行。业界普遍的工程做法是将不能在AI专用单元上运行的算子移动到通用计算单元进行计算,所以算法模型一般会进行的分割推理,如图1所示,算法模型片段2中包含了AI专用单元不能支持运行的算子,所以该片段只能在通用计算单元上运算。当这种模型被训练出来后,对AI模型算法部署增加了非常大的工作量,随着模型大小的增加,模型网络复杂度的增加,表现越好的模型往往会使用较新的算子或者算法研究员精心设计的算子,这些新的算子或者特殊设计的算子会越来越多,AI专用加速硬件的迭代速度不可能赶上算法新算子和专门设计的算子的迭代速度。而在此算法模型的基础上,导致算法模型的部署工作量大大增加,且在算法推理过程中,每个分割的算法片段的衔接部分代码特别容易出错,进而导致整个算法模型推理错误。其次,在对算法模型进行量化后进行推理的算法模型部署会让推理过程变得更加复杂。

而在实际应用中,算法模型本身就具有较大的评估工作量,推理过程中的模型片段接续代码会让业务代码非常复杂,容易和业务本身的代码混淆,难以维护。量化模型带来的模型预测精度的损失和推理速度的矛盾很多时候需要算法模型推理支持混合量化已达到精度损失和推理速度的平衡,对推理部署提出了更高的要求。通常对于分割的算法模型推理过程如图2所示,在推理过程中,灰色部分过程均需要算法部署工程师针对每个分割片段进行编码实现处理,而且随着模型分割的越多,这个编码逻辑越冗长繁复,容易出错,这部分主要的任务即是将上一个片段的输出拷贝过来,然后输入下后续的片段中作为输入,对于需要量化推理预测的模型还涉及的不同片段的模型量化精度的统一,否则还需要做额外的工作来完成量化数据的转化,更加复杂化片段衔接部分的代码实现。

实施例一

图3为本发明实施例一提供了一种数据处理方法的流程图,本实施例可适用于在对智能视觉项目对应的算法模型进行模型推理时,将算法模型分割为至少一个待执行算子,并根据算子类别确定与各待执行算子对应的待使用计算单元,进而根据待执行算子的排序情况,依次调取相应的待使用计算单元执行相应的待执行算子,并将最后一个待执行算子的输出结果作为智能视觉项目的算法模型的模型推理结果的情况,其中,所述待使用计算单元包括通用计算单元,以及预先设置的与指定的智能算法对应的专用计算单元。该方法可以由数据处理装置来执行,该数据处理装置可以采用硬件和/或软件的形式实现,该数据处理装置可配置于可执行数据处理方法的计算设备中。

如图3所示,该方法包括:

S110、确定与智能视觉项目关联的至少一个待执行算子,并将至少一个待执行算子中排序第一的待执行算子作为当前待执行算子。

在本技术方案中,算法模型推理主要应用在智能视觉项目中,所述智能视觉项目可以为图像识别项目、目标检测项目或图像感知项目等。

其中,所谓算子是指一个函数空间到函数空间上的映射,常见的算子有微分算子、梯度算子、散度算子、拉普拉斯算子和哈密顿算子等。在本技术方案中,待执行算子可以理解为执行智能视觉项目中的某些项目功能的映射或变换。在智能视觉项目中通常涉及到多个项目功能,相应的,为了实现智能视觉项目的成功上线,可以为每个项目功能设置相应的待执行算子。

以智能视觉项目为图像识别项目为例,通常需要采集至少一张待识别图像,通过提取待识别图像中的图像特征信息,实现对待识别图像中的物体进行种类识别。在此过程中,简单的将图像识别项目划分为三大部分,即,采集图像部分、特征提取部分以及物体识别部分。基于此,结合本技术方案,针对图像识别项目中的各部分设置相应的待执行算子,以基于各待执行算子执行对应的项目功能,进而实现图像识别的效果。

可选的,确定与智能视觉项目关联的至少一个待执行算子,包括:获取与智能视觉项目对应的算法模型信息,并确定算法模型信息中包含的至少一个算法功能;基于至少一个算法功能对算法模型信息进行模型分割,得到与智能视觉项目对应的至少一个待执行算子。

其中,算法模型信息包括量化比特数、数据高度信息、数据宽度信息和数据通道数信息中的至少一种。在本技术方案中,基于算法模型信息可以对智能视觉项目进行算法功能的分割,得到至少一个待执行算子。

在实际应用中,如图4所示,在确定与智能视觉项目对应的算法模型时,可以通过在一些测试集上评估算法表现指标,如,根据算法表现指标确定算法模型的准确率、精确率和召回率等。可以理解的是,在算法模型中包括与至少一个算法功能对应的算法模型片段,因此,可以对算法模型部署条件进行评估,确定该算法模型是否需要分他分片推理,若是,则可以基于算法模型分割,得到算法模型量化,即,根据至少一个算法功能对已选择的算法模型进行模型分片处理,得到至少一个待执行算子。例如,在对算法模型进行模型分割时,可以基于人工分割的方式将算法模型网络结构和参数分割为不同的算法模型片段,并为每个算法模型片段设置相应的待执行算子。

S120、根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元。

其中,待使用计算单元包括专用计算单元和通用计算单元。

在实际应用中,由于人工智能算法的更新迭代速度较快,而用于处理待执行算子的计算单元通常为硬件设备,因此,在人工智能算法更新迭代后现有已开发的计算单元可能无法执行相应的功能算法对应的待执行算子。其中,计算单元可以为芯片或处理器等。

在本技术方案中,计算单元包括通用计算单元和专用计算单元,所谓通用计算单元可以理解为通用算法处理器,所谓专用计算单元可以为人工智能加速器。进一步的,在至少一个待执行算子中包括与现有功能算法对应的待执行算子,还包括与新增的算法功能对应的待执行算子。

为了提高算法模型的处理效率,现有技术中的计算单元中包括通用计算单元和专用计算单元,一般来说,专用计算单元可以用于执行具备特定的算法功能的待执行算子,而通用计算单元可以用于执行与常规数据处理功能对应的待执行算子。但是,随着算法模型的功能的完善和拓展,当出现新增的算法功能时,无法及时设置对应的专用计算单元,因此,需要将新增的算法功能对应的待执行算子交由通用计算单元处理。但是,这样的操作方式导致通用计算单元中的模型网络复杂度越来越高,算法部署的工作量大大增加,同时容易在算法衔接部分出现代码错误,进而导致整个算法模型推理错误。

基于此,本技术方案中对每个待执行算子进行类别判断,以根据待执行算子对应的算子类别确定与各待执行算子对应的待使用计算单元。其中,所述算子类别包括新增算子类别和现有算子类别,所述新增算子类别对应的待使用计算单元为通用计算单元,所述现有算子类别对应的待使用计算单元为专用计算单元。

这样设置的意义在于,将算法模型中的算法功能进行划分得到至少一个待执行算子后,并确定与各待执行算子对应的算子类别后,可以通过比较待执行算子与实际的计算单元的算子运算条件是否匹配、算子运行范围以及算子运算性能等选择与各待执行算子更加匹配的待使用计算单元,以基于各待使用计算单元快速准确的执行各待执行算子。

S130、基于待使用计算单元处理当前待执行算子的算子关联信息,得到执行结果。

其中,算子关联信息包括与智能视觉项目对应的原始输入数据。执行结果可以理解为与智能视觉项目对应的处理结果。

示例性地,以智能视觉项目为目标检测为例,则执行结果为目标检测结果,若智能视觉项目为图像识别项目,则执行结果为图像识别结果,若智能视觉项目为视觉感知项目,则执行结果为视觉感知结果。

S140、将执行结果作为与当前待执行算子关联的下一待执行算子的算子关联信息,并将下一待执行算子作为当前待执行算子。

S150、重复执行根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元的步骤。

S160、直至当前待执行算子为最后的待执行算子时,将当前待执行算子的执行结果作为智能视觉项目对应的目标执行结果。

其中,目标执行结果是指将智能视觉项目对应的算法模型中的所有的算法功能执行完毕后得到的结果。

在一个具体的例子中,在实现智能视觉项目时,需要对智能视觉项目对应的算法模型进行打包。具体的,在算法模型的量化阶段,对算法模型中的模型参数进行量化后,将算法模型参数、算法模块结构以及算法模型信息等打包为一个算法模型文件。其中,所述算法模型文件为可以是算法模型的分割片段。此外,在本技术方案中,在算法模型中除了算法模型参数和模型结构外,还包括与算法模型对应的算法模型信息,如表1所示:

表1算法模型信息

进一步的,对智能视觉项目对应的算法模型进行模型分割,得到与至少一个算法功能对应的待执行算子。可以理解的是,对于至少一个待执行算子来说,可以根据像一个的算法功能对应的执行顺序确定各待执行算子对应的执行顺序。而在实际进行算法模型推理时,首先获取与智能视觉项目对应的原始数据,并将排序第一的待执行算子作为当前待执行算子,将所述原始数据输入所述当前待执行算子,以基于所述当前待执行算子得到与第一部分的算法功能对应的执行结果。进一步的,将排序第二的待执行算子作为当前待执行算子,并基于所述当前待执行算子执行相应的算法功能,直至所有的待执行算子执行完毕,将最后的待执行算子对应的执行结果作为目标执行结果。

具体而言,本技术方案在进行算法模型推理时,将整个算法模型推理工程抽象为两个软件对象来共同完成整个推理过程。所述软件对象包括算法模型对象NetInfo和算法模型推理执行者对象PlatformContext。其中,所述算法模型对象NetInfo包括数据信息和算法执行步骤,如,算法模型文件名称、数据预处理均值参数、数据预处理方差参数以及数据输入个数等。所述算法执行步骤包括数据准备过程、预处理过程、后处理过程以及数据处理完毕等步骤。

在本技术方案中,算法模型对象NetInfo可以是一个算法模型分割片段(即,待执行算子),因此,对于一个完整的算法模型需要有多个算法模型对象NetInfo形成链表,并将具有顺序关联关系的算法模型对象NetInfo通过指针的方式连接。例如,对于第一个算法模型对象NetInfo通过指针指向第二个算法模型对象NetInfo,若在第二个算法模型对象NetInfo后的指针为空,则表示第二个算法模型对象NetInfo的后续没有算法模型对象,也即,第二个算法模型对象NetInfo为最后的待执行算子。

对于算法模型推理执行者对象PlatformContext来说,作为整个算法模型推理过程的执行者,基于算法模型推理执行者对象PlatformContext完整推理一个算法模型的过程包括加载算法模型文件、解析算法模型信息、数据准备、调用算法模型对象的准备过程、调用算法模型对象的预处理过程、使用算法专用计算单元进行算法模型推理预测、调用算法模型对象的后处理过程,以及调用算法模型对象的完成过程,参见图5。

具体的,通过解析算法模型得到ModelInfo对象,储存了模型参数相关的信息和模型输入输出相关信息。数据准备包括使用的内存的准备,输入数据的量化相关的处理。绿色的部分的过程均是算法模型对象NetInfo的过程,每个算法模型对象的这部分是不一样的。算法模型推理执行者对象PlatformContext负责对一个算法模型对象NetInfo执行一致的过程,包括模型加载,模型信息解析,推理的准备工作等等。这样就将推理和预处理及后处理分开独立出来了,对于所有算法模型除了算法模型本身的预处理及后处理不一样外,其他的所有推理过程均抽象为算法模型推理执行者对象PlatformContext对算法模型的一致性处理,这部分代码的相同公用并且一致。这样一种抽象和实现方式保证了算法模型对象自身不一样的处理同时抽象出了一套和算法本身无关的推理过程,这些过程对每个算法模型是一样的,只是过程过使用的数据和参数不一样。算法模型推理执行者对象PlatformContext根据算法模型信息对每个模型或者模型片段均会实现一致的量化和反量化。

这样设置的好处在于,可以保证算法模型中各部分的算法执行部分的一致性,同时实现了混合量化数据的处理一致性也减少了这些不同算法模型相同的数据处理部分。

本发明实施例的技术方案,通过确定与智能视觉项目关联的至少一个待执行算子,并将至少一个待执行算子中排序第一的待执行算子作为当前待执行算子;根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元;基于待使用计算单元处理当前待执行算子的算子关联信息,得到执行结果;将执行结果作为与当前待执行算子关联的下一待执行算子的算子关联信息,并将下一待执行算子作为当前待执行算子;重复执行根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元的步骤;直至当前待执行算子为最后的待执行算子时,将当前待执行算子的执行结果作为智能视觉项目对应的目标执行结果。本技术方案中,在对于智能视觉项目对应的算法模型进行模型推理时,通过对算法模型进行模型分割,得到至少一个待执行算子,进一步的,若待执行算子属于新增算子类别,则采用通用计算单元对待执行算子进行处理,若待执行算子属于现有算子类别,则采用预先设置的相应的专用计算单元进行处理。基于此,按照各待执行算子的排序,依次调用相应的计算单元处理,直至所有的待执行算子执行完毕后,将执行结果作为智能视觉项目的目标执行结果。解决了现有技术中AI专用单元的更新速度较慢,无法赶上人工智能算法的更新速度,进而无法支持所有的人工智能算法的相关算子的问题,本技术方案中通过将算法算子分为新增算子和现有算子,并将现有算子采用专用计算单元,将新增算子采用通用计算单元执行相应功能的方式,实现了提高智能视觉项目的模型推理准确性和模型推理效率的效果。

实施例二

图6为本发明实施例二提供的一种数据处理方法的流程图,可选的,对根据当前待执行算子的算子标识信息,确定当前待执行算子是否为最后的待执行算子;若是,则基于当前待执行算子的执行结果,确定与智能视觉项目对应的目标执行结果进行细化。

如图6所示,该方法包括:

S210、确定与智能视觉项目关联的至少一个待执行算子,并将至少一个待执行算子中排序第一的待执行算子作为当前待执行算子。

S220、根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元。

S230、基于待使用计算单元处理当前待执行算子的算子关联信息,得到执行结果。

在实际应用中,基于待使用计算单元处理当前待执行算子的算子关联信息,得到执行结果,包括:若待使用计算单元为首个待使用计算单元,则获取与当前待执行算子对应的算子关联信息;将算子关联信息由浮点型数据转化为定点型数据,得到算子输入数据;基于待使用计算单元中的算子运算规则对算子输入数据进行数据处理,得到执行结果。

其中,在对智能视觉项目对应的算法模型进行算法模型分割后,得到至少一个算法模型片段(即,待执行算子),首个待使用计算单元是指排序第一的待执行算子对应的计算单元。

一般来说,如图7所示,算法模型中的数据为浮点型数据,而为了提高算法模型在执行过程中的准确性和执行效率,本技术方案中将算法模型中的各待执行算子对应的算法模型片段的模型数据由浮点型数据转换为定点型数据进行处理。具体的,调用算法模型对象(或片段)输入数据预处理过程,并确定该算法模型对象是否为第一个片段(即,是否为第一个待执行算子)。在对算法模型进行算法模型分割后,得到至少一个待执行算子,从排序第一的待执行算子起,将第一个待执行算子作为当前待执行算子,使用量化参数分数frac对预处理后的输入数据进行量化处理,并将其作为推理的输入数据,例如,可以将当前待执行算子的算子关联信息由浮点型数据转换为定点型数据,或者将模型参数和模型输入数据转换为对应的定点型数据等。若否,则可以直接将预处理后的数据作为推理的输入数据。具体而言,在进行数据转换时,可以使用量化参数函数frac对当前待执行算子中的算子关联信息进行量化处理,得到对应的定点型数据,并将其作为当前待执行算子的输入数据。进一步的,调取与当前待执行算子对应的算法专用计算单元进行模型推理,逐一执行各算法模型片段(即,待执行算子),并确定当前算法模型片段是否为最后一个片段,若是,则对推理输出做反量化处理得到最终算法模型输出的浮点输出结果,若为,则对推理输出不做反量化处理,直接输出推理输出结果。循环执行此步骤,直至当前的算法模型片段为最后一个片段时,结束算法推理过程,并输出算法推理结果。

在本技术方案中,将待执行算子对应的算子关联信息进行数据转换时可以通过以下公式进行转换处理:

Y=X*1/2

其中,Y表示对算子关联信息进行数据转换后的定点型数据,X为对算子关联信息进行数据转换前的浮点型数据,frac为8。

S240、将执行结果作为与当前待执行算子关联的下一待执行算子的算子关联信息,并将下一待执行算子作为当前待执行算子。

S250、重复执行根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元的步骤。

S260、根据当前待执行算子的算子标识信息,确定当前待执行算子是否为最后的待执行算子。

在上述示例的基础上,若待执行算子的数量为5个,则从一个待执行算子起,依次将各待执行算子作为当前待执行算子,并调取相应的待使用计算单元对各待执行算子进行处理。需要说明的是,当前待执行算子的输出数据为下一待执行算子的输入数据,且在整个算法模型的算法推理过程中,均采用定点型数据进行数据处理,以便提高算法模型的模型推理准确性和模型推理效率。进一步的,在将待执行算子作为当前待执行算子时,获取与当前待执行算子对应的算子标识信息,并确定当前待执行算子是否为最后的待执行算子,以在当前待执行算子为最后的待执行算子时,进一步的对输出数据进行数据转换。

S270、若是,则基于当前待执行算子的执行结果,确定与智能视觉项目对应的目标执行结果。

在实际应用中,基于当前待执行算子的执行结果,确定与智能视觉项目对应的目标执行结果,包括:将执行结果中的算子关联信息由定点型数据转换为浮点型数据;根据浮点型数据,确定与智能视觉项目对应的项目处理结果,并根据项目处理结果确定与智能视觉项目对应的目标执行结果。

其中,项目处理结果包括目标检测结果、图像识别结果以及图像感知结果中的至少一种。

在上述示例的基础上,若当前待执行算子为最后的待执行算子,则将当前待执行算子的输出数据从定点型数据转换为浮点型数据,也即算法模型的推理输出结果进行反量化处理,并最终将算法推理结果以浮点型数据格式数据。具体的,在进行量化参数分数frac对预处理后的输入数据进行量化处理并作为推理的输入数据和对推理输出做反量化处理得到最终算法模型的浮点s输出结果这两个过程中使用算法模型信息中的对该算法模型片段的量化比特数quant_bytes针对处理,如果是8bit就将量化得到值强制转化为char储存,如果是16bit就将得到的值转化为short储存。

本发明实施例的技术方案,通过确定与智能视觉项目关联的至少一个待执行算子,并将至少一个待执行算子中排序第一的待执行算子作为当前待执行算子;根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元;基于待使用计算单元处理当前待执行算子的算子关联信息,得到执行结果;将执行结果作为与当前待执行算子关联的下一待执行算子的算子关联信息,并将下一待执行算子作为当前待执行算子;重复执行根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元的步骤;直至当前待执行算子为最后的待执行算子时,将当前待执行算子的执行结果作为智能视觉项目对应的目标执行结果。本技术方案中,在对于智能视觉项目对应的算法模型进行模型推理时,通过对算法模型进行模型分割,得到至少一个待执行算子,进一步的,若待执行算子属于新增算子类别,则采用通用计算单元对待执行算子进行处理,若待执行算子属于现有算子类别,则采用预先设置的相应的专用计算单元进行处理。基于此,按照各待执行算子的排序,依次调用相应的计算单元处理,直至所有的待执行算子执行完毕后,将执行结果作为智能视觉项目的目标执行结果。解决了现有技术中AI专用单元的更新速度较慢,无法赶上人工智能算法的更新速度,进而无法支持所有的人工智能算法的相关算子的问题,本技术方案中通过将算法算子分为新增算子和现有算子,并将现有算子采用专用计算单元,将新增算子采用通用计算单元执行相应功能的方式,实现了提高智能视觉项目的模型推理准确性和模型推理效率的效果。

实施例三

图8为本发明实施例三提供的一种数据处理装置的结构示意图。如图8所示,该装置包括:待执行算子确定模块310、计算单元确定模块320、执行结果确定模块330、算子切换模块340、重复模块350和目标执行结果确定模块360。

其中,待执行算子确定模块310,用于确定与智能视觉项目关联的至少一个待执行算子,并将至少一个待执行算子中排序第一的待执行算子作为当前待执行算子;

计算单元确定模块320,用于根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元;

执行结果确定模块330,用于基于待使用计算单元处理当前待执行算子的算子关联信息,得到执行结果;

算子切换模块340,用于将执行结果作为与当前待执行算子关联的下一待执行算子的算子关联信息,并将下一待执行算子作为当前待执行算子;

重复模块350,用于重复执行根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元的步骤;

目标执行结果确定模块360,用于直至当前待执行算子为最后的待执行算子时,将当前待执行算子的执行结果作为智能视觉项目对应的目标执行结果。

本发明实施例的技术方案,通过确定与智能视觉项目关联的至少一个待执行算子,并将至少一个待执行算子中排序第一的待执行算子作为当前待执行算子;根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元;基于待使用计算单元处理当前待执行算子的算子关联信息,得到执行结果;将执行结果作为与当前待执行算子关联的下一待执行算子的算子关联信息,并将下一待执行算子作为当前待执行算子;重复执行根据当前待执行算子对应的算子类别,确定与当前待执行算子对应的待使用计算单元的步骤;直至当前待执行算子为最后的待执行算子时,将当前待执行算子的执行结果作为智能视觉项目对应的目标执行结果。本技术方案中,在对于智能视觉项目对应的算法模型进行模型推理时,通过对算法模型进行模型分割,得到至少一个待执行算子,进一步的,若待执行算子属于新增算子类别,则采用通用计算单元对待执行算子进行处理,若待执行算子属于现有算子类别,则采用预先设置的相应的专用计算单元进行处理。基于此,按照各待执行算子的排序,依次调用相应的计算单元处理,直至所有的待执行算子执行完毕后,将执行结果作为智能视觉项目的目标执行结果。解决了现有技术中AI专用单元的更新速度较慢,无法赶上人工智能算法的更新速度,进而无法支持所有的人工智能算法的相关算子的问题,本技术方案中通过将算法算子分为新增算子和现有算子,并将现有算子采用专用计算单元,将新增算子采用通用计算单元执行相应功能的方式,实现了提高智能视觉项目的模型推理准确性和模型推理效率的效果。

可选的,待执行算子确定模块包括:算法功能确定单元,用于获取与智能视觉项目对应的算法模型信息,并确定算法模型信息中包含的至少一个算法功能;其中,算法模型信息包括量化比特数、数据的高度信息、宽度信息和通道数信息中的至少一种;

待执行算子确定单元,用于基于至少一个算法功能对算法模型信息进行模型分割,得到与智能视觉项目对应的至少一个待执行算子。

可选的,计算单元确定模块包括:算子类别确定单元,用于确定与当前待执行算子对应的算子运算信息,并根据算子运算规则确定当前待执行算子对应的算子类别;其中,算子类别为新增算子类别或现有算子类别;

通用计算单元确定单元,用于若算子类别为新增算子类别,则确定与当前待执行算子对应的待使用计算单元为通用计算单元;

专用计算单元确定单元,用于若算子类别为现有算子类别,则确定当前待执行算子对应的待使用计算单元为预先设置的专用计算单元。

可选的,执行结果模块包括:算子关联信息确定单元,用于若待使用计算单元为首个待使用计算单元,则获取与当前待执行算子对应的算子关联信息;其中,算子关联信息包括与智能视觉项目对应的原始输入数据;

输入数据确定单元,用于将算子关联信息由浮点型数据转化为定点型数据,得到算子输入数据;

执行结果确定单元,用于基于待使用计算单元中的算子运算规则对算子输入数据进行数据处理,得到执行结果。

可选的,目标执行结果确定模块包括:算子标识信息确定单元,用于根据当前待执行算子的算子标识信息,确定当前待执行算子是否为最后的待执行算子;

目标执行结果确定单元,用于若是,则基于当前待执行算子的执行结果,确定与智能视觉项目对应的目标执行结果。

可选的,目标执行结果确定单元包括:数据转换子单元,用于将执行结果中的算子关联信息由定点型数据转换为浮点型数据;

目标执行结果确定子单元,用于根据浮点型数据,确定与智能视觉项目对应的项目处理结果,并根据项目处理结果确定与智能视觉项目对应的目标执行结果。其中,项目处理结果包括目标检测结果、图像识别结果以及图像感知结果中的至少一种。

本发明实施例所提供的数据处理装置可执行本发明任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。

实施例四

图9示出了本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。

如图9所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。

电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据处理方法。

在一些实施例中,数据处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本发明的数据处理方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。

计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 多相复合结构图像的载荷状态快速评估方法及设备
  • 一种飞机着陆状态整体载荷状态确定及结构强度评估方法
技术分类

06120116518196