CN110764905B - 网络模型生成方法、装置、计算机设备以及存储介质 - Google Patents

网络模型生成方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN110764905B
CN110764905B CN201910903621.3A CN201910903621A CN110764905B CN 110764905 B CN110764905 B CN 110764905B CN 201910903621 A CN201910903621 A CN 201910903621A CN 110764905 B CN110764905 B CN 110764905B
Authority
CN
China
Prior art keywords
model
platform
network model
terminal
chip
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.)
Active
Application number
CN201910903621.3A
Other languages
English (en)
Other versions
CN110764905A (zh
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910903621.3A priority Critical patent/CN110764905B/zh
Publication of CN110764905A publication Critical patent/CN110764905A/zh
Application granted granted Critical
Publication of CN110764905B publication Critical patent/CN110764905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种网络模型生成方法,属于模型处理技术领域。所述方法由终端执行,所述方法包括:当第一应用调用目标功能的网络模型时,获取目标功能的平台通用模型;获取平台信息,平台信息包含运行目标功能的网络模型的第一硬件平台的平台标识以及处理器芯片的芯片标识;根据平台通用模型以及平台信息,生成基于第一硬件平台实现目标功能的第一网络模型。本申请通过终端获取目标功能的平台通用模型,并获取终端的第一应用调用该目标功能的网络模型时所需求的平台信息,生成适用于平台信息的第一网络模型,从而不需要在终端中存储不同硬件平台的各个自定义模型,减少了不同自定义模型对终端存储空间的占用率,提高了终端存储空间的利用率。

Description

网络模型生成方法、装置、计算机设备以及存储介质
技术领域
本申请涉及模型处理技术领域,特别涉及一种网络模型生成方法、装置、 计算机设备以及存储介质。
背景技术
随着科技的快速发展,终端中可以使用各种各样的网络模型,终端在进行 网络模型计算推理时,需要考虑自身在哪个处理器芯片上运行该网络模型。
对于任意一个网络模型来说,终端在处理器芯片的计算框架中运行该网络 模型时,终端会获取该网络模型在计算框架中的自定义模型,从而在计算框架 中运行获取到的自定义模型。比如,当终端在中央处理器(Central Processing Unit,CPU)芯片中运行某个网络模型时,终端需要获取该网络模型在CPU芯 片的计算框架中的自定义模型;当终端在数字信号处理(Digital Signal Processing,DSP)芯片中运行某个网络模型时,终端需要获取该网络模型在DSP 芯片的计算框架中的自定义模型。
由于上述自定义模型是在终端出厂之前预置在终端中的,终端需要使用时, 直接加载自定义模型即可,但是,不同处理器芯片中的自定义模型各不相同, 需要更多的存储空间,造成对终端存储空间的浪费。
发明内容
本申请实施例提供了一种网络模型生成方法、装置、计算机设备以及存储 介质,可以减少自定义模型对终端存储空间的占用,提高终端存储空间的利用 率。所述技术方案如下:
一个方面,本申请实施例提供了一种网络模型生成方法,所述方法由终端 执行,所述方法包括:
当第一应用调用目标功能的网络模型时,获取所述目标功能的平台通用模 型,所述平台通用模型中包含基于不同硬件平台实现所述目标功能的各个网络 模型中的公共部分代码;
获取平台信息,所述平台信息包含运行所述目标功能的网络模型的第一硬 件平台的平台标识以及处理器芯片的芯片标识;
根据所述平台通用模型以及所述平台信息,生成基于所述第一硬件平台实 现所述目标功能的第一网络模型。
另一方面,本申请实施例提供了一种网络模型生成装置,所述装置用于由 终端中,所述装置包括:
模型获取模块,用于当第一应用调用目标功能的网络模型时,获取所述目 标功能的平台通用模型,所述平台通用模型中包含基于不同硬件平台实现所述 目标功能的各个网络模型中的公共部分代码;
信息获取模块,用于获取平台信息,所述平台信息包含运行所述目标功能 的网络模型的第一硬件平台的平台标识以及处理器芯片的芯片标识;
模型生成模块,用于根据所述平台通用模型以及所述平台信息,生成基于 所述第一硬件平台实现所述目标功能的第一网络模型。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包含处 理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或 指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述 处理器加载并执行以实现如上所述的网络模型生成方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质 中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、 所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述 的网络模型生成方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
当第一应用调用目标功能的网络模型时,获取目标功能的平台通用模型, 平台通用模型中包含基于不同硬件平台实现目标功能的各个网络模型中的公共 部分代码;获取平台信息,平台信息包含运行目标功能的网络模型的第一硬件 平台的平台标识以及处理器芯片的芯片标识;根据平台通用模型以及平台信息, 生成基于第一硬件平台实现目标功能的第一网络模型。当第一应用调用目标功 能的网络模型时,本申请通过终端获取目标功能的平台通用模型,并获取终端 的第一应用调用该目标功能的网络模型时所需求的平台信息,生成适用于平台 信息的第一网络模型,从而不需要在终端中存储不同硬件平台的各个自定义模 型,减少了不同自定义模型对终端存储空间的占用率,提高了终端存储空间的利用率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图1是本申请一示例性实施例提供的一种网络模型生成方法的方法流程图;
图2是本申请一示例性实施例提供的一种网络模型生成方法的方法流程图;
图3是本申请一示例性实施例涉及的一种第一网络模型的结构示意图;
图4是本申请一示例性实施例提供的一种网络模型生成方法的方法流程图;
图5是本申请一示例性实施例提供的网络模型生成装置的结构框图;
图6是本申请一个示例性实施例提供的终端的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描 述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。 以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方 式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一 致的装置和方法的例子。
本申请提供的方案,可以用于人们在日常生活中使用终端时,终端中的应 用程序需要使用某一功能的网络模型的显示场景中,为了便于理解,下面首先 对本申请实施例涉及的一些名词以及应用场景进行简单介绍。
CPU:是计算机***的运算和控制核心,是信息处理、应用程序运行的最 终执行单元。
DSP:是指能够实现数字信号处理技术的芯片。
图像处理器(Graphics Processing Unit,GPU):又称显示核心、视觉处理 器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如 平板电脑、智能手机等)上图像运算工作的微处理器。
随着科技的发展,如今终端中已经出现用于运行各种网络模型的计算框架, 由于计算框架是基于终端中的处理器芯片运行的,在该计算框架在运行网络模 型时,需要根据所在的处理器芯片确定自定义模型,进而在终端中运行该自定 义模型。
其中,终端的处理器芯片存在多种,比如,一个终端中可以包括CPU芯片、 GPU芯片、DSP芯片等多个处理器芯片,相应的,在不同的处理器芯片上的计 算框架上运行某个网络模型时,终端需要在计算框架中运行不同的自定义模型。 这些自定义模型在终端出厂之前就已经预置在终端中,当终端需要使用时,终 端可以直接获取自定义模型。比如,对于分类模型MobilenetV1,在终端中的 CPU芯片、GPU芯片上运行的自定义模型和在DSP芯片上运行的自定义模型是 不同的,当终端需要在CPU芯片上运行该分类模型时,终端可以获取到该分类 模型在CPU芯片中的自定义模型,终端需要在DSP芯片上运行该分类模型时, 终端可以获取到该分类模型在DSP芯片中的自定义模型。
对于不同处理器芯片中的自定义模型,终端的厂商在终端中存储自定义模 型之前,需要在各个网络模型中添加处理器芯片的代码,从而使得不同处理器 芯片中的自定义模型包含了处理器芯片的代码,使得终端直接使用处理器芯片 中的自定义模型就可以适用于该处理器芯片。由于目前网络模型的发展,有些 网络模型所占的内存空间较大,得到的自定义模型占用内存的空间也大,如果 在终端中预先存储针对各个处理芯片各自的自定义模型,无疑会更加提高对终 端内存的需求量,造成终端存储空间的浪费等问题。
可选的,上述提到的终端可以是具有运行网络模型能力的终端,比如,该 终端可以是手机、平板电脑、电子书阅读器、智能眼镜、智能手表、MP3播放 器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层 面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩 标准音频层面4)播放器、笔记本电脑、膝上型便携计算机等等。
为了减少自定义模型对终端存储空间的占用,提高终端存储空间的利用率, 本申请提供了一种解决方案,可以避免多个自定义模型对终端的存储空间的占 空。请参考图1,其示出了本申请一示例性实施例提供的一种网络模型生成方法 的方法流程图。该方法可以应用于上述具有运行网络模型能力的终端中。如图1 所示,该网络模型生成方法可以包括以下几个步骤:
步骤101,当第一应用调用目标功能的网络模型时,获取目标功能的平台通 用模型。
可选的,第一应用可以是终端中安装的任意一个具有调用网络模型的应用 程序,当第一应用调用某个功能的网络模型时,该功能的网络模型可以称为目 标功能的网络模型。终端中存储有平台通用模型,该平台通用模型中也可以包 含基于不同硬件平台实现目标功能的各个网络模型中的公共部分代码。其中, 不同硬件平台可以是不同终端厂商提供的各种处理器芯片平台,比如,厂商一 的CPU芯片、厂商一的GPU芯片、厂商一的DSP芯片,厂商二的CPU芯片、 厂商二的GPU芯片、厂商二的DSP芯片等等。对于平台通用模型,其中包含有 厂商一的CPU芯片、厂商一的GPU芯片、厂商一的DSP芯片、厂商二的CPU 芯片、厂商二的GPU芯片、厂商二的DSP芯片等各自实现目标功能的各个网络 模型中的公共部分代码。
步骤102,获取平台信息,平台信息包含运行目标功能的网络模型的第一硬 件平台的平台标识以及处理器芯片的芯片标识。
终端可以获取自身运行上述目标功能的网络模型采用的平台信息,第一硬 件平台是当前终端中采用的硬件平台,比如,终端可以采用上述厂商一的硬件 平台、厂商二的硬件平台等,第一硬件平台即为其中的任意一种硬件平台,处 理器芯片即为终端中该第一硬件平台提供的处理器芯片,如过第一硬件平台是 厂商一的硬件平台,则处理器芯片可以是厂商一的CPU芯片、厂商一的GPU 芯片、厂商一的DSP芯片等。
可选的,本步骤中获取到的平台信息,可以是“厂商一的DSP芯片”,即, 终端获取到的第一硬件平台的平台标识是“厂商一”,处理器芯片的芯片标识是 “DSP芯片”。
步骤103,根据平台通用模型以及平台信息,生成基于第一硬件平台实现目 标功能的第一网络模型。
其中,第一硬件平台是任意一个终端基于上述获取到的平台通用模型以及 平台信息,通过模型推理生成适用于当前第一硬件平台运行的具有目标功能的 第一网络模型。比如,终端可以根据上述平台通用模型以及平台信息,生成适 用于平台信息的平台通用模型。如果终端获取到的平台信息是上述“厂商一的 DSP芯片”,那么,终端生成的第一网络模型可以应用于该“厂商一的DSP芯 片”,终端可以通过厂商一的DSP芯片中的计算框架运行具有目标功能的第一网 络模型。
综上所述,当第一应用调用目标功能的网络模型时,获取目标功能的平台 通用模型,平台通用模型中包含基于不同硬件平台实现目标功能的各个网络模 型中的公共部分代码;获取平台信息,平台信息包含运行目标功能的网络模型 的第一硬件平台的平台标识以及处理器芯片的芯片标识;根据平台通用模型以 及平台信息,生成基于第一硬件平台实现目标功能的第一网络模型。当第一应 用调用目标功能的网络模型时,本申请通过终端获取目标功能的平台通用模型, 并获取终端的第一应用调用该目标功能的网络模型时所需求的平台信息,生成 适用于平台信息的第一网络模型,从而不需要在终端中存储不同硬件平台的各 个自定义模型,减少了不同自定义模型对终端存储空间的占用率,提高了终端存储空间的利用率。
在一种可能实现的方式中,以上述终端中采用的平台通用模型是开发人员 预先通过模型转换得到,并且预先存储在终端中,终端中运行的应用程序可以 将需要使用的目标功能的平台通用模型的地址告知终端,终端通过该地址获取 目标功能的平台通用模型为例,对上述图1所示的方案进行详细介绍。
请参考图2,其示出了本申请一示例性实施例提供的一种网络模型生成方法 的方法流程图。该方法可以由上述具有运行网络模型能力的终端执行,如图2 所示,该网络模型生成方法可以包括以下几个步骤:
步骤201,当第一应用调用目标功能的网络模型时,获取目标模型地址,目 标模型地址是目标功能的平台通用模型的地址。
其中,终端可以运行有第一应用,当第一应用调用某个功能的网络模型时, 该功能的网络模型可以称为目标功能的网络模型。比如,当终端中的相机应用 需要调用人脸识别模型时,第一应用是相机应用,目标功能是人脸识别功能。 当相册应用需要调用图片分类模型时,第一应用是相册应用,图片分类功能便 是目标功能。
第一应用可以将该目标功能的平台通用模型的地址告知终端,使得终端可 以获取到目标模型地址。比如,当终端中的相机应用需要调用人脸识别模型时, 相机应用可以将具有人脸识别功能的平台通用模型的地址告知终端。或者,当 相册应用需要调用图片分类模型时,相应的,相机应用也可以将具有图片分类 功能的平台通用模型的地址告知终端。
步骤202,根据目标模型地址,获取目标功能的平台通用模型。
其中,平台通用模型中包含基于不同硬件平台实现目标功能的各个网络模 型中的公共部分代码。
可选的,终端中预先存储的平台通用模型在通过模型转换时,是对不同硬 件平台上运行的各个网络模型的公共部分代码进行模型转换,得到在不同硬件 平台上的平台通用模型。比如,开发人员可以通过对于厂商一的CPU芯片以及 厂商一的GPU芯片,在厂商一的CPU芯片上运行的人脸识别模型以及在厂商 一的GPU芯片上运行的人脸识别模型之间的公共部分代码进行定义,得到的具 有人脸识别功能的平台通用模型。此处仅以厂商一的CPU芯片以及厂商一的 GPU芯片进行举例说明,实际应用中,还可以对不同厂商、不同的处理器芯片 进行模型转换,得到公共部分代码并进行定义,本申请实施例对此并不加以限定。
比如,对于如下是符合某个处理器芯片的网络模型的代码,开发人员进行 模型转换时,可以将其中的公共部分代码进行定义,并存储在终端中即可。
Figure BDA0002212600030000071
Figure BDA0002212600030000081
其中,在该网络模型的代码中,公共部分代码可以如下:
Figure BDA0002212600030000082
其中,在该网络模型的代码中,差异部分代码可以如下:
//only used in hexagon nn lib
optional uint32 nodeId=101;
optional uint32 padding=102;
repeated NodeInput nodeInput=103;
开发人员可以对上述公共部分的代码进行定义,生成网络模型的平台通用 模型,并将该网络模型的平台通用模型代码存储在终端中,提供终端的应用进 行调用。
终端中的第一应用调用某个网络模型时,第一应用可以将目标模型地址告 诉终端,终端根据得到的目标模型地址,该目标模型地址从平台通用模型中获 取具有目标功能的平台通用模型。比如,当终端中的第一应用需要调用人脸识 别模型时,第一应用可以将平台通用模型中人脸识别模型的地址告知终端,终 端可以根据平台通用模型中人脸识别模型所在的地址,获取到人脸识别功能的 平台通用模型。
步骤203,通过操作***的应用程序接口API,获取终端的硬件平台的平台 标识。
可选的,终端通过操作***的应用程序接口(Application ProgrammingInterface,API),获取终端的硬件平台的平台标识。即,终端可以通过从操作系 统API调用获取终端自身是使用的哪一个厂商的处理器芯片。例如,终端采用 的是厂商一提供的处理器芯片,终端可以通过API调用,获取到自身用的硬件 平台的平台标识是“厂商一”,如果终端采用的是厂商二提供的处理器芯片,终 端也可以通过同样的方式,获取到自身用的硬件平台的平台标识是“厂商二”。
步骤204,获取第一应用指定的处理器芯片的芯片标识。
可选的,终端中的第一应用在需要调用目标功能的网络模型时,第一应用 会将自身需要在终端中的某个处理器芯片上运行的信息告知终端,从而使得终 端获取到第一应用指定的处理器芯片的芯片标识。比如,终端中的第一应用在 需要调用人脸识别模型时,需要将该人脸识别模型在终端的CPU上运行,那么, 第一应用可以将自身需要CPU上运行的信息告知终端,终端可以得到处理器芯 片的芯片标识为“CPU”。或者,终端中的第一应用在需要调用人脸识别模型时, 需要将该人脸识别模型在终端的GPU上运行,那么,第一应用可以将自身需要 GPU上运行的信息告知终端,相应的,终端可以得到处理器芯片的芯片标识为 “GPU”。可选的,在实际应用中,处理器芯片的芯片标识可以由终端采用的处 理芯片以及第一应用确定,本申请实施例对此并不加以限定。
需要说明的是,上述步骤203和步骤204的先后顺序可以调整,即,终端 也可以先获取处理器芯片的芯片标识再获取硬件平台的平台标识,或者,终端 也可以同时进行步骤203和步骤204本申请实施例对此并不加以限定。
步骤205,根据平台标识以及芯片标识获取第一差异代码,第一差异代码包 括各个网络模型中的第一网络模型与各个网络模型中的其它网络模型之间的差 异部分代码。
即,终端根据平台信息获取第一差异代码。可选的,终端可以根据上述获 取到的硬件平台的平台标识以及处理器芯片的芯片标识,获取与硬件平台的平 台标识以及处理器芯片的芯片标识对应的第一差异代码。在一种可能实现的方 式中,终端中也可以预先存储各个硬件平台的差异部分代码,例如,终端中存 储有“厂商一的CPU”的差异部分代码,也存储有“厂商一的GPU”的差异部 分代码,当终端获取到的平台信息中包含“厂商一”以及“CPU”时,终端可 以获取到存储的“厂商一的CPU”的差异部分代码。
在一种可能实现的方式中,终端中可以存储各个平台信息以及差异部分代 码之间的对应关系表。请参考表1,其示出了本申请实施例涉及的一种包含各个 平台信息以及差异部分代码之间的对应关系的表格。
平台信息 差异部分代码
平台信息一 差异部分代码一
平台信息二 差异部分代码二
平台信息三 差异部分代码三
…… ……
表1
即,终端按照上述步骤获取到的硬件平台的平台标识是“厂商一”,获取到 的处理器芯片的芯片标识是“CPU”,如果终端根据厂商一和CPU得知此次获取 到的平台信息是上述表1中的平台信息一,则终端可以通过查询上述表1得到 符合该厂商一的CPU的差异部分代码,从而获取到需要的差异部分代码。
步骤206,根据平台通用模型以及第一差异代码,生成基于第一硬件平台实 现目标功能的第一网络模型。
在一种可能实现的方式中,终端可以根据平台通用模型以及第一差异代码, 对平台通用模型执行模型推理,获取模型推理结果,然后根据平台通用模型的 数据结构以及模型推理结果,生成第一网络模型。即,终端可以根据获取到的 平台通用模型以及第一差异代码,对平台通用模型进行模型推理,在平台通用 模型中添加该第一差异代码,得到模型推理结果。
例如,如果终端中需要使用的网络模型是人脸识别模型,第一差异代码是 终端中厂商一的CPU的差异部分代码,终端可以将该差异部分代码添加至平台 通用模型中,进行模型推理,得到模型推理结果,即可以在厂商一的CPU上运 行的网络模型。以上述提到的网络模型的代码为例,终端可以根据平台信息获 取到上述的差异部分代码,在终端中通过得到的差异部分代码以及公共部分代 码进行模型推理,得到符合平台信息的网络模型。
可选的,终端还可以根据平台通用模型的数据结构,对生成的模型推理结 果的数据结构进行定义,从而得到适合平台通用模型的数据结构的第一网络模 型。请参考表2,其示出了本申请实施例涉及的一种平台通用模型与数据结构的 对应关系表。
平台通用模型 数据结构
平台通用模型一 数据结构一
平台通用模型二 数据结构二
平台通用模型三 数据结构三
…… ……
表2
其中,表2中的平台通用模型一、平台通用模型二以及平台通用模型三是3 种不同功能的平台通用模型,当终端得到平台通用模型一时,终端可以根据上 述表2查询到平台通用模型一对应的数据结构一,从而将平台通用模型的模型 推理结果按照该数据结构一的形式进行定义,得到最终运行的第一网络模型。
请参考图3,其示出了本申请一示例性实施例涉及的一种第一网络模型的结 构示意图。如图3所示,其中包含了各个数据输入口301,各个数据输出口302, 各个算子303。其中该网络模型可以是基于上述数据各个数据输入口301输入模 型需要的数据,通过各个算子303的执行方式将结果按照各个数据输出口302 输出,从而完成第一网络模型的运行。
可选的,当第一网络模型是终端需要连续运行的网络模型,且终端需要在 计算框架中重复执行第一网络模型时,终端将生成的第一网络模型在计算框架 中重复执行。该连续运行的网络模型可以是指第一应用开始运行该网络模型后 在一段时间内不中断运行的网络模型。
比如,该连续运行的网络模型可以是人脸识别模型、声纹识别模型、图片 分类模型等,即终端在使用这类网络模型时,可以在一段时间内连续运行。当 终端需要重复使用第一网络模型时,可以直接将该第一网络模型在计算框架中 重复执行即可,并不需要再次执行上述获取平台通用模型以及平台信息等步骤, 节约终端执行第一网络模型的效率。需要说明的是,当终端需要从使用的人脸 识别模型转换至声纹识别模型时,终端则需要对该声纹识别模型按照上述获取 平台通用模型以及平台信息等步骤,获取到符合平台信息中的硬件平台的网络 模型;当终端再次从使用的声纹识别模型转换至人脸识别模型时,终端则需要 重新对该人脸识别模型按照上述获取平台通用模型以及平台信息等步骤,获取 到符合平台信息中的硬件平台的网络模型。
其中,上述步骤203至步骤205可以看做是一个预处理过程,即,终端通 过该预处理过程将网络模型需要运行在某个平台信息上的信息进行读入,从而 在平台通用模型推理阶段,增加该平台通用模型的差异部分代码,从而得到符 合平台信息的第一网络模型。
综上所述,当第一应用调用目标功能的网络模型时,获取目标功能的平台 通用模型,平台通用模型中包含基于不同硬件平台实现目标功能的各个网络模 型中的公共部分代码;获取平台信息,平台信息包含运行目标功能的网络模型 的第一硬件平台的平台标识以及处理器芯片的芯片标识;根据平台通用模型以 及平台信息,生成基于第一硬件平台实现目标功能的第一网络模型。当第一应 用调用目标功能的网络模型时,本申请通过终端获取目标功能的平台通用模型, 并获取终端的第一应用调用该目标功能的网络模型时所需求的平台信息,生成 适用于平台信息的第一网络模型,从而不需要在终端中存储不同硬件平台的各 个自定义模型,减少了不同自定义模型对终端存储空间的占用率,提高了终端存储空间的利用率。
另外,本方案可以看做是将不同硬件平台的模型转换过程,替换至了模型 推理阶段中的预处理过程中,根据终端实际需要在哪个厂商的处理器芯片上运 行网络模型的平台信息,在模型推理阶段执行对平台通用模型的转换,得到基 于该硬件平台实现特定目标功能的第一网络模型,终端中存储该平台通用模型 即可,避免了在不同处理器芯片上存储不同的网络模型引起的存储空间的浪费。
在一种可能实现的方式中,以上述终端是手机,手机中的相机应用在手机 商家一的GPU上需要运行人脸识别模型为例,对上述图1或图2的方法实施例 进行举例说明。请参考图4,其示出了本申请一示例性实施例提供的一种网络模 型生成方法的方法流程图。该方法是由日常生活中的手机执行的,如图4所示, 该网络模型生成方法可以包括以下几个步骤:
步骤401,手机通过相机应用获取人脸识别功能的平台通用模型。
可选的,当用户使用相机应用中的某些功能时,该相机应用需要调用人脸 识别模型对当前用户的身份进行验证,此时手机需要运行人脸识别模型。其中, 相机应用可以将人脸识别功能的平台通用模型的地址告知手机,手机根据该地 址查询并获取相应的平台通用模型。此时,手机获取到的平台通用模型中包含 基于不同处理器芯片实现人脸识别功能的各个网络模型中的公共部分代码。
步骤402,手机获取平台信息。
手机中的相机应用将自身想要在哪个处理器芯片上运行人脸识别模型的信 息告知手机,手机可以得到其中的处理器芯片的芯片标识。本实施例中,相机 应用可以告知终端自身想要在GPU上运行人脸识别模型,相应的,手机可以获 取到的平台信息中包含“GPU”。同时,手机还可以通过操作***的API接口获 取自身采用的是哪个商家的处理器芯片,从而得到平台信息中的硬件平台的平 台标识。可选的,该步骤中手机获取平台信息的方式也可以参照上述图2所示 实施例中的相应描述,此处不再赘述。
步骤403,手机根据平台通用模型以及平台信息,生成基于GPU芯片运行 的人脸识别模型。
其中,手机可以对得到的平台通用模型进行模型推理,将平台信息的差异 部分代码添加至平台通用模型中,生成符合GPU运行的人脸识别模型。可选的, 该步骤中手机生成人脸识别模型的方式也可以参照上述图2所示实施例中有关 生成第一网络模型的方式的相应描述,此处不再赘述。
步骤404,手机在GPU芯片上运行人脸识别模型。
可选的,手机可以将得到的人脸识别模型在GPU芯片中的计算框架中运行, 对人脸进行识别。当用户多次使用该人脸识别模型时,手机也可以将该人脸识 别模型多次在GPU芯片中的计算框架中运行,当该相机应用需要使用其他网络 模型时,手机也可以参照上述步骤生成其他的网络模型。
综上所述,当相机应用调用人脸识别模型时,本申请通过手机获取人脸识 别功能的平台通用模型,并获取终端的相机应用调用该人脸识别模型时所需求 的平台信息,生成适用于平台信息的人脸识别模型,从而不需要在手机中存储 不同硬件平台的各个自定义模型,减少了不同自定义模型对手机存储空间的占 用率,提高了手机存储空间的利用率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请 装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图5,其示出了本申请一示例性实施例提供的网络模型生成装置的结 构框图。该网络模型生成装置500可以用于终端中,以执行图1、图2或者图4 所示实施例提供的方法中由终端执行的全部或者部分步骤。该网络模型生成装 置500可以包括:模型获取模块501,信息获取模块502以及模型生成模块503。
所述模型获取模块501,用于当第一应用调用目标功能的网络模型时,获取 所述目标功能的平台通用模型,所述平台通用模型中包含基于不同硬件平台实 现所述目标功能的各个网络模型中的公共部分代码;
所述信息获取模块502,用于获取平台信息,所述平台信息包含运行所述目 标功能的网络模型的第一硬件平台的平台标识以及处理器芯片的芯片标识;
所述模型生成模块503,用于根据所述平台通用模型以及所述平台信息,生 成基于所述第一硬件平台实现所述目标功能的第一网络模型。
综上所述,当第一应用调用目标功能的网络模型时,本申请通过终端获取 目标功能的平台通用模型,并获取终端的第一应用调用该目标功能的网络模型 时所需求的平台信息,生成适用于平台信息的第一网络模型,从而不需要在终 端中存储不同硬件平台的各个自定义模型,减少了不同自定义模型对终端存储 空间的占用率,提高了终端存储空间的利用率。
可选的,所述信息获取模块502,包括:平台标识获取单元和芯片标识获取 单元;
所述平台标识获取单元,用于通过操作***的应用程序接口API,获取所述 终端的硬件平台的平台标识;
所述芯片标识获取单元,用于获取所述第一应用程序指定的处理器芯片的 芯片标识。
可选的,所述装置还包括:代码获取模块;
所述代码获取模块,用于根据所述平台信息获取第一差异代码,所述第一 差异代码包括所述各个网络模型中的第一网络模型与所述各个网络模型中的其 它网络模型之间的差异部分代码;
所述模型生成模块503,用于根据所述平台通用模型以及所述第一差异代 码,生成基于所述第一硬件平台实现所述目标功能的所述第一网络模型。
可选的,所述根据所述平台通用模型以及所述第一差异代码,生成基于所 述第一硬件平台实现所述目标功能的所述第一网络模型,包括:
根据所述平台通用模型以及所述第一差异代码,对所述平台通用模型执行 模型推理,获取模型推理结果;
根据所述平台通用模型的数据结构以及所述模型推理结果,生成所述第一 网络模型。
可选的,所述模型获取模块501,包括:地址获取单元以及模型获取单元;
所述模型获取单元,用于当第一应用调用目标功能的网络模型时,获取目 标模型地址,所述目标模型地址是所述目标功能的平台通用模型的地址;
所述地址获取单元,用于根据所述目标模型地址,获取所述目标功能的平 台通用模型。
可选的,所述处理器芯片包括:图像处理器GPU芯片、中央处理器CPU 芯片、数字信号处理DSP芯片中的至少一种。
请参考图6,其示出了本申请一个示例性实施例提供的终端的结构示意图, 如图6所示,该终端包括处理器610、存储器620、显示组件630和传感器组件 640,显示组件630用于显示终端中前台运行的程序的界面,传感器组件640用 于采集各个传感器数据。所述存储器620中存储有至少一条指令,所述指令由 所述处理器610加载并执行以实现如上各个实施例所述的网络模型生成方法中, 由终端执行的部分或者全部步骤。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至 少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施 例所述的网络模型生成方法中,由终端执行的全部或部分步骤。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至 少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施 例所述的网络模型生成方法中,由终端执行的全部或部分步骤。
需要说明的是:上述实施例提供的网络模型生成装置在执行上述网络模型 生成方法时,仅以上述各实施例进行举例说明,实际程序中,可以根据需要而 将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功 能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置 与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过 硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于 一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或 光盘等。
以上所述仅为本申请可选的实施例,并不用以限制本申请,凡在本申请的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的 保护范围之内。

