人工智能推理方法、装置、设备及存储介质

文档序号:1953939 发布日期:2021-12-10 浏览:11次 >En<

阅读说明:本技术 人工智能推理方法、装置、设备及存储介质 (Artificial intelligence reasoning method, device, equipment and storage medium ) 是由 贾东风 程力行 于 2021-09-17 设计创作,主要内容包括:本发明属于人工智能技术领域,公开了一种人工智能推理方法、装置、设备及存储介质。该方法包括:基于场景线程获取帧数据,确定帧数据对应的目标算法模型;基于目标算法模型对应的目标缓冲实例将帧数据存储至目标缓冲实例对应的存储区域;在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从当前存储区域中取出待推理数据;将待推理数据合成批次数据;根据当前缓冲实例对批次数据进行推理。通过上述方式,对多个场景对应的帧数据进行调度推理,将多个场景对应的同一算法模型的帧数据合成批次数据,进行批量推理,提高硬件的利用能力,减少场景排队引起的推理堵塞,提高了推理效率,减小了推理耗时。(The invention belongs to the technical field of artificial intelligence, and discloses an artificial intelligence reasoning method, an artificial intelligence reasoning device, an artificial intelligence reasoning apparatus and a storage medium. The method comprises the following steps: acquiring frame data based on a scene thread, and determining a target algorithm model corresponding to the frame data; storing the frame data to a storage area corresponding to a target buffer instance based on the target buffer instance corresponding to the target algorithm model; when detecting that the data in the current storage area meets the preset requirements, taking out the data to be inferred from the current storage area based on a scheduling thread corresponding to the current buffer instance; synthesizing data to be reasoned into batch data; and reasoning the batch data according to the current buffer example. By the mode, the frame data corresponding to the scenes are dispatched and inferred, the frame data of the same algorithm model corresponding to the scenes are synthesized into batch data, batch inference is carried out, the utilization capacity of hardware is improved, inference blockage caused by scene queuing is reduced, inference efficiency is improved, and inference time is reduced.)

人工智能推理方法、装置、设备及存储介质

技术领域

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

背景技术

在人工智能(Artificial Intelligence,AI)场景中,算法的运行依赖图形处理器(Graphics Processing Unit,GPU)的推理能力,很多GPU设备是支持多批推理的,也就是支持批量的推理n张图片,推理时间是依次推理n张图片的1/n。但是在实际应用中,多批推理只是用在单个场景,而单个场景每次送入的推理图片可能达不到n张图片,造成硬件资源的浪费,在面对多场景推理时现有的方式效率低,推理耗时长。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

本发明的主要目的在于提供一种人工智能推理方法、装置、设备及存储介质,旨在解决在面对多场景推理时现有的方式效率低,推理耗时长的技术问题。

为实现上述目的,本发明提供了一种人工智能推理方法,所述方法包括以下步骤:

基于场景线程获取帧数据,并确定所述帧数据对应的目标算法模型;

基于所述目标算法模型对应的目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域;

在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据;

将所述待推理数据合成批次数据;

根据所述当前缓冲实例对所述批次数据进行推理。

可选地,所述基于场景线程获取帧数据,并确定所述帧数据对应的目标算法模型之前,所述方法还包括:

在获取到系统启动指令时,根据各场景线程对应的算法模型创建各所述场景线程对应的调度实例;

所述基于所述目标算法模型对应的目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域,包括:

根据所述场景线程对应的目标调度实例将所述帧数据传输至所述目标算法模型对应的目标缓冲实例,以使所述目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域。

可选地,所述目标调度实例通过通道传输帧数据至所述目标缓冲实例。

可选地,所述根据所述当前缓冲实例对所述批次数据进行推理之后,所述方法还包括:

在检测到所述批次数据推理完成时,将推理结果分发至所述批次数据对应的各场景线程。

可选地,所述在检测到所述批次数据推理完成时,将推理结果分发至所述批次数据对应的各场景线程,包括:

在检测到所述批次数据推理完成时,确定所述批次数据中各帧数据分别对应的通道标识;

根据若干所述通道标识分别查找对应的线程标识;

根据若干所述线程标识将推理结果分发至对应的各场景线程。

可选地,所述根据所述当前缓冲实例对所述批次数据进行推理之后,所述方法还包括:

在检测到目标场景线程对应的目标帧数据推理完成时,根据所述目标帧数据查找所述目标场景线程对应的目标线程标识;

根据所述目标线程标识将目标推理结果发送至所述目标场景线程。

可选地,所述根据所述当前缓冲实例对所述批次数据进行推理,包括:

根据所述当前缓冲实例将所述批次数据发送至推理引擎,以使所述推理引擎根据所述当前缓冲实例对应的当前推理算法对所述批次数据进行推理。

可选地,所述在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据,包括:

基于当前缓冲实例对应的调度线程按照预设检测周期定时检测当前存储区域中的数据;

在检测到所述当前存储区域中存在数据时,根据所述调度线程从所述当前存储区域中取出待推理数据。

可选地,所述在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据,包括:

在检测到当前存储区域中的数据数量达到预设数量阈值时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

可选地,所述在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据,包括:

在检测到当前存储区域中的数据大小超过预设容量大小时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

此外,为实现上述目的,本发明还提出一种人工智能推理装置,所述人工智能推理装置包括:

确定模块,用于基于场景线程获取帧数据,并确定所述帧数据对应的目标算法模型;

调度模块,用于基于所述目标算法模型对应的目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域;

检测模块,用于在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据;

合成模块,用于将所述待推理数据合成批次数据;

推理模块,用于根据所述当前缓冲实例对所述批次数据进行推理。

可选地,所述人工智能推理装置还包括创建模块;

所述创建模块,用于在获取到系统启动指令时,根据各场景线程对应的算法模型创建各所述场景线程对应的调度实例;

所述调度模块,还用于根据所述场景线程对应的目标调度实例将所述帧数据传输至所述目标算法模型对应的目标缓冲实例,以使所述目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域。

可选地,所述目标调度实例通过通道传输帧数据至所述目标缓冲实例。

可选地,所述人工智能推理装置还包括分发模块;

所述分发模块,用于在检测到所述批次数据推理完成时,将推理结果分发至所述批次数据对应的各场景线程。

可选地,所述分发模块,还用于在检测到所述批次数据推理完成时,确定所述批次数据中各帧数据分别对应的通道标识,根据若干所述通道标识分别查找对应的线程标识,根据若干所述线程标识将推理结果分发至对应的各场景线程。

可选地,所述人工智能推理装置还包括结果返回模块;

所述结果返回模块,用于在检测到目标场景线程对应的目标帧数据推理完成时,根据所述目标帧数据查找所述目标场景线程对应的目标线程标识,根据所述目标线程标识将目标推理结果发送至所述目标场景线程。

可选地,所述推理模块,还用于根据所述当前缓冲实例将所述批次数据发送至推理引擎,以使所述推理引擎根据所述当前缓冲实例对应的当前推理算法对所述批次数据进行推理。

可选地,所述检测模块,还用于基于当前缓冲实例对应的调度线程按照预设检测周期定时检测当前存储区域中的数据,在检测到所述当前存储区域中存在数据时,根据所述调度线程从所述当前存储区域中取出待推理数据。

此外,为实现上述目的,本发明还提出一种人工智能推理设备,所述人工智能推理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的人工智能推理程序,所述人工智能推理程序配置为实现如上文所述的人工智能推理方法。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有人工智能推理程序,所述人工智能推理程序被处理器执行时实现如上文所述的人工智能推理方法。

本发明基于场景线程获取帧数据,确定帧数据对应的目标算法模型;基于目标算法模型对应的目标缓冲实例将帧数据存储至目标缓冲实例对应的存储区域;在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从当前存储区域中取出待推理数据;将待推理数据合成批次数据;根据当前缓冲实例对批次数据进行推理。通过上述方式,对多个场景对应的帧数据进行调度推理,将多个场景对应的同一算法模型的帧数据存储如同一存储区域,取出多个帧数据合成批次数据,进行批量推理,提高硬件的利用能力,减少场景排队引起的推理堵塞,提高了推理效率,减小了推理耗时。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的人工智能推理设备的结构示意图;

图2为本发明人工智能推理方法第一实施例的流程示意图;

图3为本发明人工智能推理方法一实施例的多场景帧数据处理示意图;

