CN110322008A - 一种基于残差卷积神经网络的量化处理方法及装置 - Google Patents

一种基于残差卷积神经网络的量化处理方法及装置 Download PDF

Info

Publication number
CN110322008A
CN110322008A CN201910619503.XA CN201910619503A CN110322008A CN 110322008 A CN110322008 A CN 110322008A CN 201910619503 A CN201910619503 A CN 201910619503A CN 110322008 A CN110322008 A CN 110322008A
Authority
CN
China
Prior art keywords
data
quantization
point
layers
convolutional neural
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910619503.XA
Other languages
English (en)
Inventor
徐兵
张楠赓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sisheng Technology Co ltd
Original Assignee
Hangzhou Canaan Creative Information Technology 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 Hangzhou Canaan Creative Information Technology Ltd filed Critical Hangzhou Canaan Creative Information Technology Ltd
Priority to CN201910619503.XA priority Critical patent/CN110322008A/zh
Publication of CN110322008A publication Critical patent/CN110322008A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供了一种基于残差卷积神经网络的量化处理方法及装置,该方法包括:获取卷积神经网络的第N层输出数据,对第N层输出数据进行第一量化操作以获得第一量化数据,并将第一量化数据输入至卷积神经网络的第N+1层网络;对第一量化数据进行第二量化操作以获得第二量化数据,将第二量化数据保存至存储器;获取卷积神经网络的第N+M层输出数据,并从存储器读取第二量化数据,以及根据卷积神经网络的第N+M层输出数据与第二量化数据进行逐点运算,其中,N、M为正整数。利用上述方法,节省了用于暂存残差网络中输出数据的存储空间,并减少了对存储器的访问,提高了数据的写入写出效率,降低芯片能耗。

Description