Claims (9)

1.一种网络模型生成方法,其特征在于,所述方法由终端执行,所述方法包括:
当第一应用调用目标功能的网络模型时,获取所述目标功能的平台通用模型,所述平台通用模型中包含基于不同硬件平台实现所述目标功能的各个网络模型中的公共部分代码;
获取平台信息,所述平台信息包含运行所述目标功能的网络模型的第一硬件平台的平台标识以及处理器芯片的芯片标识,所述平台标识包括所述处理器芯片的提供厂商,所述芯片标识包括所述处理器芯片的运算类型;
根据所述平台信息获取第一差异代码,所述第一差异代码包括所述各个网络模型中的第一网络模型与所述各个网络模型中的其它网络模型之间的差异部分代码;
根据所述平台通用模型以及所述第一差异代码,生成基于所述第一硬件平台实现所述目标功能的所述第一网络模型。
2.根据权利要求1所述的方法,其特征在于,所述获取平台信息,包括:
通过操作***的应用程序接口API,获取所述终端的硬件平台的平台标识;
获取所述第一应用指定的处理器芯片的芯片标识。
3.根据权利要求1所述的方法,其特征在于,所述根据所述平台通用模型以及所述第一差异代码,生成基于所述第一硬件平台实现所述目标功能的所述第一网络模型,包括:
根据所述平台通用模型以及所述第一差异代码,对所述平台通用模型执行模型推理,获取模型推理结果;
根据所述平台通用模型的数据结构以及所述模型推理结果,生成所述第一网络模型。
4.根据权利要求1所述的方法,其特征在于,所述当第一应用调用目标功能的网络模型时,获取所述目标功能的平台通用模型,包括:
当所述第一应用调用目标功能的网络模型时,获取目标模型地址,所述目标模型地址是所述目标功能的平台通用模型的地址;
根据所述目标模型地址,获取所述目标功能的平台通用模型。
5.根据权利要求1至4任一所述的方法,其特征在于,所述处理器芯片包括:图像处理器GPU芯片、中央处理器CPU芯片、数字信号处理DSP芯片中的至少一种。
6.一种网络模型生成装置,其特征在于,所述装置用于终端中,所述装置包括:
模型获取模块,用于当第一应用调用目标功能的网络模型时,获取所述目标功能的平台通用模型,所述平台通用模型中包含基于不同硬件平台实现所述目标功能的各个网络模型中的公共部分代码;
信息获取模块,用于获取平台信息,所述平台信息包含运行所述目标功能的网络模型的第一硬件平台的平台标识以及处理器芯片的芯片标识,所述平台标识包括所述处理器芯片的提供厂商,所述芯片标识包括所述处理器芯片的运算类型;
所述信息获取模块,还用于根据所述平台信息获取第一差异代码,所述第一差异代码包括所述各个网络模型中的第一网络模型与所述各个网络模型中的其它网络模型之间的差异部分代码;
模型生成模块,用于根据所述平台通用模型以及所述第一差异代码,生成基于所述第一硬件平台实现所述目标功能的所述第一网络模型。
7.根据权利要求6所述的装置,其特征在于,所述信息获取模块,包括:平台标识获取单元和芯片标识获取单元;
所述平台标识获取单元,用于通过操作***的应用程序接口API,获取所述终端的硬件平台的平台标识;
所述芯片标识获取单元,用于获取所述第一应用指定的处理器芯片的芯片标识。
8.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至5任一所述的网络模型生成方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至5任一所述的网络模型生成方法。
CN201910903621.3A 2019-09-24 2019-09-24 网络模型生成方法、装置、计算机设备以及存储介质 Active CN110764905B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910903621.3A CN110764905B (zh) 2019-09-24 2019-09-24 网络模型生成方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910903621.3A CN110764905B (zh) 2019-09-24 2019-09-24 网络模型生成方法、装置、计算机设备以及存储介质

Publications (2)

Publication Number Publication Date
CN110764905A CN110764905A (zh) 2020-02-07
CN110764905B true CN110764905B (zh) 2022-10-28

Family

ID=69329891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910903621.3A Active CN110764905B (zh) 2019-09-24 2019-09-24 网络模型生成方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN110764905B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4113300A4 (en) * 2020-03-10 2023-04-05 Guangdong Oppo Mobile Telecommunications Corp., Ltd. MODEL COORDINATION METHOD AND DEVICE
CN114691566A (zh) * 2020-12-31 2022-07-01 Oppo广东移动通信有限公司 Ai模型的运行方法、加载方法、装置及ic芯片

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050229152A1 (en) * 2004-04-08 2005-10-13 Brian Connell Integrated modeling environment
CN106502646A (zh) * 2016-09-23 2017-03-15 北京五八信息技术有限公司 应用的页面信息处理方法及装置
CN106934028A (zh) * 2017-03-14 2017-07-07 深圳天珑无线科技有限公司 一种存储代码的方法及终端
CN111694617B (zh) * 2018-12-29 2023-05-02 中科寒武纪科技股份有限公司 网络离线模型的处理方法、人工智能处理装置及相关产品
CN109857405A (zh) * 2019-02-02 2019-06-07 Oppo广东移动通信有限公司 应用程序安装包的编译方法、装置、存储介质及终端

Also Published As

Publication number Publication date
CN110764905A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
CN110764905B (zh) 网络模型生成方法、装置、计算机设备以及存储介质
CN112052792B (zh) 一种跨模型人脸识别方法、装置、设备及介质
CN106453864A (zh) 一种图像处理方法、装置和终端
US11699073B2 (en) Network off-line model processing method, artificial intelligence processing device and related products
CN112214334A (zh) 微服务调用方法、装置、电子设备及计算机可读存储介质
CN110795162B (zh) 生成容器镜像文件的方法和装置
CN110750295B (zh) 一种信息处理方法,装置,电子设备和存储介质
WO2021068247A1 (zh) 神经网络调度方法、装置、计算机设备及可读存储介质
CN111352360A (zh) 机器人的控制方法、装置、机器人及计算机存储介质
CN114756379A (zh) 一种基于混合加速卡进行任务训练的方法及***
CN112769688B (zh) 协议栈适配的方法、装置、电子设备及存储介质
CN113657408B (zh) 确定图像特征的方法、装置、电子设备和存储介质
CN108038668B (zh) 一种协同办公的方法和设备、终端及可读存储介质
CN111882321A (zh) 身份核验处理方法、装置及***
CN106991017B (zh) 事件处理方法及装置
CN113867800A (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN117519996B (zh) 一种数据处理方法、装置、设备以及存储介质
CN111930691B (zh) 一种模型调用方法、装置及***
CN115826961B (zh) 设计器及引擎分离重用的数据分析***设计方法及装置
CN116994002B (zh) 一种图像特征提取方法、装置、设备及存储介质
CN109543833B (zh) 运算方法、装置及相关产品
CN109583580B (zh) 运算方法、装置及相关产品
CN109558564B (zh) 运算方法、装置及相关产品
CN109558943B (zh) 运算方法、装置及相关产品
CN117112383A (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
GR01 Patent grant
GR01 Patent grant