当前位置: 首页 > 专利查询>之江实验室专利>正文

基于阻变存储器的神经网络图像分类系统及方法技术方案

技术编号:33968298 阅读:8 留言:0更新日期:2022-06-30 01:53
本发明专利技术公开了基于阻变存储器的神经网络图像分类系统及方法,系统包括依次连接的输入层、一组卷积层和全连接层,为卷积层配合设置卷积量化层、卷积反量化层、激活层和池化层,方法包括步骤S1:对待分类的图像进行归一化,得到归一化后的图像;步骤S2:对归一化后的图像进行训练集和测试集的构建;步骤S3:构建基于阻变存储器的神经网络模型;步骤S4:将训练集输入到基于阻变存储器的神经网络模型中,进行量化感知训练,得到量化感知训练后的模型参数,包括如下步骤:步骤S5:将测试集图像输入训练好的神经网络,进行进行前向推理测试。进行进行前向推理测试。进行进行前向推理测试。

【技术实现步骤摘要】
基于阻变存储器的神经网络图像分类系统及方法


[0001]本专利技术涉及神经网络图像分类
,尤其是涉及基于阻变存储器的神经网络图像分类系统及方法。

技术介绍

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

技术实现思路

[0005]为解决现有技术的不足,基于器件和算法协同设计的思想,结合了ReRAM器件的电导范围和每层输入的量化位宽有限的特性,通过设计约束条件来优化量化因子的位宽,使得量化因子采用最优的2的幂次方,且在卷积后进行缩放的操作过程中仅需要右移有限位数即可,实现操作简单,达到了既降低图像识别精度的损失,又提升图像识别的速度,降低资源占用率的目的,本专利技术采用如下的技术方案:一种基于阻变存储器的神经网络图像分类系统,包括依次连接的输入层、一组卷积层、全连接层,为卷积层配合设置卷积量化层、卷积反量化层、激活层和池化层,输入层用于获取训练集图像,卷积量化层对输入层的输入值和第一卷积层的卷积进行量化,得到量化后的输入值和卷积核,卷积反量化层对量化后的输入值和卷积核进行反量化,得到的第一卷积层输出反量化后的值,基于数字域对应在存储设备上的位进行移位操作,得到第一卷积层输出反量化移位后的值,通过激活层对反量化移位后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到训练集图像的分类预测结
果,根据预测结果与训练集真值的误差,进行反向传播,训练基于阻变存储器的神经网络模型,由于量化的方法中采用了四舍五入法,无法进行梯度求解,因此误差在反向传播的过程中,跳过量化层直接回传到量化前的值,通过更新量化之前值的权重,优化网络参数,从而降低量化所带来的精度损失;将待分类图像输入训练好的系统中,通过卷积量化层对输入层的输入值和第一卷积层的卷积进行量化,将得到的输入层的量化值、第一卷积层的量化值进行卷积操作,得到第一卷积层输出的量化值,将输入层的量化值映射为阻变存储器的电压值,将第一卷积层的量化值映射为阻变存储器的电导值,将卷积操作的结果映射为阻变存储器输出的电流值,将电流值转换成电压值,并基于电压值对应在存储设备上的位进行移位操作,得到第一卷积层输出量化移位后的值,通过激活层对量化后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到待分类图像的分类结果。
[0006]进一步地,所述阻变存储器构成阻变存储器阵列,将输入层的量化值映射为阻变存储器的电压值输入第一列阻变存储器,将卷积层的量化值映射为各阻变存储器的电导值,每一列阻变存储器输出的电流值为该列输入的量化值与卷积层的量化值进行卷积操作。
[0007]进一步地,所述卷积层包括第一卷积层和第二卷积层,分别为第一、第二卷积层分别配合设置卷积量化层、卷积反量化层、激活层和池化层。
[0008]进一步地,所述量化的过程如下:公式(1)表示浮点的卷积操作;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,表示输入层的浮点值,表示第一卷积层的卷积核的浮点值,表示卷积操作。分别将输入层的浮点值和第一卷积层的卷积核的浮点值映射到定点值,通过公式(2) (3) (4)来确定最优的定点值的小数位宽;公式(2)计算浮点值映射到定点值的最小值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)其中i表示神经网络模型的层数,表示输入层,表示第一卷积量化层,表示第一卷积输出层,表示第i层的浮点值映射到定点值的小数位宽,表示量化的位宽,表示第i层的浮点值映射到定点值的最小值;公式(3)计算浮点值映射到定点值的最大值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中表示第i层的浮点值映射到定点值的最大值;通过公式(4)的约束条件,计算最优的定点值的小数位宽,公式(4)的约束条件
使得定点值的范围尽可能的接近浮点值的范围以减少量化所带来的精度损失;约束条件: (4)其中表示求绝对值,表示第i层浮点的最大值,表示第i层浮点的最小值,,通过统计第i层浮点值的最大值和最小值得到;通过公式(5)求出每一层的量化值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)其中表示第i层浮点值的量化因子,表示第i层的浮点值,表示第i层量化后的值,表示四舍五入操作,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。
[0009]进一步地,将量化后的输入值和卷积核分别进行反量化,然后通过公式(6)将反量化后的输入值与反量化后的卷积核进行卷积操作,得到第一卷积层输出的反量化后的浮点值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)其中,表示量化后的输入值,表示反量化后的输入值,表示量化后的卷积核,表示反量化后的卷积核,表示第一卷积输出层量化后的值,表示第一卷积输出层反量化后的值。
[0010]通过公式(6)可退出公式(7):
ꢀꢀ
(7)通过公式(7)进行移位操作,得到第一卷积层输出的量化值,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。
[0011]一种基于阻变存储器的神经网络图像分类方法,包括如下步骤:步骤S1:对待分类的图像进行归一化,得到归一化后的图像;步骤S2:对归一化后的图像进行训练集和测试集的构建;步骤S3:构建基于阻变存储器的神经网络模型;步骤S4:将训练集输入到基于阻变存储器的神经网络模型中,进行量化感本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于阻变存储器的神经网络图像分类系统,包括依次连接的输入层、一组卷积层和全连接层,其特征在于:为卷积层配合设置卷积量化层、卷积反量化层、激活层和池化层,输入层用于获取训练集图像,卷积量化层对输入层的输入值和第一卷积层的卷积进行量化,得到量化后的输入值和卷积核,卷积反量化层对量化后的输入值和卷积核进行反量化,反量化后的输入值和卷积核进行卷积操作得到第一卷积层输出反量化后的值,基于数字域进行移位操作,得到第一卷积层输出反量化移位后的值,通过激活层对反量化移位后的值进行激活操作,对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到训练集图像的分类预测结果,根据预测结果与训练集真值的误差,进行反向传播,训练基于阻变存储器的神经网络模型,反向传播的过程中,跳过量化层直接回传到量化前的值,通过更新量化之前值的权重,优化网络参数;将待分类图像输入训练好的系统中,通过卷积量化层对输入层的输入值和第一卷积层的卷积进行量化,将得到的输入层的量化值、第一卷积层的量化值进行卷积操作,得到第一卷积层输出的量化值,将输入层的量化值映射为阻变存储器的电压值,将第一卷积层的量化值映射为阻变存储器的电导值,将卷积操作的结果映射为阻变存储器输出的电流值,将电流值转换成电压值,并基于电压值进行移位操作,得到第一卷积层输出量化移位后的值,通过激活层对量化后的值进行激活操作,通过池化层对激活后的值进行池化操作,将池化后的值作为下一卷积量化层的输入值,直至最后一个卷积层对应的池化输出,将最后的池化输出经全连接层得到待分类图像的分类结果。2.根据权利要求1所述的基于阻变存储器的神经网络图像分类系统,其特征在于:所述阻变存储器构成阻变存储器阵列,将输入层的量化值映射为阻变存储器的电压值输入第一列阻变存储器,将卷积层的量化值映射为各阻变存储器的电导值,每一列阻变存储器输出的电流值为该列输入的量化值与卷积层的量化值进行卷积操作。3.根据权利要求1所述的基于阻变存储器的神经网络图像分类系统,其特征在于:所述卷积层包括第一卷积层和第二卷积层,分别为第一、第二卷积层分别配合设置卷积量化层、卷积反量化层、激活层和池化层。4.根据权利要求1至3之一所述的基于阻变存储器的神经网络图像分类系统,其特征在于:所述量化的过程如下:公式(1)表示浮点的卷积操作;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,表示输入层的浮点值,表示第一卷积层的卷积核的浮点值,表示卷积操作;分别将输入层的浮点值和第一卷积层的卷积核的浮点值映射到定点值,通过公式(2)、公式(3)和公式(4)来确定最优的定点值的小数位宽;公式(2)计算浮点值映射到定点值的最小值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)其中i表示神经网络模型的层数,表示第i层的浮点值映射到定点值的小数位宽,
表示量化的位宽,表示第i层的浮点值映射到定点值的最小值;公式(3)计算浮点值映射到定点值的最大值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中表示第i层的浮点值映射到定点值的最大值;通过公式(4)的约束条件,计算最优的定点值的小数位宽;约束条件:
ꢀꢀꢀ
(4)其中表示求绝对值,表示第i层浮点的最大值,表示第i层浮点的最小值,,通过统计第i层浮点值的最大值和最小值得到;通过公式(5)求出每一层的量化值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)其中表示第i层浮点值的量化因子,表示第i层的浮点值,表示第i层量化后的值,表示四舍五入操作,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。5.根据权利要求1至3之一所述的基于阻变存储器的神经网络图像分类系统,其特征在于:将量化后的输入值和卷积核分别进行反量化,然后通过公式(6)将反量化后的输入值与反量化后的卷积核进行卷积操作,得到第一卷积层输出的反量化后的浮点值;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)其中,表示量化后的输入值,表示反量化后的输入值,表示量化后的卷积核,表示反量化后的卷积核,表示第一卷积输出层量化后的值,表示第一卷积输出层反量化后的值;通过公式(6)推出公式(7):
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)通过公式(7)进行移位操作,得到第一卷积层输出的量化值,表示量化到整型后的最小值,表示量化到整型后的最大值,表示截断操作。6.一种基于阻变存储器的神经网络图像分类方法,其特征在于包括如下步骤:步骤S1:对待分类的图像进行归一化,得到归一化后的图像;
步骤S2:对归一化后的图像进行训练集和测试集的构建;步骤S3:构建基于阻变存储器的神经网络模型;步骤S4:将训练...

【专利技术属性】
技术研发人员:高丽丽时拓刘琦张程高顾子熙王志斌李一琪张徽
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1