CN114064298A - 数据处理方法和装置、存储介质和电子装置 - Google Patents

数据处理方法和装置、存储介质和电子装置 Download PDF

Info

Publication number
CN114064298A
CN114064298A CN202010764841.5A CN202010764841A CN114064298A CN 114064298 A CN114064298 A CN 114064298A CN 202010764841 A CN202010764841 A CN 202010764841A CN 114064298 A CN114064298 A CN 114064298A
Authority
CN
China
Prior art keywords
inference model
target
data
model
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010764841.5A
Other languages
English (en)
Inventor
张占文
樊鸿飞
蔡媛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010764841.5A priority Critical patent/CN114064298A/zh
Publication of CN114064298A publication Critical patent/CN114064298A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据处理方法和装置、存储介质和电子装置,其中,该方法包括:确定与待处理的第一流程对应的目标推理模型,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;获取多个流程中的第二流程所共享的推理模型数据,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程;基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。通过本发明,解决了相关技术中的多流程操作的处理方式存在由于需要根据流程数量分别对各个流程进行操作导致的时间消耗大的问题。

Description

数据处理方法和装置、存储介质和电子装置
技术领域
本申请涉及互联网领域,尤其涉及一种数据处理方法和装置、存储介质和电子装置。
背景技术
TensorRT是一种高性能神经网络推理(Inference)引擎,用于在生产环境中部署深度学习应用程序,应用有图像分类、分割和目标检测等,可提供较大的推理吞吐量和效率。
相关技术中,TensorRT的初始化过程一般分为两种过程:
序列化过程:对于已经存在的模型文件和使用API(Application ProgrammingInterface,应用程序接口)搭建好的网络模型(network),进行权重文件读取和network序列化,得到序列化之后的模型文件;
反序列化过程:对于序列化之后的模型文件,通过读取序列化文件,再经过反序列化进行初始化,得到初始化之后的网络模型。
如果已经存在序列化之后的模型文件,则可以直接采用反序列化过程得到初始化之后的网络模型。上述序列化过程的耗时较大,反序列化过程也需要一定时间。
然而,在基于TensorRT进行多流程(例如,多线程,多进程)操作的情况下,存在由于需要根据线程数量分别对各个线程进行操作导致的时间消耗大的问题。
发明内容
本申请提供了一种数据处理方法和装置、存储介质和电子装置,以至少解决相关技术中的多流程操作的处理方式存在由于需要根据流程数量分别对各个流程进行操作导致的时间消耗大的问题。
根据本申请实施例的一个方面,提供了一种数据处理方法,包括:确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。
可选地,确定与待处理的第一流程对应的目标推理模型包括:在第一资源数据为目标视频中的视频帧的情况下,确定第一资源数据的目标分辨率;按照目标分辨率,确定与第一流程对应的目标推理模型,其中,目标推理模型为对目标分辨率的视频帧进行推理的推理模型。
可选地,在获取多个流程中的第二流程所共享的推理模型数据之前,上述方法还包括:确定目标推理模型处于锁定状态,其中,锁定状态为在被第二流程初始化的过程中目标推理模型所处的状态;将第一流程配置为等待状态,其中,等待状态为等待目标推理模型由锁定状态转换为未锁定状态的状态。
可选地,确定目标推理模型处于锁定状态包括:调用与目标推理模型对应的目标互斥锁,其中,目标互斥锁用于禁止目标推理模型同时被两个及两个以上的流程初始化;在与目标互斥锁对应的互斥变量的变量值为第一变量值的情况下,确定目标推理模型处于锁定状态,其中,第一变量值为目标推理模型被初始化时互斥变量被设置为的变量值。
可选地,获取多个流程中的第二流程所共享的推理模型数据包括:通过第一流程调用目标互斥锁;在与目标互斥锁对应的互斥变量的变量值为第二变量值的情况下,获取第二流程所共享的推理模型数据,其中,第二变量值为目标推理模型初始化完成之后互斥变量被设置为的变量值。
可选地,在获取多个流程中的第二流程所共享的推理模型数据之前,上述方法还包括:读取目标推理模型的权重文件和目标推理模型的网络结构;使用权重文件和网络结构对目标推理模型进行序列化,得到与目标推理模型对应的第一序列化文件;对第一序列化文件进行反序列化,得到初始化的目标推理模型,其中,推理模型数据包括以下至少之一:权重文件,第一序列化文件,反序列化之后得到的推理句柄。
可选地,在获取多个流程中的第二流程所共享的推理模型数据之前,上述方法还包括:读取目标推理模型对应的第二序列化文件;对第二序列化文件进行反序列化,得到初始化的目标推理模型,其中,推理模型数据包括以下至少之一:第二序列化文件,反序列化之后得到的推理句柄。
可选地,获取多个流程中的第二流程所共享的推理模型数据包括:在第一流程和第二流程均为线程的情况下,获取第二流程通过第一共享方式所共享的推理模型数据,第一共享方式为以下至少之一:共享对象,共享内存,管道通信;在第一流程和第二流程均为进程的情况下,获取第二流程通过第二共享方式所共享的推理模型数据,第二共享方式为以下至少之一:共享对象,共享内存,零拷贝消息队列。
根据本申请实施例的另一个方面,还提供了一种数据处理装置,包括:第一确定单元,用于确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;获取单元,用于获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;推理单元,用于基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。
可选地,第一确定单元包括:第一确定模块,用于在第一资源数据为目标视频中的视频帧的情况下,确定第一资源数据的目标分辨率;第二确定模块,用于按照目标分辨率,确定与第一流程对应的目标推理模型,其中,目标推理模型为对目标分辨率的视频帧进行推理的推理模型。
可选地,上述装置还包括:第二确定单元,用于在获取多个流程中的第二流程所共享的推理模型数据之前,确定目标推理模型处于锁定状态,其中,锁定状态为在被第二流程初始化的过程中目标推理模型所处的状态;配置单元,用于将第一流程配置为等待状态,其中,等待状态为等待目标推理模型由锁定状态转换为未锁定状态的状态。
可选地,第二确定单元包括:第一调用模块,用于调用与目标推理模型对应的目标互斥锁,其中,目标互斥锁用于禁止目标推理模型同时被两个及两个以上的流程初始化;第三确定模块,用于在与目标互斥锁对应的互斥变量的变量值为第一变量值的情况下,确定目标推理模型处于锁定状态,其中,第一变量值为目标推理模型被初始化时互斥变量被设置为的变量值。
可选地,获取单元包括:第二调用模块,用于通过第一流程调用目标互斥锁;第一获取模块,用于在与目标互斥锁对应的互斥变量的变量值为第二变量值的情况下,获取第二流程所共享的推理模型数据,其中,第二变量值为目标推理模型初始化完成之后互斥变量被设置为的变量值。
可选地,上述装置还包括:第一读取单元,用于在获取多个流程中的第二流程所共享的推理模型数据之前,读取目标推理模型的权重文件和目标推理模型的网络结构;序列化单元,用于使用权重文件和网络结构对目标推理模型进行序列化,得到与目标推理模型对应的第一序列化文件;第一反序列化单元,用于对第一序列化文件进行反序列化,得到初始化的目标推理模型,其中,推理模型数据包括以下至少之一:权重文件,第一序列化文件,反序列化之后得到的推理句柄。
可选地,上述装置还包括:第二读取单元,用于在获取多个流程中的第二流程所共享的推理模型数据之前,读取目标推理模型对应的第二序列化文件;第二反序列化单元,用于对第二序列化文件进行反序列化,得到初始化的目标推理模型,其中,推理模型数据包括以下至少之一:第二序列化文件,反序列化之后得到的推理句柄。
可选地,获取单元包括:第二获取模块,在第一流程和第二流程均为线程的情况下,获取第二流程通过第一共享方式所共享的推理模型数据,第一共享方式为以下至少之一:共享对象,共享内存,管道通信;第三获取模块,在第一流程和第二流程均为进程的情况下,获取第二流程通过第二共享方式所共享的推理模型数据,第二共享方式为以下至少之一:共享对象,共享内存,零拷贝消息队列。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请实施例的又一个方面,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在本申请实施例中,采用多个流程共享模型数据的方式,通过确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果,由于多个流程共享模型数据,只需要进行一次初始化操作,得到的模型数据可以被多个流程共享,而无需重复进行模型初始化操作,达到减少模型初始化次数的目的,从而实现了减少流程操作时间消耗、提高流程处理效率的技术效果,进而解决了相关技术中的多流程操作的处理方式存在由于需要根据流程数量分别对各个流程进行操作导致的时间消耗大的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种可选的服务器的硬件结构框图;
图2是根据本申请实施例的一种可选的数据处理方法的流程示意图;
图3是根据本申请实施例的一种可选的数据处理方法的示意图;
图4是根据本申请实施例的另一种可选的数据处理方法的流程图;
图5是根据本申请实施例的又一种可选的数据处理方法的流程图;
图6是根据本申请实施例的又一种可选的数据处理方法的流程图;
图7是根据本申请实施例的另一种可选的数据处理方法的流程示意图;
图8是根据本申请实施例的一种可选的数据处理装置的结构框图;
图9是根据本申请实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
TensorRT:NVIDIA(英伟达)推广的一个基于GPU的快速模型推理的架构;
CPU:Central Processing Unit,中央处理器;
GPU:Graphics Processing Unit,图形处理器;
Inference:模型推理;
序列化(serialize):对使用TensorRT API进行搭建的推理模型的编译优化过程;
反序列化(deserialize):序列化的逆过程,通过读取序列化之后存储成的文件,经过反序列化可以生成直接推理使用的网络的处理流程。
零拷贝消息队列(Zero Message Queue,Zmq/ZeroMQ/
Figure BDA0002613106060000071
/0MQ,以下为,ZMQ):是一个简单好用的传输层,像框架一样的一个socket library,使得Socket编程更加简单、简洁和性能更高;是一个消息处理队列库,可在多个线程、主机盒和内核之间弹性伸缩,可以理解为一个不用进行内存拷贝的消息队列库。
根据本申请实施例的一个方面,提供了一种数据处理方法。可选地,在本实施例中,上述数据处理方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。本申请实施例的数据处理方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本申请实施例的数据处理方法也可以是由安装在其上的客户端来执行。
图2是根据本申请实施例的一种可选的数据处理方法的流程示意图,如图2所示,该方法可以包括以下步骤:
步骤S202,确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;
步骤S204,获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;
步骤S206,基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。
通过上述步骤S202至步骤S206,通过确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果,解决了相关技术中的多流程操作的处理方式存在由于需要根据流程数量分别对各个流程进行操作导致的时间消耗大的问题,减少了流程操作时间消耗、提高了流程处理效率。
在步骤S202提供的技术方案中,确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型。
本实施例中的数据处理方法可以应用于使用目标推理模型进行数据资源处理的过程。对于模型,其可以具有训练(training)和推理两个过程,其中,训练包含了前向传播和后向传播两个阶段,针对的是训练集,训练时通过误差反向传播来不断修改模型中网络的权值,而推理只包含前向传播一个阶段,针对的是除了训练集之外的新数据,可以是测试集,也可以是整个数据集之外的数据。
推理实质上是针对资源数据进行预测,得到资源数据的预测结果,对于不同的应用场景,上述预测结果可以指示不同的信息,例如,图像分类结果,图像分割结果,检测到的图像中包含的目标等,又例如,图像画质的调整信息(例如,粗糙,柔和等)。
推理模型可以是对资源数据进行预测的预测模型,例如,图像分类模型,图像分割模型,对象检测模型等,进行资源数据处理的设备,即,处理设备(例如,服务器,客户端等),可以包括但不限于以下至少之一:CPU和GPU,通过CPU和GPU的组合可实现对资源数据的处理。目标推理模型或者初始化后的推理模型可以运行在CPU上、GPU上、或者CPU和GPU上。
在处理设备上可以通过多个流程处理多个资源数据。多个流程可以是多个线程或者多个进程,多个资源数据可以是同一视频中的多个视频帧,或者,其他类型的资源数据,目标推理模型允许被上述多个流程共享。多个流程可以是处理相同类型的资源数据的流程。
多个流程中的第一流程用于使用目标推理模型对第一资源数据进行推理,处理设备(例如,处理设备的CPU)可以确定与待处理的第一流程对应的目标推理模型,例如,基于流程与推理模型的对应关系确定出目标推理模型,也可以是基于资源数据和推理模型的对应关系确定出目标推理模型。具体确定与待处理的第一流程对应的目标推理模型的方式,本实施例中对此不作赘述。
在步骤S204提供的技术方案中,获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化。
目标推理模型可以包含多个卷积神经网络,为了避免由于网络模型过大、参数过多或者受到部署端的机器性能限制而导致推理速度慢,在使用目标推理模型对资源数据进行推理之前,可以对目标推理模型进行初始化。
多个流程中的第二流程可以使用目标推理模型处理第二资源数据,在处理第二资源数据之前,可以首先对目标推理模型进行初始化,得到推理模型数据,该推理模型数据可以是初始化完成之后得到的模型数据,也可以是在初始化过程中得到的模型数据,本实施例中对此不作限定。
由于目标推理模型可以被多个流程使用,在该目标推理模型被使用的过程中,可以将某一个流程对目标推理模型进行初始化得到的推理模型数据共享给其他流程,简化甚至省略其他流程的初始化过程,从而减少资源数据的处理耗时。
处理设备可以获取第二流程所共享的推理模型数据,以便使用该推理模型数据处理第一流程。
在步骤S206提供的技术方案中,基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。
在得到推理模型数据之后,处理器可以基于该推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。
如果推理模型数据为初始化完成之后得到的模型数据(例如,初始化后的推理模型),处理器可以基于推理模型数据直接使用初始化后的目标推理模型对第一资源数据进行推理,如果推理模型数据为在初始化过程中得到的模型数据,则可以基于该推理模型数据完成目标推理模型的初始化(该推理模型数据可以简化初始化的部分过程),得到初始化后的目标推理模型,并使用初始化后的目标推理模型对第一资源数据进行推理。
需要说明的是,初始化后的目标推理模型是优化的目标推理模型,两者所提供的推理功能可以是相同的(例如,均进行图像分类等),但网络结构之间存在区别,通过对网络结构的优化,可以提高推理速度。
作为一种示例,假设应用场景中需要对三帧数据进行并行推理,按照相关技术中的处理方式需要进行三次模型的初始化操作。如果此模型没有序列化文件,初始化一次的理想时间为18s,那么,全部初始化完成的时间就是18s*3=54s。即便是多线程进行处理,模型初始化的运行对象是显卡,且每次序列化通常会消耗显卡的全部算力,那么完成3次的序列化时间也不会缩短。
而采用本实施例中的数据处理方法,可以实现只需进行一次初始化,其他直接使用。如此,仅需要一次序列化时间消耗,整体模型初始化时间就是固定的18s,则三帧数据处理的加速比为3。并且加速比在显卡资源支持的情况下与帧并行数量(线程数量)成正比。
作为一种可选的实施例,确定与待处理的第一流程对应的目标推理模型包括:
S11,在第一资源数据为目标视频中的视频帧的情况下,确定第一资源数据的目标分辨率;
S12,按照目标分辨率,确定与第一流程对应的目标推理模型,其中,目标推理模型为对目标分辨率的视频帧进行推理的推理模型。
多个流程可以是多个并行处理的流程,处理的资源数据可以是目标视频中的视频帧。在高清影音处理或者类似场景中,可以使用多帧数据并行处理,以求对硬件设备满负荷或者近似满负荷运行。
相关技术中,在TensorRT处理流程中,对于未知分辨率数据,可以进行模型的序列化和反序列化后进行推理操作;对于已知分辨率数据,可以进行序列化模型文件读取、模型反序列化后进行推理操作。
例如,对于多帧(3帧)并行处理的场景,未知分辨率数据的处理流程可以如图3所示,已知分辨率数据的处理流程可以如图4所示。在图3和图4中,带有斜线标记的操作是由设备端(GPU)运行,没有斜线标记的操作是在主端(CPU)运行。对于设备端是否可以进行并行取决于设备资源,而在进行序列化与反序列化过程中相对使用资源较多,所以在进行两种过程中实际是按照顺序执行。
由图3和图4可以看出,对于没有序列化文件和有序列化文件的两种情况,当进行多帧并行时,流程初始化次数与帧数成正比,存在较多的重复操作,初始化的时间为每个帧的初始化时间的帧数倍。
可选地,在本实施例中,同等分辨率的多帧数据可以使用相同的推理模型进行推理。在同等分辨率的多帧数据并行处理的过程中,可以仅进行一次模型初始化过程。
第一资源数据可以是视频帧数据。在对视频帧数据进行推理时,处理设备(例如,处理设备的CPU)可以确定第一资源数据的目标分辨率,并按照目标分辨率,确定与第一流程对应的目标推理模型,该目标推理模型可以对目标分辨率的视频帧进行推理。
通过本实施例,通过使用相同的推理模型对同等分辨率的多帧数据进行推理,并按照分辨率确定所使用的推理模型,可以提高模型确定的准确性,进而缩短模型初始化时间。
作为一种可选的实施例,在获取多个流程中的第二流程所共享的推理模型数据之前,上述方法还包括:
S21,确定目标推理模型处于锁定状态,其中,锁定状态为在被第二流程初始化的过程中目标推理模型所处的状态;
S22,将第一流程配置为等待状态,其中,等待状态为等待目标推理模型由锁定状态转换为未锁定状态的状态。
在目标推理模型被某一流程进行初始化时,可以将该目标推理模型设置为锁定状态。上述锁定状态可以通过状态标识进行指示,该状态标识可以被多个并行流程所访问。
在对目标推理模型进行初始化之前,处理设备可以首先确定该目标推理模型的状态,如果该目标推理模型处于锁定状态,则可以确定该目标推理模型正在被某一流程初始化,可以将第一流程配置为等待状态,以等待目标推理模型由锁定状态转换为未锁定状态,未锁定状态可以是目标推理模型在初始化完成之后所处的状态。
通过本实施例,通过在推理模型被某一初始化时将该推理模型配置为锁定状态,可以保证其他流程可以准确获知推理模型的状态,提高模型状态获取的效率。
作为一种可选的实施例,确定目标推理模型处于锁定状态包括:
S31,调用与目标推理模型对应的目标互斥锁,其中,目标互斥锁用于禁止目标推理模型同时被两个及两个以上的流程初始化;
S32,在与目标互斥锁对应的互斥变量的变量值为第一变量值的情况下,确定目标推理模型处于锁定状态,其中,第一变量值为目标推理模型被初始化时互斥变量被设置为的变量值。
目标推理模型的锁定状态可以通过目标互斥锁在多个流程之间共享,目标互斥锁可以允许目标推理模型在同一时间仅被一个流程初始化,而禁止目标推理模型同时被多于一个流程初始化。
在第二流程对目标推理模型进行初始化时,可以将与目标互斥锁对应的互斥变量的变量值为第一变量值(例如,设置为1)。对于第一流程,处理设备可以通过第一流程调取该互斥变量的变量值,得到该第一变量值;根据第一变量值确定目标推理模型处于锁定状态。
通过本实施例,通过互斥锁在多个流程间共享目标推理模型的状态,可以提高状态共享的效率。
作为一种可选的实施例,获取多个流程中的第二流程所共享的推理模型数据包括:
S41,通过第一流程调用目标互斥锁;
S42,在与目标互斥锁对应的互斥变量的变量值为第二变量值的情况下,获取第二流程所共享的推理模型数据,其中,第二变量值为目标推理模型初始化完成之后互斥变量被设置为的变量值。
互斥变量的变量值可以根据目标推理模型的初始化完成情况进行更新,如果初始化过程未完成,则互斥变量的变量值仍为第一变量值;如果初始化过程未完成,可以将互斥变量的变量值更新为第二变量值,以指示目标推理模型的初始化过程已完成。
可以周期性、或者事件触发调用第一流程调用目标互斥锁。如果与该互斥锁对应的互斥变量的变量值为第一变量值,则确定该目标推理模型的初始化过程未完成,继续等待。如果与该互斥锁对应的互斥变量的变量值为第二变量值,则确定该目标推理模型的初始化过程已完成,可以获取第二流程所共享的推理模型数据。
通过本实施例,通过调用互斥锁,并在根据互斥变量的变量值确定推理模型的初始化过程完成之后获取共享的模型数据,可以提高模型数据获取的效率。
作为一种可选的实施例,在获取多个流程中的第二流程所共享的推理模型数据之前,上述方法还包括:
S51,读取目标推理模型的权重文件和目标推理模型的网络结构;
S52,使用权重文件和网络结构对目标推理模型进行序列化,得到与目标推理模型对应的第一序列化文件;
S53,对第一序列化文件进行反序列化,得到初始化的目标推理模型,其中,推理模型数据包括以下至少之一:权重文件,第一序列化文件,反序列化之后得到的推理句柄。
推理模型的初始化过程可以是模型优化过程,可以包括序列化过程和反序列化过程。模型优化使用的可以是TensorRT,TensorRT可以对训练好的模型进行优化,可以认为是一种推理优化器,使用TensorRT进行初始化的过程可以包括:
序列化过程:对于已存在的模型文件和使用API搭建好的网络模型,进行权重文件的读取与network的序列化,得到序列化文件;
反序列化过程:读取序列化文件,经过反序列化后得到可以在部署端进行部署的网络模型(推理模型)。
在进行目标推理模型初始化时,处理设备可以首先读取目标推理模型的权重文件和目标推理模型的网络结构,并使用该权重文件和网络结构对目标推理模型进行序列化,得到与目标推理模型对应的第一序列化文件。第一序列化文件可以在反序列化过程中使用。可以读取第一序列化文件,对第一序列化文件进行反序列化,得到初始化的目标推理模型。
上述序列化过程可以是对推理模型优化得到优化后的推理模型的模型文件的过程,模型文件可以包括:权重文件,网络结构。上述反序列化过程可以是使用优化后的推理模型的模型文件还原成优化后的推理模型的过程。
在模型初始化过程中可以得到多种数据,例如,权重文件,第一序列化文件,反序列化之后得到的推理句柄等,推理模型数据可以是上述数据中的一种或多种。
通过本实施例,通过对推理模型进行序列化和反序列化,可以适用于没有序列化文件的场景,提高推理模型初始化过程的适用性。
作为一种可选的实施例,在获取多个流程中的第二流程所共享的推理模型数据之前,上述方法还包括:
S61,读取目标推理模型对应的第二序列化文件;
S62,对第二序列化文件进行反序列化,得到初始化的目标推理模型,其中,推理模型数据包括以下至少之一:第二序列化文件,反序列化之后得到的推理句柄。
如果序列化文件已存在,初始化过程也可以仅包含反序列化过程,反序列化过程与上述类似,在此不做赘述。
在模型反序列化过程中可以得到多种数据,例如,第二序列化文件,反序列化之后得到的推理句柄等,推理模型数据可以是上述数据中的一种或多种。
通过本实施例,通过对推理模型进行反序列化,可以适用于有序列化文件的场景,提高推理模型初始化过程的适用性。
作为一种可选的实施例,获取多个流程中的第二流程所共享的推理模型数据包括:
S71,在第一流程和第二流程均为线程的情况下,获取第二流程通过第一共享方式所共享的推理模型数据,第一共享方式为以下至少之一:共享对象,共享内存,管道通信;
S72,在第一流程和第二流程均为进程的情况下,获取第二流程通过第二共享方式所共享的推理模型数据,第二共享方式为以下至少之一:共享对象,共享内存,零拷贝消息队列。
推理模型数据的共享方式(手段)可以有多种,可以包括但不限于以下至少之一:共享对象(例如,全局数组,全局对象),共享内存(share-memory),管道通信,零拷贝消息队列。
上述数据处理方法的使用场景包括但不限于:多线程(多个并行流程为多个线程)和多进程(多个并行流程为多个进程),不同的并行场景中,进行通信的手段不同,共享手段也会产生差别。
如果第一流程和第二流程均为线程,处理设备可以获取第二流程通过线程间的数据通信方式(第一共享方式)所共享的推理模型数据,线程间的数据通信方式可以是共享对象,管道通信、共享内存等。
如果第一流程和第二流程均为进程,处理设备可以获取第二流程通过进程间的数据通信方式(第二共享方式)所共享的推理模型数据,进程间的数据通信方式可以是:共享对象,共享内存,ZeroMQ等。
通过本实施例,对于多线程和多进程采用不同的共享方式进行模型数据共享,可以提高数据共享的效率。
下面结合可选示例对本申请实施例中的数据处理方法进行解释说明。本示例中的数据处理方法应用于同等分辨率的多帧数据并行处理的过程中。
在本示例中,只需对模型文件或者序列化文件进行一次初始化操作,之后将模型数据进行共享,其他线程或者进程得到共享数据后,可直接进行推理而不需进行重复模型初始化操作。
以通过3个线程对3帧进行并行处理为例,如图5所示,在同等分辨率的多帧数据并行处理的过程中,只需要进行一次初始化过程:
对于先启动的处理线程1(处理第一个帧),可以读取权重文件,获取网络结构,使用权重文件和网络结构进行序列化,得到序列化文件,并将序列化文件进行存盘;读取序列化文件,对序列化文件进行反序列化处理,得到优化的网络模型,并使用优化的网络模型对第一个帧进行推理。处理线程1可以将模型数据在多线程间进行同步。
对于在处理线程1之后启动的处理线程2(处理第二个帧)和处理线程3(处理第三个帧),在确定网络模型正在被初始化时,可以等待该初始化过程完成;在获取到共享数据(处理线程1同步的模型数据)之后,可以使用共享数据得到优化的网络模型,并使用优化的网络模型对第二个帧和第三个帧进行推理。
上述共享数据可以是初始化完成后的推理模型数据,是用于创建推理句柄使用的数据,可以包括但不限于以下至少之一:读取的模型权重参数文件,读取的序列化文件数据,反序列化产生的推理句柄(反序列化之后用于直接创建推理使用的句柄engine,反序列化后创建的推理指针)。
在3帧并行场景下,可以降低CPU使用率降低,同时可以节约2次初始化时间消耗。线程2、线程3在处于等待状态时,此时基本不占用CPU资源。3帧并行处理场景下的时间消耗可以如表1所示,表1中示出了分辨率为1920x1440的3帧并行处理时的时间消耗。
表1
Figure BDA0002613106060000181
模型数据共享的方式可以有多种,例如,共享对象,共享内存,管道通信,零拷贝消息队列等,以共享对象为例说明本示例中的数据处理方法。
如图6和图7所示,本示例中的资源数据方法的流程可以包含以下步骤:
步骤S702,线程1通过mutex锁定共享对象,而后进行共享对象的初始化操作;
步骤S704,线程2和线程3等待线程1的解锁消息。
线程2和线程3可以通过mutex状态得知此时共享对象已经被线程1进行初始化操作,所以线程2和线程3等待,等待线程1的解锁消息。
步骤S706,线程1完成共享对象初始化操作后,发送解锁消息,之后进行推理;
步骤S708,线程2和线程3得到解锁消息后,获取共享对象,并使用共享对象创建自己的推理句柄进行推理。
通过本示例,在多线程场景、或者在多进程场景中,通过共享对象完成同一分辨率的模型一次初始化,可以提供给其他的线程或者进程进行使用,可以有效减少重复工作,缩短了模型初始化的时间。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述数据处理方法的数据处理装置。图8是根据本申请实施例的一种可选的数据处理装置的示意图,如图8所示,该装置可以包括:
(1)第一确定单元802,用于确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;
(2)获取单元804,与第一确定单元802相连,用于获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;
(3)推理单元806,与获取单元804相连,用于基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。
需要说明的是,该实施例中的第一确定单元802可以用于执行上述步骤S202,该实施例中的获取单元804可以用于执行上述步骤S204,该实施例中的推理单元806可以用于执行上述步骤S206。
通过上述模块,通过确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果,解决了相关技术中的多流程操作的处理方式存在由于需要根据流程数量分别对各个流程进行操作导致的时间消耗大的问题,减少了流程操作时间消耗、提高了流程处理效率。
作为一种可选的实施例,第一确定单元802包括:
第一确定模块,用于在第一资源数据为目标视频中的视频帧的情况下,确定第一资源数据的目标分辨率;
第二确定模块,用于按照目标分辨率,确定与第一流程对应的目标推理模型,其中,目标推理模型为对目标分辨率的视频帧进行推理的推理模型。
作为一种可选的实施例,上述装置还包括:
第二确定单元,用于在获取多个流程中的第二流程所共享的推理模型数据之前,确定目标推理模型处于锁定状态,其中,锁定状态为在被第二流程初始化的过程中目标推理模型所处的状态;
配置单元,用于将第一流程配置为等待状态,其中,等待状态为等待目标推理模型由锁定状态转换为未锁定状态的状态。
作为一种可选的实施例,第二确定单元包括:
第一调用模块,用于调用与目标推理模型对应的目标互斥锁,其中,目标互斥锁用于禁止目标推理模型同时被两个及两个以上的流程初始化;
第三确定模块,用于在与目标互斥锁对应的互斥变量的变量值为第一变量值的情况下,确定目标推理模型处于锁定状态,其中,第一变量值为目标推理模型被初始化时互斥变量被设置为的变量值。
作为一种可选的实施例,获取单元804包括:
第二调用模块,用于通过第一流程调用目标互斥锁;
第一获取模块,用于在与目标互斥锁对应的互斥变量的变量值为第二变量值的情况下,获取第二流程所共享的推理模型数据,其中,第二变量值为目标推理模型初始化完成之后互斥变量被设置为的变量值。
作为一种可选的实施例,上述装置还包括:
第一读取单元,用于在获取多个流程中的第二流程所共享的推理模型数据之前,读取目标推理模型的权重文件和目标推理模型的网络结构;
序列化单元,用于使用权重文件和网络结构对目标推理模型进行序列化,得到与目标推理模型对应的第一序列化文件;
第一反序列化单元,用于对第一序列化文件进行反序列化,得到初始化的目标推理模型,其中,推理模型数据包括以下至少之一:权重文件,第一序列化文件,反序列化之后得到的推理句柄。
作为一种可选的实施例,上述装置还包括:
第二读取单元,用于在获取多个流程中的第二流程所共享的推理模型数据之前,读取目标推理模型对应的第二序列化文件;
第二反序列化单元,用于对第二序列化文件进行反序列化,得到初始化的目标推理模型,其中,推理模型数据包括以下至少之一:第二序列化文件,反序列化之后得到的推理句柄。
作为一种可选的实施例,获取单元804包括:
第二获取模块,在第一流程和第二流程均为线程的情况下,获取第二流程通过第一共享方式所共享的推理模型数据,第一共享方式为以下至少之一:共享对象,共享内存,管道通信;
第三获取模块,在第一流程和第二流程均为进程的情况下,获取第二流程通过第二共享方式所共享的推理模型数据,第二共享方式为以下至少之一:共享对象,共享内存,零拷贝消息队列。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述数据处理方法的电子装置,该电子装置可以是服务器、终端、或者其组合。
图9是根据本申请实施例的一种电子装置的结构框图,如图9所示,该电子装置包括存储器902和处理器904,该存储器902中存储有计算机程序,该处理器904被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;
S2,获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;
S2,基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。
其中,存储器902可用于存储软件程序以及模块,如本发明实施例中的数据处理方法和装置对应的程序指令/模块,处理器904通过运行存储在存储器902内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述数据处理方法。存储器902可包括高速随机存储器,还可以包括非易失性存储器,如一个或多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器902可进一步包括相对于处理器904远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器902可以但不限于用于存储推理模型、资源数据等。
作为一种示例,如图9所示,上述存储器902中可以但不限于包括上述数据处理装置中的第一确定单元802、获取单元804及推理单元806。此外,还可以包括但不限于上述数据处理装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置906用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置906包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置906为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:连接总线908,用于连接上述电子装置中的各个模块部件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图9所示的结构仅为示意,实施上述数据处理方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,终端设备还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行数据处理方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,确定与待处理的第一流程对应的目标推理模型,其中,第一流程为使用目标推理模型对第一资源数据进行推理的流程,目标推理模型为允许被多个流程共享的推理模型;
S2,获取多个流程中的第二流程所共享的推理模型数据,其中,推理模型数据为第二流程对目标推理模型进行初始化所得到的数据,第二流程为使用目标推理模型处理第二资源数据的流程,初始化包括:序列化和反序列化;
S2,基于推理模型数据使用初始化后的目标推理模型对第一资源数据进行推理,得到第一资源数据的推理结果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (11)