图4为本发明人工智能推理方法第二实施例的流程示意图;

图5为本发明人工智能推理方法第三实施例的流程示意图;

图6为本发明人工智能推理装置第一实施例的结构框图。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的人工智能推理设备结构示意图。

如图1所示,该人工智能推理设备可以包括:处理器1001,例如图形处理器(Graphics Processing Unit,GPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元(比如键盘(Keyboard));可选的,用户接口1003还可以包括标准的有线接口、无线接口。可选的,网络接口1004包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。可选的,存储器1005还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对人工智能推理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及人工智能推理程序。

在图1所示的人工智能推理设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明人工智能推理设备中的处理器1001、存储器1005可以设置在人工智能推理设备中,所述人工智能推理设备通过处理器1001调用存储器1005中存储的人工智能推理程序,并执行本发明实施例提供的人工智能推理方法。

本发明实施例提供了一种人工智能推理方法,参照图2,图2为本发明人工智能推理方法第一实施例的流程示意图。

本实施例中,所述人工智能推理方法包括以下步骤:

步骤S10:基于场景线程获取帧数据,并确定所述帧数据对应的目标算法模型。

可以理解的是,本实施例的执行主体为人工智能推理设备,所述人工智能推理设备可以为云端服务器、端侧AI盒子等设备,还可以为其他具备相同或相似功能的设备,本实施例对此不加以限制。

需要说明的是,本实施例每一路场景线程对应一个场景,每个场景可能包含多个算法模型,基于若干场景线程接收各场景对应的帧数据,可选的,根据任务流创建对应的场景线程,一个任务流中可包括一个或者多个模型推理任务,基于模型推理任务确定待推理的各帧数据对应的目标算法模型。

步骤S20:基于所述目标算法模型对应的目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域。

可以理解的是,每个算法模型对应一个缓冲实例,缓冲实例用于管理某算法模型对应的数据、调度线程以及推理算法。在具体实现中,不同场景线程在使用同一算法模型时,调用同一缓冲实例,将帧数据存储至同一存储区域。

步骤S30:在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

需要说明的是,在不同场景线程使用同一算法模型时,将帧数据存储至同一存储区域,在该存储区域满足预设要求时,调用对应的调度线程取出待推理数据。在面对多场景AI推理(人工智能推理)时,短时间内各缓冲实例管理的存储区域中可快速存储多张帧数据,从而保证对多张帧数据进行推理,节约了硬件资源,提高硬件资源的利用效率。预设要求与预先设置的检测机制相匹配,例如,在检测机制为定时检测时,预设要求为当前存储区域中存在数据;在检测机制为定量检测时,当前存储区域中的数据的数量达到数量阈值或大小达到容量阈值。例如,假设数量阈值为N,在检测到当前存储区域中的数据的数量达到N时,基于当前缓冲实例对应的调度线程从当前存储区域中取出待推理数据。

可选地,所述步骤S30,包括:基于当前缓冲实例对应的调度线程按照预设检测周期定时检测当前存储区域中的数据;在检测到所述当前存储区域中存在数据时,根据所述调度线程从所述当前存储区域中取出待推理数据。

可以理解的是,预设检测周期可以根据实际情况进行设置,当前缓冲实例对应的调度线程定时检测当前存储区域中的数据,在检测到存在数据时,从当前存储区域中取出待推理数据,在待处理数据被取出后,当前存储区域中不存在数据,直到对应的当前缓冲实例再次存储帧数据。

可选地,所述步骤S30,包括:在检测到当前存储区域中的数据数量达到预设数量阈值时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

需要说明的是,预设数量阈值可以根据实际情况进行设置,例如,设置存储区域的缓冲数据上限为N,在当前存储区域中的数据数量达到N时,触发从当前存储区域中取出待推理数据的操作。可选的,设置调度实例,用于将帧数据传输至目标算法模型对应的目标缓冲实例,存储至对应的存储区域,在调度实例处设置计数机制,确定各存储区域存储的数据数量;可选的,设置包含计数机制的检测器,用于检测当前存储区域中的数据数量,在检测到达到预设数量阈值时,调用调度线程取出待推理数据。

可选地,所述步骤S30,包括:在检测到当前存储区域中的数据大小超过预设容量大小时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

可以理解的是,预设容量大小可以根据实际情况进行设置,设置包含空间容量检测的检测器,用于检测当前存储区域中的数据大小,在检测到超过预设容量大小时,调用调度线程取出待推理数据。

步骤S40:将所述待推理数据合成批次数据。

需要说明的是,本实施例在当前存储区域满足预设要求时,调用批次数据合成接口,按batch(批)加载待推理数据,得到批次数据。

步骤S50:根据所述当前缓冲实例对所述批次数据进行推理。

具体地,所述步骤S50,包括:根据所述当前缓冲实例将所述批次数据发送至推理引擎,以使所述推理引擎根据所述当前缓冲实例对应的当前推理算法对所述批次数据进行推理。

可以理解的是,当前缓冲实例管理有对应的推理算法,将批次数据发送到推理引擎进行推理,在具体实现中,设置有多个推理引擎执行推理任务,可选的,设置有硬件分配映射表,硬件分配映射表包括算法模型以及一一对应的推理硬件标识,当前缓冲实例根据硬件分配映射表查找对应的推理硬件标识,将批次数据传输至对应的推理引擎进行推理。可选的,当前缓冲实例在传输批次数据时,获取全部推理引擎的状态参数,根据推理引擎的状态参数选取空闲的推理引擎,以使推理引擎执行批次数据推理操作。

需要说明的是,参照图3,图3为本发明人工智能推理方法一实施例的多场景帧数据处理示意图;其中,AlgoScheduler为调度实例,封装各种AI算法,每一路场景线程创建一个调度实例;BufferMgr为缓冲实例,每个算法模型对应一个缓冲实例,用于管理某个算法模型的数据、存储区域、调度线程和推理算法;Algo(object_detecor)为推理算法,每个算法模型对应一个推理算法;BufferMap frame为存储区域,用于存储某个特定模型所有通道传入的数据;BufferThread为调度线程,用于在存储区域中的数据满足预设要求时,从存储区域调度帧数据。具体的推理流程为:系统启动,创建单个或者组合多个模型的调度实例(AlgoScheduler),通过各个调度实例(AlgoScheduler)将场景线程获取到的帧数据传入到缓冲实例(BufferMgr)的存储区域(BufferMap)中,阻塞当前通道,调度线程(BufferThread)定时检查存储区域(BufferMap)中的数据,定时取数据,合成多batch(批)数据发送到硬件进行推理,在推理结束后,将推理结果分发到对应的场景线程。

本实施例基于场景线程获取帧数据,确定帧数据对应的目标算法模型;基于目标算法模型对应的目标缓冲实例将帧数据存储至目标缓冲实例对应的存储区域;在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从当前存储区域中取出待推理数据;将待推理数据合成批次数据;根据当前缓冲实例对批次数据进行推理。通过上述方式,对多个场景对应的帧数据进行调度推理,将多个场景对应的同一算法模型的帧数据存储如同一存储区域,取出多个帧数据合成批次数据,进行批量推理,提高硬件的利用能力,减少场景排队引起的推理堵塞,提高了推理效率,减小了推理耗时。

参考图4,图4为本发明人工智能推理方法第二实施例的流程示意图。

基于上述第一实施例,本实施例人工智能推理方法在所述步骤S10之前,还包括:

步骤S101:在获取到系统启动指令时,根据各场景线程对应的算法模型创建各所述场景线程对应的调度实例。

可以理解的是,在系统启动时,创建单个或者组合多个模型的调度实例,调度实例用于将场景线程接收的各算法模型对应的帧数据进行调度分配。

所述步骤S20,包括:

步骤S201:根据所述场景线程对应的目标调度实例将所述帧数据传输至所述目标算法模型对应的目标缓冲实例,以使所述目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域。

需要说明的是,每个场景线程对应一个调度实例,每个调度实例根据若干算法模型对应若干缓冲实例,每个缓冲实例管理一个算法模型对应的所有通道接收的数据、存储帧数据的存储区域、调度线程以及推理算法。缓冲实例将各调度实例传输的帧数据存储至同一存储区域,即将多场景线程接收的同一算法模型对应的帧数据存储至同一存储区域,从中取出若干帧数据,合成批次数据进行推理,以实现多场景的批次数据推理。

本实施例在获取到系统启动指令时,根据各场景线程对应的算法模型创建各场景线程对应的调度实例;基于场景线程获取帧数据,并确定帧数据对应的目标算法模型;根据场景线程对应的目标调度实例将帧数据传输至目标算法模型对应的目标缓冲实例,以使目标缓冲实例将帧数据存储至目标缓冲实例对应的存储区域;在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从当前存储区域中取出待推理数据;将待推理数据合成批次数据;根据当前缓冲实例对批次数据进行推理。通过上述方式,创建各场景线程对应的调度实例,基于调度实例将多个场景对应的帧数据传输至算法模型对应的缓冲实例管理的存储区域,将多个场景对应的同一算法模型的帧数据存储如同一存储区域,取出多个帧数据合成批次数据,进行批量推理,提高硬件的利用能力,减少场景排队引起的推理堵塞,提高了推理效率,减小了推理耗时。

参考图5,图5为本发明人工智能推理方法第三实施例的流程示意图。

基于上述第一实施例,本实施例人工智能推理方法在所述步骤S50之后,还包括:

步骤S501:在检测到所述批次数据推理完成时,将推理结果分发至所述批次数据对应的各场景线程。

可以理解的是,本实施例中采用两种方式分发推理结果,第一种方式是在每个批次数据推理完成时,按批次分发推理结果;第二种方式是在每个帧数据推理完成时,根据帧数据对应的场景线程分发推理结果。

进一步地,所述目标调度实例通过通道传输帧数据至所述目标缓冲实例。

需要说明的是,目标调度实例通过通道(channel)将帧数据进行传输时,如果目标缓冲实例一直没有接收,发送操作将持续阻塞通道。

具体地,所述步骤S501,包括:在检测到所述批次数据推理完成时,确定所述批次数据中各帧数据分别对应的通道标识;根据若干所述通道标识分别查找对应的线程标识;根据若干所述线程标识将推理结果分发至对应的各场景线程。

可以理解的是,每个通道对应的一个场景线程,在系统启动时,创建每个场景线程对应的调度实例,调度实例将场景线程接收的帧数据通过通道传输至缓冲实例对应的存储区域,将线程标识(线程ID)绑定通道,通过线程ID唤醒对应的通道,将推理结果通过唤醒的通道分发至对应的场景线程。

在一实施例中,所述步骤S50之后,所述方法还包括:在检测到目标场景线程对应的目标帧数据推理完成时,根据所述目标帧数据查找所述目标场景线程对应的目标线程标识;根据所述目标线程标识将目标推理结果发送至所述目标场景线程。

在具体实现中,在对帧数据进行传输时,根据接收的场景线程对帧数据进行标记,在检测到帧数据推理完成时,根据帧数据查找对应的线程标识,根据线程标识唤醒对应的通道,将推理结果通过唤醒的通道分发至对应的场景线程。

本实施例基于场景线程获取帧数据,并确定帧数据对应的目标算法模型;基于目标算法模型对应的目标缓冲实例将帧数据存储至目标缓冲实例对应的存储区域;在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从当前存储区域中取出待推理数据;将待推理数据合成批次数据;根据当前缓冲实例对批次数据进行推理;在检测到批次数据推理完成时,将推理结果分发至批次数据对应的各场景线程。通过上述方式,对多个场景对应的帧数据进行调度推理,将多个场景对应的同一算法模型的帧数据存储如同一存储区域,取出多个帧数据合成批次数据,进行批量推理,将推理结果返回至各场景线程,实现对多个场景的推理任务进行批次推理,提高硬件的利用能力,减少场景排队引起的推理堵塞,提高了推理效率,减小了推理耗时。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有人工智能推理程序,所述人工智能推理程序被处理器执行时实现如上文所述的人工智能推理方法。

由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。

参照图6,图6为本发明人工智能推理装置第一实施例的结构框图。

如图6所示,本发明实施例提出的人工智能推理装置包括:

确定模块10,用于基于场景线程获取帧数据,并确定所述帧数据对应的目标算法模型。

调度模块20,用于基于所述目标算法模型对应的目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域。

检测模块30,用于在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

合成模块40,用于将所述待推理数据合成批次数据。

推理模块50,用于根据所述当前缓冲实例对所述批次数据进行推理。

应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。

本实施例基于场景线程获取帧数据,确定帧数据对应的目标算法模型;基于目标算法模型对应的目标缓冲实例将帧数据存储至目标缓冲实例对应的存储区域;在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从当前存储区域中取出待推理数据;将待推理数据合成批次数据;根据当前缓冲实例对批次数据进行推理。通过上述方式,对多个场景对应的帧数据进行调度推理,将多个场景对应的同一算法模型的帧数据存储如同一存储区域,取出多个帧数据合成批次数据,进行批量推理,提高硬件的利用能力,减少场景排队引起的推理堵塞,提高了推理效率,减小了推理耗时。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的人工智能推理方法,此处不再赘述。

在一实施例中,所述人工智能推理装置还包括创建模块;

所述创建模块,用于在获取到系统启动指令时,根据各场景线程对应的算法模型创建各所述场景线程对应的调度实例;

所述调度模块20,还用于根据所述场景线程对应的目标调度实例将所述帧数据传输至所述目标算法模型对应的目标缓冲实例,以使所述目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域。

在一实施例中,所述目标调度实例通过通道传输帧数据至所述目标缓冲实例。

在一实施例中,所述人工智能推理装置还包括分发模块;

所述分发模块,用于在检测到所述批次数据推理完成时,将推理结果分发至所述批次数据对应的各场景线程。

在一实施例中,所述分发模块,还用于在检测到所述批次数据推理完成时,确定所述批次数据中各帧数据分别对应的通道标识,根据若干所述通道标识分别查找对应的线程标识,根据若干所述线程标识将推理结果分发至对应的各场景线程。

在一实施例中,所述人工智能推理装置还包括结果返回模块;

所述结果返回模块,用于在检测到目标场景线程对应的目标帧数据推理完成时,根据所述目标帧数据查找所述目标场景线程对应的目标线程标识,根据所述目标线程标识将目标推理结果发送至所述目标场景线程。

在一实施例中,所述推理模块50,还用于根据所述当前缓冲实例将所述批次数据发送至推理引擎,以使所述推理引擎根据所述当前缓冲实例对应的当前推理算法对所述批次数据进行推理。

在一实施例中,所述检测模块30,还用于基于当前缓冲实例对应的调度线程按照预设检测周期定时检测当前存储区域中的数据,在检测到所述当前存储区域中存在数据时,根据所述调度线程从所述当前存储区域中取出待推理数据。

在一实施例中,所述检测模块30,还用于在检测到当前存储区域中的数据数量达到预设数量阈值时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

在一实施例中,所述检测模块30,还用于在检测到当前存储区域中的数据大小超过预设容量大小时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

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

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

本发明公开了A1、一种人工智能推理方法,所述人工智能推理方法包括:

基于场景线程获取帧数据,并确定所述帧数据对应的目标算法模型;

基于所述目标算法模型对应的目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域;

在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据;

将所述待推理数据合成批次数据;

根据所述当前缓冲实例对所述批次数据进行推理。

A2、如A1所述的人工智能推理方法,所述基于场景线程获取帧数据,并确定所述帧数据对应的目标算法模型之前,所述方法还包括:

在获取到系统启动指令时,根据各场景线程对应的算法模型创建各所述场景线程对应的调度实例;

所述基于所述目标算法模型对应的目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域,包括:

根据所述场景线程对应的目标调度实例将所述帧数据传输至所述目标算法模型对应的目标缓冲实例,以使所述目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域。

A3、如A2所述的人工智能推理方法,所述目标调度实例通过通道传输帧数据至所述目标缓冲实例。

A4、如A3所述的人工智能推理方法,所述根据所述当前缓冲实例对所述批次数据进行推理之后,所述方法还包括:

在检测到所述批次数据推理完成时,将推理结果分发至所述批次数据对应的各场景线程。

A5、如A4所述的人工智能推理方法,所述在检测到所述批次数据推理完成时,将推理结果分发至所述批次数据对应的各场景线程,包括:

在检测到所述批次数据推理完成时,确定所述批次数据中各帧数据分别对应的通道标识;

根据若干所述通道标识分别查找对应的线程标识;

根据若干所述线程标识将推理结果分发至对应的各场景线程。

A6、如A3所述的人工智能推理方法,所述根据所述当前缓冲实例对所述批次数据进行推理之后,所述方法还包括:

在检测到目标场景线程对应的目标帧数据推理完成时,根据所述目标帧数据查找所述目标场景线程对应的目标线程标识;

根据所述目标线程标识将目标推理结果发送至所述目标场景线程。

A7、如A1所述的人工智能推理方法,所述根据所述当前缓冲实例对所述批次数据进行推理,包括:

根据所述当前缓冲实例将所述批次数据发送至推理引擎,以使所述推理引擎根据所述当前缓冲实例对应的当前推理算法对所述批次数据进行推理。

A8、如A1-A7中任一项所述的人工智能推理方法,所述在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据,包括:

基于当前缓冲实例对应的调度线程按照预设检测周期定时检测当前存储区域中的数据;

在检测到所述当前存储区域中存在数据时,根据所述调度线程从所述当前存储区域中取出待推理数据。

A9、如A1-A7中任一项所述的人工智能推理方法,所述在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据,包括:

在检测到当前存储区域中的数据数量达到预设数量阈值时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

A10、如A1-A7中任一项所述的人工智能推理方法,所述在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据,包括:

在检测到当前存储区域中的数据大小超过预设容量大小时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据。

本发明还公开了B11、一种人工智能推理装置,所述人工智能推理装置包括:

确定模块,用于基于场景线程获取帧数据,并确定所述帧数据对应的目标算法模型;

调度模块,用于基于所述目标算法模型对应的目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域;

检测模块,用于在检测到当前存储区域中的数据满足预设要求时,基于当前缓冲实例对应的调度线程从所述当前存储区域中取出待推理数据;

合成模块,用于将所述待推理数据合成批次数据;

推理模块,用于根据所述当前缓冲实例对所述批次数据进行推理。

B12、如B11所述的人工智能推理装置,所述人工智能推理装置还包括创建模块;

所述创建模块,用于在获取到系统启动指令时,根据各所述场景线程对应的算法模型创建各场景线程对应的调度实例;

所述调度模块,还用于根据所述场景线程对应的目标调度实例将所述帧数据传输至所述目标算法模型对应的目标缓冲实例,以使所述目标缓冲实例将所述帧数据存储至所述目标缓冲实例对应的存储区域。

B13、如B12所述的人工智能推理装置,所述目标调度实例通过通道传输帧数据至所述目标缓冲实例。

B14、如B13所述的人工智能推理装置,所述人工智能推理装置还包括分发模块;

所述分发模块,用于在检测到所述批次数据推理完成时,将推理结果分发至所述批次数据对应的各场景线程。

B15、如B14所述的人工智能推理装置,所述分发模块,还用于在检测到所述批次数据推理完成时,确定所述批次数据中各帧数据分别对应的通道标识,根据若干所述通道标识分别查找对应的线程标识,根据若干所述线程标识将推理结果分发至对应的各场景线程。

B16、如B13所述的人工智能推理装置,所述人工智能推理装置还包括结果返回模块;

所述结果返回模块,用于在检测到目标场景线程对应的目标帧数据推理完成时,根据所述目标帧数据查找所述目标场景线程对应的目标线程标识,根据所述目标线程标识将目标推理结果发送至所述目标场景线程。

B17、如B11所述的人工智能推理装置,所述推理模块,还用于根据所述当前缓冲实例将所述批次数据发送至推理引擎,以使所述推理引擎根据所述当前缓冲实例对应的当前推理算法对所述批次数据进行推理。

B18、如B11-B17中任一项所述的人工智能推理装置,所述检测模块,还用于基于当前缓冲实例对应的调度线程按照预设检测周期定时检测当前存储区域中的数据,在检测到所述当前存储区域中存在数据时,根据所述调度线程从所述当前存储区域中取出待推理数据。

本发明还公开了C19、一种人工智能推理设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的人工智能推理程序,所述人工智能推理程序配置为实现如A1至A10中任一项所述的人工智能推理方法。

本发明还公开了D20、一种存储介质,所述存储介质上存储有人工智能推理程序,所述人工智能推理程序被处理器执行时实现如A1至A10任一项所述的人工智能推理方法。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种贝叶斯网络参数初始化方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!