一种基于残差卷积神经网络的量化处理方法及装置
技术领域
本发明属于神经网络计算领域,具体涉及一种基于残差卷积神经网络的量化处理方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
卷积神经网络(Convolutional Neural Networks,简称CNN)是目前非常流行的一种深度学习。残差网络(Resnet)是卷积神经网络的一种,其主要思想是在网络中增加了直连通道(Highway Network)的思想。在引入残差网络之前,传统的卷积神经网络或者全连接网络是对输入数据做一个非线性变换。而引入残差网络之后,则允许原始输入信息直接传到后面的层中。由于传统的卷积神经网络或者全连接网络在信息传递的时候或多或少会存在信息丢失,损耗等问题,同时还有导致梯度消失或者梯度爆炸,导致很深的网络无法训练。而残差网络通过直接将输入信息绕道传到输出而保护信息的完整性,且整个网络只需要学习输入、输出差别的那一部分,简化学习目标和难度。
图1示出了根据现有技术的残差网络的计算过程的示意图。
其中,在第N层与残差网络中用于执行逐点运算的运算层之间可以有一层或多层神经网络层,包括但不限于卷积、池化、放大、缩放。在现有的残差网络计算方案中,为了将第N层计算的输出结果x与第N+M层的输出结果f(x)做逐点运算,其中,N、M均为正整数,需要将第N层的计算结果x保存在存储空间中,进而在计算完第N+M层神经网络之后,再将存储空间中的第N层的输出结果x取出,并与该第N+M层的计算结果进行逐点运算。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
随着AI(Artificial Intelligence,人工智能)技术的发展,目前的神经网络呈现越来越深的趋势,并因此可能具有很多残差层,目前的卷积神经网络计算芯片在实现残差网络时,需要多次的写入、读取存储器的操作,会造成上述存储空间访问带宽升高,进而导致芯片功耗提高,计算效率降低等问题。且对于实时性要求较高的设备来说,还可能由于存储空间的带宽受限而导致芯片处理的实时性下降。
发明内容
针对上述现有技术在实现残差网络时,需要多次的写入、读取存储器的操作,而导致的存储空间访问带宽升高、芯片功耗提高,计算效率以及处理实时性降低等问题。本发明实施例提出了一种基于残差卷积神经网络的量化处理方法及装置,利用这种方法及装置,能够解决上述问题。
本发明的实施例中提供了以下方案。
一方面,提供了一种基于残差网络的数据处理方法,包括:获取卷积神经网络的第N层输出数据,对所述第N层输出数据进行第一量化操作以获得第一量化数据,并将所述第一量化数据输入至所述卷积神经网络的第N+1层网络;对所述第一量化数据进行第二量化操作以获得第二量化数据,将所述第二量化数据保存至存储器;获取所述卷积神经网络的第N+M层输出数据,并从所述存储器读取所述第二量化数据,以及根据所述卷积神经网络的第N+M层输出数据与所述第二量化数据进行逐点运算,其中,所述N、M为正整数。
可选地,其中,所述第一量化操作为线性量化操作,所述第二量化操作为非线性量化操作。
可选地,其中,所述根据所述卷积神经网络的第N+M层输出数据与所述第一量化数据进行逐点运算还包括:根据预设量化精度对所述第N+M层输出数据执行第一反量化操作,以获得第一反量化数据;根据所述预设量化精度对所述第二量化数据执行第二反量化操作,以获得与所述第一反量化数据的小数点位置对齐的第二反量化数据;对所述第一反量化数据与所述第二反量化数据执行逐点运算。
可选地,其中,所述根据所述卷积神经网络的第N+M层输出数据与所述第一量化数据进行逐点运算包括:根据所述第N+M层输出数据的小数点位置来对所述第二量化数据进行第三反量化操作,以获得与所述第N+M层输出数据的小数点位置对齐的第三反量化数据;对所述第N+M层输出数据与所述第三反量化数据执行逐点运算。
可选地,其中,所述第一量化操作的量化程度为8bit,所述第二量化操作的量化程度为2-4bit。
另一方面,提供了一种基于残差网络的数据处理装置,包括:第一量化模块,用于获取卷积神经网络的第N层输出数据,对所述第N层输出数据进行第一量化操作以获得第一量化数据,并将所述第一量化数据输入至所述卷积神经网络的第N+1层网络;第二量化模块,用于对所述第一量化数据进行第二量化操作以获得第二量化数据,将所述第二量化数据保存至存储器;逐点运算模块,用于获取所述卷积神经网络的第N+M层输出数据,并从所述存储器读取所述第二量化数据,以及根据所述卷积神经网络的第N+M层输出数据与所述第二量化数据进行逐点运算,其中,所述N、M为正整数。
可选地,其中,所述第一量化操作为线性量化操作,所述第二量化操作为非线性量化操作。
可选地,其中,所述逐点运算模块还包括:第一反量化模块,用于根据预设量化精度对所述第N+M层输出数据执行第一反量化操作,以获得第一反量化数据;第二反量化模块,用于根据所述预设量化精度对所述第二量化数据执行第二反量化操作,以获得与所述第一反量化数据的小数点位置对齐的第二反量化数据;第一逐点运算子模块,用于对所述第一反量化数据与所述第二反量化数据执行逐点运算。
可选地,其中,所述逐点运算模块还包括:第三反量化模块,用于根据所述第N+M层输出数据的小数点位置来对所述第二量化数据进行第三反量化操作,以获得与所述第N+M层输出数据的小数点位置对齐的第三反量化数据;第二逐点运算子模块,用于对所述第N+M层输出数据与所述第三反量化数据执行逐点运算。
可选地,其中,所述第一量化操作的量化程度为8bit,所述第二量化操作的量化程度为2-4bit。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本发明实施例通过对残差网络的主路径(进入下层网络中继续进行卷积计算的路径)与辅助路径(存入存储器的路径)采用两种不同的数据量化方式,其中,对进入主路径的数据进行一次量化操作以使其具有较高的精度,并对该一次量化操作后的数据进行二次量化操作,以获得具有更低精度的数据进行存储,以达到节省存储空间、降低芯片功耗,提高计算效率以及处理实时性等技术效果。
应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。
附图说明
通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的有点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1为根据现有技术中的残差卷积神经网络的计算流程示意图;
图2为根据本发明一实施例的残差卷积神经网络的量化处理方法的流程示意图;
图3为根据本发明一实施例的用于执行图2所示出方法的AI加速芯片的示意图;
图4为根据本发明一实施例的残差卷积神经网络的计算流程示意图;
图5为根据本发明另一实施例的残差卷积神经网络的量化处理方法的流程示意图;
图6为根据本发明另一实施例的残差卷积神经网络的计算流程示意图;
图7为根据本发明又一实施例的残差卷积神经网络的量化处理方法的流程示意图;
图8为根据本发明又一实施例的残差卷积神经网络的计算流程示意图;
图9为根据本发明一实施例的残差卷积神经网络的量化处理装置的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提出一种基于残差卷积神经网络的量化处理方法。图2示意性地示出了根据本发明实施例的基于残差卷积神经网络的量化处理方法200的流程示意图。
图3示出了一种用于执行图2示出方法的AI加速芯片的示意图,其中,卷积神经网络处理单元(Neural-network Processing Unit,以下简称NPU)主要用于卷积神经网络的计算,具体可以包括算数逻辑单元(arithmetic and logicunit,以下简称ALU)以及内部存储器。内部存储器通常采用SRAM(Static Random-Access Memory,静态随机存取存储器),主要用于缓存中间计算所需的数据或者结果,且由于其成本较高,实际应用中通常避免采用大容量的内部存储器。该AI加速芯片还包括电连接至NPU的外部存储器,其通常采用成本相对较低的DRAM(Dynamic Random Access Memory,动态随机存取存储器)、DDR((DataDirection Register,数据方向寄存器)等,用于存储较大容量数据。优选地但非必须地,图2所示的方法可由图3中所示出的AI加速芯片执行,更具体地,图2所示的方法可由AI加速芯片中的ALU执行。本实施例中,以ALU作为执行主体进行具体阐述,然而应当理解,本申请对执行主体并无具体限制。
如图2所示,该方法200包括:
步骤201:获取卷积神经网络的第N层输出数据,对第N层输出数据进行第一量化操作以获得第一量化数据,并将第一量化数据输入至卷积神经网络的第N+1层网络;
步骤202:对第一量化数据进行第二量化操作以获得第二量化数据,将第二量化数据保存至存储器;
步骤203:获取卷积神经网络的第N+M层输出数据,并从存储器读取第二量化数据,以及根据卷积神经网络的第N+M层输出数据与第二量化数据进行逐点运算,其中,N、M为正整数。其中,上述逐点运算具体为逐点加法运算。
具体地,如图4所示,将卷积神经网络中第N层网络的输出数据作为第N层输出数据,为了减小存储和计算的开销,对第N层输出数据进行量化1,通常来说,要使网络量化性能基本没有损失,优选将数据量化到8bit或更高位宽。将第一量化数据输入至卷积神经网络中的第N+1层网络继续进行后续计算,且在将第一量化数据存入外部存储器之前,为了进一步减小占用的存储空间以及存取操作,进一步对其进行量化2,使其形成为具有更低精度的第二量化数据,优选将该第二量化数据限制在2~6bit。在第一量化数据经过M层运算后,从第N+M层网络中获取输出的第N+M层输出数据,并从外部存储器中读取出第二量化数据,并在ALU中根据上述卷积神经网络的第N+M层输出数据与第二量化数据进行逐点运算,从而完成一次残差网络的计算过程。举例来说,假设第N层输出数据大小为128*128,输出为256channel,第一量化操作采用8bit量化,那么第一量化数据需要的存储空间为128*128*128*256=4Mbyte,而再次对第一量化数据进行第二量化操作,使其形成为更低精度(例如4bit)的第二量化数据,则第二量化数据所需要的存储空间更小,从而节省了外部存储器的存储空间以及写入写出效率。
本实施例的思路在于,由于存入存储器的数据作为辅助信息,重要性没有主路径中的数据高,因此可以对残差网络的主路径(进入下层网络中继续进行卷积计算的路径)与辅助路径(存入存储器的路径)中采用两种不同的数据量化方式,使主路径的量化结果具有更高精确度以便于卷积运算,同时使存入存储器的数据由于位宽更低以便于存储和读写。
基于图2的基于残差卷积神经网络的量化处理方法,本申请的一些实施例还提供了该量化处理方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本发明的实施例中,上述第一量化操作的量化程度为8bit,第二量化操作的量化程度为2~6bit。具体地,对于卷积神经网络来说,将数据量化到8bit对于网络量化性能基本没有损失,能够在保证精确度的前提下降低计算功耗。且由于存入存储器的数据作为辅助信息,重要性较低,因此可以采用低于8bit的量化精度。
在本发明的实施例中,第一量化操作为线性量化操作,第二量化操作为非线性量化操作。具体地,卷积神经网络中的量化方法可以分为两类:线性量化方法(LinearQuantization Method)以及非线性量化方法(Nonlinear Quantization Method),其中,非线性量化方法进一步包括对数量化方法(logarithmic Quantization Method),指数量化方法(Log Quantization Method)和二进制量化方法(Binary Quantization Method)等。其中,线性量化方法能够在8至16比特量化级别下无损量化卷积神经网络,但量化至更低位数时则出现明显的精度损失。因此,对于需要进行后续卷积运算的第一量化数据来说,为了减少其数据损伤,可以通过线性量化操作将第N层输出数据量化到8bit。而非线性量化方法则能够极大地减少卷积神经网络的计算量,同时也带来了无法恢复的精度损失,因此对于重要程度较低的第二量化数据来说,可以选用任意一种非线性量化方式以有效地降低网络数据量。进一步地,在本实施例中,第二量化操作优选采用指数量化方法,其中,指数量化方法用硬件实现时,可以采用移位器取代乘法器,进而达到简化硬件复杂度的技术效果。
在本发明的另一实施例中,第一量化操作与第二量化操作还可以选用上述示出的任意一种量化方式及其组合,本申请对此不作具体限制。
在本发明的实施例中,图5示出了步骤203中的根据卷积神经网络的第N+M层输出数据与第一量化数据进行逐点运算的具体操作流程,包括:
步骤501:根据预设量化精度对第N+M层输出数据执行第一反量化操作,以获得第一反量化数据;
步骤502:根据预设量化精度对第二量化数据执行第二反量化操作,以获得与第一反量化数据的小数点位置对齐的第二反量化数据;
步骤503:对第一反量化数据与第二反量化数据执行逐点运算。
具体地,可以通过移位、线性变换、查表、指数运算等方式执行上述第一反量化操作与第二反量化操作,本申请对此不作具体限制。例如,可以是对低精度的第N+M层输出数据与第二量化数据向左移位操作,使获得具有更高精度第一反量化数据以及第二反量化数据。与此同时,第一反量化操作与第二反量化操作采用同一预设量化精度,因此能够获得小数点位置对其的第一反量化数据与第二反量化数据。
可以理解,本实施例中,上述小数点位置对齐是指通过量化或反量化将两个数的小数点位置对准。例如,例如,第二量化数据x=(01.11)(假设其为4位),第N+M层输出数据f(x)=(001.00010)(假设其为8位),其中(0,1,1,1)分别为x的第0~3位,第二量化数据x的小数点在第2位和第1位之间;(0,0,1,0,0,0,1,0)分别为f(x)的第0~7位,第N+M层输出数据f(x)的小数点在第5位和第4位之间,此时若想将第二量化数据x与第N+M层输出数据f(x)相加,就可以根据预先约定的数据位数(假设为32位)与小数点位置对第二量化数据x与第N+M层输出数据f(x)进行移位,具体地,可以将第二量化数据x左移12位并补齐,得到x1=(0x7000),并对左移后的x1进行符号位扩展,得到第二反量化数据x2=(0x00007000),以使得第二反量化数据恢复为32位数据。将第N+M层输出数据f(x)左移9位并补齐,得到f1(x)=(0x4400),对左移后的f1(x)=进行符号位扩展,得到第一反量化数据f2(x)==(0x00004400),以使得第一反量化数据恢复为32位数据。进而基于上述32位的第一反量化数据与第二反量化数据执行逐点加法运算。进一步的,为便于理解,图6示出了基于本实施例示出的反量化方式的残差网络计算过程的示意图,反量化1也即第一反量化操作,反量化2也即第二反量化操作,通过上述反量化方式,能够根据约定好的量化精度对第N+M层输出数据以及第二量化数据进行相互独立的反量化操作,而无需额外考虑对方的量化程度,具有较为简单的技术逻辑。
在本发明的实施例中,步骤S203中的根据卷积神经网络的第N+M层输出数据与第一量化数据进行逐点运算还包括:
步骤701:根据第N+M层输出数据的小数点位置来对第二量化数据进行第三反量化操作,以获得与第N+M层输出数据的小数点位置对齐的第三反量化数据;
步骤702:对第N+M层输出数据与第三反量化数据执行逐点运算。
具体地,可以通过移位、线性变换、查表、指数运算等方式执行上述第三反量化操作,本申请对此不作具体限制。例如,可以是对低精度的第二量化数据向左移位操作,使获得具有与第N+M层输出数据的位宽相同的第三反量化数据,因此能够获得小数点位置对齐的第三反量化数据与第N+M层输出数据。
可以理解,本实施例中,上述小数点位置对齐是指通过量化或反量化将两个数的小数点位置对准。例如,本实施例中,上述小数点位置对齐是指通过量化或反量化将两个数的小数点位置对准。例如,第二量化数据x=(01.11)(假设其为4位),第N+M层输出数据f(x)=(001.00010)(假设为8位),其中(0,1,1,1)分别为x的第0~3位,第二量化数据x的小数点在第2位和第1位之间;(0,0,1,0,0,0,1,0)分别为f(x)的第0~7位,第N+M层输出数据f(x)的小数点在第5位和第4位之间,此时若想将第二量化数据x与第N+M层输出数据f(x)相加,就可以根据第N+M层输出数据的小数点位置来对第二量化数据X进行第三反量化操作,具体地,可以将第二量化数据x左移3位并补齐,得到x3=(0x38),并对左移后的x3进行符号位扩展,得到第三反量化数据x4=(0x38),以使得第二反量化数据恢复为8位数据。进而基于上述8位的第三反量化数据与第N+M层输出数据执行f(x)逐点加法运算。进一步的,为便于理解,图8示出了基于上述反量化方式的残差网络计算过程的示意图,其中,反量化3也即第三反量化操作,通过上述反量化方式,仅仅需要对第二量化数据进行反量化操作即可,进一步减少了运算量,降低芯片功耗。
基于相同的技术构思,本发明实施例还提供一种基于残差卷积神经网络的量化处理装置,用于执行上述任一实施例所提供的基于残差卷积神经网络的量化处理方法。图9为本发明实施例提供的一种基于残差卷积神经网络的量化处理装置的结构示意图。
如图9所示,该装置900包括:
第一量化模块901,用于获取卷积神经网络的第N层输出数据,对第N层输出数据进行第一量化操作以获得第一量化数据,并将第一量化数据输入至卷积神经网络的第N+1层网络;
第二量化模块902,用于对第一量化数据进行第二量化操作以获得第二量化数据,将第二量化数据保存至存储器;
逐点运算模块903,用于获取卷积神经网络的第N+M层输出数据,并从存储器读取第二量化数据,以及根据卷积神经网络的第N+M层输出数据与第二量化数据进行逐点运算,其中,N、M为正整数。其中,上述逐点运算具体为逐点加法运算。
具体地,图4示出了根据本发明实施例的残差卷积神经网络的计算过程示意图,其中,将卷积神经网络中第N层网络的输出数据作为第N层输出数据,为了减小存储和计算的开销,利用第一量化模块901对第N层输出数据进行量化1,通常来说,要使网络量化性能基本没有损失,优选将数据量化到8bit或更高位宽。将第一量化数据输入至卷积神经网络中的第N+1层网络继续进行后续计算,且在将第一量化数据存入外部存储器之前,为了进一步减小占用的存储空间以及存取操作,进一步利用第二量化模块902对第一量化数据进行量化2,使其形成为具有更低精度的第二量化数据,优选将该第二量化数据限制在2-6bit。在第一量化数据经过M层运算后,从第N+M层网络中获取输出的第N+M层输出数据,并从外部存储器中读取出第二量化数据,并在逐点运算模块中根据上述卷积神经网络的第N+M层输出数据与第二量化数据进行逐点运算,从而完成一次残差网络的计算过程。举例来说,假设第N层输出数据大小为128*128,输出为256channel,第一量化操作采用8bit量化,那么第一量化数据需要的存储空间为128*128*128*256=4Mbyte,而再次对第一量化数据进行第二量化操作,使其形成为更低精度(例如4bit)的第二量化数据,则第二量化数据所需要的存储空间则更小,从而节省了外部存储空间以及写入写出效率。
本实施例的思路在于,由于存入存储器的数据作为辅助信息,重要性没有主路径中的数据高,因此可以对残差网络的主路径(进入下层网络中继续进行卷积计算的路径)与辅助路径(存入存储器的路径)中采用两种不同的数据量化方式,使主路径的量化结果具有更高精确度以便于卷积运算,同时使存入存储器的数据由于位宽更低以便于存储和读写。
在本发明的实施例中,上述第一量化操作的量化程度为8bit,第二量化操作的量化程度为2~6bit。具体地,对于卷积神经网络来说,将数据量化到8bit对于网络量化性能基本没有损失,能够在保证精确度的前提下降低计算功耗。且由于存入存储器的数据作为辅助信息,重要性较低,因此可以采用低于8bit的量化精度。
在本发明的实施例中,第一量化操作为线性量化操作,第二量化操作为非线性量化操作。具体地,卷积神经网络中的量化方法可以分为两类:线性量化方法(LinearQuantization Method)以及非线性量化方法(Nonlinear Quantization Method),其中,非线性量化方法进一步包括对数量化方法(logarithmic Quantization Method),指数量化方法(Log Quantization Method)和二进制量化方法(Binary Quantization Method)等。其中,线性量化方法能够在8至16比特量化级别下无损量化卷积神经网络,但量化至更低位数时则出现明显的精度损失。因此,对于需要进行后续卷积运算的第一量化数据来说,为了减少其数据损伤,可以通过线性量化操作将第N层输出数据量化到8bit。而非线性量化方法则能够极大地减少卷积神经网络的计算量,同时也带来了无法恢复的精度损失,因此对于重要程度较低的第二量化数据来说,可以选用任意一种非线性量化方式以有效地降低网络数据量。进一步地,在本实施例中,第二量化操作优选采用指数量化方法,其中,指数量化方法用硬件实现时,可以采用移位器取代乘法器,进而达到简化硬件复杂度的技术效果。
在本发明的另一实施例中,第一量化操作与第二量化操作均可以选用任意一种量化方式及其组合,本申请对此不作具体限制。
在本发明的实施例中,逐点运算模块903还包括:
第一反量化模块,用于根据预设量化精度对所述第N+M层输出数据执行第一反量化操作,以获得第一反量化数据;
第二反量化模块,用于根据所述预设量化精度对所述第二量化数据执行第二反量化操作,以获得与所述第一反量化数据的小数点位置对齐的第二反量化数据;
第一逐点运算子模块,用于对所述第一反量化数据与所述第二反量化数据执行逐点运算。
具体地,上述第一反量化模块与第二反量化模块具体可以用于通过移位、线性变换、查表、指数运算等方式执行上述第一反量化操作与第二反量化操作,本申请对此不作具体限制。例如,可以对低精度的第N+M层输出数据与第二量化数据向左移位操作,使输出具有更高精度第一反量化数据以及第二反量化数据。与此同时,第一反量化操作与第二反量化操作采用同一预设量化精度,因此能够获得小数点位置对其的第一反量化数据与第二反量化数据。
可以理解,本实施例中,上述小数点位置对齐是指通过量化或反量化将两个数的小数点位置对准。例如,例如,第二量化数据x=(01.11)(假设其为4位),第N+M层输出数据f(x)=(001.00010)(假设其为8位),其中(0,1,1,1)分别为的第0~3位,第二量化数据x的小数点在第2位和第1位之间;(0,0,1,0,0,0,1,0)分别为f(x)的第0~7位,第N+M层输出数据f(x)的小数点在第5位和第4位之间,此时若想将第二量化数据x与第N+M层输出数据f(x)相加,就可以根据预先约定的数据位数(假设为32位)与小数点位置对第二量化数据x与第N+M层输出数据f(x)进行移位,具体地,可以将第二量化数据x左移12位并补齐,得到x1=(0x7000),并对左移后的x1进行符号位扩展,得到第二反量化数据x2=(0x00007000),以使得第二反量化数据恢复为32位数据。将第N+M层输出数据f(x)左移9位并补齐,得到f1(x)=(0x4400),对左移后的f1(x)=进行符号位扩展,得到第一反量化数据f2(x)==(0x00004400),以使得第一反量化数据恢复为32位数据。进而基于上述32位的第一反量化数据与第二反量化数据执行逐点加法运算。进一步的,为便于理解,图6示出了基于本实施例示出的反量化方式的残差网络计算过程的示意图,反量化1也即第一反量化操作,反量化2也即第二反量化操作,通过上述反量化方式,能够根据约定好的量化精度对第N+M层输出数据以及第二量化数据进行相互独立的反量化操作,而无需额外考虑对方的量化程度,具有较为简单的技术逻辑。
在本发明的实施例中,逐点运算模块903还可以包括:
第三反量化模块,用于根据所述第N+M层输出数据的小数点位置来对所述第二量化数据进行第三反量化操作,以获得与所述第N+M层输出数据的小数点位置对齐的第三反量化数据;
第二逐点运算子模块,用于对所述第N+M层输出数据与所述第三反量化数据执行逐点运算。
具体地,上述第三反量化模块具体可以用于通过移位、线性变换、查表、指数运算等方式执行上述第三反量化操作,本申请对此不作具体限制。例如,可以对低精度的第二量化数据向左移位操作,使获得具有与第N+M层输出数据的位宽相同的第三反量化数据,因此能够获得小数点位置对齐的第三反量化数据与第N+M层输出数据。
可以理解,本实施例中,上述小数点位置对齐是指通过量化或反量化将两个数的小数点位置对准。例如,本实施例中,上述小数点位置对齐是指通过量化或反量化将两个数的小数点位置对准。例如,第二量化数据x=(01.11)(假设其为4位),第N+M层输出数据f(x)=(001.00010)(假设为8位),其中(0,1,1,1)分别为x的第0~3位,第二量化数据x的小数点在第2位和第1位之间;(0,0,1,0,0,0,1,0)分别为f(x)的第0~7位,第N+M层输出数据f(x)的小数点在第5位和第4位之间,此时若想将第二量化数据x与第N+M层输出数据f(x)相加,就可以根据第N+M层输出数据的小数点位置来对第二量化数据x进行第三反量化操作,具体地,可以将第二量化数据x左移3位并补齐,得到x3=(0x38),并对左移后的x3进行符号位扩展,得到第三反量化数据x4=(0x38),以使得第二反量化数据恢复为8位数据。进而基于上述8位的第三反量化数据与第N+M层输出数据执行f(x)逐点加法运算。进一步的,为便于理解,图8示出了基于上述反量化方式的残差网络计算过程的示意图,其中,反量化3也即第三反量化操作,通过上述反量化方式,仅仅需要对第二量化数据进行反量化操作即可,进一步减少了运算量,降低芯片功耗。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种基于残差卷积神经网络的量化处理方法,其特征在于,包括:
获取卷积神经网络的第N层输出数据,对所述第N层输出数据进行第一量化操作以获得第一量化数据,并将所述第一量化数据输入至所述卷积神经网络的第N+1层网络;
对所述第一量化数据进行第二量化操作以获得第二量化数据,将所述第二量化数据保存至存储器;
获取所述卷积神经网络的第N+M层输出数据,并从所述存储器读取所述第二量化数据,以及根据所述卷积神经网络的第N+M层输出数据与所述第二量化数据进行逐点运算,其中,所述N、M为正整数。
2.由权利要求1所述的方法,其特征在于,所述第一量化操作为线性量化操作,所述第二量化操作为非线性量化操作。
3.由权利要求1所述的方法,其特征在于,所述根据所述卷积神经网络的第N+M层输出数据与所述第一量化数据进行逐点运算,包括:
根据预设量化精度对所述第N+M层输出数据执行第一反量化操作,以获得第一反量化数据;
根据所述预设量化精度对所述第二量化数据执行第二反量化操作,以获得与所述第一反量化数据的小数点位置对齐的第二反量化数据;
对所述第一反量化数据与所述第二反量化数据执行逐点运算。
4.由权利要求1所述的方法,其特征在于,所述根据所述卷积神经网络的第N+M层输出数据与所述第一量化数据进行逐点运算,包括:
根据所述第N+M层输出数据的小数点位置对所述第二量化数据进行第三反量化操作,以获得与所述第N+M层输出数据的小数点位置对齐的第三反量化数据;
对所述第N+M层输出数据与所述第三反量化数据执行逐点运算。
5.由权利要求1所述的方法,其特征在于,所述第一量化操作的量化程度为8bit,所述第二量化操作的量化程度为2~4bit。
6.一种基于残差卷积神经网络的量化处理装置,其特征在于,包括:
第一量化模块,用于获取卷积神经网络的第N层输出数据,对所述第N层输出数据进行第一量化操作以获得第一量化数据,并将所述第一量化数据输入至所述卷积神经网络的第N+1层网络;
第二量化模块,用于对所述第一量化数据进行第二量化操作以获得第二量化数据,将所述第二量化数据保存至存储器;
逐点运算模块,用于获取所述卷积神经网络的第N+M层输出数据,并从所述存储器读取所述第二量化数据,以及根据所述卷积神经网络的第N+M层输出数据与所述第二量化数据进行逐点运算,其中,所述N、M为正整数。
7.由权利要求6所述的装置,其特征在于,所述第一量化操作为线性量化操作,所述第二量化操作为非线性量化操作。
8.由权利要求6所述的装置,其特征在于,所述逐点运算模块还包括:
第一反量化模块,用于根据预设量化精度对所述第N+M层输出数据执行第一反量化操作,以获得第一反量化数据;
第二反量化模块,用于根据所述预设量化精度对所述第二量化数据执行第二反量化操作,以获得与所述第一反量化数据的小数点位置对齐的第二反量化数据;
第一逐点运算子模块,用于对所述第一反量化数据与所述第二反量化数据执行逐点运算。
9.由权利要求6所述的装置,其特征在于,所述逐点运算模块还包括:
第三反量化模块,用于根据所述第N+M层输出数据的小数点位置来对所述第二量化数据进行第三反量化操作,以获得与所述第N+M层输出数据的小数点位置对齐的第三反量化数据;
第二逐点运算子模块,用于对所述第N+M层输出数据与所述第三反量化数据执行逐点运算。
10.由权利要求6所述的装置,其特征在于,所述第一量化操作的量化程度为8bit,所述第二量化操作的量化程度为2~4bit。
CN201910619503.XA 2019-07-10 2019-07-10 一种基于残差卷积神经网络的量化处理方法及装置 Pending CN110322008A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910619503.XA CN110322008A (zh) 2019-07-10 2019-07-10 一种基于残差卷积神经网络的量化处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910619503.XA CN110322008A (zh) 2019-07-10 2019-07-10 一种基于残差卷积神经网络的量化处理方法及装置

Publications (1)

Publication Number Publication Date
CN110322008A true CN110322008A (zh) 2019-10-11

Family

ID=68123250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910619503.XA Pending CN110322008A (zh) 2019-07-10 2019-07-10 一种基于残差卷积神经网络的量化处理方法及装置

Country Status (1)

Country Link
CN (1) CN110322008A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111260022A (zh) * 2019-11-22 2020-06-09 中国电子科技集团公司第五十二研究所 一种卷积神经网络全int8定点量化的方法
CN111461302A (zh) * 2020-03-30 2020-07-28 杭州嘉楠耘智信息科技有限公司 一种基于卷积神经网络的数据处理方法、设备及存储介质
CN113780513A (zh) * 2020-06-10 2021-12-10 杭州海康威视数字技术股份有限公司 网络模型量化、推理方法、装置、电子设备及存储介质
US20220092383A1 (en) * 2020-09-18 2022-03-24 Samsung Electronics Co., Ltd. System and method for post-training quantization of deep neural networks with per-channel quantization mode selection
WO2022088063A1 (zh) * 2020-10-30 2022-05-05 华为技术有限公司 神经网络模型的量化方法和装置、数据处理的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010017941A1 (en) * 1997-03-14 2001-08-30 Navin Chaddha Method and apparatus for table-based compression with embedded coding
CN106485316A (zh) * 2016-10-31 2017-03-08 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
CN106951962A (zh) * 2017-03-22 2017-07-14 北京地平线信息技术有限公司 用于神经网络的复合运算单元、方法和电子设备
CN107644254A (zh) * 2017-09-09 2018-01-30 复旦大学 一种卷积神经网络权重参数量化训练方法及系统
CN108491926A (zh) * 2018-03-05 2018-09-04 东南大学 一种基于对数量化的低比特高效深度卷积神经网络硬件加速设计方法、模块及系统
CN108734287A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010017941A1 (en) * 1997-03-14 2001-08-30 Navin Chaddha Method and apparatus for table-based compression with embedded coding
CN106485316A (zh) * 2016-10-31 2017-03-08 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
CN106951962A (zh) * 2017-03-22 2017-07-14 北京地平线信息技术有限公司 用于神经网络的复合运算单元、方法和电子设备
CN108734287A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质
CN107644254A (zh) * 2017-09-09 2018-01-30 复旦大学 一种卷积神经网络权重参数量化训练方法及系统
CN108491926A (zh) * 2018-03-05 2018-09-04 东南大学 一种基于对数量化的低比特高效深度卷积神经网络硬件加速设计方法、模块及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111260022A (zh) * 2019-11-22 2020-06-09 中国电子科技集团公司第五十二研究所 一种卷积神经网络全int8定点量化的方法
CN111260022B (zh) * 2019-11-22 2023-09-05 中国电子科技集团公司第五十二研究所 一种卷积神经网络全int8定点量化的方法
CN111461302A (zh) * 2020-03-30 2020-07-28 杭州嘉楠耘智信息科技有限公司 一种基于卷积神经网络的数据处理方法、设备及存储介质
CN111461302B (zh) * 2020-03-30 2024-04-19 嘉楠明芯(北京)科技有限公司 一种基于卷积神经网络的数据处理方法、设备及存储介质
CN113780513A (zh) * 2020-06-10 2021-12-10 杭州海康威视数字技术股份有限公司 网络模型量化、推理方法、装置、电子设备及存储介质
CN113780513B (zh) * 2020-06-10 2024-05-03 杭州海康威视数字技术股份有限公司 网络模型量化、推理方法、装置、电子设备及存储介质
US20220092383A1 (en) * 2020-09-18 2022-03-24 Samsung Electronics Co., Ltd. System and method for post-training quantization of deep neural networks with per-channel quantization mode selection
WO2022088063A1 (zh) * 2020-10-30 2022-05-05 华为技术有限公司 神经网络模型的量化方法和装置、数据处理的方法和装置

Similar Documents

Publication Publication Date Title
CN110322008A (zh) 一种基于残差卷积神经网络的量化处理方法及装置
US11928177B2 (en) Methods and apparatus for performing video processing matrix operations within a memory array
US20210357736A1 (en) Deep neural network hardware accelerator based on power exponential quantization
EP3754561A1 (en) Reconfigurable memory compression techniques for deep neural networks
CN107169563B (zh) 应用于二值权重卷积网络的处理系统及方法
US20200349217A1 (en) Methods and apparatus for performing matrix transformations within a memory array
CN111126579B (zh) 一种适用于二值卷积神经网络计算的存内计算装置
CN107578095A (zh) 神经网络计算装置及包含该计算装置的处理器
CN108446764B (zh) 一种新型神经形态芯片架构
CN105049061A (zh) 基于超前计算的高维基极化码译码器和极化码译码方法
CN112329910B (zh) 一种面向结构剪枝结合量化的深度卷积神经网络压缩方法
CN113222150B (zh) 一种量子态的变换方法及装置
US20210209450A1 (en) Compressed weight distribution in networks of neural processors
CN108491924B (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
Tsai et al. RePIM: Joint exploitation of activation and weight repetitions for in-ReRAM DNN acceleration
CN109697509B (zh) 处理方法及装置、运算方法及装置
CN113222129A (zh) 一种基于多级缓存循环利用的卷积运算处理单元及系统
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法
CN110085270B (zh) 存储运算电路模块及处理器
CN112561049A (zh) 一种基于忆阻器的dnn加速器的资源分配方法及装置
CN109669666A (zh) 乘累加处理器
CN113128688B (zh) 通用型ai并行推理加速结构以及推理设备
Manikandan et al. Approximation computing techniques to accelerate CNN based image processing applications–a survey in hardware/software perspective
CN113392963B (zh) 基于fpga的cnn硬件加速系统设计方法
US20210357184A1 (en) Device for computing an inner product

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
TA01 Transfer of patent application right

Effective date of registration: 20201130

Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094

Applicant after: Canaan Bright Sight Co.,Ltd.

Address before: 310000, room 12, building 4, building nine, No. nine, 1203 Ring Road, Hangzhou, Zhejiang, Jianggan District

Applicant before: Hangzhou Canaan Creative Information Technology Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240508

Address after: Room 101, 20th Floor, Building 1, Zone 1, No. 81 Beiqing Road, Haidian District, Beijing, 100094

Applicant after: Beijing Sisheng Technology Co.,Ltd.

Country or region after: China

Address before: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094

Applicant before: Canaan Bright Sight Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right