CN114118384A - 神经网络模型的量化方法、可读介质和电子设备 - Google Patents
神经网络模型的量化方法、可读介质和电子设备 Download PDFInfo
- Publication number
- CN114118384A CN114118384A CN202111499269.5A CN202111499269A CN114118384A CN 114118384 A CN114118384 A CN 114118384A CN 202111499269 A CN202111499269 A CN 202111499269A CN 114118384 A CN114118384 A CN 114118384A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- computing node
- computing
- nodes
- 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.)
- Granted
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 191
- 238000013139 quantization Methods 0.000 title claims abstract description 154
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004364 calculation method Methods 0.000 claims abstract description 61
- 238000011002 quantification Methods 0.000 claims abstract description 7
- 230000015654 memory Effects 0.000 claims description 29
- 238000012360 testing method Methods 0.000 claims description 16
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000012549 training Methods 0.000 abstract description 12
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000005457 optimization Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 239000013598 vector Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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
-
- 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/08—Learning methods
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及人工智能领域,提供了一种神经网络模型的量化方法、介质和电子设备。该方法通过对待量化神经网络模型中各计算节点中运行顺序在前一部分的计算节点进行较低精度的量化,对运行顺序在后一部分的计算节点进行较高精度的量化,通过调整运行顺序在后一部分的计算节点的数量来得到不同的量化方案,再将不同的量化方案的运行结果和部署要求进行比,以确定出满足部署要求的情况下,进行较高精度的量化的计算节点的数量最少的量化方案。如此,电子设备无需通过大量的训练数据进行优化训练,也无需逐个调整待量化神经网络模型的计算节点的量化精度,即可快速得到满足部署条件的量化方案,提高了神经网络模型量化的速度。
Description
技术领域
本申请涉及人工智能领域,特别涉及一种神经网络模型的量化方法、可读介质和电子设备。
背景技术
随着人工智能(artificial intelligence,AI)的迅速发展,神经网络模型在人工智能领域的应用越来越广泛。为使得神经网络模型能够在不同的电子设备上运行时,都能兼顾精度和运行速度,可以通过对神经网络模型中的各个计算节点采用不同量化精度,来平衡神经网络模型的运行精度和运行速度。例如,在将神经网络模型部署到目标电子设备前,根据目标电子设备的硬件参数,逐个调整各计算节点的量化精度,并将调整量化精度后的神经网络模型基于大量的训练数据进行优化训练,以得到使目标电子设备在运行该神经网络模型时的运算速度、运算精度等都满足要求的情况下,该神经网络模型各计算节点的量化精度。
但是,基于大量的训练数据来确定出使神经网络模型在目标电子设备上的运行精度满足要求时,神经网络模型的各计算节点的量化精度耗时较长,占用硬件资源较多,并且实际工程应用中通常不容易获取到大量用于训练神经网络模型的训练数据。
发明内容
有鉴于此,本申请实施例提供了一种神经网络模型的量化方法、可读介质和电子设备。其中,本申请的神经网络模型的量化方法通过将待量化神经网络模型中各计算节点分为两部分,对运行顺序在后一部分的计算节点进行较高精度的量化,来得到满足部署要求的目标神经网络模型,提高了电子设备运行神经网络模型的速度。
第一方面,本申请实施例提供了一种神经网络模型的量化方法,应用于电子设备,该方法包括:获取待量化神经网络模型的各计算节点被划分后的第一计算节点集和第二计算节点集,其中,第一计算节点集中的计算节点的运行顺序在第二计算节点集中的计算节点之前;对第一计算节点集中的计算节点进行第一精度的量化,对第二计算节点集中的计算节点进行第二精度量化,生成第一目标神经网络模型,其中,第二精度高于第一精度;根据目标电子设备的硬件和/或软件参数运行第一目标神经网络模型,得到运行结果;在确定运行结果不满足对应目标电子设备的部署要求的情况下,调整第一计算节点集和第二计算节点集所包括的计算节点的数量;在确定运行结果满足对应目标电子设备的部署要求的情况下,将第一目标神经网络模型作为待量化神经网络模型的量化结果。
也即是说,在本申请实施例中,电子设备可以根据待量化神经网络模型中各计算节点的运行顺序将各计算节点分为两个部分,并对运行顺序在前一部分(第一计算节点集)的计算节点进行较低精度的量化,对运行顺序在后一部分(第二计算节点集)的计算节点进行较高精度的量化,通过调整高精度量化区间的大小来得到不同的量化方案,再基于目标电子设备的硬件/软件参数运行根据不同的量化方案量化的神经网络模型,并将运行结果和部署要求进行比,以确定出使量化后的神经网络模型在目标电子设备上运行时满足部署要求的量化方案,再根据该方案对待量化神经网络模型进行量化。
通过本申请实施例提供的方法,电子设备在对待部署到目标电子设备的待量化神经网络模型的量化过程中,无需通过大量的训练数据进行优化训练,也无需逐个调整待量化神经网络模型的计算节点的量化精度,即可快速得到满足部署条件的目标神经网络模型,提高了神经网络模型量化的速度。
在上述第一方面的一种可能实现中,上述目标电子设备的部署要求包括第一部署要求,第一部署要求包括运行精度要求和/或运行速度要求。
也即是说,部署要求可以是运行精度要求,也可以是运行速度要求,还可以同时包括运行精度要求和运行速度要求。
在上述第一方面的一种可能实现中,上述确定运行结果不满足对应目标电子设备的部署要求的情况下,调整第一计算节点集和第二计算节点集所包括的计算节点的数量,包括:在运行结果满足不满足第一部署要求的情况下,减少第一计算节点集所包括的计算节点的数量、增加第二计算节点集所包括的计算节点的数量。
即是在电子设备在确定出运行结果不满足对应目标电子设备的部署要求的情况下,说明进行较低精度量化计算节点的数量太多、进行较高精度量化的计算节点的数量太少,故而减少第一计算节点集所包括的计算节点的数量、增加第二计算节点集所包括的计算节点的数量。
在上述第一方面的一种可能实现中,上述运行结果包括第一目标神经网络模型的输出张量;并且在输出张量和参考输出张量的相似度大于相似度阈值的情况下,确定第一目标神经网络模型的运行结果满足精度要求。
在上述第一方面的一种可能实现中,上述输出张量和参考输出张量的相似度由输出张量和参考输出张量的余弦相似度确定。
在上述第一方面的一种可能实现中,上述参考输出张量由以下方式确定:
在输出张量是基于带标签的测试集,根据目标电子设备的硬件和/或软件参数运行第一目标神经网络模型获得的情况下,以带标签的测试集中的标签数据作为参考输出张量;在输出张量是基于不带标签的测试集,根据目标电子设备的硬件和/或软件参数运行第一目标神经网络模型获得的情况下,通过第三精度对待量化模型的各计算节进行量化后,基于不带标签的测试集中的输入数据运行基于第三精度量化后的神经网络模型得到,其中,第三精度高于第一精度和第二精度。
在上述第一方面的一种可能实现中,上述部署要求还包括第二部署要求;第二部署要求包括在满足第一部署要求的情况下,第二计算节点集所包括的计算节点的数量最少。
也即是说,根据本申请实施例提供的方法量化后的神经模型,在满足第一部署要求的情况下,进行高精度量化的计算节点最少,从而可以提高目标电子设备运行神经网络模型的速度。
在上述第一方面的一种可能实现中,上述确定运行结果不满足对应目标电子设备的部署要求的情况下,调整第一计算节点集和第二计算节点集所包括的计算节点的数量,还包括:在运行结果满足第一部署要求,但不满足第二部署要求的情况下,增加第一计算节点集包括的计算节点的数量,减少第二计算节点集所包括的计算节点的数量。
在上述第一方面的一种可能实现中,还包括:在增加第一计算节点集包括的计算节点的数量,减少第二计算节点集所包括的计算节点的数量后,得到的神经网络模型的运行结果不满足第一部署要求的情况下,将第一计算节点集和第二计算节点集所包括的计算节点的数量恢复至调整前的数量。
也即是说,调整第一计算节点集和第二计算节点集所包括的计算节点的数量前的量化方案即是确定出的最优的量化方案。
在上述第一方面的一种可能实现中,还包括:基于待量化神经网络模型各计算节点的运行顺序,将待量化神经网络模型的各计算节点划分为第一计算节点集和第二计算节点集。
在上述第一方面的一种可能实现中,上述基于待量化神经网络模型各计算节点的运行顺序,将待量化神经网络模型的各计算节点划分为第一计算节点集和第二计算节点集,包括:将待量化神经网络模型中运行顺序在前的N/2个计算节点划分为第一计算节点集,将待量化神经网络模型中运行顺序在后的N/2个计算节点划分为第二计算节点集,其中N为待量化神经网络模型的计算节点的总数。
在上述第一方面的一种可能实现中,上述在运行结果不满足第一部署要求的情况下,减少第一计算节点集所包括的计算节点的数量、增加第二计算节点集所包括的计算节点的数量,包括:将第一计算节点集所包括的计算节点的数量减少为N/4、将第二计算节点集所包括的计算节点的数量增加为3N/4。
在上述第一方面的一种可能实现中,上述在运行结果满足第一部署要求,但不满足第二部署要求的情况下,增加第一计算节点集所包括的计算节点的数量,减少第二计算节点集所包括的计算节点的数量,包括:将第一计算节点集所包括的计算节点的数量增加为N/2+2m-1、将第二计算节点集所包括的计算节点的数量减少为N/2-2m-1,其中,m为对第一计算节点集和第二计算节点集所包括的计算节点的数量的调整次数。
第二方面,本申请实施例提供了一种可读介质,该可读介质中包含有指令,当指令被电子设备的处理器执行时使电子设备实现上述第一方面及其各种可能实现提供的任一种神经网络模型的量化方法。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于运行指令以使电子设备实现上述第一方面及其各种可能实现提供的任一种的神经网络模型的量化方法。
附图说明
图1A根据本申请的一些实施例,示出了一种部署神经网络模型的场景示意图;
图1B根据本申请的一些实施例,示出了一种对神经网络模型10进行量化的场景示意图;
图2根据本申请的一些实施例,示出了一种神经网络模型量化方法的流程示意图;
图3根据本申请的一些实施例,示出了一种对输入图像20进行超分辨处理得到的输出图像22的示意图;
图4A根据本申请的一些实施例,示出了输出图像22对应的向量的示意图;
图4B根据本申请的一些实施例,示出了参考输出图像21对应的向量的示意图;
图5A根据本申请的一些实施例,示出了一种对输入图像20进行超分辨处理得到的输出图像23的示意图;
图5B根据本申请的一些实施例,示出了参考输出图像23对应的向量的示意图;
图6根据本申请的一些实施例,示出了一种神经网络模型量化方法的流程示意图;
图7根据本申请的一些实施例,示出了一种起始计算节点前移的示意图;
图8根据本申请的一些实施例,示出了一种起始计算节点后移的示意图;
图9根据本申请的一些实施例,示出了一种电子设备100的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于神经网络模型的量化方法、可读介质和电子设备。
下面结合附图对本申请实施例的技术方案进行详细介绍。
图1A根据本申请的一些实施例,示出了一种部署神经网络模型的场景示意图;图1B根据本申请的一些实施例,示出了一种对神经网络模型10进行量化的场景示意图。如图1A所示,电子设备100在将神经网络模型10部署到目标电子设备200前,可以从目标电子设备200获取目标电子设备200的硬件/软件参数,并基于获取的硬件/软件参数,结合部署要求对神经网络模型10进行量化,再将量化后的神经网络模型10部署到目标电子设备200中。
具体地,参考图1B,神经网络模型10可以是包括输入层11、卷积层12、排序层13和输出层14,共包括N个计算节点的,用于对输入图片进行超分分辨处理,以提高图像的清晰度的神经网络模型。在将神经网络模型10部署到目标电子设备200前,电子设备需要根据目标电子设备200的部署要求,例如精度要求、运行速度要求等,通过运行相应的程序来确定神经网络模型10的各计算节点进行的量化精度(也即是确定各计算节点的运算精度,在其他条件一致的情况下,精度越高,运算速度越慢),以确保量化后的神经网络模型10在目标电子设备200上运行时能够满足上述部署要求。
可以理解,以对输入图片进行超分分辨处理的神经网络模型10为例介绍本申请实施例的技术方案只是一种示例,在另一些实施例中,本申请实施例提供的方法也适用于其他神经网络模型,在此不做限定。
可以理解,电子设备100是可以对神经网络模型进行量化的任意电子设备,包括但不限于手机、服务器、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本等,本申请实施例不做限定。
可以理解,目标电子设备200可以是能够运行神经网络模型的任意电子设备,包括但不限于手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、可穿戴设备(如智能手表、智能眼镜等)、智能电视、头戴式显示器、移动电子邮件设备、便携式游戏机、便携式音乐播放器、阅读器设备等,本申请实施例不做限定。
可以理解,神经网络模型通常包括多个网络层,例如上述神经网络模型10包括4个网络层;一个网络层中通常包括至少一个计算节点,例如上述卷积层12包括N-3个计算节点;并且一个网络层(计算节点)的输入通常包括前一个网络层(计算节点)的计算结果,例如上述计算节点2至计算节点N-2的计算结果为计算结点N-1的输入。因此,在前的网络层/计算节点的计算误差会随着神经网络模型的运行累计在在后的网络层/计算节点中,从而在神经网络模型的拓扑排序(即运行顺序)中,越是靠后的网络层/计算节点,量化精度对神经网络模型的运行精度的影响越大。也即是说,对运行顺序在前的网络层/计算节点进行高精度量化既会占用目标电子设备200的计算资源又不能有效提高神经网络模型的运行精度,而对靠后的网络层/计算节点进行高精度的量化更有利于提高神经网络模型的运行精度。
有鉴于此,本申请实施例提供了一种神经网络模型的量化方法,电子设备100可以根据待量化神经网络模型中各计算节点的运行顺序将各计算节点分为两个部分,并对运行顺序在前一部分(以下简称低精度量化区间)的计算节点进行较低精度的量化,对运行顺序在后一部分(以下简称高精度量化区间)的计算节点进行较高精度的量化,通过调整高精度量化区间的大小来得到不同的量化方案,再基于目标电子设备200的硬件/软件参数运行根据不同的量化方案量化的神经网络模型,并将运行结果和部署要求进行对比,以确定出使量化后的神经网络模型在目标电子设备200上运行时满足部署要求的情况下,高精度量化区间最小的量化方案,再根据该方案对待量化神经网络模型进行量化。
通过本申请实施例提供的方法,电子设备100在对待部署到目标电子设备200的待量化神经网络模型的量化过程中,无需通过大量的训练数据进行优化训练,也无需逐个调整待量化神经网络模型的计算节点的量化精度,即可快速得到满足部署条件的目标神经网络模型,提高了神经网络模型量化的速度。
下面以待量化神经网络模型为图1B所示的神经网络模型10为例,对本申请实施例的技术方案进行详细介绍。
图2根据本申请的一些实施例,示出了一种神经网络模型量化方法的流程示意图。该方法的执行主体为电子设备100,如图2所示,该流程包括如下步骤。
S201:确定神经网络模型10中各计算节点的运行顺序,并根据运行顺序确定出一个高精度量化区间。也即是电子设备100通过解析神经网络模型10的相关数据,例如神经网络模型10有向无环图循环等,确定神经网络模型10中各计算节点的运行顺序,并根据运行顺序确定出一个高精度量化区间。
例如,对于图1B所示的神经网络模型10,确定出的各计算节点的运行顺序可以为:计算节点1→计算节点2→……→计算节点N-1→计算节点N。在一些实施例中,电子设备100可以随机确定出一个高精度量化区间,例如以神经网络模型10的后N/2个计算节点为高精度量化区间。
可以理解,在另一些实施例中,电子设备100也可以通过其他方式确定神经网络模型10中各计算节点的运行顺序,在此不做限定。
可以理解,在另一些实施例中,电子设备100确定出的高精度量化区间也可以是其他区间,在此不做限定。
S202:对高精度量化区间内的计算节点进行较高精度的量化,对低精度量化区间内的计算节点进行较低精度量化。
即是电子设备100根据确定出的高精度量化区间,对高精度量化区间内的计算节点进行较高精度的量化,对低精度量化区间内的计算节点(即是高精度量化区间以外的计算节点)进行较低精度量化,得到一个量化后的神经网络模型。
可以理解,在一些实施例中,较低的精度可以是根据目标电子设备200的硬件/软件确定的一个最优精度,目标电子设备200在该最优精度下运行神经网络模型可以达到最好的运行效果,例如速度最快、资源利用率最高。例如,在一些实施例中,较低的精度可以是8位。
可以理解,在一些实施例中,较高的精度可以为根据目标电子设备200的硬件/软件确定的一个最大精度,例如该目标电子设备200硬件(例如寄存器容量等)/软件(例如系统软件定义的数据的精度)能够支持的最大精度。例如,在一些实施例中,较高精度可以是16位。
例如,在一些实施例中,可以对神经网络模型10的前N/2个计算节点进行8位量化,对神经网络模型10的后N/2个计算节点进行16位量化。
S203:基于目标电子设备200的硬件/软件参数运行量化后的神经网络模型,得到运行结果。
即是电子设备100可以根据目标电子设备200的硬件/软件参数,例如处理器参数、存储器参数、系统软件版本等,通过模拟器模拟目标电子设备200运行量化后的神经网络模型,得到该量化后的神经网络模型在目标电子设备200的运行结果,例如输出数据、运算时间、运行精度等。
可以理解,在另一些实施例中,电子设备100也可以通过和目标电子设备200的硬件/软件参数相同的电子设备100或直接使用目标电子设备200来运行量化后的神经网络模型,在此不做限定。
可以理解,在一些实施例中,可以基于小批量的带标签的测试集来运行量化后的神经网络模型,其中,带标签的测试集是指根据神经网络模型的功能,同时包括输入数据和参考输出数据的测试集。电子设备100可以将利用该输入数据得到的输出数据和参考输出数据进行对比,来评价神经网络模型的运行精度。例如,对于图1B所示的神经网络模型,输入图像可以是一张清晰度较高的原始图像通过降低分辨率、模糊处理后的低清晰度图像,原始图像(标签数据)和该低清晰度图像可以成为带标签的测试数据,多条有带标签的测试数据则可以称为带标签的测试集。
可以理解,在一些实施例中,也可以基于不带标签的测试集(即只包括输入数据,不包括参考输出数据)来运行量化后的神经网络模型。由于不带标签的测试集中没有参考输出数据,可以基于该输入数据,采用较高精度对神经网络模型10的所有计算节点进行量化(例如全部计算节点都采用浮点运算),得到一个较高精度的参考输出数据。例如,对于图1B所示的神经网络模型10,可以对N个计算节点都采用16位精度量化或所有计算节点都采用浮点运算来生成一张参考输出图像。
S204:判断运行结果是否满足部署要求。即是电子设备100判断步骤S203中得到的运行结果是否满足部署要求,如果满足,说明高精度量化区间设置合适或太大,转至步骤S205进一步判断;如果不满足,说明高精度量化区间设置过小,转至步骤S206。
可以理解,部署要求可以包括但不限于根据神经网络模型的功能定义的精度指标、神经网络模型在目标电子设备200上的运行时间、量化后的神经网络模型的输出数据(张量)与参考输出数据(张量)间的相似度等。例如,对于图1B所示的神经网络模型10,精度指标可以包括输出图像的清晰度指标、输出图像与参考输出图像的相似度等。
具体地,图3根据本申请的一些实施例,示出了对神经网络模型10的前N/2个计算节点进行8位量化,对神经网络模型10的后N/2个计算节点进行16位量化后,对图1B所示的输入图像20进行超分辨处理得到的输出图像22的示意图。
参考图1B和图3,输出图像22和图1B所示的参考输出图像21的清晰度相近,在一些实施例中,可以通过判断输出图像22的和参考输出图像21间的相似度是否大于相似度阈值来确定量化后的神经网络模型的运行结果是否满足部署要求。
具体地,在一些实施例中,可以通过输出图像22的和参考输出图像21间的余弦相似度来判断上述运行结果是否满足部署要求。其中,输出图像22和参考输出图像21间的余弦相似度可以通过以下公式(1)确定:
公式(1)中,A表示输出图像22对应的向量(张量),B表示参考输出图像22对应的向量(张量),A·B表示A与B的点积,|A|表示A的模、|B|表示B的模,cos(θ)表示A和B的余弦相似度。从公式(1)可知,cos(θ)的取舍范围为[-1,1],并且,cos(θ)的值越接近1,输出图像22和参考输出图像21间的余弦相似度越高。在一些实施例中,当输出图像22和参考输出图像21间的余弦相似度大于相似度阈值的情况下,例如大于0.995的情况下,判断量化后的神经网络模型满足部署要求。
例如,图4A根据本申请的一些实施例,示出了输出图像22对应的向量的示意图,图4B根据本申请的一些实施例,示出了参考输出图像21对应的向量的示意图。图4A和图4B所示的向量的元素,代表输出图像22或参考输出图像21相应位置的像素对应的灰度值,从图4A和图4B可知,在向量的同一区域参考输出图像21的取值范围要大于输出图像22的取值范围,也即是灰度值的精细程度更高,图像清晰度越高。在一些实施例中,可以基于上述公式(1)确定出输出图像22和参考输出图像21间的余弦相似度为0.9952,大于相似度阈值0.995,说明根据对神经网络模型10的前N/2个计算节点进行8位量化,对神经网络模型10的后N/2个计算节点进行16位量化得到神经网络模型部署要求,因此,缩小高精度量化区间并转至步骤S205。
再例如,图5A根据本申请的一些实施例,示出了基于对神经网络模型10的所有计算节点都进行8位量化得到的神经网络模型,以输入图像20为输入,得到的输出图像23的示意图;图5B根据本申请的一些实施例,示出了输出图像23对应的向量的示意图。基于上述公式(1)确定出输出图像23和参考输出图像21间的余弦相似度为0.9905,小于相似度阈值0.995,说明对对神经网络模型10的所有计算节点都进行8位量化得到的神经网络模型不满足部署要求,因此,增大高精度量化区间,转至步骤S202。
可以理解,在另一些实施例中,还可以通过其他方式确定输出图像和参考输出图像间的相似度,例如,通过输出图像和参考输出图像对应的向量间的欧氏距离、相关系数等确定输出图像和参考输出图像间的相似度,在此不做限定。
可以理解,在另一些实施例中,还可以根据不同的部署要求,通过不同的方式来确定量化后的神经网络模型是否满足预设部署要求,在此不做限定。
S205:将当前高精度量化区间记为最小高精度量化区间,缩小该高精度量化区间,并重复步骤S202和步骤S203。即是电子设备100在步骤S204判断出运行结果满足部署要求的情况下,记录当前高精度量化区间,并缩小当前高精度量化区间重复S202和步骤S203,以得到基于缩小后的高精度量化区间对神经网络模型10进行量化后的神经网络模型的运行结果是否满足部署要求。具体的过程可以参考步骤S202和步骤S203,在此不做赘述。
可以理解,在一些实施例中,电子设备100可以单次减小预设数量的计算节点,例如每次减小1个计算节点来缩小该高精度量化区间;在另一些实施例中,电子设备100也可以采用其他方式来缩小该高精度量化区间,例如单次减小2m个计算节点(m为缩小的次数)在此不做限定。
S206:增大高精度区间。即是电子设备100在判断出运行效果不满足部署要求的情况下,说明高精度量化区间设置过小,电子设备100可以增大高精度区间,并转至步骤S202。
例如,在一些实施例中,电子设备100可以按照一定比例增大高精度区间,例如将高精度区间增加为原来的0.5倍。可以理解,在另一些实施例中,电子设备100也可以采用其他方式增大高精度区间,例如每次增加预设数量的计算节点数,本申请实施例不做限定。
S207:判断运行效果是否满足部署要求。电子设备100在判断出运行效果满足部署要求的情况下,说明缩小后的高精度量化区间可能可以继续缩小,转至步骤S205进一步判断;否则说明基于缩小后的高精度量化区间过小,基于该高精度量化区间对神经网络模型10进行量化后的神经网络模型的运行效果不满足部署要求,转至步骤S208。
S208:基于最小高精度量化区间对神经网络模型10的各计算节点进行量化,生成目标神经网络模型。即是电子设备100基于最小高精度量化区间,对最小高精度量化区间内的计算节点进行高精度量化,对最小高精度量化区间以外的计算节点进行低精度量化,以生成满足部署要求的目标神经网络模型。
在一些实施例中,电子设备100在得到目标神经网络模型后,可以将目标神经网络模型部署在目标电子设备200中,以便于目标电子设备200可以运行目标神经网络模型以实现相关功能。
可以理解,上述步骤S201至步骤S208的执行顺序只是一种示例,在另一些实施例中,上述各步骤也可以采用其他顺序,还可以合并或拆分部分步骤,本申请实施例不做限定。
通过本申请实施例提供的方法,电子设备100可以基于目标电子设备200部署要求,快速对待量化神经网络模型进行量化,并且无需使用大量数据进行训练,提高了神经网络模型量化的速度。
为提高确定出最小高精度量化区间的速度,本申请实施例还提供了一种神经网络模型的量化方法,基于二分法查找来快速确定最小高精度量化区间,从而进一步提高神经网络模型的量化速度。
具体地,图6根据本申请的一些实施例,示出了一种神经网络模型的量化方法的流程示意图。该方法的执行主体为电子设备100,如图6所示,该流程包括如下步骤:
S601:确定神经网络模型10中各计算节点的运行顺序。具体过程可以参考步骤S201,在此不做赘述。
S602:将运行顺序中,起始计算节点T后的计算节点标识为伪量化,将所有计算节点的输入张量和输出张量标记为不做伪量化。即是电子设备100将前述高精度量化区间设置为[T,N],并将高精度量化区间内的计算节点的计算节点量化标识标记为伪量化,将网络中所有计算节点的输入和输出张量的输入张量量化标识和输出张量量化标识标记为不做伪量化,以便于电子设备100可以根据计算节点量化标识、输入张量量化标识和输出张量量化标识确定运行该计算节点时的精度。
可以理解,计算节点量化标识、输入张量量化标识和输出张量量化标识可以称之为量化标识。其中,计算节点量化标识用于表示该计算节点是否需要做伪量化,以便于电子设备100可以根据该标识确定采用高精度(浮点域)或低精度(整数域)来运行该计算节点;输入张量量化标识和输出张量量化标识用于表示该计算节点的输入数据或输出数据是否要进行伪量化,以便于电子设备100在运行计算节点时,根据该标识对当前计算节点的输入数据/输出数据进行量化/伪量化。
可以理解,伪量化即是将定点数(整型)量化为浮点数。
可以理解,在一些实施例中,起始计算节点T可以为神经网络模型10的第N/2个计算节点,其中,N为神经网络模型10的计算节点数量。在另一些实施例中,起始计算节点T也可以采用其他值,在此不做限定。
S603:基于运行顺序和量化标识运行神经网络模型10的计算节点。即是电子设备100基于目标电子设备200的硬件/软件参数,根据运行顺序依次运行神经网络模型10的各计算节点。电子设备100在运行一个计算节点(例如当前计算节点)时,根据当前计算节点的量化标识,例如计算节点量化标识、输入张量量化标识和输出张量量化标识等,采用不同的精度运行当前计算节点,并修改当前计算节点的量化标识。具体地,在一些实施例中,电子设备100可以执行以下步骤来根据当前计算节点的量化标识,采用不同的精度运行当前计算节点,并修改当前计算节点的量化标识:
S603A:判断当前计算节点是否被标记为伪量化。即是电子设备100判断当前计算节点是否被标记为伪量化,例如,电子设备100可以根据当前计算节点的计算节点量化标识判断。如果是,说明该计算节点属于高精度量化区间,即该计算节点是起始计算节点或位于起始计算节点后的计算节点,转至步骤S603B;否则,说明该计算节点属于低精度量化区间,即该计算节点是位于起始计算节点前的计算节点,转至步骤S603E。
S603B:判断当前计算节点的输入张量是否被标记为伪量化。即是电子设备100判断当前计算节点的输入张量是否被标记为伪量化,例如,电子设备100可以根据当前计算节点的输入张量量化标识进行判断。如果是,说明当前计算节点的输入张量已经是浮点域数据(高精度数据),转至步骤S603D;否则,说明当前计算节点的输入张量为整数域数据(低精度数据),转至步骤S603C。
S603C:将当前计算节点的输入张量反量化到浮点域。即是电子设备100在检测到当前计算节点的输入张量是整数域数据(低精度数据)的情况下,将输入张量反量化到浮点域(高精度数据)。
可以理解,在另一些实施例中,也可以将当前计算节点的输入张量进行高精度量化,在此不做限定。
S603D:通过浮点域的运算模块对当前计算节点进行计算,并将当前计算节点的输出张量标记为伪量化。即是电子设备100通过浮点域的运算模块对当前计算节点进行计算,并将当前计算节点的输出张量标记为伪量化,例如将当前计算节点的输出张量量化标识标记为伪量化,已便于下一次运行该计算节点时可以基于该标识确定是否进行量化/反量化。
可以理解,浮点域计算模块可以是用于浮点计算的硬件运算单元,也可以是基于整数域计算模块的硬件运算单元,模拟的浮点域计算模块功能的软件运算单元,在此不做限定。
可以理解,浮点域计算模块的输入张量和输出张量都为浮点域数据。
可以理解,在另一些实施例中,也可以能过更高精度的整数域运算模块对当前计算节点进行计算,在此不做限定。
S603E:判断当前计算节点的输入张量是否被标记为伪量化。即是电子设备100判断当前计算节点的输入张量是否被标记为伪量化,例如,电子设备100可以根据当前计算节点的输入张量量化标识进行判断。如果是,说明当前计算节点的输入张量是整数域数据(低精度数据),转至步骤S603F;否则,说明当前计算节点的输入张量为浮点域数据(低精度数据),转至步骤S603G。
S603F:将当前计算节点的输入张量量化到整数域。即是电子设备100在检测到当前计算节点的输入张量是浮点域数据(高精度数据)的情况下,将输入张量量化到整数域。
可以理解,在另一些实施例中,也可以将当前计算节点的输入张量进行低精度量化,在此不做限定。
S603G:通过整数域的运算模块对当前计算节点进行计算,并将计算当前计算节点输出张量标记为不做伪量化。即是电子设备100通过整数域的运算模块对当前计算节点进行计算,并将当前计算节点的输出张量标记为不做伪量化,例如将当前计算节点的输出张量量化标识标记为不做伪量化,已便于下一次运行该计算节点时根据该标识确定是否对该计算节点的输入数据进行量化/反量化。
可以理解,整数域计算模块可以是用于整数计算的硬件运算单元,例如定点数计算单元。
可以理解,整数域计算模块的输入张量和输出张量都为整数域数据。
可以理解,在另一些实施例中,也可以能过更低精度的整数域运算模块对当前计算节点进行计算,在此不做限定。
S604:判断是否完成所有计算节点的计算。即是电子设备100判断是否已经完成所有计算节点的计算,如果是,说是已经得到了神经网络模型的运行结果,转至步骤S604;否则,转至步骤S603继续运行下一个计算节点。
S605:判断运行效果是否满足部署要求。如果运行效果满足部署要求,说明起始计算节点T可能可以继续后移以缩小高精度量化区间的范围,转至步骤S606进一步判断;否则,说明起始计算节点T设置太靠后,需要将起始计算节点T前移以扩大高精度量化区间的范围,故而将起始计算节点前移后转至步骤S602。
可以理解,判断运行效果是否满足部署要求的具体方法可以参考前述步骤S207,在上不做赘述。
可以理解,电子设备100在将起始计算节点T前移以扩大高精度量化区间的范围时,可以基于二分法进行前移。例如,参考图7,在起始计算节点T为计算节点N/2的情况下,若运行效果不满足部署要求,可以将起始点T前移为计算节点N/4。
可以理解,在另一些实施例中,也可以采用其他方法将起始计算节点T前移以扩大高精度量化区间的范围,在此不做限定。
S606:记录n=T,p=T并设置m=0。即是电子设备100在以当前起始计算节点T运行神经网络模型10的运行结果满足部署要求的情况下,记录当前起始计算节点T,例如记n=T,p=T,其中n用于标记当前的起始计算节点,p用于标记本次迭代的起点,电子设备100在神经网络模型10的运行结果不满足部署要求的情况下,可以根据n对神经网络模型10进行量化,生成目标神经网络模型;设置标记m=0,以便于电子设备100根据迭代计算的次数,基于m后移起始计算节点T以缩小高精度量区间范围。
S607:调整起始计算节点T=min(p+2m,N),执行步骤S602到步骤S604。即是电子设备100根据公式T=min(p+2m,N)来后移起始计算节点T以缩小高精度量区间范围,并基于后移后的起始计算节点T来执行步骤S602到步骤S604,以得到后移起始计算节点T后,神经网络模型10的运行效果。其中,min(p+2m,N)是指取p+2m和N中较小的一个,m为迭代次数。
例如,参考图8,在T=N/2+20的情况下,神经网络模型10的运行结果若满足部署要求,则取T=N/2+21,并执行步骤S602到步骤S604。
S608:判断运行效果是否满足部署要求。如果运行效果满足部署要求,说明起始计算节点T可能还可以继续后移以缩小高精度量化区间的范围,设置标记m=m+1,转至步骤S607进一步判断;否则,说明不能继续后移起始计算节点T,转至步骤S609。
例如,参考图8,在T=N/2+20的情况下,神经网络模型10的运行结果若满足部署要求,则记录n=N/2+20,设置标记m=m+1,转至步骤S607进一步判断;否则并转至步骤S607进一步判断,否则,说明不能继续后移起始计算节点T,转至步骤S609。
可以理解,判断运行效果是否满足部署要求的具体方法可以参考前述步骤S207,在此不做赘述。
S609:将n对应的计算节点确定为目标起始计算节点,并基于目标起始计算节点对神经网络模型10进行量化,生成目标神经网络模型。
例如,参考图8,若在n=N/2+20的情况下神经网络模型10的运行结果若满足部署要求,且在n=N/2+21的情况下神经网络模型10的运行结果不满足部署要求,将计算节点N/2+20作为起始计算节点,将起始计算节点及起始计算节点后的计算节点进行高精度量化、将起始计算节点前的计算节点进行低精度量化,生成目标神经网络模型。
可以理解,上述步骤S601至步骤S609的执行顺序只是一种示例,在另一些实施例中,上述各步骤也可以采用其他顺序,还可以合并或拆分部分步骤,本申请实施例不做限定。
可以理解,上述通过基于二分法确定目标起始计算节点来确定最小的高精度量化区间只是一种示例,在另一些实施例中,也可以采用其他可以快速确定最小的高精度量化区间的方法,在此不做限定。
通过本申请实施例提供的方法,电子设备100可以基于目标电子设备200部署要求,快速对待量化神经网络模型进行量化,并且无需使用大量数据进行训练,提高了神经网络模型量化的速度。
图9根据本申请的一些实施例,示出了一种电子设备100的结构示意图。如图9所示,电子设备100包括一个或多个处理器101、系统内存102、非易失性存储器(Non-VolatileMemory,NVM)103、通信接口104、输入/输出(I/O)设备105、以及用于耦接处理器101、系统内存102、非易失性存储器103、通信接口104和输入/输出(I/O)设备105的系统控制逻辑106。其中:
处理器101可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP(Digital Signal Processor)、微处理器MCU(Micro-programmed Control Unit)、AI(Artificial Intelligence,人工智能)处理器或可编程逻辑器件FPGA(FieldProgrammable Gate Array)、神经网络处理器(Neural-network Processing Unit,NPU)等的处理模块或处理电路可以包括一个或多个单核或多核处理器。在一些实施例中,处理器可以用于基于目标电子设备200的硬件/软件参数,构建模拟环境来运行量化后的神经网络模型,还可以用于执行本申请各实施例对应的指令,以确定最小高精度量化区间。
系统内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SDRAM)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存储待量化神经网络模型的运行顺序的结果,还可以用于存储量化后的神经网络模型。
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。在另一些实施例中,非易失性存储器103可以用于存储待量化神经网络模型的运行顺序的结果,还可以用于存储量化后的神经网络模型。
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行时使电子设备100实现本申请各实施例提供的神经网络模型量化方法。
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信,例如,电子设备100可以通过通信接口104获取目标电子设备200的硬件/软件参数。
输入/输出(I/O)设备105可以包括输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(I/O)设备105与电子设备100进行交互。
系统控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成系统封装(System in Package,SiP)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(System-on-Chip,SoC)。
可以理解,图9所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (15)
1.一种神经网络模型的量化方法,应用于电子设备,其特征在于,包括:
获取待量化神经网络模型的各计算节点被划分后的第一计算节点集和第二计算节点集,其中,所述第一计算节点集中的计算节点的运行顺序在所述第二计算节点集中的计算节点之前;
对所述第一计算节点集中的计算节点进行第一精度的量化,对所述第二计算节点集中的计算节点进行第二精度量化,生成第一目标神经网络模型,其中,第二精度高于第一精度;
根据目标电子设备的硬件和/或软件参数运行所述第一目标神经网络模型,得到运行结果;
在确定所述运行结果不满足对应所述目标电子设备的部署要求的情况下,调整所述第一计算节点集和所述第二计算节点集所包括的计算节点的数量;
在确定所述运行结果满足对应所述目标电子设备的部署要求的情况下,将所述第一目标神经网络模型作为所述待量化神经网络模型的量化结果。
2.根据权利要求1所述的方法,其特征在于,所述目标电子设备的部署要求包括第一部署要求,所述第一部署要求包括运行精度要求和/或运行速度要求。
3.根据权利要求2所述的方法,其特征在于,所述确定所述运行结果不满足对应所述目标电子设备的部署要求的情况下,调整所述第一计算节点集和所述第二计算节点集所包括的计算节点的数量,包括:
在所述运行结果满足不满足所述第一部署要求的情况下,减少所述第一计算节点集所包括的计算节点的数量、增加所述第二计算节点集所包括的计算节点的数量。
4.根据权利要求3所述的方法,其特征在于,所述运行结果包括所述第一目标神经网络模型的输出张量;并且
在所述输出张量和参考输出张量的相似度大于相似度阈值的情况下,确定所述第一目标神经网络模型的运行结果满足所述精度要求。
5.根据权利要求4所述的方法,其特征在于,所述输出张量和参考输出张量的相似度由所述输出张量和所述参考输出张量的余弦相似度确定。
6.根据权利要求5所述的方法,其特征在于,所述参考输出张量由以下方式确定:
在所述输出张量是基于带标签的测试集,根据目标电子设备的硬件和/或软件参数运行所述第一目标神经网络模型获得的情况下,以所述带标签的测试集中的标签数据作为所述参考输出张量;
在所述输出张量是基于不带标签的测试集,根据目标电子设备的硬件和/或软件参数运行所述第一目标神经网络模型获得的情况下,通过第三精度对所述待量化模型的各所述计算节进行量化后,基于所述不带标签的测试集中的输入数据运行基于第三精度量化后的神经网络模型得到,其中,所述第三精度高于所述第一精度和所述第二精度。
7.根据权利要求2至6中任一项所述的方法,其特征在于,所述部署要求还包括第二部署要求;所述第二部署要求包括在满足第一部署要求的情况下,所述第二计算节点集所包括的计算节点的数量最少。
8.根据权利要求7所述的方法,其特征在于,所述确定所述运行结果不满足对应所述目标电子设备的部署要求的情况下,调整所述第一计算节点集和所述第二计算节点集所包括的计算节点的数量,还包括:
在所述运行结果满足所述第一部署要求,但不满足所述第二部署要求的情况下,增加所述第一计算节点集包括的计算节点的数量,减少所述第二计算节点集所包括的计算节点的数量。
9.根据权利要求8所述的方法,其特征在于,还包括:
在增加所述第一计算节点集包括的计算节点的数量,减少所述第二计算节点集所包括的计算节点的数量后,得到的神经网络模型的运行结果不满足所述第一部署要求的情况下,将所述第一计算节点集和所述第二计算节点集所包括的计算节点的数量恢复至调整前的数量。
10.根据权利要求9所述的方法,其特征在于,还包括:
基于所述待量化神经网络模型各计算节点的运行顺序,将所述待量化神经网络模型的各计算节点划分为第一计算节点集和第二计算节点集。
11.根据权利要求10所述的方法,其特征在于,基于所述待量化神经网络模型各计算节点的运行顺序,将所述待量化神经网络模型的各计算节点划分为第一计算节点集和第二计算节点集,包括:
将所述待量化神经网络模型中运行顺序在前的N/2个计算节点划分为第一计算节点集,将所述待量化神经网络模型中运行顺序在后的N/2个计算节点划分为第二计算节点集,其中N为所述待量化神经网络模型的计算节点的总数。
12.根据权利要求11所述的方法,其特征在于,所述在所述运行结果不满足所述第一部署要求的情况下,减少所述第一计算节点集所包括的计算节点的数量、增加所述第二计算节点集所包括的计算节点的数量,包括:
将所述第一计算节点集所包括的计算节点的数量减少为N/4、将所述第二计算节点集所包括的计算节点的数量增加为3N/4。
13.根据权利要求12所述的方法,其特征在于,所述在所述运行结果满足所述第一部署要求,但不满足所述第二部署要求的情况下,增加所述第一计算节点集所包括的计算节点的数量,减少所述第二计算节点集所包括的计算节点的数量,包括:
将所述第一计算节点集所包括的计算节点的数量增加为N/2+2m-1、将所述第二计算节点集所包括的计算节点的数量减少为N/2-2m-1,其中,m为对所述第一计算节点集和所述第二计算节点集所包括的计算节点的数量的调整次数。
14.一种可读介质,其特征在于,所述可读介质中包含有指令,当所述指令被电子设备的处理器执行时使电子设备实现权利要求1至13中任一项所述的神经网络模型的量化方法。
15.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令;
以及处理器,是所述电子设备的处理器之一,用于运行所述指令以使所述电子设备实现权利要求1至13中任一项所述的神经网络模型的量化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111499269.5A CN114118384B (zh) | 2021-12-09 | 2021-12-09 | 神经网络模型的量化方法、可读介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111499269.5A CN114118384B (zh) | 2021-12-09 | 2021-12-09 | 神经网络模型的量化方法、可读介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114118384A true CN114118384A (zh) | 2022-03-01 |
CN114118384B CN114118384B (zh) | 2024-06-04 |
Family
ID=80364038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111499269.5A Active CN114118384B (zh) | 2021-12-09 | 2021-12-09 | 神经网络模型的量化方法、可读介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114118384B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676797A (zh) * | 2022-05-27 | 2022-06-28 | 浙江大华技术股份有限公司 | 一种模型精度的计算方法、装置和计算机可读存储介质 |
CN115146775A (zh) * | 2022-07-04 | 2022-10-04 | 同方威视技术股份有限公司 | 边缘设备推理加速方法、装置和数据处理系统 |
CN116630632A (zh) * | 2023-07-25 | 2023-08-22 | 腾讯科技(深圳)有限公司 | 图像分割模型的量化方法、装置和设备及计算机存储介质 |
WO2023165139A1 (zh) * | 2022-03-04 | 2023-09-07 | 上海商汤智能科技有限公司 | 模型量化方法、装置、设备、存储介质及程序产品 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734266A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
EP3543917A1 (en) * | 2018-03-19 | 2019-09-25 | SRI International Inc. | Dynamic adaptation of deep neural networks |
WO2019212878A1 (en) * | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Design flow for quantized neural networks |
WO2020014590A1 (en) * | 2018-07-12 | 2020-01-16 | Futurewei Technologies, Inc. | Generating a compressed representation of a neural network with proficient inference speed and power consumption |
US20200210840A1 (en) * | 2018-12-31 | 2020-07-02 | Microsoft Technology Licensing, Llc | Adjusting precision and topology parameters for neural network training based on a performance metric |
WO2020262587A1 (ja) * | 2019-06-27 | 2020-12-30 | Tdk株式会社 | 機械学習装置、機械学習プログラム、及び機械学習方法 |
CN112712176A (zh) * | 2020-12-30 | 2021-04-27 | 济南浪潮高新科技投资发展有限公司 | 深度神经网络的压缩方法和装置 |
CN112884120A (zh) * | 2021-01-29 | 2021-06-01 | 北京大学 | 图神经网络表示架构 |
CN112990440A (zh) * | 2021-04-02 | 2021-06-18 | 安谋科技(中国)有限公司 | 用于神经网络模型的数据量化方法、可读介质和电子设备 |
CN113168563A (zh) * | 2018-12-14 | 2021-07-23 | 微软技术许可有限责任公司 | 用于神经网络的残差量化 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
US20210264279A1 (en) * | 2020-02-20 | 2021-08-26 | International Business Machines Corporation | Learned step size quantization |
CN113627519A (zh) * | 2021-08-07 | 2021-11-09 | 中国人民解放军国防科技大学 | 具有压缩和延迟补偿的分布式随机梯度下降方法 |
CN113673701A (zh) * | 2021-08-24 | 2021-11-19 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
CN113971454A (zh) * | 2020-07-22 | 2022-01-25 | 平头哥(上海)半导体技术有限公司 | 深度学习模型的量化方法和相关装置 |
-
2021
- 2021-12-09 CN CN202111499269.5A patent/CN114118384B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108734266A (zh) * | 2017-04-21 | 2018-11-02 | 展讯通信(上海)有限公司 | 深度神经网络模型的压缩方法及装置、终端、存储介质 |
EP3543917A1 (en) * | 2018-03-19 | 2019-09-25 | SRI International Inc. | Dynamic adaptation of deep neural networks |
WO2019212878A1 (en) * | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Design flow for quantized neural networks |
WO2020014590A1 (en) * | 2018-07-12 | 2020-01-16 | Futurewei Technologies, Inc. | Generating a compressed representation of a neural network with proficient inference speed and power consumption |
CN113168563A (zh) * | 2018-12-14 | 2021-07-23 | 微软技术许可有限责任公司 | 用于神经网络的残差量化 |
US20230196085A1 (en) * | 2018-12-14 | 2023-06-22 | Microsoft Technology Licensing, Llc | Residual quantization for neural networks |
US20200210840A1 (en) * | 2018-12-31 | 2020-07-02 | Microsoft Technology Licensing, Llc | Adjusting precision and topology parameters for neural network training based on a performance metric |
WO2020262587A1 (ja) * | 2019-06-27 | 2020-12-30 | Tdk株式会社 | 機械学習装置、機械学習プログラム、及び機械学習方法 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
US20210264279A1 (en) * | 2020-02-20 | 2021-08-26 | International Business Machines Corporation | Learned step size quantization |
CN113971454A (zh) * | 2020-07-22 | 2022-01-25 | 平头哥(上海)半导体技术有限公司 | 深度学习模型的量化方法和相关装置 |
CN112712176A (zh) * | 2020-12-30 | 2021-04-27 | 济南浪潮高新科技投资发展有限公司 | 深度神经网络的压缩方法和装置 |
CN112884120A (zh) * | 2021-01-29 | 2021-06-01 | 北京大学 | 图神经网络表示架构 |
CN112990440A (zh) * | 2021-04-02 | 2021-06-18 | 安谋科技(中国)有限公司 | 用于神经网络模型的数据量化方法、可读介质和电子设备 |
CN113627519A (zh) * | 2021-08-07 | 2021-11-09 | 中国人民解放军国防科技大学 | 具有压缩和延迟补偿的分布式随机梯度下降方法 |
CN113673701A (zh) * | 2021-08-24 | 2021-11-19 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
Non-Patent Citations (6)
Title |
---|
FENG, BY: "SGQuant: Squeezing the Last Bit on Graph Neural Networks with Specialized Quantization", IEEE 32ND INTERNATIONAL CONFERENCE ON TOOLS WITH ARTIFICIAL INTELLIGENCE (ICTAI), 11 September 2020 (2020-09-11), pages 1044 - 1052 * |
TONELLOTTO等: "Neural network quantization in federated learning at the edge", 《INFORMATION SCIENCE》, no. 575, 31 October 2021 (2021-10-31), pages 417 - 436 * |
YIH-SHAN SHIH等: "Exploring the factor effect of learning vector quantization in artificial neural networks", 《APPLIED MECHANICS AND MATERIALS》, 31 December 2013 (2013-12-31), pages 3097 - 101 * |
范志华等: "面向低精度神经网络的数据流体系结构优化", 《计算机研究与发展》, vol. 60, no. 01, 8 July 2022 (2022-07-08), pages 43 - 58 * |
范时平;何超杰;: "基于NARX神经网络的分簇数据融合算法", 计算机工程与设计, no. 04, 16 April 2018 (2018-04-16), pages 46 - 50 * |
范琦等: "基于边缘计算的分支神经网络模型推断延迟优化", 《计算机应用》, vol. 40, no. 02, 17 October 2019 (2019-10-17), pages 342 - 346 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023165139A1 (zh) * | 2022-03-04 | 2023-09-07 | 上海商汤智能科技有限公司 | 模型量化方法、装置、设备、存储介质及程序产品 |
CN114676797A (zh) * | 2022-05-27 | 2022-06-28 | 浙江大华技术股份有限公司 | 一种模型精度的计算方法、装置和计算机可读存储介质 |
CN115146775A (zh) * | 2022-07-04 | 2022-10-04 | 同方威视技术股份有限公司 | 边缘设备推理加速方法、装置和数据处理系统 |
CN116630632A (zh) * | 2023-07-25 | 2023-08-22 | 腾讯科技(深圳)有限公司 | 图像分割模型的量化方法、装置和设备及计算机存储介质 |
CN116630632B (zh) * | 2023-07-25 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 图像分割模型的量化方法、装置和设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114118384B (zh) | 2024-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114118384B (zh) | 神经网络模型的量化方法、可读介质和电子设备 | |
US11593625B2 (en) | Method and apparatus with neural network parameter quantization | |
Rodriguez et al. | Lower numerical precision deep learning inference and training | |
Salamat et al. | F5-hd: Fast flexible fpga-based framework for refreshing hyperdimensional computing | |
CN109871936B (zh) | 用于处理神经网络中的卷积运算的方法和装置 | |
CN111448550A (zh) | 网络可访问的机器学习模型训练和托管系统 | |
US11263529B2 (en) | Modifying machine learning models to improve locality | |
CN110689109A (zh) | 神经网络方法和装置 | |
CN106855952B (zh) | 基于神经网络的计算方法及装置 | |
US12050987B2 (en) | Dynamic variable bit width neural processor | |
CN112990440B (zh) | 用于神经网络模型的数据量化方法、可读介质和电子设备 | |
CN111767986A (zh) | 一种基于神经网络的运算方法及装置 | |
US20210397963A1 (en) | Method and apparatus for neural network model compression with micro-structured weight pruning and weight unification | |
CN114139693A (zh) | 神经网络模型的数据处理方法、介质和电子设备 | |
CN113569193A (zh) | 用于神经网络模型的矩阵向量运算方法、设备及存储介质 | |
CN116611476A (zh) | 性能数据预测方法、性能数据预测装置、电子设备及介质 | |
CN114170481B (zh) | 用于图像处理的方法、设备、存储介质和程序产品 | |
US11410036B2 (en) | Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program | |
CN115293076A (zh) | 生成电路的方法、电子设备及存储介质 | |
CN112052861B (zh) | 深度卷积神经网络有效感受野的计算方法及存储介质 | |
He et al. | ApproxEye: Enabling approximate computation reuse for microrobotic computer vision | |
CN111723917B (zh) | 运算方法、装置及相关产品 | |
US11861452B1 (en) | Quantized softmax layer for neural networks | |
US10564895B2 (en) | I/O performance enhancement of solid-state data storage devices | |
CN112906728A (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 |