CN113128682B - 神经网络模型自动适配方法和装置 - Google Patents

神经网络模型自动适配方法和装置 Download PDF

Info

Publication number
CN113128682B
CN113128682B CN202110399619.4A CN202110399619A CN113128682B CN 113128682 B CN113128682 B CN 113128682B CN 202110399619 A CN202110399619 A CN 202110399619A CN 113128682 B CN113128682 B CN 113128682B
Authority
CN
China
Prior art keywords
neural network
network model
adaptation
scheme
adaptation scheme
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
CN202110399619.4A
Other languages
English (en)
Other versions
CN113128682A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN202110399619.4A priority Critical patent/CN113128682B/zh
Publication of CN113128682A publication Critical patent/CN113128682A/zh
Application granted granted Critical
Publication of CN113128682B publication Critical patent/CN113128682B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种神经网络模型自动适配方法和装置,该方法包括:获取神经网络模型参数以及目标平台参数;根据所述目标平台参数判断目标平台的类型;根据目标平台的类型选择对应的初步适配方案以及优化适配方案用到的损失函数;根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型,其中,通过考虑硬件特性,将神经网络模型迁移到不同的硬件平台时,针对不同的平台对神经网络模型进行专门的自适应自动优化,减少人力成本,提高平台计算效率。

Description

神经网络模型自动适配方法和装置
技术领域
本发明涉及人工智能技术领域,尤其涉及一种神经网络模型自动适配方法和装置。
背景技术
人工智能技术在人类社会的发展中的作用日益凸显,其算力、存储的高要求对项目普及的制约也随之突出。为了完成“万物互联”的AIoT的愿景,人工智能算法需要脱离单一设备与单一算法的限制,依照不同设备、不同场景的特点在不同模式运行,不同模式如如精度高低、推理速度快慢、功耗限制高低等。由于端侧设备与云端设备的存储、算力不同,需要进行针对性的量化与剪枝。面对不同设备的不同计算架构,若是采取完全一致的计算方式,则会极大的影响特定平台上的计算效率以及实际应用效果,如嵌入式CPU计算全精度神经网络模型延时可达数秒。
发明内容
针对现有技术中的问题,本发明提供一种神经网络模型自动适配方法和装置、电子设备以及计算机可读存储介质,能够至少部分地解决现有技术中存在的问题。
为了实现上述目的,本发明采用如下技术方案:
第一方面,提供一种神经网络模型自动适配方法,包括:
获取神经网络模型参数以及目标平台参数;
根据所述目标平台参数判断目标平台的类型;
根据目标平台的类型选择对应的初步适配方案以及优化适配方案用到的损失函数;
根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;
根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型。
进一步地,所述根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案,包括:
根据所述神经网络模型参数、所述初步适配方案以及所述损失函数计算损失值;
根据所述损失值调整所述初步适配方案得到调整后的适配方案;
根据调整前的适配方案、调整后的适配方案以及所述损失函数计算损失值以对调整后的适配方案进行进一步调整,迭代计算损失值并调整方案,直至得到最优损失值,将最优损失值对应的适配方案作为最终适配方案。
进一步地,所述目标平台的类型为CPU,所述适配方案中的调整参数包括:剪枝率、量化比特数、缓存大小以及片上计算资源,所述损失函数主项为精度损失和推理速度。
进一步地,所述目标平台的类型为GPU,所述适配方案中的调整参数包括:剪枝率、量化比特数、显存大小、GPU并行加载模型数目以及显存利用率。
进一步地,所述目标平台的类型FPGA,所述适配方案中的调整参数包括:剪枝率、量化比特数、FPGA片上块存储大小以及对网络权重的分块方法。
进一步地,调整适配方案时基于强化学习技术进行。
第二方面,提供一种神经网络模型自动适配装置,包括:
参数获取模块,获取神经网络模型参数以及目标平台参数;
平台类型判断模块,根据所述目标平台参数判断目标平台的类型;
策略初选模块,根据目标平台的类型选择对应的初步适配方案以及损失函数;
建模求解模块,根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;
模型适配模块,根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型。
进一步地,所述建模求解模块包括:
损失值计算单元,根据所述神经网络模型参数、所述初步适配方案以及所述损失函数计算损失值;
方案调整单元,根据所述损失值调整所述初步适配方案得到调整后的适配方案;
迭代求解单元,根据调整前的适配方案、调整后的适配方案以及所述损失函数计算损失值以对调整后的适配方案进行进一步调整,迭代计算损失值并调整方案,直至得到最优损失值,将最优损失值对应的适配方案作为最终适配方案。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的神经网络模型自动适配方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的神经网络模型自动适配方法的步骤。
本发明提供的神经网络模型自动适配方法和装置,该方法包括:获取神经网络模型参数以及目标平台参数;根据所述目标平台参数判断目标平台的类型;根据目标平台的类型选择对应的初步适配方案以及优化适配方案用到的损失函数;根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型,其中,通过考虑硬件特性,将神经网络模型迁移到不同的硬件平台时,针对不同的平台对神经网络模型进行专门的自适应与自动优化,减少人力成本,提高平台计算效率。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中的服务器S1与客户端设备B1之间的架构示意图;
图2是本发明实施例中的神经网络模型自动适配方法的流程示意图一;
图3示出了本发明实施例中步骤S400的具体步骤;
图4例举了本发明实施例中的从神经网络模型映射到不同平台的处理方式;
图5示出了本发明实施例中的GPU平台的部署策略选择;
图6示出了本发明实施例中模型大小与显存利用率的关系;
图7示出了本发明实施例中的低比特数据装填方式;
图8示出了本发明实施例中的CPU平台的部署策略选择;
图9示出了本发明实施例中的FPGA平台的部署策略选择;
图10示出了本发明实施例中的FPGA中并行度与流水化的权衡;
图11示出了本发明实施例中的神经网络适配流程;
图12示出了本发明实施例中的不同硬件平台适配流程;
图13是本发明实施例中的神经网络模型自动适配装置的结构框图;
图14为本发明实施例电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
现有神经网络模型在面对不同设备的不同计算架构,若是采取完全一致的计算方式,则会极大的影响特定平台上的计算效率以及实际应用效果,如嵌入式CPU计算全精度延时可达数秒,并且功耗极高。
为至少部分解决现有技术中的上述技术问题,本发明实施例提供了一种神经网络模型自动适配方法,通过考虑硬件特性,将神经网络模型迁移到不同的硬件平台时,针对不同的平台对神经网络模型进行专门的自适应自动优化,减少人力成本,提高平台计算效率。
有鉴于此,本申请提供了一种神经网络模型自动适配装置,该装置可以为一种服务器S1,参见图1,该服务器S1可以与至少一个客户端设备B1通信连接,所述客户端设备B1可以将目标平台参数发送至所述服务器S1,所述服务器S1可以在线接收所述目标平台参数。所述服务器S1可以在线或者离线对获取的目标平台参数进行预处理,根据所述目标平台参数判断目标平台的类型;根据目标平台的类型选择对应的初步适配方案以及优化适配方案用到的损失函数;根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型。而后,所述服务器S1可以将适应所述目标平台的神经网络模型在线发送至所述客户端设备B1。所述客户端设备B1可以在线接收所述适应所述目标平台的神经网络模型。
其中,值得说明的是,目标平台可以就是该客户端设备。
客户端设备B1可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,进行神经网络模型自动适配的部分可以在如上述内容所述的服务器S1侧执行,即,如图1所示的架构,也可以所有的操作都在所述客户端设备B1中完成,且该所述客户端设备B1可以直接与数据库服务器S2进行通信连接。具体可以根据所述客户端设备B1的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备B1中完成,所述客户端设备B1还可以包括处理器,用于进行神经网络模型自动适配的具体处理。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
图2是本发明实施例中的神经网络模型自动适配方法的流程示意图一;如图2所示,该神经网络模型自动适配方法可以包括以下内容:
步骤S100:获取神经网络模型参数以及目标平台参数;
其中,目标平台参数可以是目标平台的硬件参数、控制器类型等。神经网络模型参数是指训练后的用于实际应用的神经网络模型的参数。
步骤S200:根据所述目标平台参数判断目标平台的类型;
具体地,目标平台的类型可以是CPU、GPU或FPGA等。
步骤S300:根据目标平台的类型选择对应的初步适配方案以及优化适配方案用到的损失函数;
初步适配方案为预设的,不同的平台对应不同的初步适配方案。
步骤S400:根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;
步骤S500:根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型。
通过采用上述技术方案,通过考虑硬件特性,将神经网络模型迁移到不同的硬件平台时,针对不同的平台对神经网络模型进行专门的自适应自动优化,减少人力成本,提高平台计算效率。
在一个可选的实施例中,参见图3,该步骤S400可以包括以下内容:
步骤S410:根据所述神经网络模型参数、所述初步适配方案以及所述损失函数计算损失值;
步骤S420:根据所述损失值调整所述初步适配方案得到调整后的适配方案;
步骤S430:根据调整前的适配方案、调整后的适配方案以及所述损失函数计算损失值以对调整后的适配方案进行进一步调整,迭代计算损失值并调整方案,直至得到最优损失值,将最优损失值对应的适配方案作为最终适配方案。
在一个可选的实施例中,所述目标平台的类型为CPU,所述适配方案中的调整参数包括:剪枝率、量化比特数、缓存大小以及片上计算资源,所述损失函数主项为精度损失和推理速度。
值得说明的是,CPU平台具有最高的逻辑计算能力,但是由于其极低的并行能力,推理速度几乎难以满足实时性的要求。对于CPU来说,推理速度的优化是实际应用的瓶颈,因此主要依赖超低比特数的量化如二值、三值以及激进的剪枝策略压缩模型
在一个可选的实施例中,所述目标平台的类型为GPU,所述适配方案中的调整参数包括:剪枝率、量化比特数、显存大小、GPU并行加载模型数目以及显存利用率。
值得说明的是,GPU平台具有最高的计算存储即其显存,同时由于其并行性,这使得GPU可以以极低的计算延时处理同时大规模的数据。对于GPU来说,其计算的目标在于高精度、大规模,因此对其采用相对较高比特数量化如8或16比特与较低剪枝率,核心目标是保持模型精度。
在一个可选的实施例中,所述目标平台的类型FPGA,所述适配方案中的调整参数包括:剪枝率、量化比特数、FPGA片上块存储大小以及对网络权重的分块方法。
值得说明的是,FPGA平台对性能与功耗进行折衷,但是需要通过设计其硬件提高计算的并行度,因此面向FPGA平台进行编译时需要生成其硬件以及相应的控制序列。同时考虑到FPGA的高性能与受限资源,采用较为灵活的量化、剪枝方式。
在一个可选的实施例中,调整适配方案时基于强化学习技术进行。
为了使本领域技术人员更好地理解本申请,参见图4至图12,对本发明实施例的实现过程进行补充说明:
本发明技术方案的提出旨在解决单个神经网络算法推理到不同平台的映射问题,通过数学方式进行神经网络的映射方式选择,用于解决同一网络模型在不同的场景下的适配问题,如人脸识别任务在智能手机、安检门禁、云端等不同场景下的硬件不同,需要对模型进行调整来适应不同的平台目标,目标如表1。
表1:不同平台特性与优化目标
Figure BDA0003019927350000071
本发明的核心设计在于从神经网络模型映射到不同平台的处理方式,如图4,训练完成的神经网络模型作为需要处理的源文件,根据本次任务的目标平台设置合适的量化、剪枝、静态图重构策略并对模型进行处理,将处理后模型使用根据目标平台的并行度、存储空间等特性对描述给出的处理后模型需要的计算进行进一步规划,如特征图分块、运行时量化截断等,据此生成不同平台统一的中间语言;对不同平台进行分别的编译、部署。其中本发明的关键是从目标平台设定到策略选择这一环节。
GPU平台具有最高的计算存储即其显存,同时由于其并行性,这使得GPU可以处理同时大规模的数据。对于GPU来说,其计算的目标在于高精度、大规模,因此对其采用相对较高比特数量化如8或16比特与较低剪枝率,核心目标是保持模型精度。由于计算时有BatchSize个模型加载到显存中,为了增强GPU计算的并行度,需要按照显存大小设定合适的Batch Size与模型大小,据此调整量化与剪枝策略,直到达到并行度与计算精度的综合考量达到预期,如奖励函数收敛,如图5。显存与Batch Size的规划关系如图6,可以看出,策略A、B在此显存大小时均为4倍的并行度,而A闲置更高,因此可以通过提高A的量化、剪枝策略的激进程度进一步减小模型大小,将其并行度提高到5,一般来说,A的并行度较高,B的推理精度较高。
CPU平台具有最高的逻辑计算能力,但是由于其极低的并行能力,推理速度几乎难以满足实时性的要求。对于CPU来说,推理速度的优化是实际应用的瓶颈,因此主要依赖超低比特数的量化如二值、三值以及激进的剪枝策略压缩模型。另一方面,超低比特数的数据的运算可以通过装载到CPU支持的高比特数据类型中的方式提高计算的并行度,如图7,而数据对齐问题是本种方式的最大挑战。因此,需要对量化策略、剪枝策略、以及高低比特数据类型的对齐进行整体优化,直到推理速度与精度的综合考量达到预期,如奖励函数收敛,整体的流程如图8。
FPGA平台对性能与功耗进行折衷,但是需要通过设计其硬件提高计算的并行度,因此面向FPGA平台进行编译时需要生成其硬件以及相应的控制序列。同时考虑到FPGA的高性能与受限资源,采用较为灵活的量化、剪枝方式。编译的目标是利用FPGA平台的并行性,并提供较高的吞吐量,因此需要联合调节特征图计算方式、量化剪枝策略、硬件流水化与MAC阵列的并行度等,使得推理并行度、吞吐量、精度下降目标等的综合考量达到预期,如奖励函数收敛,整体的流程如图9。其中,并行度与流水化的权衡示例如图10。
此外,以上分析方式可扩展到更多硬件平台,根据设定相关的奖励函数与调节方式可以对特定的神经网络完成量化-编译-部署的整体流程。
在顶层抽象上,为了较为完善的表述一个硬件设备对与神经网络这类高并行度、高计算量的算法的处理能力,定义其处理能力为H(m),其中m是一个特定的网络层。根据硬件的处理能力与神经网络结构,需要得到对量化压缩比q(mM)、剪枝率p(mM)、Batch Size B(M)、并行度P(M)、流水度A(M)等相关决策,其中M为神经网络模型,m为模型中的某个网络。网络的处理速度与精度记为s(M)和a(M)不同目标平台对以上参数的需求不同,通过定义评估方式T对特定压缩策略下的网络进行评估,通过对评估方式T<M,q,p,B,P,s,a>使用强化学习进行优化,选择特定指标,计算当前决策方式下量化、剪枝等处理后模型的整体激励,直到激励收敛,如图11。
值得说明的是,量化压缩比q(M)为量化前后数据位宽的压缩比,如从32bit量化到8bit,量化压缩比即为0.25;剪枝率p(M)是剪枝前后参数量的压缩比,如从10M个参数压缩到2M个参数,剪枝率为0.2;存储策略中,GPU和其他平台不同,由于显存较大,显存可以加载数个网络模型,模型的数目即为BatchSize,B(M);对FPGA和CPU来说,并行度即一次MAC操作可以处理的数据个数P(M);对于FPGA来说,存在流水度A(M),即数据处理被分为A(M)个阶段,通常系统两次输出之间的间隔为处理总时长除以A(M)。对于不同的平台来说,各自存在不同的量化、剪枝策略,而这些策略的组合数相当有限,可以通过强化学习Q-Learning、DQN等方式寻找其最优解,只需定义各自的激励或损失函数即可。以0结尾的变量无说明均为对应项的归一化常数。
参见图12,对于CPU来说,损失函数主项为精度损失和推理速度,
Figure BDA0003019927350000091
Figure BDA0003019927350000092
对于FPGA来说,损失函数主项为精度损失、推理并行度与流水度,通常,来说并行度和流水度是矛盾项,因此最后结果会对两者进行权衡,
Figure BDA0003019927350000093
Figure BDA0003019927350000094
对GPU平台来说,损失函数主项为精度损失、BatchSize和显存利用率,设一个网络模型的大小为Mem(M),显存的大小为Mem0,那么利用率为
Figure BDA0003019927350000095
Figure BDA0003019927350000096
综上所述,本发明实施例提供的神经网络模型自动适配方法,设置激励函数与处理方式,对量化/剪枝进行调节,对计算图进行相关的优化,当然,可以根据平台类型,改变适配流程,如改变其中闭环顺序;值得说明的是,本发明实施例提供的神经网络模型自动适配技术,可扩展到多平台的方式:针对需扩展平台的特征,补充优化策略以及相应的考量标准,如奖励函数T等。当然,还可以添加计算奖励需要的参数,如交并比等,也改变需要的奖励函数。
基于同一发明构思,本申请实施例还提供了一种神经网络模型自动适配装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于神经网络模型自动适配装置解决问题的原理与上述方法相似,因此神经网络模型自动适配装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图13是本发明实施例中的神经网络模型自动适配装置的结构框图。如图13所示,该神经网络模型自动适配装置具体包括:参数获取模块10、平台类型判断模块20、策略初选模块30、建模求解模块40以及模型适配模块50。
参数获取模块10获取神经网络模型参数以及目标平台参数;
平台类型判断模块20根据所述目标平台参数判断目标平台的类型;
策略初选模块30根据目标平台的类型选择对应的初步适配方案以及损失函数;
建模求解模块40根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;
模型适配模块50根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型。
通过考虑硬件特性,将神经网络模型迁移到不同的硬件平台时,针对不同的平台对神经网络模型进行专门的自适应自动优化,减少人力成本,提高平台计算效率。
在一个可选的实施例中,建模求解模块包括:损失值计算单元、方案调整单元、迭代求解单元。
损失值计算单元,根据所述神经网络模型参数、所述初步适配方案以及所述损失函数计算损失值;
方案调整单元,根据所述损失值调整所述初步适配方案得到调整后的适配方案;
迭代求解单元,根据调整前的适配方案、调整后的适配方案以及所述损失函数计算损失值以对调整后的适配方案进行进一步调整,迭代计算损失值并调整方案,直至得到最优损失值,将最优损失值对应的适配方案作为最终适配方案。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为电子设备,具体的,电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中电子设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的神经网络模型自动适配方法的步骤。
下面参考图14,其示出了适于用来实现本申请实施例的电子设备600的结构示意图。
如图14所示,电子设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的神经网络模型自动适配方法的步骤。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种神经网络模型自动适配方法,其特征在于,包括:
获取神经网络模型参数以及目标平台参数;
根据所述目标平台参数判断目标平台的类型;
根据目标平台的类型选择对应的初步适配方案以及优化适配方案用到的损失函数;
根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;
根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型。
2.根据权利要求1所述的神经网络模型自动适配方法,其特征在于,所述根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案,包括:
根据所述神经网络模型参数、所述初步适配方案以及所述损失函数计算损失值;
根据所述损失值调整所述初步适配方案得到调整后的适配方案;
根据调整前的适配方案、调整后的适配方案以及所述损失函数计算损失值以对调整后的适配方案进行进一步调整,迭代计算损失值并调整方案,直至得到最优损失值,将最优损失值对应的适配方案作为最终适配方案。
3.根据权利要求2所述的神经网络模型自动适配方法,其特征在于,所述目标平台的类型为CPU,所述适配方案中的调整参数包括:剪枝率、量化比特数、缓存大小以及片上计算资源,所述损失函数主项为精度损失和推理速度。
4.根据权利要求2所述的神经网络模型自动适配方法,其特征在于,所述目标平台的类型为GPU,所述适配方案中的调整参数包括:剪枝率、量化比特数、显存大小、GPU并行加载模型数目以及显存利用率。
5.根据权利要求2所述的神经网络模型自动适配方法,其特征在于,所述目标平台的类型FPGA,所述适配方案中的调整参数包括:剪枝率、量化比特数、FPGA片上块存储大小以及对网络权重的分块方法。
6.根据权利要求2所述的神经网络模型自动适配方法,其特征在于,调整适配方案时基于强化学习技术进行。
7.一种神经网络模型自动适配装置,其特征在于,包括:
参数获取模块,获取神经网络模型参数以及目标平台参数;
平台类型判断模块,根据所述目标平台参数判断目标平台的类型;
策略初选模块,根据目标平台的类型选择对应的初步适配方案以及损失函数;
建模求解模块,根据所述神经网络模型参数、所述初步适配方案以及所述损失函数建立方案优化模型并求解,得到最终适配方案;
模型适配模块,根据所述最终适配方案对所述神经网络模型进行适配优化得到适应所述目标平台的神经网络模型。
8.根据权利要求7所述的神经网络模型自动适配装置,其特征在于,所述建模求解模块包括:
损失值计算单元,根据所述神经网络模型参数、所述初步适配方案以及所述损失函数计算损失值;
方案调整单元,根据所述损失值调整所述初步适配方案得到调整后的适配方案;
迭代求解单元,根据调整前的适配方案、调整后的适配方案以及所述损失函数计算损失值以对调整后的适配方案进行进一步调整,迭代计算损失值并调整方案,直至得到最优损失值,将最优损失值对应的适配方案作为最终适配方案。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述的神经网络模型自动适配方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述的神经网络模型自动适配方法的步骤。
CN202110399619.4A 2021-04-14 2021-04-14 神经网络模型自动适配方法和装置 Active CN113128682B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110399619.4A CN113128682B (zh) 2021-04-14 2021-04-14 神经网络模型自动适配方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110399619.4A CN113128682B (zh) 2021-04-14 2021-04-14 神经网络模型自动适配方法和装置

Publications (2)

Publication Number Publication Date
CN113128682A CN113128682A (zh) 2021-07-16
CN113128682B true CN113128682B (zh) 2022-10-21

Family

ID=76776421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110399619.4A Active CN113128682B (zh) 2021-04-14 2021-04-14 神经网络模型自动适配方法和装置

Country Status (1)

Country Link
CN (1) CN113128682B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115987A (zh) * 2021-11-05 2022-03-01 创新奇智(北京)科技有限公司 一种模型处理方法及装置
CN114861910B (zh) * 2022-05-19 2023-07-04 北京百度网讯科技有限公司 神经网络模型的压缩方法及装置、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650922A (zh) * 2016-09-29 2017-05-10 清华大学 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统
CN112116084A (zh) * 2020-09-15 2020-12-22 中国科学技术大学 可重构平台上固化全网络层的卷积神经网络硬件加速器
CN112130896A (zh) * 2020-08-17 2020-12-25 深圳云天励飞技术股份有限公司 神经网络模型迁移方法、装置、电子设备及存储介质
CN112418392A (zh) * 2020-10-21 2021-02-26 华为技术有限公司 一种神经网络构建方法以及装置
CN112488299A (zh) * 2020-12-03 2021-03-12 华为技术有限公司 一种神经网络获取方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544539B2 (en) * 2016-09-29 2023-01-03 Tsinghua University Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
US11429862B2 (en) * 2018-03-20 2022-08-30 Sri International Dynamic adaptation of deep neural networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650922A (zh) * 2016-09-29 2017-05-10 清华大学 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统
CN112130896A (zh) * 2020-08-17 2020-12-25 深圳云天励飞技术股份有限公司 神经网络模型迁移方法、装置、电子设备及存储介质
CN112116084A (zh) * 2020-09-15 2020-12-22 中国科学技术大学 可重构平台上固化全网络层的卷积神经网络硬件加速器
CN112418392A (zh) * 2020-10-21 2021-02-26 华为技术有限公司 一种神经网络构建方法以及装置
CN112488299A (zh) * 2020-12-03 2021-03-12 华为技术有限公司 一种神经网络获取方法及装置

Also Published As

Publication number Publication date
CN113128682A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN110832509B (zh) 使用神经网络的黑盒优化
CN113128682B (zh) 神经网络模型自动适配方法和装置
CN113010282B (zh) 一种基于深度强化学习的边云协同串行任务卸载方法
WO2020182989A1 (en) Scheduling computation graphs using neural networks
CN105704255B (zh) 一种基于遗传算法的服务器负载均衡方法
US20190251444A1 (en) Systems and Methods for Modification of Neural Networks Based on Estimated Edge Utility
US20220004858A1 (en) Method for processing artificial neural network, and electronic device therefor
CN114265631B (zh) 一种基于联邦元学习的移动边缘计算智能卸载方法及装置
CN114154646A (zh) 一种移动边缘网络中联邦学习的效率优化方法
CN111178507A (zh) 图谱卷积神经网络数据处理方法及装置
CN112884146B (zh) 一种训练基于数据量化与硬件加速的模型的方法及系统
Wang et al. Hardware-centric automl for mixed-precision quantization
Chen et al. Computing offloading decision based on DDPG algorithm in mobile edge computing
CN113961204A (zh) 一种基于多目标强化学习的车联网计算卸载方法及系统
Li et al. An intelligent adaptive algorithm for servers balancing and tasks scheduling over mobile fog computing networks
CN116996938A (zh) 车联网任务卸载方法、终端设备及存储介质
CN113159318B (zh) 一种神经网络的量化方法、装置、电子设备及存储介质
CN110782016A (zh) 用于优化神经网络架构搜索的方法和装置
CN114090108A (zh) 算力任务执行方法、装置、电子设备及存储介质
CN111124439B (zh) 一种云边协同的智能动态卸载算法
CN117151195A (zh) 基于求逆归一化的模型优化方法、装置、设备和介质
CN113572647A (zh) 一种基于强化学习的区块链-边缘计算联合系统
Zhen et al. A Secure and Effective Energy-Aware Fixed-Point Quantization Scheme for Asynchronous Federated Learning.
CN112202886B (zh) 任务卸载方法、系统、装置和存储介质
CN114444658B (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