CN116562342A - 模型构建方法、装置、设备、车辆及存储介质 - Google Patents
模型构建方法、装置、设备、车辆及存储介质 Download PDFInfo
- Publication number
- CN116562342A CN116562342A CN202310499150.0A CN202310499150A CN116562342A CN 116562342 A CN116562342 A CN 116562342A CN 202310499150 A CN202310499150 A CN 202310499150A CN 116562342 A CN116562342 A CN 116562342A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- model
- target
- task
- neural network
- 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
Links
- 238000010276 construction Methods 0.000 title claims abstract description 56
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 425
- 238000003062 neural network model Methods 0.000 claims abstract description 151
- 238000013135 deep learning Methods 0.000 claims abstract description 117
- 238000000034 method Methods 0.000 claims abstract description 80
- 230000006870 function Effects 0.000 claims description 67
- 238000012545 processing Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 15
- 230000003993 interaction Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Stored Programmes (AREA)
Abstract
本申请提出一种模型构建方法、装置、设备、车辆及存储介质,该方法应用于深度学习框架,所述深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库,该方法包括:获取模型配置信息,所述模型配置信息包括构成神经网络模型的算法模块信息、算法模块之间的组合关系信息,以及所述神经网络模型所执行的目标任务;根据所述目标任务的任务类型,确定目标算法库,并从所述目标算法库中确定出目标算法模型;实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化后的所述目标算法模型进行组合,得到神经网络模型。采用上述方案能够构建执行任意任务的神经网络模型。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种模型构建方法、装置、设备、车辆及存储介质。
背景技术
深度学习框架是实现神经网络模型搭建、训练、转换、测试的常用工具。
随着神经网络模型的应用领域、应用场景的不断丰富,用户需要的神经网络模型的功能越来越丰富,由此使得用户对多任务模型的需求越来越高。多任务模型是指通过一个神经网络模型执行多种不同类型的任务,而现有的深度学习框架,通常是用于开发执行某种特定类型任务的神经网络模型,无法在一个深度学习框架中搭建能够执行任意类型任务的神经网络模型,也就是无法在一个深度学习框架中搭建多任务模型。
发明内容
基于上述技术现状,本申请提出一种模型构建方法、装置、设备、车辆及存储介质,能够构建执行任意类型任务的神经网络模型,提供了多任务模型构建的有效方案,提高了多任务模型构建的效率。
为了实现上述技术目的,本申请具体提出如下技术方案:
本申请第一方面提出了一种模型构建方法,应用于深度学习框架,所述深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库,所述方法包括:
获取模型配置信息,所述模型配置信息包括构成神经网络模型的算法模块信息、构成所述神经网络模型的算法模块之间的组合关系信息,以及所述神经网络模型所执行的目标任务;
根据所述目标任务的任务类型,确定目标算法库,并从所述目标算法库中确定出目标算法模型,所述目标算法模型与构成所述神经网络模型的算法模块相对应;
实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化后的所述目标算法模型进行组合,得到神经网络模型。
本申请第二方面提出了一种模型构建装置,包括:
存储单元,用于存储深度学习框架,所述深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库;
信息获取单元,用于获取模型配置信息,所述模型配置信息包括构成神经网络模型的算法模块信息、构成所述神经网络模型的算法模块之间的组合关系信息,以及所述神经网络模型所执行的目标任务;
算法筛选单元,用于根据所述目标任务的任务类型,确定目标算法库,并从所述目标算法库中确定出目标算法模型,所述目标算法模型与构成所述神经网络模型的算法模块相对应;
组合处理单元,用于实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化后的所述目标算法模型进行组合,得到神经网络模型。
本申请第三方面提出了一种电子设备,包括:
存储器与处理器;
所述存储器与所述处理连接,用于存储程序,以及存储深度学习框架,所述深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库;
所述处理器,用于通过运行所述存储器中存储的程序,实现上述的模型构建方法。
本申请第四方面提出了一种车辆,该车辆被配置为执行上述的模型构建方法。
本申请第五方面提出了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现上述的模型构建方法。
通过上述介绍可见,本申请首先提出了一种新的深度学习框架,在该深度学习框架中,包括多个不同的算法库,其中,用于执行同一种类型任务的算法模型归属于同一算法库。可见,该深度学习框架包含了对应不同类型任务的算法库,从而使得该深度学习框架能够支持用于执行不同类型任务的神经网络模型的搭建。
在此基础上,本申请提出的模型构建方法,能够针对任意类型任务,从多个算法库中选择符合任务类型的目标算法库,进而从该目标算法库中选择算法模型进行实例化和组合,得到神经网络模型。因此,本申请实施例提出的模型构建方法,能够构建执行任意类型任务的神经网络模型,对于多任务模型也能够通过该深度学习框架和该模型构建方法构建得到,即,提供了多任务模型构建的有效方案,提高了多任务模型构建的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种计算机系统的示意图。
图2为本申请实施例提供的一种多任务模型的结构示意图。
图3为本申请实施例提供的一种深度学习框架的结构示意图。
图4为本申请实施例提供的一种模型构建方法的流程示意图。
图5为本申请实施例提供的一种模型构建装置的结构示意图。
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了本申请实施例的一种示例性实施环境,该实施环境为一种计算机系统。参见图1所示,该系统包括人机交互组件001和处理器002。
其中,人机交互组件001为整个计算机系统与用户的交互接口,一方面可以允许用户向计算机系统输入信息,另一方面可以将计算机系统输出的数据展示给用户。
在本申请实施例中,用户通过上述的人机交互组件001向上述计算机系统输入想要构建的神经网络模型的配置文件。
示例性的,上述的人机交互组件001,包括但不限于键盘、手写屏、麦克风、摄像头、扫描仪等具有数据采集功能的硬件设备或组件,还可以包括串口、USB接口、网络接口等接口组件,使得用户可以借助便携式数据存储装置例如U盘、移动硬盘等,将数据通过这些接口导入上述的计算机系统。此外,上述的人机交互组件001还可以包括显示器、扬声器等具有数据输出功能的硬件设备或组件,从而实现计算机系统内的数据的输出,或者,也可以通过上述的串口、USB接口、网络接口等接口组件输出计算机系统内部数据。
上述的处理器002用于根据用户数据的配置文件,构建用户想要的神经网络模型。
具体而言,上述的处理器002具备数据处理功能,其可以用于对输入计算机系统的数据进行识别、运算处理、存储等,例如对用户输入的配置文件进行解析,确定配置文件中记载的关于神经网络模型的配置信息,然后基于该配置信息,能够构建符合该配置信息的神经网络模型,以及,在构建出神经网络模型后,还可以获取用户输入的模型待处理数据,然后将模型待处理数据输入构建的神经网络模型,控制该神经网络模型对输入数据进行处理。
该处理器002,可以是具有指令读取和运行能力的电路,能够读取特定存储器中存储的指令并运行,从而实现相应功能。处理器002可以包括一个或多个同种或不同种的处理器。示例性的,该处理器002具体可以是中央处理器(Central ProcessingUnit,CPU)、微处理器、图形处理器(Graphics Processing Unit,GPU)、数字信号处理器(Digital SignalProcessor,DSP)等类型的处理器中的一种或多种。此外,该处理器002还可以是基于人工智能设计的硬件电路,例如基于神经网络处理单元(Neural Network Processing Unit,NPU)、张量处理单元(Tensor ProcessingUnit,TPU)、深度学习处理单元(DeepLearningProcessing Unit,DPU)等构建的专用集成电路(ApplicationSpecific IntegratedCircuit,ASIC)。
此外,上述的计算机系统还可以包括存储器,该存储器优选与处理器002连接,用于存储程序和数据,处理器002可以通过运行存储器中的程序实现神经网络模型构建功能。
关于上述的处理器002中存储的数据内容,以及处理器002在构建神经网络模型时的具体处理过程,均可以参见后续的模型构建方法的具体介绍。
上述的计算机系统可以应用于任意的需要构建神经网络模型的应用场景中,或者应用于任意设备,从而使得由上述的处理器002执行的模型构建方法应用于上述任意的应用场景或设备。
例如,在智能驾驶场景中,可以在车载系统中应用上述的计算机系统或上述的计算机系统所执行的模型构建方法,实现在车载系统中构建神经网络模型。或者,在其他的任意的需要神经网络模型的应用场景或产品中,比如在服务器中搭建神经网络模型时、在智能终端设备(比如智能手持终端、智能可穿戴设备、便携计算机等)中搭建神经网络模型时,均可以应用上述的计算机系统或该计算机系统执行的模型构建方法,实现任意想要的神经网络模型的搭建,尤其是可以方便地搭建多任务神经网络模型。
常规的神经网络模型的搭建通常是借助深度学习框架来实现,但是现有的深度学习框架通常是针对某些特定业务场景而构建的框架,并不能实现在一个深度学习框架中构建多任务神经网络模型。
本申请实施例提出的模型构建方案,则能够很好地解决上述问题,使得用户在深度学习框架中能够方便地构建任意任务的神经网络模型,同时也能够构建多任务神经网络模型。
在本申请后续实施例中,以多任务模型的构建为例,对本申请提出的模型构建方法的具体处理过程进行示例性介绍。本领域技术人员应当理解,基于本申请各实施例的公开,本申请提出的模型构建方法也可以应用于单任务模型的构建,其构建思路、构建流程与本申请各实施例的介绍相似或相同,区别在于对应具体任务选取相应的算法模型时需要根据具体任务而选取,因此,任务模型或多任务模型的构建过程,均在本申请各实施例介绍的模型构建方法的保护范围内。
多任务模型,是指通过一套模型结构能够实现多种不同任务的模型。例如图2展示了一种多任务模型的结构,该多任务模型能够实现三种不同的数据处理任务。
参见图2所示,在该多任务模型中,包括一个数据加载器(dataloader)层,用于实现数据加载、封装等必要的数据输入处理;一个主干网络(backbone),主要用于实现特征提取以及特征处理和分析等;三个特征处理层(neck层)以及对应的三个head层,neck层连接于backbone和head层之间,用于对来自backbone的特征进行降维或调整,以便更好地适应任务要求,任务头(head)层是模型的最后一层,head通过输入经过neck处理过的特征,产生最终的输出。Head层的结构根据任务的不同而不同,例如对于分类任务,可以使用softmax分类器;对于目标检测任务,可以使用边界框回归器和分类器等。
在图2所示的多任务模型中,head1、head2和head3分别用于执行不同任务,比如,head1用来执行分类任务、head2用来执行目标检测任务、head3用来执行目标分割任务。基于此,head1、head2和head3具体可以采用与任务相适应的网络结构。
基于上述的多任务模型结构,输入数据都是通过dataloader层输入模型,并且经过backbone进行特征提取,但是最终却是分别实现了不同的数据处理任务。可以等价理解为,三种不同任务的模型共用了dataloader层和backbone,这样能够将三种任务模型整合为一种模型,但是依然能够实现三种不同的任务,由此可以实现降低多任务模型复杂度,精简模型结构,利于模型部署。
可以理解,不同的任务可能需要不同类型的网络结构来实现,比如分类任务可能需要softmax分类器实现,而目标检测任务则可能需要边界框回归器来实现。因此,要想构建出如图2所示的多任务模型,需要模型集成不同类型任务对应的功能模块,对于通用的模块可以共用,但是对于特定任务单独需要的模型,则需要分别搭建。
常规的深度学习框架,通常是针对单一类型任务而构建的,即只能用于构建单一类型任务的神经网络模型。比如业界现有的:《MMDetection: Open MMLab DetectionToolboxand Benchmark》、《飞浆:源于产业实践的开源深度学习平台》、《MMRotate:ARotated Object DetectionBenchmark using pytorch》的toolbox均是用来开发执行2d目标检测类视觉任务的神经网络模型的,要想通过这些框架来搭建其他任务或多任务的神经网络模型,则难以实现。
针对上述技术现状,本申请实施例首先提出一种深度学习框架,该深度学习框架可以基于任意的底层框架而生成,比如Theano、PaddlePaddle、Tensorflow、Caffe等。本申请实施例基于pytorch作为底层框架,把所有用到的算法模型进行基于pytorch的重构,得到所提出的深度学习框架。
在该深度学习框架中,包含多种不同类型的任务所对应的算法模型,即,在该深度学习框架的算法库中,包括用于执行多种不同类型任务的各种算法模型,从而可以便于用户通过该深度学习框架构建各种类型任务的神经网络模型。
例如,在本申请实施例提出的深度学习框架中,包括用于执行分类任务的各种算法模型、用于执行3D目标检测任务的各种算法模型、用于执行2D目标检测任务的各种算法模型、用于执行分割任务的各种算法模型、用于执行深度估计任务的各种算法模型,等等。
其中,用于执行某一种任务的各种算法模型,包括执行该任务的完整处理流程所需要的所有算法模型或算法模块,在执行该任务时,用于实现某一子任务的算法模型或算法模块不限于一种,可以是多种用于实现相同子任务的算法模型或算法模块,可以供用户自由选择。即,通过执行某一任务的各种算法模型的组合,能够搭建得到执行该任务的完整流程的神经网络模型。
在此基础上,为了便于调度不同类型任务对应的算法模型,以及对不同类型任务对应的算法模型进行管理,本申请实施例提出的深度学习框架对算法库进行分类,从而得到多个不同的算法库。
具体的,将用于执行同一类型任务的各种算法模块归类于同一算法库,从而构成多个不同算法库,每一算法库对应于某一种类型的任务。比如,将用于执行分类任务的各种算法模型归类于同一个算法库、将用于执行3D目标检测任务的各种算法模型归类于同一个算法库、将用于执行2D目标检测任务的各种算法模型归类于同一个算法库、将用于执行分割任务的各种算法模型归类于同一个算法库、将用于执行深度估计任务的各种算法模型归类于同一个算法库,等等。
参见图3所示,在本申请实施例提出的深度学习框架中,展示了classificationtask(分类任务)算法库、2ddetection(2D检测)任务算法库、3ddetection(3D检测)任务算法库和depthestimation(深度估计)任务算法库。其中,每一算法库中,均包含用于执行相应任务的各种算法模型或算法模块。比如,在classification task(分类任务)算法库中,包含了用于执行分类任务的算法模型,比如主干网络backbone、数据加载器dataloader和任务头head;而在2d detection(2D检测)任务算法库中,则包含了用于执行2D检测任务的算法模型,比如主干网络backbone、数据加载器dataloader和任务头head。
另外,参见图3所示,本申请实施例还为上述提出的深度学习框架设置了配置文件解析模块,用于对用户输入的配置文件进行解析,通过对配置文件进行解析,获取用户想要构建的神经网络模型的配置信息。
其中,上述的配置文件,是指用户在构建需要的神经网络模型时,所编写的用于记录要构建的神经网络模型的配置信息的文件。上述的神经网络模型的配置信息,包括但不限于神经网络模型的各部分结构,比如各部分结构所采用的算法模型、所采用的算法模型的参数等,还包括各部分结构的连接关系、模型所要实现的任务等。
其中,模型所实现的任务,可以是一个任务也可以是多个相同或不同的任务。当配置文件中记载的模型所要实现的任务为多个相同或不同的任务时,在配置文件中,应当明确记载实现各个任务所需要的算法模型或算法模块,以及各模块之间的交互关系,比如,要实现A任务,需要哪些算法模型或算法模块,这些算法模型或算法模块需要采用怎样的连接关系或交互方式;要实现B任务,需要哪些算法模型或算法模块,这些算法模型或算法模块需要采用怎样的连接关系或交互方式,等等。
上述的深度学习框架可运行于图1所示的计算机系统的处理器002中,而该深度学习框架的算法库,则可以存储于图1所示的计算机系统的存储器中,或者是存储于处理器002中。
下面,对本申请实施例提出的模型构建方法进行介绍。该模型构建方法可应用于图1所示计算机系统中的处理器002,具体是应用于运行于处理器002的深度学习框架。
参见图4所示,本申请提出的模型构建方法,包括:
S101、获取模型配置信息。
其中,该模型配置信息,是指待构建的神经网络模型的配置信息,具体包括构成神经网络模型的算法模块信息、各算法模块的组合关系信息,以及神经网络模型所执行的目标任务。
其中,构成神经网络模型的算法模块信息,包括构成神经网络模型的各个算法模块或算法模型的名称、配置、参数等信息。构成神经网络模型的各个算法模块或算法模型,可以是神经网络模型中用于执行子任务或实现子功能,或执行某些阶段性处理的算法或模型。
各算法模块的组合关系信息,包括构成神经网络模型的各个算法模块或算法模型之间的连接关系信息或数据交互关系信息,比如各个算法模块之间的相互连接关系,或者各个算法模块之间的数据流关系等。
神经网络所执行的目标任务,是指待构建的神经网络模型需要实现的任务,具体可以是一个任务,也可以是多个任务。
比如,假设待构建的神经网络模型为2D目标检测模型,其所执行的目标任务是2D目标检测任务,该模型由dataloader层、backbone和head层构成,则,在对应该模型的模型配置信息中,包括构成该模型的dataloader层、backbone和head层的算法模型信息,dataloader层、backbone和head层的连接关系信息,以及通过dataloader层、backbone和head层构成的模型需要实现的任务信息。由此,通过该模型配置信息,待构建的神经网络模型的结构、各部分结构的连接关系,以及神经网络模型能够实现的功能、所执行的任务。
作为优选的实施方式,当待构建的神经网络模型所执行的目标任务包括多个时,在上述的模型配置信息中,神经网络所执行的各个任务,与构成神经网络模型的算法模块信息、各算法模块的组合关系信息之间,具有对应关系。即,在上述的模型配置信息中,神经网络模型所执行的任务,与神经网络模型的结构和各部分结构之间的组合关系之间,是明确对应的。
比如,假设待构建的神经网络模型用于执行A、B、C三种任务,执行A任务需要通过a1、a2、a3模块,执行B任务需要通过a1、b2、b3模块,执行C任务需要通过a1、c2、c3模块,则,在对应该神经网络模型的模型配置信息中,记录有模块a1、a2、a3、b2、b3、c2、c3的信息,并且记录a1、a2、a3之间的连接关系以及a1、a2、a3用于执行A任务,记录a1、b2、b3之间的连接关系以及a1、b2、b3用于执行B任务,以及,记录a1、c2、c3之间的连接关系以及a1、c2、c3用于执行C任务。这样,通过上述的模型配置信息,可以确定待构建的神经网络模型整体包括a1、a2、a3、b2、b3、c2、c3这些算法模块,并且将这些算法模块按照配置信息中所记载的连接关系进行组合得到的模型,能够分别用于执行A、B、C三种任务。
示例性的,上述的模型配置信息,可以直接通过数据接口输入深度学习框架,从而使深度学习框架获取到模型配置信息,也可以是预先存储在设定的存储地址,由深度学习框架从该存储地址读取得到,该存储地址可以是深度学习框架内部的存储地址,也可以是深度学习框架之外的存储地址。
或者,上述的模型配置信息,也可以是由深度学习框架从配置文件中解析得到的。
参见图3所示,本申请实施例所提出的深度学习框架中,包含配置文件解析模块config,该配置文件解析模块用于对模型构建配置文件进行解析,从中获取模型配置信息。
即,深度学习框架中的配置文件解析模块获取模型构建配置文件,并从获取的模型构建配置文件中解析得到模型配置信息。
上述的模型构建配置文件,是用户在构建需要的神经网络模型时,所编写的用于记录待构建的神经网络模型的配置的文件。在该模型构建配置文件中,包括待构建的神经网络模型的算法模块信息、各算法模块的组合关系信息,以及所述神经网络模型所执行的目标任务信息。
该模型构建配置文件可以是任意类型的文件,比如可以是python、yaml、json等类型的配置文件。该配置文件的具体内容,可以是任意形式的内容,比如可以是自然描述语言形式、结构化形式等。
作为优选的实施方式,本申请实施例可以允许用户通过字典对的形式配置配置文件,即,在模型构建配置文件中的内容是以类似字典对的形式配置的,字典键值为已经实现的函数接口或者类。比如,可以采用key-value的形式,其中,key表示类,value表示具体的子类。这些类或者子类,即为在深度学习框架中已经实现的函数接口或者类。
与上述的模型构建配置文件相匹配的,本申请实施例所提出的深度学习框架中的配置文件解析模块,具备解析任意类型配置文件的能力,从而获取模型配置信息。比如可以解析python、yaml、json等类型的配置文件,从中解析出待构建模型所应用的算法模型、各算法模型的组合和连接关系,以及模型所执行的任务。
另外,上述的配置文件解析模块还具备继承配置的功能,对于配置文件中的键值对象,如果在前期的解析过程中已经解析过,则配置文件解析模块通过键值scope直接继承前期解析结果,而不必再重新解析。
同时,本申请实施例提出的深度学习框架,还能够实现配置文件复用功能,即配置文件在模型构建、模型训练、模型转换、模型测试的各个阶段重复使用。用户在编写模型构建配置文件时,只需要编写一份模型构建配置文件,即可借助深度学习框架的配置文件解析模块,实现该配置文件在各个阶段的重复使用。
示例性的,用户在编写模型构建配置文件时,针对不同阶段的配置信息添加标识,比如针对模型构建、模型训练、模型转换、模型测试的各个阶的模型配置信息,分别添加相应的标识。当配置文件解析模块对该配置文件进行解析时,可以参照当前阶段有选择地进行解析。比如,假设当前处于模型构建阶段,则配置文件解析模块从获取的配置文件中,解析与模型构建阶段标识对应的配置信息,而在模型训练阶段,则配置文件解析模块从获取的配置文件中,解析与模型训练阶段标识对应的配置信息。
基于上述的配置文件解析模块的功能,本申请实施例提出的模型构建方法可以简化用户构建神经网络模型的工作量,用户只需要在一份配置文件中写入与自己需求相对应的全部配置信息即可,使得神经网络模型构建的自动化程度更高。
S102、根据目标任务的任务类型,确定目标算法库,并从目标算法库中确定出目标算法模型。
其中,目标算法模型与构成神经网络模型的算法模块相对应。
具体的,如上文介绍,本申请实施例提出的深度学习框架按照任务类型对算法模型进行了分库,即,用于执行同种类型任务的算法模型归属于同一算法库。基于该设置,当确定待构建的神经网络模型所执行的目标任务时,将该神经网络模型所执行的目标任务的任务类型对应的算法库,作为目标算法库。
比如,假设待构建的神经网络模型所执行的目标任务是A任务,则将深度学习框架中的、存储用于执行A任务的算法模型的算法库,作为目标算法库。
当确定目标算法库后,根据构成待构建的神经网络模型的算法模块信息,从该目标算法库中选择与构成该神经网络模型的算法模块相对应的算法模型,作为目标算法模型。
比如,假设用于执行A任务的神经网络模型包括a1、a2、a3模块,则从对应A任务的目标算法库中,分别选择与a1、a2、a3对应的算法模型,作为目标算法模型。
其中,与构成神经网络模型的算法模块对应的算法模型,可以是与算法模块完全相同的算法模型,比如,算法模块是softmax模块,相应的算法模型也是softmax算法模型;或者,与构成神经网络模型的算法模块对应的算法模型,也可以是与算法模块的功能、实现原理、性能等相同或相似的算法模型。
S103、实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化的各个目标算法模型进行组合,得到神经网络模型。
具体的,当从深度学习框架的算法库中确定出用于构成待构建的神经网络模型的目标算法模型后,调用这些目标算法模型并进行实例化,然后按照模型配置信息中所记载的各算法模块的组合关系信息,对实例化后的各个目标算法模型进行组合,即可得到神经网络模型,即完成了对待构建的神经网络模型的构建。
实例化是将类定义转化为可用对象的过程。在实例化过程中,程序会创建一个类的实例,即一个具体的对象,该对象包含了类所定义的属性和方法。实例化的过程通常包括为对象分配内存空间、初始化对象属性和调用构造函数等步骤。通过实例化,程序可以使用类所定义的属性和方法,并对对象进行操作。
通过上述介绍可见,本申请实施例首先提出了一种新的深度学习框架,在该深度学习框架中,包括多个不同的算法库,其中,用于执行同一种类型任务的各种算法模型归属于同一算法库。可见,该深度学习框架包含了对应不同类型任务的算法库,从而使得该深度学习框架能够支持用于执行不同类型任务的神经网络模型的搭建。
在此基础上,本申请实施例提出的模型构建方法,能够基于模型配置信息,根据待构建的神经网络模型所执行的目标任务,从深度学习框架的多个算法库中选择相应的目标算法库;然后从目标算法库中选出构成待构建的神经网络模型的各个算法模块所对应的目标算法模型;最后,对选出的目标算法模型进行实例化以及按照模型配置信息中所记载的各算法模块的组合关系对实例化后的各个目标算法模型进行组合,即可得到能够执行目标任务的神经网络模型。
本申请实施例提出的模型构建方法,能够针对任意类型任务,从多个算法库中选择符合任务类型的目标算法库,进而从该目标算法库中选择算法模型进行实例化和组合,得到神经网络模型。因此,本申请实施例提出的模型构建方法,能够构建执行任意类型任务的神经网络模型,对于多任务模型也能够通过该深度学习框架和该模型构建方法构建得到,即,提供了多任务模型构建的有效方案,提高了多任务模型构建的效率。
当待构建的神经网络模型所执行的目标任务有多项任务时,分别针对每一项目标任务,确定目标算法库,以及从目标算法库中选择目标算法模型。
具体而言,对于待构建的神经网络模型所执行的每一项目标任务,分别进行如下A1-A2的处理:
A1、根据该目标任务的任务类型,确定与该目标任务对应的目标算法库,以及从构成待构建的神经网络模型的各个算法模块中,确定出执行该目标任务的算法模块。
具体的,从深度学习框架的各个对应不同任务类型的算法库中,选出与该目标任务的任务类型相同的算法库,作为该目标任务对应的目标算法库。
例如,假设目标任务为A任务,则将深度学习框架中存储用于执行A任务的算法模型的算法库,作为与A任务对应的目标算法库;假设目标任务为B任务,则将深度学习框架中存储用于执行B任务的算法模型的算法库,作为与B任务对应的目标算法库。
对于多任务模型而言,其所执行的多个不同任务,分别需要通过不同的算法模块来实现,比如,执行A任务需要通过a1、a2、a3模块,而执行B任务则需要通过a1、b2、b3模块,执行C任务需要通过a1、c2、c3模块。
由于不同的任务对应不同的算法模块,因此在确定与任务对应的算法库后,还需要进一步确定任务对应的算法模块,即,从构成待构建的神经网络模型的各个算法模块中,确定出执行目标任务的算法模块,以便于从任务对应的算法库中选择与执行任务的算法模块对应的算法模型。
示例性的,在待构建的神经网络模型的模型配置信息中,记录有神经网络模型所执行的任务与神经网络模型的各个算法模块之间的对应关系,比如,记录有a1、a2、a3用于执行A任务、a1、b2、b3用于执行B任务、a1、c2、c3用于执行C任务,则,通过上述的模型配置信息,即可确定待构建的神经网络模型中的各个模块分别用于执行哪个任务,也就是可以确定该神经网络模型所执行的任意一项任务,需要通过那些算法模型来实现。
因此,根据待构建的神经网络模型的模型配置信息,可以从构成待构建的神经网络模型的各个算法模块中,确定出执行该目标任务的算法模块。
A2、从该目标任务对应的目标算法库中,确定出与执行该目标任务的算法模块对应的目标算法模型。
具体的,经过上述步骤A1的处理,确定了与目标任务对应的目标算法库,以及确定了执行该目标任务的各个算法模块。在此基础上,从该目标任务对应的目标算法库中,选择与执行该目标任务的各个算法模块对应的算法模型,作为目标算法模型。
例如,假设执行目标任务A的算法模块为a1、a2、a3,则从目标任务A对应的算法库中,选择与a1、a2、a3对应的算法模型,作为目标算法模型。
按照上述A1和A2的处理,可以对于待构建的多任务神经网络模型,分别从深度学习框架的各个算法库中,选出与神经网络模型所执行的各项任务对应的目标算法模型。
调用这些目标算法模型并进行实例化,以及按照模型配置文件中所记载的算法模块连接关系对各个实例化后的算法模型进行组合,即可得到待构建的多任务神经网络模型。
基于本申请所提出的上述深度学习框架,本申请实施例提出的模型构架方法能够适用于多任务模型的构建。对于多任务模型,本申请实施例能够以任务为基准,对应每种任务都从相应的算法库中获取执行该任务的相应算法模块,进而将不同任务对应的算法模块进行实例化和组合,即可构建得到多任务模型。可见,本申请实施例提出的模型构建方法打破了现有深度学习框架对应单一特定任务的束缚,能够实现在一个深度学习框架内构建不同的多任务模型。
对于多任务模型而言,例如图2所示,通常会有多个任务共用的算法模块,以及不同任务所专用的算法模块。比如图2中的dataloader和backbone为三个任务共用的算法模块,在此基础上,各个任务有各自专用的neck层和head层。
针对上述情况,即,在多任务模型所包含的用于执行各项目标任务的算法模块中,存在各项目标任务共用的第一算法模块(一个或多个),以及各项目标任务专用的算法模块(一个或多个)的情况,本申请实施例从深度学习框架的各个算法库中,分别确定出与多任务模型的各个算法模块对应的目标算法模型后,在对各个目标算法模型进行实例化时,对于各项任务共用的目标算法模型,只实例化一次即可。
具体而言,在实例化过程中,实例化上述第一算法模块对应的第一目标算法模型,以及分别实例化各项目标任务专用的算法模块各自对应的第二目标算法模型。
在上述的实例化过程中,并不是按照任务进行算法模型的实例化,而是按照算法模型进行实例化,这样,对于各任务共用的第一目标算法模型,实例化一次即可。
虽然本申请实施例从深度学习框架的各个算法库中确定出各个任务对应的目标算法模型时,是针对各个任务,分别确定的目标算法模型。但是在对目标算法模型进行实例化时,并不是针对各个任务分别对任务对应的目标算法模型实例化,而是对于各任务共用的算法模型实例化一次,以及对各任务专用的算法模型分别进行实例化,这样可以避免对于各任务共用的算法模型重复实例化,节省计算资源以及提高实例化效率。
作为优选的实施方式,本申请实施例提出的深度学习框架,采用了注册表机制,例如图3中的注册表reigstry。因此在上述的模型构建方法过程中,借助注册表实现对深度学习框架的算法库中的算法模型的调用和实例化。
具体的,在从深度学习框架的多个算法库中,分别确定多任务模型的各个算法模块对应的算法模型后,通过深度学习框架的注册表,调用目标算法模型并进行实例化。
深度学习框架中的注册表是一种机制,用于注册和管理深度学习框架中的各种组件,例如操作符、模型、优化器、损失函数等。每个组件都有一个唯一的名称和对应的构造函数。注册表允许用户通过名称来访问这些组件的构造函数,并在需要时动态地添加新组件。注册表对于实现可扩展性和灵活性非常重要,因为它允许用户轻松地添加自定义组件,并将这些组件与深度学习框架基础设施无缝集成。
在深度学习框架的注册表内部记录有深度学习框架各个算法库中的各个算法模型的名称,以及各个算法模型所属的类。在本申请实施例中,深度学习框架的注册表通过全局的key-value对来记录深度学习框架各个算法库中的各个算法模型的名称,以及各个算法模型所属的类,其中,key表示模型所属的类,value表示模型名称。
当对目标算法模型进行实例化时,通过注册模块(注册器)借助注册表调用或访问相应的目标算法模型,以及进行实例化,并将目标算法模型实例化后的对象以及对象的地址,写入注册表中。
同时,在实例化过程中,注册器会先访问注册表,查看注册表中是否已经存储有待实例化的目标算法模型对应的实例化对象的信息,如果已经存储,则直接调用相应的实例化对象即可,不需要再次实例化。
通过深度学习框架的注册表,可以方便地访问、调用整个深度学习框架中的任意算法模型,从而实现了大量算法模型的解耦,增强了模型构建的灵活性和可扩展性。当使用者在深度学习框架中新增算法模型时,只用关注算法模型本身的功能实现即可,实现完成后注册到框架中,即可通过框架注册表进行调用,实现了算法模型的即插即用。
进一步的,用户在构建神经网络模型时,还可以规定所构建的神经网络模型的参数。因此,在模型配置信息中,还可以包括构成神经网络模型的算法模块的参数信息。
在此基础上,当实例化各个算法模块对应的目标算法模型时,按照目标算法模型对应的参数信息,对目标算法模型进行实例化,也就是,将目标算法模型实例化为符合该目标算法模型对应的参数信息的对象。
或者,
在通过注册表调用目标算法模型时,将目标算法模型对应的参数信息作为以该目标算法模型为索引的值进行填充,注册表根据该索引值调用符合该索引值的算法模型,然后进行实例化,这样能够实现从深度学习框架的算法库中选择符合目标算法模型对应的参数信息的算法模型进行实例化。
通过上述方案,用户在构建神经网络模型时可以按照需求随意指定模型参数,而本申请实施例提出的模型构建方法,则能够响应用户的参数设置,构建符合用户参数要求的神经网络模型,提高模型构建效率。
在本申请的另一些实施例中,本申请提出的深度学习框架的多个算法库,除了包括深度学习框架本身所包含的算法之外,还可以包括由新增算子构成的共享算子库。
该共享算子库,用于存储用户自己开发或编写的算子,或者其他平台、机构等所提供的算子,这些算子可以接入深度学习框架,作为深度学习框架的新增算子库。
参见图3所示的深度学习框架,共享算子库operator中存储用户通过C++等任意编程语言编写的算子,这些算子单独编译为的独立算法模块,并存储在上述的共享算子库中独立维护。
当深度学习框架应用共享算子库中的算子时,通过封装进行接口映射,将共享算子库的接口映射至深度学习框架的调用接口,从而使得深度学习框架可以调用该共享算子库中的算子。
例如,对于基于pytorch构建的深度学习框架,可以通过SWIG或pybind11的方式,将共享算子库的接口映射至深度学习框架的调用接口。
本申请实施例的上述处理,使得共享算子库中的代码与深度学习框架的源码解耦,从而使得该共享算子库可以独立地进行更新、编译,并且在模型训练和模型应用阶段都可以被调用,实现了共享算子库的灵活复用和扩展。
在本申请的另一些实施例中,本申请提出的深度学习框架还采用分发机制实现数据与函数的对应。
深度学习框架中的分发机制,是指根据输入数据类型,自动选择适合的函数来对数据进行处理。例如,当输入为浮点数时,pytorch会自动选择使用浮点计算的函数对输入数据进行处理。这种机制可以提高pytorch的性能和效率,因为它可以避免不必要的类型转换和计算。
本申请实施例将深度学习框架中的各个算法模型的函数接口和函数实现相分离,同种功能的函数实现共用同一个函数接口。其中,函数接口即为函数名称,函数实现即为具体的函数运算实现。通过上述的函数接口,可以进行具体函数实现的分配。
当通过上述深度学习框架构建得到神经网络模型后,在神经网络模型对输入的待处理数据进行处理的过程中,先确定对待处理数据进行运算处理的运算函数名。
然后,通过该运算函数名,加载第一运算函数对待处理数据进行运算处理。
其中,该第一运算函数支持的参数类型,与待处理数据的参数类型相一致;该参数类型,包括数据类型,和/或数据适用的设备类型。
任意的数据在输入深度学习框架被神经网络模型处理时,都会转换成tensor,而不同的tensor可能为不同数据类型,或者适用于不同的设备类型,同时,深度学习框架中的各种底层函数,即便实现的功能相同,但是可能适用于不同的数据类型或适用于不同类型的设备。因此,对于输入神经网络模型的待处理数据,需要通过与数据类型和/或设备类型相匹配的函数进行处理。
本申请实施例将实现相同功能或同种函数运算的各种函数实现,映射至统一的函数接口。
基于上述处理,当获取到输入神经网络模型的待处理数据时,确定需要对该待处理数据进行哪种运算处理,即,先确定函数接口;然后,确定待处理数据的参数类型,比如确定待处理数据的数据类型和/或适用的设备类型,通过上述的函数接口,选择与待处理数据的参数类型相匹配的运算函数中,作为第一运算函数;最后,加载该第一运算函数用于对待处理数据进行运算处理。
可见,本申请实施例提出的深度学习框架能够通过函数接口,将待处理函数分配至与待处理数据的参数类型匹配的函数实现,从而使得输入模型的数据能够被正确的函数进行处理,保证了模型运行的正确性。
与上述的模型构建方法相对应的,本申请实施例还提供了一种模型构建装置,参见图5所示,该装置包括:
存储单元100,用于存储深度学习框架,所述深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库;
信息获取单元110,用于获取模型配置信息,所述模型配置信息包括构成神经网络模型的算法模块信息、构成所述神经网络模型的算法模块之间的组合关系信息,以及所述神经网络模型所执行的目标任务;
算法筛选单元120,用于根据所述目标任务的任务类型,确定目标算法库,并从所述目标算法库中确定出目标算法模型,所述目标算法模型与构成所述神经网络模型的算法模块相对应;
组合处理单元130,用于实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化后的所述目标算法模型进行组合,得到神经网络模型。
在一些实施例方式中,所述目标任务包括多项任务;
所述算法筛选单元120根据所述目标任务的任务类型,确定目标算法库,并从所述目标算法库中确定出目标算法模型时,具体包括:
对应每一项目标任务,根据该目标任务的任务类型,确定与该目标任务对应的目标算法库,以及从构成所述神经网络模型的算法模块中,确定出执行该目标任务的算法模块;
从该目标任务对应的目标算法库中,确定出与执行该目标任务的算法模块对应的目标算法模型。
在一些实施方式中,执行各项目标任务的算法模块中,包括各项目标任务共用的第一算法模块,以及各项目标任务专用的算法模块;
组合处理单元130实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化的各个目标算法模型进行组合,得到神经网络模型时,具体包括:
实例化所述第一算法模块对应的第一目标算法模型,以及分别实例化各项目标任务专用的算法模块各自对应的第二目标算法模型。
在一些实施方式中,组合处理单元130实例化所述目标算法模型,具体包括:
通过所述深度学习框架的注册表,调用所述目标算法模型并进行实例化,其中,在所述注册表中,记录有所述深度学习框架各个算法库中的各个算法模型的名称,以及各个算法模型所属的类。
在一些实施方式中,所述模型配置信息中还包括构成所述神经网络模型的算法模块的参数信息,所述组合处理单元130实例化所述目标算法模型,具体包括:
按照所述目标算法模型对应的参数信息,对所述目标算法模型进行实例化;
或者,
从所述目标算法模型的各版本的算法模型中,选择符合所述目标算法模型对应的参数信息的算法模型进行实例化。
在一些实施方式中,所述深度学习框架的多个算法库中包括共享算子库,所述共享算子库中包括单独编译的算子,所述共享算子库的接口被映射至所述深度学习框架的调用接口。
在一些实施方式中,所述信息获取单元110获取模型配置信息,包括:
获取模型构建配置文件,并从所述模型构建配置文件中解析得到模型配置信息;
其中,所述模型构建配置文件中包括待构建的神经网络模型的算法模块信息、各算法模块的组合关系信息,以及所述神经网络模型所执行的目标任务信息。
在一些实施方式中,所述装置还包括:
数据分发单元,用于在所述神经网络模型对输入的待处理数据进行处理的过程中,确定对所述待处理数据进行运算处理的运算函数名;通过所述运算函数名,加载第一运算函数对所述待处理数据进行运算处理;所述第一运算函数支持的参数类型,与所述待处理数据的参数类型相一致;
其中,所述参数类型包括数据类型,和/或数据适用的设备类型。
本实施例提供的模型构建装置,与本申请上述实施例所提供的模型构建方法属于同一申请构思,可执行本申请上述任意实施例所提供的模型构建方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请上述实施例提供的模型构建方法的具体处理内容,此处不再加以赘述。
以上的信息获取单元110、算法筛选单元120和组合处理单元130所实现的功能可以分别由相同或不同的处理器实现,本申请实施例不作限定。
应理解以上装置中的单元可以以处理器调用软件的形式实现。例如该装置包括处理器,处理器与存储器连接,存储器中存储有指令,处理器调用存储器中存储的指令,以实现以上任一种方法或实现该装置各单元的功能,其中处理器可以为通用处理器,例如CPU或微处理器等,存储器可以为装置内的存储器或装置外的存储器。或者,装置中的单元可以以硬件电路的形式实现,可以通过对硬件电路的设计,实现部分或全部单元的功能,该硬件电路可以理解为一个或多个处理器;例如,在一种实现中,该硬件电路为ASIC,通过对电路内元件逻辑关系的设计,实现以上部分或全部单元的功能;再如,在另一种实现中,该硬件电路可以通过PLD实现,以FPGA为例,其可以包括大量逻辑门电路,通过配置文件来配置逻辑门电路之间的连接关系,从而实现以上部分或全部单元的功能。以上装置的所有单元可以全部通过处理器调用软件的形式实现,或全部通过硬件电路的形式实现,或部分通过处理器调用软件的形式实现,剩余部分通过硬件电路的形式实现。
在本申请实施例中,处理器是一种具有信号的处理能力的电路,在一种实现中,处理器可以是具有指令读取与运行能力的电路,例如CPU、微处理器、GPU、或DSP等;在另一种实现中,处理器可以通过硬件电路的逻辑关系实现一定功能,该硬件电路的逻辑关系是固定的或可以重构的,例如处理器为ASIC或PLD实现的硬件电路,例如FPGA等。在可重构的硬件电路中,处理器加载配置文档,实现硬件电路配置的过程,可以理解为处理器加载指令,以实现以上部分或全部单元的功能的过程。此外,还可以是针对人工智能设计的硬件电路,其可以理解为一种ASIC,例如NPU、TPU、DPU等。
可见,以上装置中的各单元可以是被配置成实施以上方法的一个或多个处理器(或处理电路),例如:CPU、GPU、NPU、TPU、DPU、微处理器、DSP、ASIC、FPGA,或这些处理器形式中至少两种的组合。
此外,以上装置中的各单元可以全部或部分可以集成在一起,或者可以独立实现。在一种实现中,这些单元集成在一起,以SOC的形式实现。该SOC中可以包括至少一个处理器,用于实现以上任一种方法或实现该装置各单元的功能,该至少一个处理器的种类可以不同,例如包括CPU和FPGA,CPU和人工智能处理器,CPU和GPU等。
本申请另一实施例还提出一种电子设备,参见图6所示,该电子设备包括:
存储器200和处理器210;
其中,所述存储器200与所述处理器210连接,用于存储程序;在本申请实施例中,该存储器200还可以用于存储本申请上述实施例中所提出的深度学习框架,该深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库。
所述处理器210,用于通过运行所述存储器200中存储的程序,通过调用在存储器200或者其他存储地址存储的上述深度学习框架,实现上述任一实施例公开的模型构建方法。
具体的,上述电子设备还可以包括:总线、通信接口220、输入设备230和输出设备240。
处理器210、存储器200、通信接口220、输入设备230和输出设备240通过总线相互连接。其中:
总线可包括一通路,在计算机系统各个部件之间传送信息。
处理器210可以是通用处理器,例如通用中央处理器(CPU)、微处理器等,也可以是特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器210可包括主处理器,还可包括基带芯片、调制解调器等。
存储器200中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器200可以包括只读存储器(read-onlymemory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
输入设备230可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备240可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口220可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
处理器210执行存储器200中所存放的程序,以及调用其他设备,可用于实现本申请上述实施例所提供的任意一种模型构建方法的各个步骤。
本申请实施例还提出一种芯片,该芯片包括处理器和数据接口,所述处理器通过所述数据接口读取并运行存储器上存储的程序,以及读取存储器上存储的数据,以执行上述任意实施例所介绍的模型构建方法,具体处理过程及其有益效果可参见上述的模型构建方法的实施例介绍。
本申请实施例还提出一种车辆,该车辆具备存储装置和数据处理装置,该存储装置可以用于存储程序或数据,例如存储深度学习框架,深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库。
该数据处理装置用于通过运行上述存储装置中的程序或者运行内置的处理程序,通过访问或调用上述的深度学习框架,实现上述实施例所提供的任意一种模型构建方法的各个步骤。
本申请中的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序或指令,在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备、核心网设备、OAM或者其它可编程装置。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘;还可以是半导体介质,例如,固态硬盘。该计算机可读存储介质可以是易失性或非易失性存储介质,或可包括易失性和非易失性两种类型的存储介质。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,各实施例中记载的技术特征可以进行替换或者组合。
本申请各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种模型构建方法,其特征在于,应用于深度学习框架,所述深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库,所述方法包括:
获取模型配置信息,所述模型配置信息包括构成神经网络模型的算法模块信息、构成所述神经网络模型的算法模块之间的组合关系信息,以及所述神经网络模型所执行的目标任务;
根据所述目标任务的任务类型,确定目标算法库,并从所述目标算法库中确定出目标算法模型,所述目标算法模型与构成所述神经网络模型的算法模块相对应;
实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化后的所述目标算法模型进行组合,得到神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述目标任务包括多项任务;
根据所述目标任务的任务类型,确定目标算法库,并从所述目标算法库中确定出目标算法模型,包括:
对应每一项目标任务,根据该目标任务的任务类型,确定与该目标任务对应的目标算法库,以及从构成所述神经网络模型的算法模块中,确定出执行该目标任务的算法模块;
从该目标任务对应的目标算法库中,确定出与执行该目标任务的算法模块对应的目标算法模型。
3.根据权利要求2所述的方法,其特征在于,执行各项目标任务的算法模块中,包括各项目标任务共用的第一算法模块,以及各项目标任务专用的算法模块;
所述实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化的各个目标算法模型进行组合,得到神经网络模型,包括:
实例化所述第一算法模块对应的第一目标算法模型,以及分别实例化各项目标任务专用的算法模块各自对应的第二目标算法模型。
4.根据权利要求1所述的方法,其特征在于,实例化所述目标算法模型,包括:
通过所述深度学习框架的注册表,调用所述目标算法模型并进行实例化,其中,在所述注册表中,记录有所述深度学习框架各个算法库中的各个算法模型的名称,以及各个算法模型所属的类。
5.根据权利要求1所述的方法,其特征在于,所述模型配置信息中还包括构成所述神经网络模型的算法模块的参数信息,所述实例化所述目标算法模型,包括:
按照所述目标算法模型对应的参数信息,对所述目标算法模型进行实例化;
或者,
从所述目标算法模型的各版本的算法模型中,选择符合所述目标算法模型对应的参数信息的算法模型进行实例化。
6.根据权利要求1所述的方法,其特征在于,所述深度学习框架的多个算法库中包括共享算子库,所述共享算子库中包括单独编译的算子,所述共享算子库的接口被映射至所述深度学习框架的调用接口。
7.根据权利要求1所述的方法,其特征在于,所述获取模型配置信息,包括:
获取模型构建配置文件,并从所述模型构建配置文件中解析得到模型配置信息;
其中,所述模型构建配置文件中包括待构建的神经网络模型的算法模块信息、各算法模块的组合关系信息,以及所述神经网络模型所执行的目标任务信息。
8.根据权利要求1所述的方法,其特征在于,在构建得到所述神经网络模型之后,所述方法还包括:
在所述神经网络模型对输入的待处理数据进行处理的过程中,确定对所述待处理数据进行运算处理的运算函数名;
通过所述运算函数名,加载第一运算函数对所述待处理数据进行运算处理;所述第一运算函数支持的参数类型,与所述待处理数据的参数类型相一致;
其中,所述参数类型包括数据类型,和/或数据适用的设备类型。
9.一种模型构建装置,其特征在于,包括:
存储单元,用于存储深度学习框架,所述深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库;
信息获取单元,用于获取模型配置信息,所述模型配置信息包括构成神经网络模型的算法模块信息、构成所述神经网络模型的算法模块之间的组合关系信息,以及所述神经网络模型所执行的目标任务;
算法筛选单元,用于根据所述目标任务的任务类型,确定目标算法库,并从所述目标算法库中确定出目标算法模型,所述目标算法模型与构成所述神经网络模型的算法模块相对应;
组合处理单元,用于实例化所述目标算法模型,并按照所述各算法模块的组合关系信息,对实例化后的所述目标算法模型进行组合,得到神经网络模型。
10.一种电子设备,其特征在于,包括:
存储器与处理器;
所述存储器与所述处理连接,用于存储程序,以及存储深度学习框架,所述深度学习框架包括多个算法库,其中,用于执行同一种类型任务的至少一个算法模型归属于同一算法库;
所述处理器,用于通过运行所述存储器中存储的程序,实现如权利要求1至8中任意一项所述的模型构建方法。
11.一种车辆,其特征在于,被配置为执行如权利要求1至8中任意一项所述的模型构建方法。
12.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如权利要求1至8中任意一项所述的模型构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310499150.0A CN116562342A (zh) | 2023-05-05 | 2023-05-05 | 模型构建方法、装置、设备、车辆及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310499150.0A CN116562342A (zh) | 2023-05-05 | 2023-05-05 | 模型构建方法、装置、设备、车辆及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116562342A true CN116562342A (zh) | 2023-08-08 |
Family
ID=87485512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310499150.0A Pending CN116562342A (zh) | 2023-05-05 | 2023-05-05 | 模型构建方法、装置、设备、车辆及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116562342A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591104A (zh) * | 2023-11-29 | 2024-02-23 | 摩尔线程智能科技(北京)有限责任公司 | 模型的生成方法、装置、电子设备及存储介质 |
-
2023
- 2023-05-05 CN CN202310499150.0A patent/CN116562342A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591104A (zh) * | 2023-11-29 | 2024-02-23 | 摩尔线程智能科技(北京)有限责任公司 | 模型的生成方法、装置、电子设备及存储介质 |
CN117591104B (zh) * | 2023-11-29 | 2024-04-12 | 摩尔线程智能科技(北京)有限责任公司 | 模型的生成方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589522B2 (en) | Incrementally updatable system software infrastructure for sensor networks | |
US10423391B2 (en) | Agile communication operator | |
US7281248B2 (en) | Virtualized and realized user interface controls | |
US20220092439A1 (en) | Decoupled architecture for artificial intelligence model management | |
JP2005129027A (ja) | アプリケーションプログラミングインターフェース(api)の設計 | |
US10514898B2 (en) | Method and system to develop, deploy, test, and manage platform-independent software | |
WO2013018204A1 (ja) | 画像処理ソフトウェア開発方法、画像処理ソフトウェア開発装置、および、画像処理ソフトウェア開発プログラム | |
CN116562342A (zh) | 模型构建方法、装置、设备、车辆及存储介质 | |
CN116541066B (zh) | 软件系统构建方法、装置、设备及计算机可读存储介质 | |
Bergmayr et al. | Cloud modeling languages by example | |
CN116541065A (zh) | 软件系统构建方法、装置、设备及计算机可读存储介质 | |
CN116107669B (zh) | 深度学习框架的算子注册方法、装置、设备及存储介质 | |
CN112214325A (zh) | Fpga任务动态编排方法、装置、芯片和存储介质 | |
US20220283787A1 (en) | System and method supporting graphical programming based on neuron blocks, and storage medium | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
RU2681408C2 (ru) | Способ и система графо-ориентированного создания масштабируемых и сопровождаемых программных реализаций сложных вычислительных методов | |
CN114169525A (zh) | 推理框架的调用方法和调用装置 | |
US20240192934A1 (en) | Framework for development and deployment of portable software over heterogenous compute systems | |
Ejjeh | Compiler techniques for enabling general-purpose hardware-agnostic FPGA programming | |
Dintén et al. | Model-based tool for the design, configuration and deployment of data-intensive applications in hybrid environments: An Industry 4.0 case study | |
Zhao et al. | Platforms and Practice of Graph Neural Networks | |
Abdel Naby | Software algorithms evaluation platform using a Docker-based framework | |
CN118607222A (zh) | 基于Python模型库的ModeLica建模方法、装置、电子设备及产品 | |
CN116450206A (zh) | 软件系统构建方法、装置、设备及计算机可读存储介质 | |
CN118171741A (zh) | 一种低资源算力的嵌入式设备部署模型的推理方法 |
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 |