1.一种数据处理方法,其特征在于,包括:
确定与待处理的第一流程对应的目标推理模型,其中,所述第一流程为使用所述目标推理模型对第一资源数据进行推理的流程,所述目标推理模型为允许被多个流程共享的推理模型;
获取所述多个流程中的第二流程所共享的推理模型数据,其中,所述推理模型数据为所述第二流程对所述目标推理模型进行初始化所得到的数据,所述第二流程为使用所述目标推理模型处理第二资源数据的流程,所述初始化包括:序列化和反序列化;
基于所述推理模型数据使用初始化后的所述目标推理模型对所述第一资源数据进行推理,得到所述第一资源数据的推理结果。
2.根据权利要求1所述的方法,其特征在于,所述确定与待处理的第一流程对应的目标推理模型包括:
在所述第一资源数据为目标视频中的视频帧的情况下,确定所述第一资源数据的目标分辨率;
按照所述目标分辨率,确定与所述第一流程对应的所述目标推理模型,其中,所述目标推理模型为对所述目标分辨率的视频帧进行推理的推理模型。
3.根据权利要求1所述的方法,其特征在于,在所述获取所述多个流程中的第二流程所共享的推理模型数据之前,所述方法还包括:
确定所述目标推理模型处于锁定状态,其中,所述锁定状态为在被所述第二流程初始化的过程中所述目标推理模型所处的状态;
将所述第一流程配置为等待状态,其中,所述等待状态为等待所述目标推理模型由所述锁定状态转换为未锁定状态的状态。
4.根据权利要求3所述的方法,其特征在于,所述确定所述目标推理模型处于锁定状态包括:
调用与所述目标推理模型对应的目标互斥锁,其中,所述目标互斥锁用于禁止所述目标推理模型同时被两个及两个以上的流程初始化;
在与所述目标互斥锁对应的互斥变量的变量值为第一变量值的情况下,确定所述目标推理模型处于锁定状态,其中,所述第一变量值为所述目标推理模型被初始化时所述互斥变量被设置为的变量值。
5.根据权利要求4所述的方法,其特征在于,所述获取所述多个流程中的第二流程所共享的推理模型数据包括:
通过所述第一流程调用所述目标互斥锁;
在与所述目标互斥锁对应的所述互斥变量的变量值为第二变量值的情况下,获取所述第二流程所共享的所述推理模型数据,其中,所述第二变量值为所述目标推理模型初始化完成之后所述互斥变量被设置为的变量值。
6.根据权利要求1所述的方法,其特征在于,在所述获取所述多个流程中的第二流程所共享的推理模型数据之前,所述方法还包括:
读取所述目标推理模型的权重文件和所述目标推理模型的网络结构;
使用所述权重文件和所述网络结构对所述目标推理模型进行序列化,得到与所述目标推理模型对应的第一序列化文件;
对所述第一序列化文件进行反序列化,得到初始化的所述目标推理模型,其中,所述推理模型数据包括以下至少之一:所述权重文件,所述第一序列化文件,反序列化之后得到的推理句柄。
7.根据权利要求1所述的方法,其特征在于,在所述获取所述多个流程中的第二流程所共享的推理模型数据之前,所述方法还包括:
读取所述目标推理模型对应的第二序列化文件;
对所述第二序列化文件进行反序列化,得到初始化的所述目标推理模型,其中,所述推理模型数据包括以下至少之一:所述第二序列化文件,反序列化之后得到的推理句柄。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述获取所述多个流程中的第二流程所共享的推理模型数据包括:
在所述第一流程和第二流程均为线程的情况下,获取第二流程通过第一共享方式所共享的所述推理模型数据,所述第一共享方式为以下至少之一:共享对象,共享内存,管道通信;
在所述第一流程和第二流程均为进程的情况下,获取第二流程通过第二共享方式所共享的所述推理模型数据,所述第二共享方式为以下至少之一:共享对象,共享内存,零拷贝消息队列。
9.一种数据处理装置,其特征在于,包括:
第一确定单元,用于确定与待处理的第一流程对应的目标推理模型,其中,所述第一流程为使用所述目标推理模型对第一资源数据进行推理的流程,所述目标推理模型为允许被多个流程共享的推理模型;
获取单元,用于获取所述多个流程中的第二流程所共享的推理模型数据,其中,所述推理模型数据为所述第二流程对所述目标推理模型进行初始化所得到的数据,所述第二流程为使用所述目标推理模型处理第二资源数据的流程,所述初始化包括:序列化和反序列化;
推理单元,用于基于所述推理模型数据使用初始化后的所述目标推理模型对所述第一资源数据进行推理,得到所述第一资源数据的推理结果。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至8中任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至8中任一项中所述的方法。
CN202010764841.5A 2020-07-31 2020-07-31 数据处理方法和装置、存储介质和电子装置 Pending CN114064298A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010764841.5A CN114064298A (zh) 2020-07-31 2020-07-31 数据处理方法和装置、存储介质和电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010764841.5A CN114064298A (zh) 2020-07-31 2020-07-31 数据处理方法和装置、存储介质和电子装置

