CN110991608B - 一种卷积神经网络量化计算方法及系统 - Google Patents

一种卷积神经网络量化计算方法及系统 Download PDF

Info

Publication number
CN110991608B
CN110991608B CN201911167437.3A CN201911167437A CN110991608B CN 110991608 B CN110991608 B CN 110991608B CN 201911167437 A CN201911167437 A CN 201911167437A CN 110991608 B CN110991608 B CN 110991608B
Authority
CN
China
Prior art keywords
calculation
layer
quantization
neural network
precision
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
CN201911167437.3A
Other languages
English (en)
Other versions
CN110991608A (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.)
Hengshuo Semiconductor Hefei Co ltd
Original Assignee
Hengshuo Semiconductor Hefei Co 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 Hengshuo Semiconductor Hefei Co ltd filed Critical Hengshuo Semiconductor Hefei Co ltd
Priority to CN201911167437.3A priority Critical patent/CN110991608B/zh
Publication of CN110991608A publication Critical patent/CN110991608A/zh
Application granted granted Critical
Publication of CN110991608B publication Critical patent/CN110991608B/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及神经网络算法硬件实现领域,公开了一种卷积神经网络量化计算方法及系统,所述计算方法包括:将卷积神经网络各计算层按照计算精度和算力要求,分别匹配使用多值化量化和多比特量化方式进行量化,将多比特量化后的计算层映射到高精度阵列,进行高精度计算;将多值化量化后的计算层映射到高算力阵列,进行高算力计算,根据高精度计算结果和高算力计算结果结合所述非计算层完成卷积神经网络的计算。本发明提高卷积神经网络推理的速度,在保证准确率的同时,尽可能地降低网络功耗,具有较高的实用价值和广泛的应用前景。

Description

一种卷积神经网络量化计算方法及系统
技术领域
本发明涉及神经网络算法硬件实现技术领域,具体涉及一种卷积神经网络量化计算方法及系统。
背景技术
卷积神经网络在图像识别、目标检测和许多机器学习应用领域显示出巨大的优势。卷积神经网络主要由卷积层、池化层、全连接层级联组成,主要有如下操作,分别为像素块和卷积核之间的卷积操作、为引入非线性而进行的激活操作、为减少特征值而对特征图进行的下采样操作(即池化)以及全连接操作。其中,绝大部分计算量都在卷积层以及全连接层。
大型的卷积神经网络,具有庞大的参数集和计算量,为完成庞大的计算量,一般芯片的设计思路是基于冯诺依曼架构上大量增加并行的运算单元,但计算单元和存储器之间的数据搬运消耗了大量的资源。
闪存作为一种非易失性存储技术被广泛使用,通常的实现方式为使用浮栅或者电荷捕获结构在场效应晶体管中存储电荷,构成存储单元,存储单元构成阵列用于储存大量数据。根据阵列结构的不同,闪存可分两种:NAND型和NOR型,NOR型闪存(NORFlash)的存储单元以并联的方式连接。NOR FlASH可以对其每一个存储单元进行独立的读写操作,并且相对于NAND Flash具有更低的读延时。
基于NOR Flash的存算一体化架构能够用于卷积神经网络的推理过程,浮栅单元存储权重参数同时完成于此权重相关的乘加法运算,从而能够以超低的功耗加速完成卷积神经网络中的乘加计算。现有的基于NOR Flash存算一体化计算阵列,有的控制电路复杂,导致阵列功耗大,算力不足;有的Flash单元阈值电压只有高低二值之分,相应控制电路简单,易于构造高算力低功耗的大规模的Flash计算阵列,但是计算精度低,准确率不高。
发明内容
针对现有技术的不足,本发明提供一种卷积神经网络量化计算方法及系统,用以解决背景技术中提出的问题。
本发明解决技术问题采用如下技术方案:
建立卷积神经网络,对级联的各层进行计算层和非计算层划分;
将卷积神经网络各计算层按照计算精度和算力要求,分别匹配使用多值化量化和多比特量化方式进行量化;
将多比特量化后的计算层映射到高精度阵列,进行高精度计算;将多值化量化后的计算层映射到高算力阵列,进行高算力计算;
根据高精度计算结果和高算力计算结果结合所述非计算层完成卷积神经网络的计算。
优选地,所述计算层至少包括卷积层和全连接层中的一种。
优选地,所述多值化量化为二值化量化或三值化量化中的一种。
优选地,所述多比特量化为4比特量化、5比特量化、6比特量化、7比特量化和8比特量化中的一种或几种。
优选地,所述各计算层包括卷积层和全连接层;
所述分别匹配使用多值化量化和多比特量化方式进行量化具体包括:
对第一层卷积层和最后一层全连接层采用多比特量化方式进行量化;
对卷积层和全连接层中的其他层采用多值化量化方式进行量化。
优选地,所述非计算层至少包括输入层、池化层和激励层中的一种。
本发明还提供一种卷积神经网络量化计算系统,包括高算力计算模块、高精度计算模块、主控模块、数据存储模块和数据移动传输模块;
所述高算力计算模块匹配卷积神经网络多值化量化后的计算层设置,用于执行高算力计算;
所述高精度计算模块匹配卷积神经网络多比特量化后的计算层设置,用于执行高精度计算;
所述主控模块用于对控制系统其它各模块,并执行卷积神经网络中包括数据输入预处理、计算层分类量化、卷积输出结果非线性映射、池化和数据变形优化操作;
所述数据存储模块用于存储输入特征和中间计算结果;
所述数据移动传输模块用于根据主控模块的指令,完成各模块间的数据传输。
优选地,所述高算力计算模块、高精度计算模块均采用基于NOR FLASH存算一体化架构配置。
优选地,所述数据移动传输模块为DMA(Direct Memory Access,直接内存存取)控制器,所述DMA控制器执行以下操作:
将多比特量化后的卷积层或全连接层映射至高精度计算模块进行计算,并将计算结果返回至数据存储单元储存;
将多值化量化后的卷积层或全连接层映射至高算力计算模块进行计算,并将计算结果返回至数据存储单元储存。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的量化计算方法。
与现有技术相比,本发明具有如下的有益效果:
本专利提出的一种卷积神经网络量化计算方法将卷积神经网络各个计算层(卷积层,全连接层)使用两种不同的量化方式:二值或三值化量化和多bit量化进行量化操作,根据神经网络结构,对部分计算层进行高精度量化,部分计算层进行二值化处理,从而在保证准确率的同时,尽可能地降低网络功耗;
此外本发明将多比特量化的计算层映射到高精度阵列(High Precision Array,HPA),参与高精度计算;将二值或三值化量化的层映射到高算力阵列(High OperationsArray,HOA),参与二值化计算;高精度阵列与高算力阵列相结合,高精度计算与二值化计算相结合,同时解决了二值化神经网络映射到基于NOR Flash的卷积计算阵列存在的准确率不足的问题,高精度神经网络映射到基于NOR Flash的卷积计算阵列的算力不足以及功耗过大的问题,从而增大了阵列的吞吐量,降低了阵列计算功耗,有效提高卷积神经网络推理的速度。
关于本发明相对于现有技术,其他突出的实质性特点和显著的进步在实施例部分进一步详细介绍。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明的卷积计算进行二值化后映射到高算力阵列(HOA)计算的过程示意图;
图2是本发明的卷积计算进行三值化后映射到高算力阵列(HOA)计算的过程示意图;
图3是本发明的卷积计算进行4bit量化后映射到高精度阵列(HPA)计算的过程示意图;
图4是本发明的卷积计算进行8bit量化后映射到高精度阵列(HPA)计算的过程示意图;
图5是本发明的高精度阵列结构图;
图6是本发明的高算力阵列结构图
图7是本发明的AlexNet网络使用基于NOR Flash的卷积神经网络量化计算方法的示意图;
图8是本发明的LeNet网络使用基于NOR Flash的卷积神经网络量化计算方法的示意图;
图9是本发明DeepID网络使用基于NOR Flash的卷积神经网络量化计算方法的示意图;
图10是本发明卷积神经网络量化计算系统的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在说明书及权利要求书当中使用了某些名称来指称特定组件。应当理解,本领域普通技术人员可能会用不同名称来指称同一个组件。本申请说明书及权利要求书并不以名称的差异作为区分组件的方式,而是以组件在功能上的实质性差异作为区分组件的准则。如在本申请说明书和权利要求书中所使用的“包含”或“包括”为一开放式用语,其应解释为“包含但不限定于”或“包括但不限定于”。具体实施方式部分所描述的实施例为本发明的较佳实施例,并非用以限定本发明的范围。
此外,所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为软硬件结合的形式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个微控制器可读介质中的计算机程序产品的形式,该微控制器可读介质中包含微控制器可读的程序代码。
以下实施例都基于本发明的一种卷积神经网络量化计算方法,包括:
建立卷积神经网络,对级联的各层进行计算层和非计算层划分,计算层至少包括卷积层和全连接层中的一种,非计算层至少包括输入层、池化层和激励层中的一种;
将卷积神经网络各计算层按照计算精度和算力要求,分别匹配使用多值化量化和多比特量化方式进行量化,具体包括:
对第一层卷积层和最后一层全连接层采用多比特量化方式进行量化;
对卷积层和全连接层中的其他层采用多值化量化方式进行量化;
其中多值化量化为二值化量化或三值化量化中的一种,多比特量化为4比特量化、5比特量化、6比特量化、7比特量化和8比特量化中的一种或几种。
将多比特量化后的计算层映射到高精度阵列,进行高精度计算;将多值化量化后的计算层映射到高算力阵列,进行高算力计算;
根据高精度计算结果和高算力计算结果结合所述非计算层完成卷积神经网络的计算。
请参考图1,上述中的二值化量化过程具体为:
卷积神经网络中的卷积运算和全连接计算本质上都是以矩阵计算为核心的乘加运算。输入特征矩阵(浮点数)乘以权重矩阵(浮点数)得到输出矩阵(浮点数)。输入矩阵和权重矩阵都进行1或-1二值化,得到一个整形输出矩阵。将输入矩阵映射为基于NOR Flash的高算力阵列的相应输入接口,将权重矩阵通过改变Flash的阈值电压保存至Flash阵列,每个Flash单元类似于一个固定系数的乘法器,从基于NOR Flash的高算力阵列的相应输出接口得到矩阵计算结果。
请参考图2,相对于二值化,三值化量化过程就是将输入矩阵和权重矩阵进行1或-1或0量化,得到一个整形输出矩阵,再将输入矩阵映射为基于NOR Flash的高算力阵列的相应输入接口,将权重矩阵通过改变Flash的阈值电压保存至Flash阵列,从基于NOR Flash的高算力阵列的相应输出接口得到矩阵计算结果。因此三值化比二值化的结果准备率更高,具有更好的网络泛化能力。
请参考图3,将卷积神经网络各个层定点量化为多bit(4bit到8bit),多比特量化过程以4bit量化为例说明:
卷积神经网络中的卷积运算和全连接计算本质上都是以矩阵计算为核心的乘加运算。输入特征矩阵(浮点数)乘以权重矩阵(浮点数)得到输出矩阵(浮点数)。输入矩阵和权重矩阵都进行4bit定点量化,得到一个多bit输出矩阵,将输入矩阵映射为基于NORFlash的高算力阵列的相应输入接口,将权重矩阵通过改变Flash的阈值电压保存至Flash阵列,每个Flash单元类似于一个固定系数的乘法器,从基于NOR Flash的高算力阵列的相应输出接口得到矩阵计算结果。
当对数据的精度要求更高时,4bit量化不能满足要求,需要对输入特征矩阵进行更多比特量化,如图4所示,为8比特量化的过程;
请参照图5为本发明中高精度阵列结构示意图,基于NOR FLASH存算一体化架构配置,FLASH阵列的每两行共栅G极,G极接固定电位,构成FLASH阵列的字线WL端,接控制信号;
FLASH阵列的每列共漏D极,D极接模拟输入,构成FLASH阵列的模拟输入端,接由数模转换器DAC阵列转换来的模拟信号;
FLASH阵列的每行共源S极,输出电流从S极输出;
每两行FLASH阵列分为正FLASH阵列和负FLASH阵列,两行(正负)FLASH阵列的S极的电流减表示运算结果。运算结果由模数转换器ADC转换为数字结果。
每两行FLASH的阈值电压差来存储一个带符号位的权重,一个2m×n的FLASH阵列可以存储m×n个权重。权重的精度为多bit(>1bit)。
可以完成运算:
数字域
Figure BDA0002287828190000061
模拟域
Figure BDA0002287828190000062
将输入[a1,…,an]通过DAC转换为[V1,…,Vn],权重w映射为FLASH的阈值电压差ΔVTH。计算结果[ID1,…,IDm]通过ADC转换为数字结果[c1,…,cm]
支持输入信号精度为多bit(>1bit),权重精度为多bit。
每个FLASH的阈值电压要区分2种以上的电压等级,需要对阈值电压的精准控制,相对应编程擦除控制复杂;
请参照图6为本发明中高算力阵列结构示意图,基于NOR FLASH存算一体化架构配置,FLASH阵列的每两行共源S极,S极接固定电位,构成FLASH阵列的源极线(SL)端,接控制信号;
FLASH阵列的每列共栅G极,G极接数字信号输入,构成FLASH阵列的字线输入端;
每行FLASH阵列共漏D极,输出电流从D极输出;
每两行FLASH阵列分为正FLASH阵列和负FLASH阵列,两行(正负)FLASH阵列的D极的电流减表示运算结果。运算结果由模数转换器ADC转换为数字结果。
每两行FLASH的阈值电压差来存储一个带符号位的权重(0,1,-1),一个2m×n的FLASH阵列可以存储m×n个权重。权重的精度为单bit。
可以完成运算:
数模混合域
Figure BDA0002287828190000071
权重w映射为FLASH的阈值电压差ΔVTH。计算结果[ID1,…,IDm]通过ADC转换为数字结果[c1,…,cm]
支持输入信号精度为1bit(1,0),权重精度1bit(1/-1二值化,或-1,0,1三值化);
权值由阈值电压表示,其中正负权值通过两行FLASH做差结构实现,每个FLASH的高阈值电压Vth_high表示0,低阈值电压Vth_low表示1,输入由电压表示,也即g端电压为(Vth_high+Vth_low)/2时表示1,低电平时表示0。
实施例1
如图7,本实施例以AlexNet网络为例,对本发明的卷积神经网络量化计算方法进一步说明:
AlexNet网络结构总共有8层,前面5层是卷积层,后面三层是全连接层;卷积神经网络量化计算方法加速该网络分为三步:
第一步将第一层卷积(Conv1),第二层卷积(conv2)和倒数第二层全连接层(Fc7)、最后一层全连接层(Fc8)进行高精度量化,将第三层卷积(Conv3),第四层卷积(Conv4),第五层卷积(Conv5),第6层全连接(Fc6)进行二值化,软件模拟仿真运行后的准确率是否达到需求,例如软件模拟仿真运行后的准确率是否达到全精度(32bit)的AlexNet网络的准确度,调整二值化量化和高精度量化的层数,在量化精度和准确率间做平衡;
本实施例中AlexNet网络量化准确度仿真结果表1所示:
Figure BDA0002287828190000081
表1
第二步将高精度量化(多bit量化)的层映射到高精度阵列,参与基于NOR Flash的高精度计算;将二值化量化的层映射到高算力阵列,参与基于NOR Flash的二值化计算;
第三步通过控制单元和数据移动单元,将高精度阵列和高算力阵列结合一起,高精度计算和二值化计算相结合,在保证AlexNet网络准确率的前提下,降低AlexNet网络的计算功耗,提高AlexNet网络的计算速度。
实施例2
如图8本实施例以LeNet网络为例,对本发明的卷积神经网络量化计算方法进一步说明:LeNet网络简单一共只有7层,包括卷积层(Conv),池化层(pool)和全连接层(Fc),卷积神经网络量化计算方法加速该网络包括三步:
第一步,将其中的计算量大的层(卷积层,全连接层)划分为二值化量化和高精度量化,一般情况下,将第一层卷积(Conv1)和最后一层全连接层(Fc2)进行高精度量化,将第二层卷积(Conv2),第一层全连接层(Fc1)进行二值化量化,软件模拟仿真运行后的准确率是否达到需求,调整二值化量化和高精度量化的层数,在量化精度和准确率间做平衡;
本实施例中LeNet网络量化准确度仿真结果表2所示:
Figure BDA0002287828190000091
表2
第二步将高精度量化(多bit量化)的层映射到高精度阵列,参与基于NOR Flash的高精度计算;将二值化量化的层映射到高算力阵列,参与基于NOR Flash的二值化计算;
第三步通过控制单元和数据移动单元,将高精度阵列和高算力阵列结合一起,高精度计算和二值化计算相结合,在保证LeNet网络准确率的前提下,降低LeNet网络的计算功耗,提高LeNet网络的运行速度。
实施例3
如图9,本实施例以DeepID1网络为例,对本发明的卷积神经网络量化计算方法进一步说明:
用于人脸识别算法中提取脸部特征所用的DeepID1神经网络模型,主要由卷积层(Conv),池化层(pool)和全连接层(Fc)组成,卷积神经网络量化计算方法加速该网络包括三步:
第一步,将其中的计算量大的层(卷积层,全连接层)划分为二值化量化和高精度量化,一般情况下,将第一层卷积(Conv1)和最后一层全连接层(Fc)进行高精度量化,将第二层卷积(Conv2),第三层卷积(Conv3),第四层卷积(Conv4)进行二值化量化,软件模拟仿真运行后的准确率是否达到需求,调整二值化量化和高精度量化的层数,在量化精度和准确率间做平衡;
本实施例中DeepID1网络量化准确度仿真结果表3所示:
Figure BDA0002287828190000092
Figure BDA0002287828190000101
表3
第二步将高精度量化(多bit量化)的层映射到高精度阵列,参与基于NOR Flash的高精度计算;将二值化量化的层映射到高算力阵列,参与基于NOR Flash的二值化计算。
第三步通过控制单元和数据移动单元,将高精度阵列和高算力阵列结合一起,高精度计算和二值化计算相结合,在保证DeepID1网络准确率的前提下,降低DeepID1网络的计算功耗,提高DeepID1网络的运行速度。
实施例4
如图10,本实施例提供一种卷积神经网络量化计算系统,包括高算力计算模块、高精度计算模块、主控模块、数据存储模块和数据移动传输模块;
高算力计算模块匹配卷积神经网络多值化量化后的计算层设置,用于执行高算力计算;
高精度计算模块匹配卷积神经网络多比特量化后的计算层设置,用于执行高精度计算;
主控模块用于对控制系统其它各模块,并执行卷积神经网络中包括数据输入预处理、计算层分类量化、卷积输出结果非线性映射、池化和数据变形优化操作;
数据存储模块用于存储输入特征和中间计算结果;
数据移动传输模块用于根据主控模块的指令,完成各模块间的数据传输。
其中高算力计算模块、高精度计算模块均采用基于NOR FLASH存算一体化架构配置;
数据移动传输模块为DMA控制器,所述DMA控制器执行以下操作:
将多比特量化后的卷积层或全连接层映射至高精度计算模块进行计算,并将计算结果返回至数据存储单元储存;
将多值化量化后的卷积层或全连接层映射至高算力计算模块进行计算,并将计算结果返回至数据存储单元储存。
结合实施例中前述内容,在本系统中高精度计算模块采用的高精度阵列与高算力计算模块采用的高算力阵列计算结果输出都为模拟信号,需要ADC转换为数字结果;
区别在于:
高精度阵列的输入可以为多bit,需要DAC阵列转换为模拟电压进行模拟计算。高算力阵列的输入为单bit,无需DAC,可能需要一个电平转换器,1则为高电平,0则为低电平;
高精度阵列的阈值电压可以划分为多个等级,能够存储多bit权重;高算力阵列的阈值电压只有高低两个等级,只能存储单bit权重;
高精度阵列的G极固定电位,输入电压从两个FLASH的D极输入,计算结果为两个FLASH的S极的电流差。高算力阵列的S极接固定电位,输入电压从两个FLASH的G极输入,计算结果为两个FALSH的D极的电流差;
高精度阵列的功耗大,阵列规模小,计算精度高,算力小;低精度阵列功耗低,阵列规模大,计算精度低,算力大。
本实施例中主控模块采用CPU,数据存储模块包括SRAM和DRAM,主控模块和数据移动传输模块主要负责HOA和HPA的控制和数据调度,使高精度阵列与高算力阵列相结合,高精度计算与多值化计算相结合,
CPU作为整个系统的控制中心,主要实现各个模块的控制,卷积神经网络的池化层,标准化层的实现,数据变形优化等操作。缓存单元用来存储输入特征和中间计算结果,DMA将多bit量化的卷积层或全连接层搬运到HPA阵列进行计算,计算结果通过DMA返回到数据缓存单元;将单bit量化的卷积层或全连接层搬运到HOA进行二值化或三值化计算,计算结果搬运到数据缓存单元。
实施例5
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的量化计算方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方。或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)。随机存取存储器(RAM,Random,Access,Memory)、磁碟或者光盘等各种可以存储程序校验码的介质。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (5)

1.一种卷积神经网络量化计算方法,其特征在于,包括:
建立卷积神经网络,对级联的各层进行计算层和非计算层划分;所述计算层至少包括卷积层和全连接层中的一种,所述非计算层至少包括输入层、池化层和激励层中的一种;
将卷积神经网络各计算层按照计算精度和算力要求,分别匹配使用多值化量化和多比特量化方式进行量化;
将多比特量化后的计算层映射到高精度阵列,进行高精度计算;将多值化量化后的计算层映射到高算力阵列,进行高算力计算;
根据高精度计算结果和高算力计算结果结合所述非计算层完成卷积神经网络的计算;
其中,所述将卷积神经网络各计算层按照计算精度和算力要求,分别匹配使用多值化量化和多比特量化方式进行量化,具体包括:
对第一层卷积层和最后一层全连接层采用多比特量化方式进行量化;
对卷积层和全连接层中的其他层采用多值化量化方式进行量化;
多值化量化为二值化量化或三值化量化中的一种,多比特量化为4比特量化、5比特量化、6比特量化、7比特量化和8比特量化中的一种或几种。
2.一种卷积神经网络量化计算系统,其特征在于,包括高算力计算模块、高精度计算模块、主控模块、数据存储模块和数据移动传输模块;
所述高算力计算模块匹配卷积神经网络多值化量化后的计算层设置,用于执行高算力计算;
所述高精度计算模块匹配卷积神经网络多比特量化后的计算层设置,用于执行高精度计算;
所述主控模块用于对控制系统其它各模块,并执行卷积神经网络中包括数据输入预处理、计算层分类量化、卷积输出结果非线性映射、池化和数据变形优化操作;
所述数据存储模块用于存储输入特征和中间计算结果;
所述数据移动传输模块用于根据主控模块的指令,完成各模块间的数据传输;
所述计算层至少包括卷积层和全连接层中的一种;对第一层卷积层和最后一层全连接层采用多比特量化方式进行量化;对卷积层和全连接层中的其他层采用多值化量化方式进行量化;多值化量化为二值化量化或三值化量化中的一种,多比特量化为4比特量化、5比特量化、6比特量化、7比特量化和8比特量化中的一种或几种。
3.根据权利要求2所述的一种卷积神经网络量化计算系统,其特征在于,所述高算力计算模块、高精度计算模块均采用基于NOR FLASH存算一体化架构配置。
4.根据权利要求2所述的一种卷积神经网络量化计算系统,其特征在于,所述数据移动传输模块为DMA控制器,所述DMA控制器执行以下操作:
将多比特量化后的卷积层或全连接层映射至高精度计算模块进行计算,并将计算结果返回至数据存储单元储存;
将多值化量化后的卷积层或全连接层映射至高算力计算模块进行计算,并将计算结果返回至数据存储单元储存。
5.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1中所述的量化计算方法。
CN201911167437.3A 2019-11-25 2019-11-25 一种卷积神经网络量化计算方法及系统 Active CN110991608B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911167437.3A CN110991608B (zh) 2019-11-25 2019-11-25 一种卷积神经网络量化计算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911167437.3A CN110991608B (zh) 2019-11-25 2019-11-25 一种卷积神经网络量化计算方法及系统

Publications (2)

Publication Number Publication Date
CN110991608A CN110991608A (zh) 2020-04-10
CN110991608B true CN110991608B (zh) 2021-08-13

Family

ID=70086680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911167437.3A Active CN110991608B (zh) 2019-11-25 2019-11-25 一种卷积神经网络量化计算方法及系统

Country Status (1)

Country Link
CN (1) CN110991608B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113762494A (zh) * 2020-06-04 2021-12-07 合肥君正科技有限公司 一种通过权重预处理提高低比特神经网络模型精度的方法
CN112257844B (zh) * 2020-09-29 2022-04-26 浙江大学 一种基于混合精度配置的卷积神经网络加速器及其实现方法
CN112865804B (zh) * 2021-01-12 2023-10-10 东南大学 三值神经网络稀疏性权重的压缩计算单元
CN113222107A (zh) * 2021-03-09 2021-08-06 北京大学 数据处理方法、装置、设备及存储介质
CN113159276B (zh) * 2021-03-09 2024-04-16 北京大学 模型优化部署方法、系统、设备及存储介质
CN113138957A (zh) * 2021-03-29 2021-07-20 北京智芯微电子科技有限公司 用于神经网络推理的芯片及加速神经网络推理的方法
CN113672854B (zh) * 2021-08-25 2024-02-06 恒烁半导体(合肥)股份有限公司 一种基于电流镜和存储单元的存内运算方法、装置及其应用

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480770A (zh) * 2017-07-27 2017-12-15 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN107636697A (zh) * 2015-05-08 2018-01-26 高通股份有限公司 基于浮点神经网络量化的定点神经网络
CN109740737A (zh) * 2018-12-30 2019-05-10 联想(北京)有限公司 卷积神经网络量化处理方法、装置及计算机设备
CN110414630A (zh) * 2019-08-12 2019-11-05 上海商汤临港智能科技有限公司 神经网络的训练方法、卷积计算的加速方法、装置及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108805270B (zh) * 2018-05-08 2021-02-12 华中科技大学 一种基于存储器的卷积神经网络系统
CN110378468B (zh) * 2019-07-08 2020-11-20 浙江大学 一种基于结构化剪枝和低比特量化的神经网络加速器
CN110475119A (zh) * 2019-08-12 2019-11-19 北京大学 基于flash存算阵列的图像压缩系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107636697A (zh) * 2015-05-08 2018-01-26 高通股份有限公司 基于浮点神经网络量化的定点神经网络
CN107480770A (zh) * 2017-07-27 2017-12-15 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN109740737A (zh) * 2018-12-30 2019-05-10 联想(北京)有限公司 卷积神经网络量化处理方法、装置及计算机设备
CN110414630A (zh) * 2019-08-12 2019-11-05 上海商汤临港智能科技有限公司 神经网络的训练方法、卷积计算的加速方法、装置及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Neural networks with few multiplications;Lin Z 等;《arXiv》;20160226;第1229-1239页 *
深度神经网络模型压缩综述;高晗 等;《工程科学学报》;20191031;第41卷(第10期);第1-9页 *

