CN115311506B - 基于阻变存储器的量化因子优化的图像分类方法及装置 - Google Patents

基于阻变存储器的量化因子优化的图像分类方法及装置 Download PDF

Info

Publication number
CN115311506B
CN115311506B CN202211238897.2A CN202211238897A CN115311506B CN 115311506 B CN115311506 B CN 115311506B CN 202211238897 A CN202211238897 A CN 202211238897A CN 115311506 B CN115311506 B CN 115311506B
Authority
CN
China
Prior art keywords
quantization
layer
neural network
value
random access
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
CN202211238897.2A
Other languages
English (en)
Other versions
CN115311506A (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202211238897.2A priority Critical patent/CN115311506B/zh
Publication of CN115311506A publication Critical patent/CN115311506A/zh
Application granted granted Critical
Publication of CN115311506B publication Critical patent/CN115311506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了基于阻变存储器的量化因子优化的图像分类方法及装置,分别构建基于阻变存储器的浮点神经网络模型及与其对应的基于阻变存储器的神经网络量化模型,通过一种新的量化因子优化损失函数结合分类损失函数,对神经网络量化模型进行训练,并且与阻变存储器的特性结合,通过迭代优化使图像分类神经网络模型学习到的量化因子尽可能的接近2的幂次方,在推理阶段,将量化后的值映射到阻变存储器阵列的电压值和电导值,并对输出电流进行移位操作,得到卷积层输出量化后的值,最终得到基于阻变存储器的神经网络量化模型的图像分类结果,由于每层的量化因子通过基于阻变存储器的神经网络模型学习得到,能够加快模型的推理速度。

Description

基于阻变存储器的量化因子优化的图像分类方法及装置
技术领域
本发明涉及阻变存储器、神经网络加速器和图像分类技术领域,尤其是涉及基于阻变存储器的量化因子优化的图像分类方法及装置。
背景技术
随着深度学习的快速发展,神经网络技术已经广泛应用于图像识别、语音识别、自然语言处理等多种领域。神经网络的应用通常部署在边缘设备端。传统的芯片架构中,内存和计算分离,计算单元要先从内存中读取数据,计算完成后再存回内存。然而面对神经网络高并发的需求,传统的芯片架构需要频繁的搬运数据,会导致巨大的功耗和计算瓶颈。
ReRAM(Resistive random-access memory,阻变存储器)具有低功耗,结构简单,工作速度快以及阻值可控可变等优点,同时可以实现逻辑运算,矩阵乘法等多种运算形式。利用ReRAM存算一体的特性可以减少数据的搬运,降低存储的需求。因此,ReRAM有很大的潜力可以解决传统芯片架构所带来的问题。近年来,基于ReRAM的神经网络加速器,为图像分类模型的神经网络进行的推理,提供了一种有效的解决方案。
虽然ReRAM对于实现神经网络的推理有很大的优势,但是在实现的过程中需要对基于神经网络的图像分类模型进行压缩,这会导致精度的损失。合理有效的量化方法在精度损失较低的情况下,可以减少数据的存储空间,提高计算的速度。由于ReRAM器件的电导范围有限,需要有限的bit位宽来存储神经网络的权重,由于ADC的精度有限,因此网络当前层的输出位宽有限。然而在进行卷积算子操作后会超出当前层的输出位宽,因此在进行卷积算子操作后需要通过移位来做截断操作,以保证用有限的位宽来存储当前层的输出值。如果未对量化因子进行优化,会降低神经网络对于图像识别的精度。目前的量化方法通常采用两种方法来计算量化因子:第一种量化方法,通过统计最大最小值的方法计算量化因子,该方法的缺点在于,在推理阶段,量化因子的计算需要通过统计浮点值的最大最小值来获取,该操作会降低模型的推理速度。另一种量化方法,量化因子直接采用量化后的最大值,该方法的缺点在于,在量化的过程中,需要将浮点值先归一化到0到1的范围,该操作在ReRAM上无法实现,需要在PC端来计算,同样会降低模型的推理速度。且两种量化方法在8bit推理精度上均有损失。现有的基于ReRAM的量化方法对于量化因子没有进行更好的优化,导致模型的推理速度较低,量化精度有所损失。
发明内容
为解决现有技术的不足,通过移位截断处理,避免图像分类神经网络中的层输出超出存储位宽,同时通过优化量化因子,降低了图像分类模型在ReRAM上推理时,由于移位操作所带来的精度的损失,提升图像分类模型推理速度,本发明采用如下的技术方案:
基于阻变存储器的量化因子优化的图像分类方法,包括如下步骤:
步骤S1:构建基于阻变存储器的浮点神经网络模型,包括输入层、卷积层,通过训练集图像进行浮点神经网络模型预训练,得到预训练的浮点神经网络模型参数;
步骤S2:构建基于阻变存储器的神经网络量化模型,为浮点神经网络模型的相应层,构建对应的量化层和反量化层;
步骤S3:将训练集图像输入基于阻变存储器的神经网络量化模型中,进行量化感知训练精调,并加载预训练的浮点神经网络模型参数,进行量化感知训练,得到的量化感知训练后的基于阻变存储器的神经网络量化模型,包括浮点神经网络模型相应层的量化因子以及量化感知训练后的神经网络量化模型参数;神经网络量化模型的总损失函数包括分类损失函数和量化因子优化损失函数;
步骤S4:将量化感知训练后的基于阻变存储器的神经网络量化模型,映射到阻变存储器忆阻器上,输入测试集图像,进行前向推理测试,其中输入层推理阶段量化后的值映射为阻变存储器阵列的电压值,卷积层量化后的卷积核映射为阻变存储器阵列的电导值,对通过电压值与电导值得到的输出电流进行移位操作,得到卷积层输出量化后的值,最终得到基于阻变存储器的神经网络量化模型的图像分类结果。
进一步地,所述步骤S3中的量化因子优化损失函数如下:
Figure 117151DEST_PATH_IMAGE001
其中
Figure 384184DEST_PATH_IMAGE002
表示取绝对值操作,
Figure 645401DEST_PATH_IMAGE003
表示神经网络量化模型当前层数,
Figure 48701DEST_PATH_IMAGE004
表示第
Figure 120693DEST_PATH_IMAGE003
层量化因子的符号函数,
Figure 937340DEST_PATH_IMAGE005
表示神经网络量化模型的总层数,
Figure 674351DEST_PATH_IMAGE006
目的是优化网络学习的 量化因子,减少学习到的量化因子与之最接近的2的幂次方的误差。
进一步地,所述基于阻变存储器的浮点神经网络模型还包括激活层和全连接层,所述步骤S3的量化感知训练包括如下步骤:
步骤S3-1:对输入层通过输入量化层进行量化操作,得到量化以后的输入值
Figure 509321DEST_PATH_IMAGE007
,然 后再通过输入反量化层进行反量化操作,得到反量化以后的输入值
Figure 939165DEST_PATH_IMAGE008
Figure 977529DEST_PATH_IMAGE009
步骤S3-2:与步骤3-1同理,通过第一卷积量化层进行量化操作,得到量化以后的 卷积核
Figure 331281DEST_PATH_IMAGE010
,通过第一卷积反量化层进行反量化操作,得到反量化以后的卷积核
Figure 974752DEST_PATH_IMAGE011
步骤S3-3:将反量化以后的输入值
Figure 372235DEST_PATH_IMAGE008
与反量化以后的卷积核
Figure 101157DEST_PATH_IMAGE011
进行卷积操作,得 到卷积输出值
Figure 491555DEST_PATH_IMAGE012
Figure 989533DEST_PATH_IMAGE013
步骤S3-4:与步骤3-1和3-2同理,将
Figure 557917DEST_PATH_IMAGE012
通过第一激活量化层进行量化操作,得到 量化以后的激活值
Figure 587184DEST_PATH_IMAGE014
,通过第一激活反量化层进行反量化操作,然后再通过ReLU激活函数 得到反量化以后的激活值
Figure 469690DEST_PATH_IMAGE015
以此类推,得到全连接层的浮点值,然后通过softmax分类器得到网络的输出,通过量化因子优化损失函数更新网络参数和每层的量化因子,直至网络收敛,最后得到量化感知训练后的基于阻变存储器的神经网络量化模型。
总损失函数
Figure 884491DEST_PATH_IMAGE016
通过结合分类损失函数
Figure 827039DEST_PATH_IMAGE017
和量化因子优化损失函数
Figure 576558DEST_PATH_IMAGE006
,训 练神经网络量化模型:
Figure 59492DEST_PATH_IMAGE018
其中
Figure 532062DEST_PATH_IMAGE019
为超参数,表示
Figure 192981DEST_PATH_IMAGE006
Figure 118212DEST_PATH_IMAGE016
的权重,可调节,用于平衡
Figure 404837DEST_PATH_IMAGE017
Figure 43497DEST_PATH_IMAGE006
, 加快网络收敛,
Figure 327848DEST_PATH_IMAGE016
表示图像分类神经网络模型的总损失函数,通过优化总损失函数,更新 神经网络模型的权重参数和量化因子,直至网络收敛。
进一步地,所述步骤S3-1中量化操作如下:
Figure 802692DEST_PATH_IMAGE020
其中
Figure 565111DEST_PATH_IMAGE021
表示输入层的浮点值,
Figure 559743DEST_PATH_IMAGE022
表示四舍五入,
Figure 14995DEST_PATH_IMAGE023
表示截断操作,
Figure 977135DEST_PATH_IMAGE024
表示量化后的最小值,
Figure 543246DEST_PATH_IMAGE025
表示量化后的最大值,
Figure 890919DEST_PATH_IMAGE026
表示输入层待训练的浮点值的量化因子, 由神经网络模型通过优化损失函数得到。
进一步地,所述步骤S4的映射及前向推理测试过程如下:
首先将测试集图像作为基于阻变存储器的神经网络量化模型的输入,将输入层、第一卷积量化层、第一激活量化层进行量化,量化方法如下:
Figure 579390DEST_PATH_IMAGE027
其中
Figure 966509DEST_PATH_IMAGE021
表示输入层的浮点值,
Figure 883780DEST_PATH_IMAGE028
表示第一卷积量化层卷积核的浮点值,
Figure 102272DEST_PATH_IMAGE029
表示第一 激活量化层的输入浮点值,
Figure 210911DEST_PATH_IMAGE030
表示神经网络量化模型训练好的输入层的量化因子,
Figure 819747DEST_PATH_IMAGE031
表示 神经网络量化模型训练好的第一卷积量化层的量化因子,
Figure 55556DEST_PATH_IMAGE032
表示神经网络量化模型训练好 的第一激活量化层的量化因子,
Figure 879287DEST_PATH_IMAGE033
表示输入层在推理阶段量化后的值,然后将
Figure 847243DEST_PATH_IMAGE034
映射为电 压值,将网络学习到的第一卷积量化层的卷积核进行量化,得到量化后的卷积核
Figure 5692DEST_PATH_IMAGE035
,然后将
Figure 763301DEST_PATH_IMAGE035
映射为基于阻变存储器阵列的电导值,输出的电流为卷积操作后的值
Figure 894068DEST_PATH_IMAGE036
,其次将电 流值进行移位操作,得到卷积层输出量化后的值
Figure 95242DEST_PATH_IMAGE037
,然后通过最大池化操作得到池化后的 值;以此类推,得到全连接层的量化值,将全连接层量化值的最大值的索引作为神经网络量 化模型预测的图像类别。
进一步地,所述步骤S3中的分类损失函数:
Figure 678670DEST_PATH_IMAGE038
Figure 741436DEST_PATH_IMAGE039
其中
Figure 726709DEST_PATH_IMAGE040
表示输入图像经过神经网络模型最后一层第i个节点的输出值,C表示输出 节点的个数,即分类的类别数,
Figure 98785DEST_PATH_IMAGE041
表示输入经过softmax分类器后的输出值,
Figure 169509DEST_PATH_IMAGE042
表 示输入图像的真实标签值,
Figure 534500DEST_PATH_IMAGE017
表示交叉熵损失,目的是减小网络输出与人工标记的正确 类别之间的误差。
进一步地,所述步骤S1构建基于阻变存储器的浮点神经网络模型前,先构建图像训练集和图像测试集,首先对图像数据集进行归一化操作,将图像的像素值归一化到0-1之间,得到归一化后的图像;然后通过归一化后的图像构建图像训练集和图像测试集。
进一步地,所述浮点神经网络模型包括依次连接的输入层、一组卷积模块、全连接层和激活层,卷积模块包括卷积层、激活层和池化层;
相应的所述神经网络量化模型包括依次连接的输入层、输入量化层、输入反量化层、一组卷积量化模块、全连接量化层、全连接反量化层和激活层,卷积量化模块包括卷积量化层、卷积反量化层、激活量化层、激活反量化层和池化层。
基于阻变存储器的量化因子优化方法,所述方法包括:
构建基于阻变存储器的神经网络量化模型,为浮点神经网络模型的相应层,构建对应的量化层和反量化层;
将训练集图像输入基于阻变存储器的神经网络量化模型中,进行量化感知训练精调,并加载预训练的浮点神经网络模型参数,进行量化感知训练,得到的量化感知训练后的基于阻变存储器的神经网络量化模型,包括浮点神经网络模型相应层的量化因子以及量化感知训练后的神经网络量化模型参数;神经网络量化模型的总损失函数包括基于图像预测类别和图像真实类别的分类损失函数,以及量化因子优化损失函数。
基于阻变存储器的量化因子优化的图像分类装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现所述的基于阻变存储器的量化因子优化的图像分类方法。
本发明的优势和有益效果在于:
本发明提出的基于阻变存储器的量化因子优化的图像分类方法及装置,由于ReRAM器件电导范围有限和ADC精度有限的特性,在对神经网络模型进行量化时,对超出量化位宽的数据进行移位截断处理,并通过一种新的损失函数结合ReRAM器件电导范围有限和ADC精度有限的特性,通过迭代优化神经网络模型学习到的量化因子,使其尽可能的接近2的幂次方,降低了模型在ReRAM上推理由于移位操作所带来的精度损失。同时,由于在推理阶段,量化因子的计算可以通过网络学习得到,不需要通过统计浮点值的最大最小值来计算,因此在8bit量化精度无损的情况下,大大提升了模型的推理速度。
附图说明
图1是本发明实施例中方法的流程图。
图2是本发明实施例中输入图像的部分示例图。
图3是本发明实施例中ReRAM交叉阵列的结构示意图。
图4是浮点模型与本发明实施例的8 bit量化、4 bit量化对测试集的分类精度对比图。
图5是本发明实施例中装置的结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
如图1所示,基于阻变存储器的量化因子优化的图像分类方法,首先对图像数据集进行归一化操作,将图像的像素值归一化到0-1之间,得到归一化后的图像;然后通过归一化后的图像构建图像训练集和图像测试集;
本发明实施例中,采用fashion mnist图像数据集,如图2所示是输入图像的部分示例图,图像数据集一共有50000个训练样本图像,10000个测试样本图像,每个样本图像是尺寸为28*28的灰度图,图像数据集一共有10类,分别是T恤,裤子,套衫,连衣裙,上衣,凉鞋,衬衫,运动鞋,书包,短靴。
图像分类方法,包括如下步骤:
步骤S1:构建基于ReRAM的浮点神经网络模型,通过训练集图像进行浮点神经网络模型预训练,得到预训练的浮点神经网络模型参数;
浮点神经网络模型结构为:输入层→第一卷积层→第一激活层→池化层→第二卷积层→第二激活层→池化层→全连接层→softmax层。
本发明实施例中,每一层权重参数的尺寸设置如下:
输入层的尺寸大小为
Figure 436597DEST_PATH_IMAGE043
第一卷积层,卷积核参数的尺寸为
Figure 917257DEST_PATH_IMAGE044
,步长为1;
第二卷积层,卷积核参数的尺寸为
Figure 22747DEST_PATH_IMAGE045
,步长为1;
全连接层,全连接参数的尺寸为
Figure 879845DEST_PATH_IMAGE046
步骤S2:构建基于ReRAM的神经网络量化模型,为浮点神经网络模型的相应层,构建对应的量化和反量化层;
神经网络量化模型结构为:输入层→输入量化层→输入反量化层→第一卷积量化层→第一卷积反量化层→第一激活量化层→第一激活反量化层→池化层→第二卷积量化层→第二卷积反量化层→第二激活量化层→第二激活反量化层→池化层→全连接量化层→全连接反量化层→softmax层。
本发明实施例中,每一层权重参数的尺寸设置如下:
输入层的尺寸大小为
Figure 636448DEST_PATH_IMAGE043
第一卷积量化层,卷积核参数的尺寸为
Figure 288009DEST_PATH_IMAGE044
,步长为1;
第二卷积量化层,卷积核参数的尺寸为
Figure 644910DEST_PATH_IMAGE045
,步长为1;
全连接量化层,全连接参数的尺寸为
Figure 102436DEST_PATH_IMAGE046
步骤S3:将训练集图像输入基于ReRAM的神经网络量化模型中,进行量化感知训练精调,并加载预训练的浮点神经网络模型参数,进行量化感知训练,得到的量化感知训练后的基于ReRAM的神经网络量化模型,包括浮点神经网络模型相应层的量化因子以及量化感知训练后的神经网络量化模型参数;
本实施实例的量化位宽为8 bit、4 bit,对于8 bit量化,输入量化到[0,255],每层的权重参数量化到[-128, 127];对于4 bit量化,输入量化到[0,15],每层的权重参数量化到[-8,7]。
量化感知训练包括如下步骤:
步骤S3-1:对输入层通过输入量化层进行量化操作,得到量化以后的输入值
Figure 651229DEST_PATH_IMAGE007
,如 公式(1)所示:
Figure 552320DEST_PATH_IMAGE047
(1)
其中
Figure 819354DEST_PATH_IMAGE021
表示输入层的浮点值,
Figure 814991DEST_PATH_IMAGE022
表示四舍五入,
Figure 483870DEST_PATH_IMAGE023
表示截断操作,
Figure 77835DEST_PATH_IMAGE024
表示量化后的最小值,
Figure 566585DEST_PATH_IMAGE025
表示量化后的最大值,
Figure 631493DEST_PATH_IMAGE026
表示输入层待训练的浮点值的量化因子, 由神经网络模型通过优化损失函数得到;
然后再通过输入反量化层进行反量化操作,得到反量化以后的输入值
Figure 967928DEST_PATH_IMAGE008
,如公式 (2)所示:
Figure 132193DEST_PATH_IMAGE048
(2)
损失函数如公式(3)、公式(4)、公式(5)、公式(6)所示:
Figure 436135DEST_PATH_IMAGE049
(3)
其中
Figure 976838DEST_PATH_IMAGE040
表示输入图像经过神经网络模型最后一层第i个节点的输出值,C表示输出 节点的个数,即分类的类别数,
Figure 666314DEST_PATH_IMAGE041
表示输入经过softmax分类器后的输出值;
Figure 267060DEST_PATH_IMAGE050
(4)
其中
Figure 792719DEST_PATH_IMAGE052
表示输入图像的真实标签值,
Figure 137113DEST_PATH_IMAGE017
表示交叉熵损失,目的是减小网络输出 与人工标记的正确类别之间的误差。
Figure 448140DEST_PATH_IMAGE053
(5)
其中
Figure 16524DEST_PATH_IMAGE002
表示取绝对值操作,
Figure 232742DEST_PATH_IMAGE003
表示神经网络量化模型当前层数,
Figure 426832DEST_PATH_IMAGE004
表示第
Figure 779316DEST_PATH_IMAGE003
层量化因子的符号函数,
Figure 518602DEST_PATH_IMAGE005
表示神经网络量化模型的总层数,
Figure 769585DEST_PATH_IMAGE006
目的是优化网络学习的 量化因子,减少学习到的量化因子与之最接近的2的幂次方的误差;
Figure 455782DEST_PATH_IMAGE054
(6)
其中
Figure 725089DEST_PATH_IMAGE019
为超参数,表示
Figure 838539DEST_PATH_IMAGE006
Figure 75354DEST_PATH_IMAGE016
的权重,可调节,用于平衡
Figure 299662DEST_PATH_IMAGE017
Figure 689055DEST_PATH_IMAGE006
, 加快网络收敛,
Figure 786455DEST_PATH_IMAGE016
表示图像分类神经网络模型的总损失函数,通过优化总损失函数,更新 神经网络模型的权重参数和量化因子,直至网络收敛。
步骤S3-2:与步骤3-1同理,通过第一卷积量化层进行量化操作,与公式(1)类似, 得到量化以后的卷积核
Figure 933402DEST_PATH_IMAGE010
,通过第一卷积反量化层进行反量化操作,与公式(2)类似,得到 反量化以后的卷积核
Figure 23718DEST_PATH_IMAGE011
步骤S3-3:将反量化以后的输入值
Figure 205301DEST_PATH_IMAGE008
与反量化以后的卷积核
Figure 972137DEST_PATH_IMAGE011
进行卷积操作,得 到卷积输出值
Figure 871960DEST_PATH_IMAGE012
,如公式(7)所示;
Figure 500388DEST_PATH_IMAGE055
(7)
步骤S3-4:与步骤3-1和3-2同理,将
Figure 536477DEST_PATH_IMAGE012
通过第一激活量化层进行量化操作,与公 式(1)类似,得到量化以后的激活值
Figure 975680DEST_PATH_IMAGE014
,通过第一激活反量化层进行反量化操作,与公式(2) 类似,然后再通过ReLU激活函数得到反量化以后的激活值
Figure 159536DEST_PATH_IMAGE015
以此类推,得到全连接层的浮点值,然后通过softmax分类器得到网络的输出,通过优化损失函数更新网络参数和每层的量化因子,直至网络收敛。最后得到量化感知训练后的基于ReRAM的神经网络量化模型。
步骤S4:将量化感知训练后的基于ReRAM的神经网络量化模型,映射到ReRAM忆阻器上,输入测试集图像,进行前向推理测试;
如图3所示,本发明实施例中,ReRAM构成的阵列中,V表示电压值,G表示电导值,I表示电流值。
映射及前向推理测试过程如下:
首先将测试集图像作为基于ReRAM的神经网络量化模型的输入,将输入层、第一卷积量化层、第一激活量化层进行量化,量化方法如公式(8)至公式(12)所示:
Figure 529338DEST_PATH_IMAGE056
(8)
Figure 997097DEST_PATH_IMAGE057
(9)
Figure 794152DEST_PATH_IMAGE058
(10)
Figure 465304DEST_PATH_IMAGE059
(11)
Figure 186267DEST_PATH_IMAGE027
(12)
其中
Figure 196948DEST_PATH_IMAGE021
表示输入层的浮点值,
Figure 227221DEST_PATH_IMAGE028
表示第一卷积量化层卷积核的浮点值,
Figure 323353DEST_PATH_IMAGE029
表示第一 激活量化层的输入浮点值,
Figure 346542DEST_PATH_IMAGE030
表示神经网络量化模型训练好的输入层的量化因子,
Figure 477309DEST_PATH_IMAGE031
表示 神经网络量化模型训练好的第一卷积量化层的量化因子,
Figure 678483DEST_PATH_IMAGE032
表示神经网络量化模型训练好 的第一激活量化层的量化因子,如公式(8)所示,
Figure 809381DEST_PATH_IMAGE034
表示输入层在推理阶段量化后的值,然 后将
Figure 324676DEST_PATH_IMAGE034
映射为电压值,按公式(9)将网络学习到的第一卷积量化层的卷积核进行量化,得到 量化后的卷积核
Figure 372266DEST_PATH_IMAGE035
,然后将
Figure 682025DEST_PATH_IMAGE035
映射为基于ReRAM阵列的电导值,通过公式(8)至公式(11)推 出公式(12),公式(12)中输出的电流为卷积操作后的值
Figure 798755DEST_PATH_IMAGE036
,其次将电流值进行移位操 作,得到卷积层输出量化后的值
Figure 852161DEST_PATH_IMAGE037
,然后通过最大池化操作得到池化后的值;以此类推,得 到全连接层的量化值,将全连接层量化值的最大值的索引作为神经网络量化模型预测的图 像类别。其中池化层和全连接层用软件来实现。
下面结合仿真实验对本发明的效果做进一步的说明:
1、仿真条件:
本发明的仿真实验是在NVIDIA GV100的硬件环境和Pytorch1.5的软件环境下进行的。
2、仿真内容与结果分析:
对于fashion minist数据集的分类问题。如图4所示的直方图中,对于每一类测试集,柱状图从左到右依次表示用浮点精度的模型对测试集进行前向推理的分类结果,本发明用8 bit量化模型对测试集进行前向推理的分类结果,本发明用4 bit量化模型对测试集进行前向推理的分类结果。从图4中可以看出,对于8 bit量化,有4类样本测试集使用本发明8 bit量化的测试精度均明显高于浮点模型对测试集进行测试的精度。对于4 bit量化,使用本发明4 bit量化的测试精度均低于浮点模型对测试集进行测试的精度。但是推理速度比8 bit量化的推理速度快一倍左右。表1是浮点模型与本发明实施例的8 bit量化、4bit量化对测试集平均分类精度的对比表,展示了三者分别对测试集的平均识别精度:
表1 分类精度的对比表
Figure 754258DEST_PATH_IMAGE060
可以看出,本发明的8 bit量化的平均测试精度比浮点模型的平均测试精度高1%,4 bit量化的平均测试精度比浮点模型的平均测试精度低3%。
综上所述,本发明提出的基于阻变存储器的量化因子优化的图像分类方法,结合了ReRAM的特性,提出了一种新的损失函数,通过迭代优化使神经网络模型学习到的量化因子尽可能的接近2的幂次方。对于fashion mnist数据集分类,在推理阶段,与浮点精度相比,8 bit量化精度提高1个百分点,4 bit量化精度降低3个百分点。
与前述基于阻变存储器的量化因子优化的图像分类方法的实施例相对应,本发明还提供了基于阻变存储器的量化因子优化的图像分类装置的实施例。
参见图5,本发明实施例提供的基于阻变存储器的量化因子优化的图像分类装置,包括存储器和一个或多个处理器,存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的基于阻变存储器的量化因子优化的图像分类方法。
本发明基于阻变存储器的量化因子优化的图像分类装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明基于阻变存储器的量化因子优化的图像分类装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于阻变存储器的量化因子优化的图像分类方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

Claims (8)

1.基于阻变存储器的量化因子优化的图像分类方法,其特征在于包括如下步骤:
步骤S1:构建基于阻变存储器的浮点神经网络模型,包括输入层、卷积层,通过训练集图像进行浮点神经网络模型预训练,得到预训练的浮点神经网络模型参数;
步骤S2:构建基于阻变存储器的神经网络量化模型,为浮点神经网络模型的相应层,构建对应的量化层和反量化层;
步骤S3:将训练集图像输入基于阻变存储器的神经网络量化模型中,并加载预训练的浮点神经网络模型参数,进行量化感知训练,得到的量化感知训练后的基于阻变存储器的神经网络量化模型,包括浮点神经网络模型相应层的量化因子以及量化感知训练后的神经网络量化模型参数;神经网络量化模型的总损失函数包括分类损失函数和量化因子优化损失函数;量化因子优化损失函数如下:
Figure DEST_PATH_IMAGE001
其中
Figure DEST_PATH_IMAGE002
表示取绝对值操作,
Figure DEST_PATH_IMAGE003
表示神经网络量化模型当前层数,
Figure DEST_PATH_IMAGE004
表示第
Figure 41714DEST_PATH_IMAGE003
层量 化因子的符号函数,
Figure DEST_PATH_IMAGE005
表示神经网络量化模型的总层数;
步骤S4:将量化感知训练后的基于阻变存储器的神经网络量化模型,映射到阻变存储器忆阻器上,输入测试集图像,进行前向推理测试,其中输入层推理阶段量化后的值映射为阻变存储器阵列的电压值,卷积层量化后的卷积核映射为阻变存储器阵列的电导值,对通过电压值与电导值得到的输出电流进行移位操作,得到卷积层输出量化后的值,最终得到基于阻变存储器的神经网络量化模型的图像分类结果。
2.根据权利要求1所述的基于阻变存储器的量化因子优化的图像分类方法,其特征在于:所述基于阻变存储器的浮点神经网络模型还包括激活层和全连接层,所述步骤S3的量化感知训练包括如下步骤:
步骤S3-1:对输入层通过输入量化层进行量化操作,得到量化以后的输入值
Figure DEST_PATH_IMAGE006
,然后再 通过输入反量化层进行反量化操作,得到反量化以后的输入值
Figure DEST_PATH_IMAGE007
步骤S3-2:通过第一卷积量化层进行量化操作,得到量化以后的卷积核
Figure DEST_PATH_IMAGE008
,通过第一卷 积反量化层进行反量化操作,得到反量化以后的卷积核
Figure DEST_PATH_IMAGE009
步骤S3-3:将反量化以后的输入值
Figure 869774DEST_PATH_IMAGE007
与反量化以后的卷积核
Figure 180669DEST_PATH_IMAGE009
进行卷积操作,得到卷 积输出值
Figure DEST_PATH_IMAGE010
步骤S3-4:将
Figure 169354DEST_PATH_IMAGE010
通过第一激活量化层进行量化操作,得到量化以后的激活值
Figure DEST_PATH_IMAGE011
,通过 第一激活反量化层进行反量化操作,然后再通过ReLU激活函数得到反量化以后的激活值
Figure DEST_PATH_IMAGE012
以此类推,得到全连接层的浮点值,然后通过softmax分类器得到网络的输出,通过量化因子优化损失函数更新网络参数和每层的量化因子,直至网络收敛,最后得到量化感知训练后的基于阻变存储器的神经网络量化模型;
总损失函数
Figure DEST_PATH_IMAGE013
通过结合分类损失函数
Figure DEST_PATH_IMAGE014
和量化因子优化损失函数
Figure DEST_PATH_IMAGE015
,训练神 经网络量化模型,更新神经网络模型的权重参数和量化因子,直至网络收敛。
3.根据权利要求2所述的基于阻变存储器的量化因子优化的图像分类方法,其特征在于:所述步骤S3-1中量化操作如下:
Figure DEST_PATH_IMAGE016
其中
Figure DEST_PATH_IMAGE017
表示输入层的浮点值,
Figure DEST_PATH_IMAGE018
表示四舍五入,
Figure DEST_PATH_IMAGE019
表示截断操作,
Figure DEST_PATH_IMAGE021
表示 量化后的最小值,
Figure DEST_PATH_IMAGE022
表示量化后的最大值,
Figure DEST_PATH_IMAGE023
表示输入层待训练的浮点值的量化因子,由神 经网络模型通过优化损失函数得到。
4.根据权利要求2所述的基于阻变存储器的量化因子优化的图像分类方法,其特征在于:所述步骤S4的映射及前向推理测试过程如下:
首先将测试集图像作为基于阻变存储器的神经网络量化模型的输入,将输入层、第一卷积量化层、第一激活量化层进行量化,量化方法如下:
Figure DEST_PATH_IMAGE024
其中
Figure 780464DEST_PATH_IMAGE017
表示输入层的浮点值,
Figure DEST_PATH_IMAGE025
表示第一卷积量化层卷积核的浮点值,
Figure DEST_PATH_IMAGE026
表示第一激活 量化层的输入浮点值,
Figure DEST_PATH_IMAGE027
表示神经网络量化模型训练好的输入层的量化因子,
Figure DEST_PATH_IMAGE028
表示神经 网络量化模型训练好的第一卷积量化层的量化因子,
Figure DEST_PATH_IMAGE029
表示神经网络量化模型训练好的第 一激活量化层的量化因子,
Figure DEST_PATH_IMAGE030
表示输入层在推理阶段量化后的值,然后将
Figure DEST_PATH_IMAGE031
映射为电压值, 将网络学习到的第一卷积量化层的卷积核进行量化,得到量化后的卷积核
Figure DEST_PATH_IMAGE032
,然后将
Figure 24099DEST_PATH_IMAGE032
映 射为基于阻变存储器阵列的电导值,输出的电流为卷积操作后的值
Figure DEST_PATH_IMAGE033
,其次将电流值 进行移位操作,得到卷积层输出量化后的值
Figure DEST_PATH_IMAGE034
,然后通过最大池化操作得到池化后的值;以 此类推,得到全连接层的量化值,将全连接层量化值的最大值的索引作为神经网络量化模 型预测的图像类别。
5.根据权利要求1所述的基于阻变存储器的量化因子优化的图像分类方法,其特征在于:所述步骤S3中的分类损失函数:
Figure DEST_PATH_IMAGE035
Figure DEST_PATH_IMAGE036
其中
Figure DEST_PATH_IMAGE037
表示输入图像经过神经网络模型最后一层第i个节点的输出值,C表示输出节点 的个数,即分类的类别数,
Figure DEST_PATH_IMAGE038
表示输入经过softmax分类器后的输出值,
Figure DEST_PATH_IMAGE039
表示输 入图像的真实标签值,
Figure 573023DEST_PATH_IMAGE014
表示交叉熵损失。
6.根据权利要求1所述的基于阻变存储器的量化因子优化的图像分类方法,其特征在于:所述步骤S1构建基于阻变存储器的浮点神经网络模型前,先构建图像训练集和图像测试集,首先对图像数据集进行归一化操作,将图像的像素值归一化到0-1之间,得到归一化后的图像;然后通过归一化后的图像构建图像训练集和图像测试集。
7.根据权利要求1所述的基于阻变存储器的量化因子优化的图像分类方法,其特征在于:所述浮点神经网络模型包括依次连接的输入层、一组卷积模块、全连接层和激活层,卷积模块包括卷积层、激活层和池化层;
相应的所述神经网络量化模型包括依次连接的输入层、输入量化层、输入反量化层、一组卷积量化模块、全连接量化层、全连接反量化层和激活层,卷积量化模块包括卷积量化层、卷积反量化层、激活量化层、激活反量化层和池化层。
8.基于阻变存储器的量化因子优化的图像分类装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-7中任一项所述的基于阻变存储器的量化因子优化的图像分类方法。
CN202211238897.2A 2022-10-11 2022-10-11 基于阻变存储器的量化因子优化的图像分类方法及装置 Active CN115311506B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211238897.2A CN115311506B (zh) 2022-10-11 2022-10-11 基于阻变存储器的量化因子优化的图像分类方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211238897.2A CN115311506B (zh) 2022-10-11 2022-10-11 基于阻变存储器的量化因子优化的图像分类方法及装置

Publications (2)

Publication Number Publication Date
CN115311506A CN115311506A (zh) 2022-11-08
CN115311506B true CN115311506B (zh) 2023-03-28

Family

ID=83868328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211238897.2A Active CN115311506B (zh) 2022-10-11 2022-10-11 基于阻变存储器的量化因子优化的图像分类方法及装置

Country Status (1)

Country Link
CN (1) CN115311506B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115905546B (zh) * 2023-01-06 2023-07-14 之江实验室 基于阻变存储器的图卷积网络文献识别装置与方法
CN116561050A (zh) * 2023-04-07 2023-08-08 清华大学 面向rram存算一体芯片的细粒度映射方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190034985A (ko) * 2017-09-25 2019-04-03 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
US10540574B2 (en) * 2017-12-07 2020-01-21 Shanghai Cambricon Information Technology Co., Ltd Image compression method and related device
CN111971692A (zh) * 2018-04-30 2020-11-20 慧与发展有限责任合伙企业 卷积神经网络
US20210342678A1 (en) * 2018-07-19 2021-11-04 The Regents Of The University Of California Compute-in-memory architecture for neural networks
CN110874626B (zh) * 2018-09-03 2023-07-18 华为技术有限公司 一种量化方法及装置
CN111260048B (zh) * 2020-01-14 2023-09-01 上海交通大学 一种基于忆阻器的神经网络加速器中激活函数的实现方法
US11490083B2 (en) * 2020-02-05 2022-11-01 Qualcomm Incorporated Learned low-complexity adaptive quantization for video compression
CN113344170B (zh) * 2020-02-18 2023-04-25 杭州知存智能科技有限公司 神经网络权重矩阵调整方法、写入控制方法以及相关装置
WO2021246892A1 (en) * 2020-06-03 2021-12-09 Huawei Technologies Co., Ltd Method for training an artificial neural network comprising quantized parameters
US11544547B2 (en) * 2020-06-22 2023-01-03 Western Digital Technologies, Inc. Accelerating binary neural networks within latch structure of non-volatile memory devices
CN112070204B (zh) * 2020-07-24 2023-01-20 中国科学院计算技术研究所 一种基于阻变存储器的神经网络映射方法、加速器
IT202000018043A1 (it) * 2020-07-24 2022-01-24 St Microelectronics Srl Procedimenti e sistemi di elaborazione di rete neurale artificiale
CN112149797B (zh) * 2020-08-18 2023-01-03 Oppo(重庆)智能科技有限公司 神经网络结构优化方法和装置、电子设备
CN113052307B (zh) * 2021-03-16 2022-09-06 上海交通大学 一种面向忆阻器加速器的神经网络模型压缩方法及系统
CN114139683A (zh) * 2021-12-02 2022-03-04 之江实验室 一种神经网络加速器模型量化方法
CN114330688A (zh) * 2021-12-23 2022-04-12 厦门半导体工业技术研发有限公司 基于阻变式存储器的模型在线迁移训练方法、装置及芯片
CN114677548B (zh) * 2022-05-26 2022-10-14 之江实验室 基于阻变存储器的神经网络图像分类系统及方法

Also Published As

Publication number Publication date
CN115311506A (zh) 2022-11-08

Similar Documents

Publication Publication Date Title
CN115311506B (zh) 基于阻变存储器的量化因子优化的图像分类方法及装置
Zheng et al. PAC-Bayesian framework based drop-path method for 2D discriminative convolutional network pruning
Wang et al. Deep mixture of experts via shallow embedding
Tang et al. How to train a compact binary neural network with high accuracy?
CN107480261B (zh) 一种基于深度学习细粒度人脸图像快速检索方法
Han Efficient methods and hardware for deep learning
CN110413255B (zh) 人工神经网络调整方法和装置
CN114677548B (zh) 基于阻变存储器的神经网络图像分类系统及方法
CN111461322A (zh) 一种深度神经网络模型压缩方法
US20210382716A1 (en) Processing core with metadata actuated conditional graph execution
Moya Rueda et al. Neuron pruning for compressing deep networks using maxout architectures
CN115759237A (zh) 端到端的深度神经网络模型压缩及异构转换系统及方法
Yu et al. Toward faster and simpler matrix normalization via rank-1 update
WO2023124342A1 (zh) 一种针对图像分类的神经网络结构低成本自动搜索方法
CN115795065A (zh) 基于带权哈希码的多媒体数据跨模态检索方法及系统
Li et al. A compression pipeline for one-stage object detection model
Guan et al. Recursive binary neural network training model for efficient usage of on-chip memory
Zhang et al. Identification of stored grain pests by modified residual network
CN115905546B (zh) 基于阻变存储器的图卷积网络文献识别装置与方法
CN111611796A (zh) 下位词的上位词确定方法、装置、电子设备及存储介质
CN113378866B (zh) 图像分类方法、系统、存储介质及电子设备
US20220253709A1 (en) Compressing a Set of Coefficients for Subsequent Use in a Neural Network
Wu et al. A General Rank Preserving Framework for Asymmetric Image Retrieval
CN114595641A (zh) 组合优化问题的求解方法和系统
CN114861671A (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