Publications (1)

Publication Number Publication Date
CN114064298A true CN114064298A (zh) 2022-02-18

Family

ID=80231411

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010764841.5A Pending CN114064298A (zh) 2020-07-31 2020-07-31 数据处理方法和装置、存储介质和电子装置

Country Status (1)

Country Link
CN (1) CN114064298A (zh)

Similar Documents

Publication Publication Date Title
EP3667496B1 (en) Distributed computing system, data transmission method and device in distributed computing system
CN110390387B (zh) 对深度学习应用所用资源进行评估
CN111258744A (zh) 一种基于异构计算的任务处理方法及软硬件框架系统
CN110650347B (zh) 多媒体数据的处理方法及装置
CN110826708B (zh) 一种用多核处理器实现神经网络模型拆分方法及相关产品
Motamedi et al. Fast and energy-efficient CNN inference on IoT devices
US20210158131A1 (en) Hierarchical partitioning of operators
CN115576699A (zh) 数据处理方法、装置、ai芯片、电子设备及存储介质
KR20200018234A (ko) 인공지능 칩 및 인공지능 칩에 사용되는 명령 실행 방법
Buzato et al. Efficient resources utilization by different microservices deployment models
WO2022022571A1 (en) Resource allocation for tuning hyperparameters of large-scale deep learning workloads
Lessley et al. DPP-PMRF: rethinking optimization for a probabilistic graphical model using data-parallel primitives
CN113034428A (zh) 用于在头部ct平扫图像中检测急性颅内出血的深度学习系统
CN114064298A (zh) 数据处理方法和装置、存储介质和电子装置
Milojicic Accelerators for artificial intelligence and high-performance computing
Fang et al. ELMO: A User-Friendly API to enable local memory in OpenCL kernels
CN112214443A (zh) 设置于图形处理器中的二次卸载装置和方法
CN113902088A (zh) 神经网络结构搜索的方法、装置与系统
CN108292265B (zh) 对高性能存储器的存储器管理
CN115292053B (zh) 移动端cnn的cpu、gpu、npu统一调度方法
CN117764206B (zh) 一种多模型集成方法及系统
CN113742112B (zh) 心电图像的生成方法、系统和电子装置
CN115759260B (zh) 深度学习模型的推理方法、装置、电子设备和存储介质
US20240144051A1 (en) Hardware-aware generation of machine learning models
US12014215B2 (en) Active scheduling method and computing apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination