基于阻变存储器的神经网络图像分类系统及方法与流程

文档序号:30557139发布日期:2022-06-29 03:02阅读:183来源:国知局
基于阻变存储器的神经网络图像分类系统及方法与流程

1.本发明涉及神经网络图像分类技术领域,尤其是涉及基于阻变存储器的神经网络图像分类系统及方法。


背景技术:

2.随着深度学习的快速发展,神经网络技术已经广泛应用于图像识别,语音识别,自然语言处理等多种领域。神经网络的应用通常部署在边缘设备端。传统的芯片架构中,内存和计算分离,计算单元要先从内存中读取数据,计算完成后再存回内存。然而面对神经网络高并发的需求,传统的芯片架构需要频繁的搬运数据,会导致巨大的功耗和计算瓶颈。
3.阻变存储器(reram),又称为忆阻器,具有低功耗、结构简单、工作速度快以及阻值可控可变等优点,同时忆阻器可以实现逻辑运算,矩阵乘法等多种运算形式。利用忆阻器存算一体的特性可以减少数据的搬运,降低存储的需求。因此,reram有很大的潜力可以解决传统芯片架构所带来的问题。近年来,基于忆阻器的神经网络加速器为神经网络的推理提供了一种有效的解决方案。
4.虽然reram对于实现神经网络的推理有很大的优势,但是在实现的过程中需要对神经网络模型进行压缩,这会导致图像识别精度的损失。合理有效的量化方法在精度损失较低的情况下,可以减少数据的存储空间,提高计算的速度。现有的主流深度学习平台如tensorflow、pytorch的神经网络量化算法,在卷积算子、全连接算子操作之后,数据会超出量化的位宽。因此需要缩放到量化的位宽,算法上需要乘以一个浮点小数来进行缩放,在硬件上需要通过左移和右移两个操作来近似算法上的缩放操作。然而由于reram器件的电导范围和每层输入的量化位宽有限,进行以上操作资源占用率高,操作复杂。


技术实现要素:

5.为解决现有技术的不足,基于器件和算法协同设计的思想,结合了reram器件的电导范围和每层输入的量化位宽有限的特性,通过设计约束条件来优化量化因子的位宽,使得量化因子采用最优的2的幂次方,且在卷积后进行缩放的操作过程中仅需要右移有限位数即可,实现操作简单,达到了既降低图像识别精度的损失,又提升图像识别的速度,降低资源占用率的目的,本发明采用如下的技术方案:一种基于阻变存储器的神经网络图像分类系统,包括依次连接的输入层、一组卷积层、全连接层,为卷积层配合设置卷积量化层、卷积反量化层、激活层和池化层,输入层用于获取训练集图像,卷积量化层对输入层的输入值和第一卷积层的卷积进行量化,得到量化后的输入值和卷积核,卷积反量化层对量化后的输入值和卷积核进行反量化,得到的第一卷积层输出反量化后的值,基于数字域对应在存储设备上的位进行移位操作,得到第一卷积层输出反量化移位后的值,通过激活层对反量化移位后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到训练集图像的分类预测结
果,根据预测结果与训练集真值的误差,进行反向传播,训练基于阻变存储器的神经网络模型,由于量化的方法中采用了四舍五入法,无法进行梯度求解,因此误差在反向传播的过程中,跳过量化层直接回传到量化前的值,通过更新量化之前值的权重,优化网络参数,从而降低量化所带来的精度损失;将待分类图像输入训练好的系统中,通过卷积量化层对输入层的输入值和第一卷积层的卷积进行量化,将得到的输入层的量化值、第一卷积层的量化值进行卷积操作,得到第一卷积层输出的量化值,将输入层的量化值映射为阻变存储器的电压值,将第一卷积层的量化值映射为阻变存储器的电导值,将卷积操作的结果映射为阻变存储器输出的电流值,将电流值转换成电压值,并基于电压值对应在存储设备上的位进行移位操作,得到第一卷积层输出量化移位后的值,通过激活层对量化后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到待分类图像的分类结果。
6.进一步地,所述阻变存储器构成阻变存储器阵列,将输入层的量化值映射为阻变存储器的电压值输入第一列阻变存储器,将卷积层的量化值映射为各阻变存储器的电导值,每一列阻变存储器输出的电流值为该列输入的量化值与卷积层的量化值进行卷积操作。
7.进一步地,所述卷积层包括第一卷积层和第二卷积层,分别为第一、第二卷积层分别配合设置卷积量化层、卷积反量化层、激活层和池化层。
8.进一步地,所述量化的过程如下:公式(1)表示浮点的卷积操作;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,表示输入层的浮点值,表示第一卷积层的卷积核的浮点值,表示卷积操作。分别将输入层的浮点值和第一卷积层的卷积核的浮点值映射到定点值,通过公式(2) (3) (4)来确定最优的定点值的小数位宽;公式(2)计算浮点值映射到定点值的最小值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)其中i表示神经网络模型的层数,表示输入层,表示第一卷积量化层,表示第一卷积输出层,表示第i层的浮点值映射到定点值的小数位宽,表示量化的位宽,表示第i层的浮点值映射到定点值的最小值;公式(3)计算浮点值映射到定点值的最大值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中表示第i层的浮点值映射到定点值的最大值;通过公式(4)的约束条件,计算最优的定点值的小数位宽,公式(4)的约束条件
使得定点值的范围尽可能的接近浮点值的范围以减少量化所带来的精度损失;约束条件: (4)其中表示求绝对值,表示第i层浮点的最大值,表示第i层浮点的最小值,,通过统计第i层浮点值的最大值和最小值得到;通过公式(5)求出每一层的量化值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)其中表示第i层浮点值的量化因子,表示第i层的浮点值,表示第i层量化后的值,表示四舍五入操作,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。
9.进一步地,将量化后的输入值和卷积核分别进行反量化,然后通过公式(6)将反量化后的输入值与反量化后的卷积核进行卷积操作,得到第一卷积层输出的反量化后的浮点值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)其中,表示量化后的输入值,表示反量化后的输入值,表示量化后的卷积核,表示反量化后的卷积核,表示第一卷积输出层量化后的值,表示第一卷积输出层反量化后的值。
10.通过公式(6)可退出公式(7):
ꢀꢀ
(7)通过公式(7)进行移位操作,得到第一卷积层输出的量化值,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。
11.一种基于阻变存储器的神经网络图像分类方法,包括如下步骤:步骤s1:对待分类的图像进行归一化,得到归一化后的图像;步骤s2:对归一化后的图像进行训练集和测试集的构建;步骤s3:构建基于阻变存储器的神经网络模型;步骤s4:将训练集输入到基于阻变存储器的神经网络模型中,进行量化感知训练,得到量化感知训练后的模型参数,包括如下步骤:步骤s4-1:对输入层的输入值和第一卷积层的卷积进行量化,得到量化后的输入值和卷积核;步骤s4-2:将量化后的输入值和卷积核分别进行反量化,通过激活层对反量化后
的值进行激活操作,通过池化层对激活后的值进行池化操作,得到第一卷积层输出反量化后的值,基于数字域对应在存储设备上的位进行移位操作,得到第一卷积层输出反量化移位后的值;具体地在数字域除以后(对应硬件存储设备上的移位操作,右移位后),得到卷积层输出量化后的值。右移操作实现了步骤s4中公式(7)的剩余操作,最后通过激活操作和最大池化操作得到池化后的值;步骤s4-3:通过激活层对反量化后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到训练集图像的分类预测结果,根据预测结果与训练集真值的误差,进行反向传播,训练基于阻变存储器的神经网络模型,由于量化的方法中采用了四舍五入法,无法进行梯度求解,因此误差在反向传播的过程中,跳过量化层直接回传到量化前的值,通过更新量化之前值的权重,优化网络参数,从而降低量化所带来的精度损失;步骤s5:将测试集图像输入训练好的神经网络,进行前向推理测试,包括如下步骤:步骤s5-1:将测试集作为输入,通过步骤s3、步骤s4得到的输入层的量化值、第一卷积层的量化值进行卷积操作,得到第一卷积层输出的量化值,将输入层的量化值映射为阻变存储器的电压值,将第一卷积层的量化值映射为阻变存储器的电导值,将卷积操作的结果映射为阻变存储器输出的电流值;步骤s5-2:将电流值转换成电压值,并基于电压值进行移位操作,得到第一卷积层输出量化移位后的值,通过激活层对量化后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到测试集图像的分类结果。
12.进一步地,所述步骤s4-1具体的量化方法,包括如下步骤:公式(1)表示浮点的卷积操作;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,表示输入层的浮点值,表示第一卷积层的卷积核的浮点值,表示卷积操作。分别将输入层的浮点值和第一卷积层的卷积核的浮点值映射到定点值,通过公式(2) (3) (4)来确定最优的定点值的小数位宽;公式(2)计算浮点值映射到定点值的最小值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)其中i表示神经网络模型的层数,表示输入层,表示第一卷积量化层,表示第一卷积输出层,表示第i层的浮点值映射到定点值的小数位宽,表示量化的位宽,表示第i层的浮点值映射到定点值的最小值;
公式(3)计算浮点值映射到定点值的最大值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中表示第i层的浮点值映射到定点值的最大值;通过公式(4)的约束条件,计算最优的定点值的小数位宽,公式(4)的约束条件使得定点值的范围尽可能的接近浮点值的范围以减少量化所带来的精度损失;约束条件:
ꢀꢀ
(4)其中表示求绝对值,表示第i层浮点的最大值,表示第i层浮点的最小值,,通过统计第i层浮点值的最大值和最小值得到;通过公式(5)求出每一层的量化值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)其中表示第i层浮点值的量化因子,表示第i层的浮点值,表示第i层量化后的值,表示四舍五入操作,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。
13.进一步地,所述步骤s4-2中,将量化后的输入值和卷积核分别进行反量化,然后通过公式(6)将反量化后的输入值与反量化后的卷积核进行卷积操作,得到第一卷积层输出的反量化后的浮点值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)其中,表示量化后的输入值,表示反量化后的输入值,表示量化后的卷积核,表示反量化后的卷积核,表示第一卷积输出层量化后的值,表示第一卷积输出层反量化后的值。
14.通过公式(6)可推出公式(7):
ꢀꢀꢀꢀꢀꢀꢀ
(7)通过公式(7)进行移位操作,得到第一卷积层输出的量化值,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。
15.进一步地,所述步骤s5-2中,构建阻变存储器构成阻变存储器阵列,将输入层的量
化值映射为阻变存储器的电压值输入第一列阻变存储器,将卷积层的量化值映射为各阻变存储器的电导值,每一列阻变存储器输出的电流值为该列输入的量化值与卷积层的量化值进行卷积操作。
16.一种基于阻变存储器的神经网络图像分类装置,包括一个或多个处理器,用于实现所述的基于阻变存储器的神经网络图像分类方法。
17.本发明的优势和有益效果在于:本发明提出的基于阻变存储器的神经网络图像分类系统及方法,由于reram器件的电导范围有限,需要有限的位宽来存储卷积核。由于每层输入的量化位宽有限,需要有限的位宽来存储卷积后的输出值。本发明通过设计约束条件来优化量化因子的位宽,使得量化因子采用最优的2的幂次方,在卷积后缩放的操作过程中仅需要右移有限位数即可,操作简单。降低adc(模拟转数字电路)右移所带来的精度损失。同时进行量化感知训练,降低量化本身所带来的精度的损失,同时提升了模型的推理速度。
附图说明
18.图1是本发明实施例的方法流程图。
19.图2是本发明实施例中训练基于阻变存储器的神经网络模型的流程图。
20.图3是本发明实施例中通过训练好的模型进行图像分类预测的流程图。
21.图4是本发明实施例中输入图像的部分示例图。
22.图5是本发明实施例中基于reram的交叉阵列图。
23.图6是浮点模型与本发明实施例的方法对测试集每一类的分类精度对比图。
24.图7是本发明实施例的装置结构图。
具体实施方式
25.以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
26.如图1至图3所示,本发明的实施示例是对fashion mnist数据集进行分类。如图4所示,数据集一共有50000个训练样本,10000个测试样本。每个样本是尺寸为28*28的灰度图像。数据集一共有10类,分别是t恤,裤子,套衫,连衣裙,上衣,凉鞋,衬衫,运动鞋,书包,短靴。
27.本发明提出的基于阻变存储器的神经网络图像分类系统,包括依次连接的输入层、一组卷积层、全连接层,为卷积层配合设置卷积量化层、卷积反量化层、激活层和池化层,输入层用于获取训练集图像,卷积量化层对输入层的输入值和第一卷积层的卷积进行量化,得到量化后的输入值和卷积核,卷积反量化层对量化后的输入值和卷积核进行反量化,得到的第一卷积层输出反量化后的值,基于数字域对应在存储设备上的位进行移位操作,得到第一卷积层输出反量化移位后的值,通过激活层对反量化移位后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到训练集图像的分类预测结果,根据预测结果与训练集真值的误差,进行反向传播,训练基于阻变存储器的神经网络模型,由于量化的方法中采用了四舍五入法,无法进行梯度求解,因此误差在反向传
播的过程中,跳过量化层直接回传到量化前的值,通过更新量化之前值的权重,优化网络参数,从而降低量化所带来的精度损失;将待分类图像输入训练好的系统中,通过卷积量化层对输入层的输入值和第一卷积层的卷积进行量化,将得到的输入层的量化值、第一卷积层的量化值进行卷积操作,得到第一卷积层输出的量化值,将输入层的量化值映射为阻变存储器的电压值,将第一卷积层的量化值映射为阻变存储器的电导值,将卷积操作的结果映射为阻变存储器输出的电流值,将电流值转换成电压值,并基于电压值进行移位操作,得到第一卷积层输出量化移位后的值,通过激活层对量化后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到待分类图像的分类结果。
28.阻变存储器构成阻变存储器阵列,将输入层的量化值映射为阻变存储器的电压值输入第一列阻变存储器,将卷积层的量化值映射为各阻变存储器的电导值,每一列阻变存储器输出的电流值为该列输入的量化值与卷积层的量化值进行卷积操作。
29.卷积层包括第一卷积层和第二卷积层,分别为第一、第二卷积层分别配合设置卷积量化层、卷积反量化层、激活层和池化层。
30.本发明提出的基于阻变存储器的神经网络图像分类方法,包括如下步骤:步骤s1:对待分类的图像进行归一化,得到归一化后的图像;将图像的像素值归一化到0-1之间,本发明实施例中,对fashion mnist数据集中所有样本的像素值除以255进行归一化操作后,样本像素值的范围变为[0,1]。
[0031]
步骤s2:对归一化后的图像进行训练集和测试集的构建;选取fashion mnist中的训练样本作为训练集,fashion mnist中的测试样本作为测试集。
[0032]
步骤s3:构建基于阻变存储器的神经网络模型;具体地神经网络模型结构为:输入层

第一卷积量化层

第一卷积反量化层

激活层

池化层

第二卷积量化层

第二卷积反量化层

激活层

池化层

全连接量化层

全连接反量化层

softmax层。每一层权重参数的尺寸设置如下:输入层的尺寸大小为;第一卷积量化层,卷积核参数的尺寸为,步长为1;第二卷积量化层,卷积核参数的尺寸为,步长为1;全连接量化层,全连接参数的尺寸为。
[0033]
步骤s4:将训练集输入到基于阻变存储器的神经网络模型中,进行量化感知训练,得到量化感知训练后的模型参数,包括如下步骤:本发明实施例中,量化位宽为8bit, 输入量化到[0,255],每层的权重参数量化到[-128, 127]。具体步骤如下:步骤s4-1:对输入层的输入值和第一卷积层的卷积进行量化,得到量化后的输入值和卷积核;具体的量化方法如下:公式(1)表示浮点的卷积操作;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
其中,表示输入层的浮点值,表示第一卷积层的卷积核的浮点值,表示卷积操作。分别将输入层的浮点值和第一卷积层的卷积核的浮点值映射到定点值,通过公式(2) (3) (4)来确定最优的定点值的小数位宽。
[0034]
公式(2)计算浮点值映射到定点值的最小值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)其中中表示输入层,表示第一卷积量化层,表示第一卷积输出层,表示i层的浮点值映射到定点值的小数位宽,表示量化的位宽,表示i层的浮点值映射到定点值的最小值。
[0035]
公式(3)计算浮点值映射到定点值的最大值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中表示 i层的浮点值映射到定点值的最大值。通过公式(4)的约束条件,计算最优的定点值的小数位宽。
[0036]
公式(4)的约束条件使得定点值的范围尽可能的接近浮点值的范围以减少量化所带来的精度损失;约束条件: (4)其中表示求绝对值,表示i层浮点的最大值,表示i层浮点的最小值, , 通过统计i层浮点值的最大值和最小值得到。
[0037]
通过公式(5)可以求出每一层的量化值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)其中表示i层浮点值的量化因子,表示i层的浮点值,表示i层量化后的值,表示四舍五入,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。
[0038]
步骤s4-2:将量化后的输入值和卷积核分别进行反量化,通过激活层对反量化后的值进行激活操作,通过池化层对激活后的值进行池化操作,得到第一卷积层输出反量化后的值,基于数字域对应在存储设备上的位进行移位操作,得到第一卷积层输出反量化移位后的值;具体地,在数字域除以后(对应硬件存储设备上的移位操作,
右移位后),得到卷积层输出量化后的值。右移操作实现了步骤s4中公式(7)的剩余操作,最后通过激活操作和最大池化操作得到池化后的值;通过公式(6)将量化后的输入值和卷积核分别进行反量化,然后将反量化后的输入值与反量化后的卷积核进行卷积操作,得到第一卷积输出层反量化后的浮点值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)其中, 表示量化后的输入值,表示反量化后的输入值,表示量化后的卷积核,表示反量化后的卷积核,表示第一卷积输出层量化后的值,表示第一卷积输出层反量化后的值。
[0039]
通过公式(6)可推出公式(7),通过公式(7)进行移位操作,可以求出第一卷积输出层的量化值;(7)步骤s4-3:通过激活层对反量化移位后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到训练集图像的分类预测结果,根据预测结果与训练集真值的误差,进行反向传播,训练基于阻变存储器的神经网络模型,由于量化的方法中采用了四舍五入法,无法进行梯度求解,因此误差在反向传播的过程中,跳过量化层直接回传到量化前的值,通过更新量化之前值的权重,优化网络参数,从而降低量化所带来的精度损失;具体地,将第一卷积输出层反量化后的浮点值,输入到下一层中作为下一层的输入。以此类推,可以得到全连接层的浮点值,然后通过softmax分类器得到网络的输出,通过求解网络输出与人工标记的正确类别之间的误差并对误差进行反向传播,由于量化的方法中采用了四舍五入法,无法进行梯度求解,因此,误差在反向传播的过程中会跳过量化层直接回传到量化之前的浮点值,通过更新量化之前的浮点权重来优化网络参数,从而降低量化所带来的精度损失。最后得到量化感知训练后的神经网络模型。
[0040]
步骤s5:将测试集图像输入训练好的神经网络,进行前向推理测试。
[0041]
具体地,将量化感知训练后的神经网络模型映射到reram忆阻器上,输入测试集,进行前向推理测试。具体步骤为如图5所示,图5中的v表示电压值,g表示电导值,i表示电流值。
[0042]
步骤s5-1:将测试集作为输入,通过步骤s3、步骤s4得到的输入层的量化值、第一卷积层的量化值进行卷积操作,得到第一卷积层输出的量化值,将输入层的量化值映射为阻变存储器的电压值,将第一卷积层的量化值映射为阻变存储器的电导值,将卷积操作的结果映射为阻变存储器输出的电流值;
步骤s5-2:将电流值转换成电压值,并基于电压值对应在存储设备上的位进行移位操作,得到第一卷积层输出量化移位后的值,通过激活层对量化移位后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到测试集图像的分类结果。
[0043]
具体地,将步骤s5-1输出的电流值经过adc转换成电压,然后转换成数值,最后在数字域除以后(即再硬件存储设备上进行移位操作,右移位后),得到卷积层输出量化后的值。右移操作实现了步骤4公式(7)中的剩余操作,最后通过激活操作和最大池化操作得到池化后的值。
[0044]
以此类推,得到全连接层的量化值,将全连接层量化值的最大值的索引作为网络预测的类别。其中池化层和全连接层用软件来实现。
[0045]
下面结合仿真实验对本发明的效果做进一步的说明:1、仿真条件:本发明的仿真实验是在nvidia gv100的硬件环境和pytorch1.5的软件环境下进行的。
[0046]
2、仿真内容与结果分析:对于fashion minist数据集的分类问题。如图6所示的直方图中,深灰色的直方图表示用浮点精度的模型对测试集进行前向推理的分类结果,浅灰色的直方图表示本发明8bit量化以后的模型对测试集进行前向推理的分类结果。从图中可以看出,使用浮点模型对测试集进行测试的结果与本发明的基于阻变存储器的量化方法测试结果进行比较,二者对于每一类的识别精度相差较小。表1展示了二者分别对测试集的平均识别精度,可以看出,本发明的基于阻变存储器的量化方法几乎没有精度的损失,但是可以加快模型的推理速度。
[0047]
表1:浮点模型与本发明量化后的模型精度对比表测试方法平均识别精度浮点模型对测试集进行推理测试0.8864本发明对测试集进行推理测试0.8852综上所述,本发明提出了基于阻变存储器的神经网络模型量化方法,该方法结合了reram器件的电导范围和每层输入的量化位宽有限的特性,由于reram器件的电导范围有限,需要有限的位宽来存储卷积核。每层输入的量化位宽有限,需要有限的位宽来存储卷积后的输出值。本发明通过设计约束条件来优化量化因子的位宽,使得量化因子采用最优的2的幂次方,在卷积后缩放的操作过程中仅需要右移有限位数即可,操作简单。降低adc(模拟转数字电路)右移所带来的精度损失。同时进行量化感知训练,降低量化本身所带来的精度的损失,同时提升了模型的推理速度。对于fashion mnist数据集分类,与浮点精度相比,8bit量化精度损失低于0.5个百分点。
[0048]
与前述基于阻变存储器的神经网络图像分类方法的实施例相对应,本发明还提供了基于阻变存储器的神经网络图像分类装置的实施例。
[0049]
参见图7,本发明实施例提供的基于阻变存储器的神经网络图像分类装置,包括一个或多个处理器,用于实现上述实施例中的基于阻变存储器的神经网络图像分类方法。
[0050]
本发明基于阻变存储器的神经网络图像分类装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本发明基于阻变存储器的神经网络图像分类装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0051]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0052]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0053]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于阻变存储器的神经网络图像分类方法。
[0054]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0055]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1