Also Published As

Publication number Publication date
CN110991608A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN110991608B (zh) 一种卷积神经网络量化计算方法及系统
US20210357736A1 (en) Deep neural network hardware accelerator based on power exponential quantization
CN107169563B (zh) 应用于二值权重卷积网络的处理系统及方法
CN110780923B (zh) 应用于二值化卷积神经网络的硬件加速器及其数据处理方法
CN107423816B (zh) 一种多计算精度神经网络处理方法和系统
US10643126B2 (en) Systems, methods and devices for data quantization
CN112329910B (zh) 一种面向结构剪枝结合量化的深度卷积神经网络压缩方法
CN111193511A (zh) 一种应用于基于eFlash存算一体电路的数模混合读取电路的设计
CN113361695B (zh) 卷积神经网络加速器
KR20240025523A (ko) 깊이별 CNN(convolutional neural network)을 지원하는 CIM(computation in memory) 아키텍처 및 데이터 흐름
Xiang et al. Analog deep neural network based on NOR flash computing array for high speed/energy efficiency computation
CN111860773B (zh) 处理装置和用于信息处理的方法
CN111582451A (zh) 图像识别层间并行流水线型二值化卷积神经网络阵列架构
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN113762493A (zh) 神经网络模型的压缩方法、装置、加速单元和计算系统
CN114970853A (zh) 一种跨范围量化的卷积神经网络压缩方法
CN112561049A (zh) 一种基于忆阻器的dnn加速器的资源分配方法及装置
CN113988279A (zh) 一种支持负值激励的存算阵列输出电流读出方法及系统
WO2023279004A1 (en) Computation in memory architecture for depth-wise convolution
CN115204364A (zh) 一种缓存空间动态分配的卷积神经网络硬件加速装置
CN113326914A (zh) 神经网络计算方法和神经网络计算装置
CN115995259A (zh) 存算一体的数据处理方法及存算一体的电路系统
CN114819120B (zh) 一种基于pynq平台的神经网络通用加速处理方法
JP2024525332A (ja) 深さ方向畳み込みニューラルネットワーク(cnn)をサポートするメモリ内計算(cim)アーキテクチャ及びデータフロー
JP2024525333A (ja) 深さ方向畳み込みのためのメモリ内計算アーキテクチャ

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
CB02 Change of applicant information

Address after: 230000 building 11, alumni enterprise innovation park, Luyang University of science and technology, northwest of the intersection of Tianshui road and Taihe Road, Luyang District, Hefei City, Anhui Province

Applicant after: Hengshuo semiconductor (Hefei) Co.,Ltd.

Address before: 230000 building 11, alumni Innovation Park, Luyang University of science and technology, northwest of the intersection of Tianshui road and Taihe Road, Luyang District, Hefei City, Anhui Province

Applicant before: ZBIT SEMICONDUCTOR Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant